Reference

Read-only event data. Version 1.

Authentication

Every request carries a key from the Keys screen.

curl https://api.locally-social.com/api/v1/events?city=Charlotte&state=NC \
  -H "Authorization: Bearer lsk_…"

Limits

Per key, per minute and per UTC day. Current numbers are on the Overview screen.

X-RateLimit-Limit
Requests allowed this minute.
X-RateLimit-Remaining
Left in this minute.
X-RateLimit-Reset
Seconds until the minute rolls over.
X-RateLimit-Daily-Remaining
Left today.
Retry-After
Seconds to wait. Sent only with a 429.

Paging

List responses carry next_cursor. Pass it back as cursor for the next page; null means the last one. The value is opaque — it will change shape, so it must not be parsed.

{
  "data": [ … ],
  "next_cursor": "MjAyNi0xMC0xN1QwMDowMDowMCswMDowMHw…"
}

Events

Each event carries its venue — name, address, coordinates, neighbourhood. When all we know is a name off a flyer, venue.id is null and the name is still there; venue itself is null only when there is neither. There is no venue endpoint.

GET /events

Upcoming public events, soonest first.

city, state
Sent together. City name or slug, state code.
zipcode
US ZIP. Searches radius_miles around its centroid. Not combinable with lat/lng.
lat, lng, radius_miles
lat and lng sent together. Radius defaults to 15, caps at 100.
category
A name or slug from /categories.
starts_after
ISO 8601. Defaults to now.
starts_before
ISO 8601.
updated_since
ISO 8601. A filter on when a row last changed — not a change feed: it cannot report a deletion, and a row that changes mid-walk may be missed.
limit, cursor
Page size and continuation.

GET /events/{id}

One event, including one that has already happened.

Vocabularies

GET /categories

Every value the category filter accepts, with upcoming counts. A category with nothing behind it is listed at zero.

GET /cities

Cities with upcoming coverage, deepest first.

Errors

401
No key, an unknown key, or one that was revoked.
403
The account is not approved, or the key lacks a scope.
404
No such event, or one that is not public.
422
A parameter is wrong. The body names which.
429
Over a limit. Retry-After says how long.
{ "detail": "Over the per-minute limit of 60 requests." }

Not in version 1

A venue collection. Writes, ticketing, webhooks, and anything about a loso account or its activity. Attendance counts and RSVP lists are not served.