EventsLocationsSpacesSolutionsPricingIntegrationsAPIBlogHelp
EventsLocationsSpacesSolutionsPricingIntegrationsAPIBlogHelp
© 2026 AOA
Getting startedArtistsFor artistsOrganizersVenuesPast eventsCareersPartnersBubble avatarBento pageGitHub
AboutWhat is AOAPrivacySecurityTermsMerchantCookies
Pricing
UAEN
PricingSupport
FOR PEOPLE
People nearbyHow it worksAOA ConnectSuspended coffee
FOR BUSINESS
VenuesOrganizersFor space ownersFor artists and bands
Solutions
Event check-inEvent networkingTelegram botBento pageLoyalty programSuspended coffeeNFC tags for venues
Extend AOA
IntegrationsAPI & SDK
Help centerDocumentationBlogAbout AOAContact

API reference

  • Introduction
  • Authentication
  • Sandbox
  • Rate limits
  • Errors
  • Versioning
  • Events
  • Reservations
  • Checkout

Webhooks

  • Introduction
  • Event types
  • Verifying signatures
  • Make, Zapier, n8n

API reference

Introduction

The AOA public API for finding venues and events, booking tables and selling tickets: base URL and response format.

The AOA API gives you access to published venues and events, and lets you book tables and sell tickets from your own app, bot or AI agent. Search and availability are open without a key: you only need one for actions that change state.

Base URL: https://aoa.com.ua/api/v1

Your first request

Upcoming events in Kyiv. No key needed:

cURL
curl "https://aoa.com.ua/api/v1/events?city=Київ&limit=10"

You can try bookings, ticket payments and webhooks without creating anything for real in the sandbox: the same endpoints on test data, with a test key you make up yourself.

Response format

Every response has the same shape. A success returns an object with a data field, and lists add meta:

JSON
{
  "data": [ … ],
  "meta": { "count": 10, "total": 42, "limit": 10 }
}

An error always comes in the error field with a stable code:

JSON
{
  "error": {
    "code": "not_found",
    "message": "Event not found"
  }
}

Check for error rather than the HTTP status, so your handling stays the same if a status is ever refined. The list of codes is on the Errors page.

What you can do

ActionEndpointKey required
Find venuesGET/locationsNo
Check free time slotsGET/locations/{locationId}/availabilityNo
Book a table after confirmationPOST/table-reservationsYes
Find eventsGET/eventsNo
Event detailsGET/events/{eventId}No
Ticket types and pricesGET/events/{eventId}/ticket-typesNo
Seats leftGET/events/{eventId}/availabilityNo
Hold tickets for 15 minutesPOST/reservationsYes
Create a paymentPOST/checkoutYes
Order statusGET/orders/{paymentId}Yes

A typical sales flow

  1. Find an event with GET/events and show the buyer prices from ticket-types.
  2. While the buyer fills in their details, hold the seats with POST/reservations. This step is optional, but without it popular tickets can sell out in the meantime.
  3. Create a payment with POST/checkout and send the buyer to paymentUrl.
  4. Poll GET/orders/{paymentId} every 5–10 seconds until the status becomes SUCCESS.

We send the ticket to the buyer: after a successful payment, an email with the ticket goes to the address they gave, automatically.

Good to know from the start

This is a server-to-server API

The endpoints don’t return CORS headers, so you can’t call them directly from a browser page. The key must not be exposed on the client anyway: keep the calls on your server.
  • All times are ISO 8601 in UTC (2026-08-15T18:00:00.000Z).
  • Money is in whole kopiyky (hundredths of a hryvnia) in priceMinor. The priceDecimal field is there for display; always do the math in kopiyky.
  • The event id in responses is a short public identifier, the same one as in the event page link.

OpenAPI specification

A machine-readable description is available at https://aoa.com.ua/api/v1/openapi.json. You can feed it to a client generator or connect it to an AI agent. This documentation describes the behavior more precisely than the specification, so where they differ, go by the documentation.

SDKs and Agent Skills

Official SDKs for TypeScript, Python and Go, skills for AI agents and configs for coding assistants (AGENTS.md, plugin.json) live in the open repository github.com/aoa-ua/aoa-agent-kit. The SDKs are generated from this specification and updated along with it.

  • TypeScript: npm install @aoa-ua/sdk (npm)
  • Python: pip install aoa-sdk (PyPI)
  • Go: go get github.com/aoa-ua/aoa-agent-kit/sdk/go

Versioning

Versioning: the version is part of the path (/api/v1). Breaking changes ship only in a new version. Every API response carries a Link header with rel="deprecation" and rel="sunset" pointing to this policy page. A deprecated endpoint is also marked with the Deprecation and Sunset headers (RFC 9745, RFC 8594) at least 90 days before it is switched off, and the shutdown date is repeated in the documentation.

NextAuthentication