API reference / Events
Enrich one event
Written and maintained by The ProspectAPIs team
POST/v1/events/enrich
POST /v1/events/enrich is the ProspectAPIs operation enrichEvent, in the Events group of the REST API. Billed as one enriched event at GET /pricing events.price_per_enriched_event_usd once events are available, only when at least one section is ok; a 400, 404, 503 or an answer with no ok section is free. One Luma or Partiful event's speakers, sponsors, agenda and side events, each section with a status (ok, not_published, unreadable with a reason), read logged out. Items parsed from the description carry source description, the heading they sat under and a confidence. Launching soon: answers 503 and charges nothing until GET /pricing reports events available. Cost: Launching soon. Send your API key as a Bearer token in the Authorization header.
How this fits with the rest of the events API, with worked examples, is in the event discovery guide.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| Idempotency-Key | header | string | Make a retry safe: the same key and body within 24 hours replays the first answer, unbilled. |
Request body
JSON (EventEnrichRequest). Exactly one of url or id.
| Field | Type | Description |
|---|---|---|
| url | string | A Luma (luma.com/<slug>, lu.ma/<slug>, luma.com/event/<evt-id>) or Partiful (partiful.com/e/<id>) event page. At most 500 characters. |
| id | string | An event id from GET /v1/events. At most 120 characters. |
{}Responses
| Status | Meaning |
|---|---|
| 200 | The event and its four sections, each with a status. |
| 400 | The request was invalid (e.g. a bad filter or input); nothing was charged. |
| 401 | The API key is missing or invalid. |
| 402 | Out of credits. The body carries top_up_url; nothing was charged. |
| 404 | No such record for this account. |
| 429 | Too many requests; retry after the window. |
| 503 | Events are not available yet, the event's page cannot be read, or the removal list is unavailable. Nothing is charged. |
Every error answers with the same JSON body, an error string and sometimes a code; the errors page lists each status and when it happens. A per-key 429 carries Retry-After; see rate limits.
200 response fields
The event and its four sections, each with a status. The body is a EventEnrichResult.
| Field | Type | Description |
|---|---|---|
| data required | EventEnrichment | |
| data.event required | Event | One public event, the same shape for every platform. A field the platform does not publish is null, never guessed. |
| data.speakers required | object | The speakers section. items is non-empty exactly when status is ok; an empty items always comes with not_published or unreadable and a reason. |
| data.sponsors required | object | The sponsors section. items is non-empty exactly when status is ok; an empty items always comes with not_published or unreadable and a reason. |
| data.agenda required | object | The agenda section. items is non-empty exactly when status is ok; an empty items always comes with not_published or unreadable and a reason. |
| data.side_events required | object | The side events section. items is non-empty exactly when status is ok; an empty items always comes with not_published or unreadable and a reason. |
| data.enriched_at required | string (date-time) | |
| charged_usd required | number | What this call cost: one enriched event when at least one section is ok, else 0. |
| Header | Meaning |
|---|---|
| RateLimit-Limit | Requests this API key may make per minute. |
| RateLimit-Remaining | Requests left in the current one-minute window. |
| RateLimit-Reset | Seconds until the current window resets. |
Code samples
Each sample sends the same request. Set PROSPECTAPIS_KEY in your environment first. Values come from the spec's examples; replace them with your own.
curl -X POST https://api.prospectapis.com/v1/events/enrich \
-H "Authorization: Bearer $PROSPECTAPIS_KEY" \
-H "Content-Type: application/json" \
-d '{}'const res = await fetch("https://api.prospectapis.com/v1/events/enrich", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PROSPECTAPIS_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({}),
});
if (!res.ok) throw new Error(`${res.status}: ${(await res.json().catch(() => ({}))).error ?? res.statusText}`);
const data = await res.json();
console.log(data);import os, requests
res = requests.post(
"https://api.prospectapis.com/v1/events/enrich",
headers={"Authorization": f"Bearer {os.environ['PROSPECTAPIS_KEY']}"},
json={},
timeout=30,
)
res.raise_for_status()
data = res.json()
print(data)Billing
Billing reserves before it serves: the call holds what it may cost, serves at most what that hold covers, and refunds the rest when the response closes. Any non-2xx answer refunds the whole hold, so a failed call costs nothing. The response reports your balance in X-Credits-Remaining.
Related
The event discovery guide covers this area end to end. Previous operation: Get one event. Every operation, grouped by area, is on the API reference index.
Create a free account to get a key, then run the samples above with your own values (this call acts for real, so use real inputs).
Was this page helpful?