REST API · v1
Every piece of platform data through an API
Complete REST API for distressed-M&A data: cases, deep research, administrator directory, watchlists, alerts — and the AI Deal Playbook. JSON responses, bearer auth, per-tier rate limits.
Base URL
https://emptera.com/api/v1Version
v1 · OpenAPI 3.1Features
RESTful API design
API-key authentication (bearer token)
Per-org, per-plan rate limiting
Comprehensive search parameters
Field selection for lean responses
Keyset pagination
AI Deal Playbook via endpoint (Emptera exclusive)
CORS enabled
Uniform error envelope
Authentication
Every protected endpoint expects a bearer token in the Authorization header. Create API keys in the dashboard under Settings → API tokens.
GET /api/v1/leads?sinceDays=7&limit=50 Authorization: Bearer ur_live_<your-token> Accept: application/json
Rate limiting
Limits depend on your plan. A 429 response includes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset and Retry-After headers.
HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1719907200
Retry-After: 300
{ "error": { "code": "rate_limited",
"message": "Daily quota exhausted." } }Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/health | Public health check (no API key required). |
| GET | /api/v1/leads | List all insolvency cases. Filters: source, band, cat, priceMin/Max, sinceDays. Keyset pagination. |
| GET | /api/v1/leads/{id} | Case detail incl. enrichment and pipeline state for your organisation. |
| GET | /api/v1/leads/{id}/research | Deep research on the case (commercial register, Federal Gazette, web analysis, administrator, match signals). |
| POST | /api/v1/leads/{id}/playbook | Generate AI Deal Playbook — personalised action plan for THIS case + your buyer profile. Body: { profileId?, regenerate?, lang? }. |
| GET | /api/v1/administrators | Directory of every administrator in the system — filters: nameLike, city, minCases, plan (paid). |
| GET | /api/v1/administrators/{id} | Administrator detail with case history, specialisation and contact data (contact from Standard tier). |
| GET | /api/v1/watchlists | Your watchlists. |
| POST | /api/v1/watchlists | Create a watchlist. Body: { name }. |
| POST | /api/v1/watchlists/{id}/members | Add a case to a watchlist. Body: { announcementId, note? }. |
| DELETE | /api/v1/watchlists/{id}/members/{announcementId} | Remove a case from a watchlist. |
| GET | /api/v1/alerts | Your search alerts. |
| POST | /api/v1/alerts | Create a search alert. Body: { name, query, channels[]? }. |
| PATCH | /api/v1/alerts/{id} | Update an alert (name, enabled, minBand, channels). |
| DELETE | /api/v1/alerts/{id} | Delete an alert. |
| GET | /api/v1/usage | Usage + quotas for your organisation in the current month. |
Full parameter list + response schemas in the interactive reference.
Example request
curl
curl https://emptera.com/api/v1/leads \
-H "Authorization: Bearer ur_live_..." \
-H "Accept: application/json" \
-G --data-urlencode "sinceDays=7" \
--data-urlencode "limit=50" \
--data-urlencode "band=IDEAL"TypeScript
const res = await fetch(
"https://emptera.com/api/v1/leads/" +
id + "/playbook",
{
method: "POST",
headers: {
"Authorization": "Bearer ur_live_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
lang: "de",
regenerate: false,
}),
},
);
const { playbook } = await res.json();OpenAPI spec + interactive reference
The full OpenAPI 3.1 spec is available at /api/v1/openapi.json. The interactive Scalar reference with Try-it console is at /api/v1/docs.
Enable API access
API access is included from the Pro tier. Daily rate limits: Pro 100 · Platform 500 · Enterprise 1,500.