Skip to content
ProspectAPIs

API reference / Events

Get one event

Written and maintained by The ProspectAPIs team

GET/v1/events/:id

GET /v1/events/:id is the ProspectAPIs operation getEvent, in the Events group of the REST API. One event read fresh from its platform, in the GET /v1/events shape. Billed as one event at GET /pricing events.price_per_event_usd once events are available; an unknown id is a free 404. 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 GET /v1/events/:id
NameInTypeDescription
id requiredpathstringAn event id from GET /v1/events, such as luma.evt-AbC123.

Responses

Response codes of GET /v1/events/:id
StatusMeaning
200The event, and how it was read.
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, or the platform cannot be read and no copy is stored. 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 how it was read.

Fields of the 200 response
FieldTypeDescription
data requiredEventOne public event, the same shape for every platform. A field the platform does not publish is null, never guessed.
data.id requiredstringThe platform and its own id, such as luma.evt-AbC123.
data.platform requiredstring: luma, partiful
data.platform_event_id requiredstringThe platform's own stable id.
data.url requiredstring (uri)
data.title requiredstring
data.start_at requiredstring (date-time)UTC.
data.end_atstring (date-time) or null
data.start_localstring or nullLocal time with the offset.
data.end_localstring or null
data.timezone requiredstring or null
data.citystring or null
data.city_slugstring or null
data.country_codestring or null
data.venueobject or null
data.onlineboolean
data.categorystring or nullLuma's own category slug; null on Partiful.
data.categories requiredarray of string
data.guest_countinteger or nullNull when the host hides the guest list.
data.guest_count_exactboolean or null
data.hosts requiredarray of object
data.speakersarray of object
data.organizerobject or null
data.ticketobject or null
data.cover_urlstring or null
data.first_seen_atstring (date-time) or null
data.last_seen_atstring (date-time) or null
source requiredEventSource
source.platform requiredstring: luma, partiful
source.status requiredstring: ok, not_covered, unreadable, stored
source.reasonstring
source.read_atstring (date-time)
source.events_seeninteger
source.completeboolean
source.cachedboolean
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 https://api.prospectapis.com/v1/events/luma.evt-AbC123 \
  -H "Authorization: Bearer $PROSPECTAPIS_KEY"
JavaScript (fetch)
const res = await fetch("https://api.prospectapis.com/v1/events/luma.evt-AbC123", {
  headers: { Authorization: `Bearer ${process.env.PROSPECTAPIS_KEY}` },
});
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.get(
    "https://api.prospectapis.com/v1/events/luma.evt-AbC123",
    headers={"Authorization": f"Bearer {os.environ['PROSPECTAPIS_KEY']}"},
    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: List event cities. Next operation: Enrich 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.

Was this page helpful?