Skip to content
ProspectAPIs

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

Parameters of POST /v1/events/enrich
NameInTypeDescription
Idempotency-KeyheaderstringMake 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.

Request body of POST /v1/events/enrich
FieldTypeDescription
urlstringA Luma (luma.com/<slug>, lu.ma/<slug>, luma.com/event/<evt-id>) or Partiful (partiful.com/e/<id>) event page. At most 500 characters.
idstringAn event id from GET /v1/events. At most 120 characters.
Example body
{}

Responses

Response codes of POST /v1/events/enrich
StatusMeaning
200The event and its four sections, each with a status.
400The request was invalid (e.g. a bad filter or input); nothing was charged.
401The API key is missing or invalid.
402Out of credits. The body carries top_up_url; nothing was charged.
404No such record for this account.
429Too many requests; retry after the window.
503Events 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.

Fields of the 200 response
FieldTypeDescription
data requiredEventEnrichment
data.event requiredEventOne public event, the same shape for every platform. A field the platform does not publish is null, never guessed.
data.speakers requiredobjectThe 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 requiredobjectThe 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 requiredobjectThe 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 requiredobjectThe 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 requiredstring (date-time)
charged_usd requirednumberWhat this call cost: one enriched event when at least one section is ok, else 0.
Response headers
HeaderMeaning
RateLimit-LimitRequests this API key may make per minute.
RateLimit-RemainingRequests left in the current one-minute window.
RateLimit-ResetSeconds 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
curl -X POST https://api.prospectapis.com/v1/events/enrich \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
JavaScript (fetch)
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);
Python (requests)
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.

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?