List experiences
https://api.nexgapp.com/v1/experiencesLiveReturns events published on nexgapp.com that have not started yet, soonest first. Events in the past and drafts are never listed.
Ticket prices are the organiser’s face value. NexG does not sell tickets or add a margin to them; it charges for the day it plans around an event.
- Authentication
- None needed. A key with
public_readgets its own rate limit. - Rate limit cost
- 1 token
- Caching
- Shared caches, 60 seconds
- Available since
- 21 October 2026
Query parameters
cityquery · stringOptionalA city slug, such as nairobi. A slug no city has returns an empty list.
qquery · stringOptionalFree text matched against the event name and venue name, ignoring case. Up to 120 characters.
cursorquery · stringOptionalThe next_cursor from the previous page, passed back unchanged. Leave it out for the first page. A cursor this endpoint did not issue is refused with 400.
limitquery · integerOptionalResults per page, 1 to 100. Defaults to 25. A value outside that range is refused with 400.
Any other query parameter is refused with 400 invalid_request.
Headers
X-Api-Keyheader · stringOptionalYour API key. Or send it as Authorization: Bearer <key>, but never both in one request.
Response
Experience data.items[]
iduuidThe event’s id.
city_iduuidThe city it takes place in.
namestring or nullThe event’s name.
categorystring or nullsport, music, food_drink, culture, family, nightlife or other.
venue_namestring or nullWhere it is held.
venue_addressstring or nullThe venue’s address.
starts_attimestamp or nullWhen it starts.
ends_attimestamp or nullWhen it ends.
doors_attimestamp or nullWhen doors open.
cover_pathstring or nullThe cover image, as a URL or a path on nexgapp.com.
featuredboolean or nullFeatured by NexG.
anchor_slotstring or nullThe part of the day the event pins when NexG plans around it: early, morning, midday, afternoon, evening, night or late.
organiser_namestring or nullWho runs it.
organiser_urlstring or nullThe organiser’s website.
ticket_urlstring or nullWhere tickets are sold.
ticket_bandsarrayTicket prices at the organiser’s face value: a list of { label, price_kes, currency }. price_kes is a positive number of shillings; currency may be absent. Empty when there are no bands. NexG never adds a margin to a ticket.
nexg_can_hold_ticketsboolean or nullWhether NexG can hold tickets for a guest’s day out.
practical_notestring or nullSomething a guest should know, such as parking or road closures.
suggested_blocksarrayWhat a day around the event usually includes, as NexG’s team entered it: a list, usually of { kind, mood, slot, title, swap_group }. Read it defensively.
Errors
Every error has the same shape; see Errors. Branch on error.code and the HTTP status, never on the message.
- 400
invalid_requestBoth X-Api-Key and Authorization were sent, or Authorization is not a Bearer key.
- 401
not_foundThe key is unknown, revoked or expired, or its merchant cannot use the API right now. All of these get the same answer on purpose.
- 403
not_foundA key was sent but it does not have public_read.
- 429
rate_limitedYour token bucket is empty. Wait the number of seconds in the Retry-After header.
- 503
internal_errorNexG could not check the key or the rate limit. Retry with backoff.
- 400
invalid_requestA query parameter is not one this endpoint accepts, or fails validation. error.fields names it.
- 500
internal_errorNexG could not read the events.
- 500
internal_errorSomething unexpected failed on NexG’s side. NexG logs the X-Request-Id: quote it if you report the failure.
Good to know
- Ticket bands are entered by hand. An event whose bands cannot be read is left out of the list, and logged for NexG to correct, rather than failing the whole list.