FreeTicket B2B API
FreeTicket B2B REST API for integrations and the CLI. Authentication is by API key (Authorization: Bearer <key> header or x-api-key); the active workspace is selected with the X-Workspace-Id header.
Scopes: each key is either read (GET/HEAD only) or write (additionally creates, edits, deletes, cancels, refunds and checks in). Self-service keys are issued as read. A read key calling a mutating method gets a 403. The machine-readable declaration lives at /.well-known/oauth-protected-resource (RFC 9728).
Version 1.16.1
Base URL
https://admin.appfreeticket.com/api/v1auth
- POSTStart the Device Authorization Grant (RFC 8628)
/auth/device/code - POSTCLI poll: exchanges the device_code for an API key once approved
/auth/device/token - POSTHeadless sign-up: creates the unverified account and sends the email
/auth/signup
me
- POSTCreate your own workspace/tenant (self-serve)
/workspaces - GETAuthenticated user, role and accessible workspaces
/me
events
- GETList workspace events
/events - POSTCreate an event
/events - GETGet an event
/events/{id} - DELETEDelete an event (soft delete)
/events/{id} - PATCHUpdate an event
/events/{id} - POSTPublish an event
/events/{id}/publish - POSTCancel an event (keeps the record and its sales)
/events/{id}/cancel - GETList an event's dates
/events/{id}/dates - POSTAdd a date to an event
/events/{id}/dates - DELETEDelete an event date
/events/{id}/dates/{dateId} - PATCHUpdate an event date
/events/{id}/dates/{dateId}
ticket-types
- GETList workspace ticket types
/ticket-types - POSTCreate a ticket type
/ticket-types - GETGet a ticket type
/ticket-types/{id} - DELETEDelete a ticket type (soft delete)
/ticket-types/{id} - PATCHUpdate a ticket type
/ticket-types/{id}
sales
- GETList workspace sales
/sales - POSTCreate a sale/order (complimentary tickets and programmatic sales)
/sales - GETGet a sale with its items
/sales/{id} - POSTCancel a sale (blocked if someone already checked in or the payment is still open)
/sales/{id}/cancel - POSTRefund a sale (moving the funds depends on the payment gateway)
/sales/{id}/refund - GETList the individual tickets of a sale
/sales/{id}/tickets - GETList a sale's payment attempt history
/sales/{id}/attempts
membership-plans
- GETList the workspace's membership plans
/membership-plans - POSTCreate a membership plan
/membership-plans - GETGet a membership plan
/membership-plans/{id} - DELETEDelete a membership plan (soft delete)
/membership-plans/{id} - PATCHUpdate a membership plan
/membership-plans/{id} - GETList subscribers of a membership plan
/membership-plans/{id}/subscribers
venues
- GETList workspace venues
/venues - POSTCreate a venue
/venues - GETGet a venue
/venues/{id} - DELETEDelete a venue (soft delete)
/venues/{id} - PATCHUpdate a venue
/venues/{id}
staff
- GETList staff with access to the workspace
/staff - POSTCreate a staff user in the workspace
/staff - GETGet a staff member
/staff/{id} - DELETERevoke a staff member's access to this workspace
/staff/{id} - PATCHChange a staff user's role
/staff/{id}/role
reports
- GETWorkspace KPIs (revenue, tickets, sales, memberships)
/reports/summary - GETInventory aggregated by event/date/ticket type (capacity, sold, available)
/reports/inventory - GETCFO financial reconciliation (MP ↔ sale ↔ Siigo invoice)
/reports/reconciliation - GETCSV export of the CFO financial reconciliation
/reports/exports/reconciliation - GETExport attendees per ticket, with filters (max 5000)
/reports/exports/attendees - GETExport buyers, with filters (max 5000)
/reports/exports/buyers - GETExport subscribers (max 5000)
/reports/exports/subscribers - GETSales KPIs per workspace event
/reports/by-event - GETTime series of CONFIRMED sales per bucket (day|week|month)
/reports/timeseries - GETFinancial statement per event date: gross, costs, and net payable
/reports/financials
settlements
- GETWorkspace settlements (payouts to the organizer)
/settlements - GETGet a settlement
/settlements/{id} - GETDownload a settlement PDF
/settlements/{id}/document - GETDownload a settlement payment proof
/settlements/{id}/proofs/{fileName}
discounts
- GETList workspace discount codes
/discounts - POSTCreate a discount code
/discounts - DELETEDelete a discount code (soft delete)
/discounts/{id} - PATCHUpdate a discount code
/discounts/{id}
webhooks
- GETList workspace webhooks
/webhooks - POSTCreate a webhook (returns the signingSecret only once)
/webhooks - DELETEDelete a workspace webhook
/webhooks/{id} - PATCHEdit a webhook without rotating its signing secret
/webhooks/{id}
subscriptions
tickets
- PATCHReassign a sold ticket to another date or ticket type
/tickets/{ticketCode} - POSTCheck in a ticket at the door
/tickets/{ticketCode}/checkin - GETCheck a ticket's validity without consuming it
/tickets/{ticketCode}/access - POSTResend the confirmation email with the ticket
/tickets/{ticketCode}/resend
api-keys
- GETList my API keys
/api-keys - POSTMint an API key (returns the plaintext exactly once)
/api-keys - DELETERevoke one of my API keys
/api-keys/{id}
customer
- POSTRequest an access code to sign in (or create an account)
/customer/auth/request - POSTExchange the access code for a buyer session
/customer/auth/verify - GETAuthenticated buyer identity
/customer/me - GETBuyer's tickets
/customer/tickets - GETDetail of a buyer's ticket (deep link)
/customer/tickets/{id} - POSTCancel the buyer's own purchase (only if not yet paid)
/customer/tickets/{id}/cancel - POSTSign out the buyer session
/customer/logout - POSTExchange the headless SSO one-time token for a session token
/api/customer-auth/enterprise-exchange - GETBuyer membership status in a workspace
/customer/membership - POSTStart a membership sign-up (returns the payment URL)
/customer/subscriptions - POSTCancel the buyer's own membership
/customer/subscriptions/cancel - GETBuyer profile (name and phone)
/customer/profile - PATCHUpdate the buyer profile
/customer/profile - POSTOpen the purchase session (only one live per buyer)
/customer/purchase-sessions - GETPurchase session status
/customer/purchase-sessions/{id} - POSTRelease the seats of a purchase session
/customer/purchase-sessions/{id}/release - GETThe purchase the buyer left unfinished for this event date
/customer/orders - POSTCreate the ticket reservation (step 1 of the headless purchase)
/customer/orders - POSTOpen payment for a reservation (Bold or MercadoPago, depending on the event)
/customer/orders/{id}/payment - POSTCharge with the MercadoPago Payment Brick token
/customer/orders/{id}/payment/card - POSTOpen a PSE payment through MercadoPago (redirect)
/customer/orders/{id}/payment/pse - POSTRelease a reservation the buyer will not pay for
/customer/orders/{id}/release - GETStatus of a headless purchase (and its tickets, once paid)
/customer/orders/{id}
content
- GETList the organization's published videos
/content/videos - GETList the organization's community feed
/content/posts - POSTPublish community content (including articles)
/content/posts - GETList the organization's live streams
/content/lives - GETLive stream status
/content/lives/{id} - POSTSigned token to play a video or a live stream
/content/playback-token

