Polyflight tickets
Polyflight tickets
Required scopes: both polyflight:read and polyflight_terms:read, because ticket responses expose the frozen terms version and share BPS.
Paths
GET /api/operator/polyflight/tickets
GET /api/operator/polyflight/tickets/{ticketId}
GET /api/operator/polyflight/tickets/export
ticketId is a UUID and is always constrained by the authenticated operator. Cross-operator IDs return not found.
List and export filters are date_from, date_to, comma-separated status, search, page, and page_size (default 50, maximum 200). List results return items, total, page, and pageSize.
Ticket fields are ticketId, proofTicketId, purchaseRequestId, operator/operator-user and external-user correlation, flight ID/code, status, choice kind/index and predicted sequence, decimal-string stakeMinor, feeMinor, netStakeMinor, potentialPayoutMinor, captured termsVersionId, ticketFeeShareBps, positionShareBps, payment effect/status/amount, and creation/settlement/refund times.
proofTicketId is the anonymous public-proof ticket UUID for v5 and is null for legacy v4. Use it to correlate the operator-owned private ticket with the anonymous post-landing proof without disclosing operator or user identity publicly.
Captured terms are historical ticket terms, not the operator's current configuration. Payment state is separate from the won/lost/cancelled ticket result.
Export applies the same filters to all matching rows. It returns CSV by default; ?format=json returns canonical JSON. CSV cells use the same spreadsheet-formula protection as Admin exports. All responses are private, no-store.
Playground: /api-playground/polyflight?request=polyflight-tickets.
