Public API overview
Organization-scoped REST API for events, tickets, orders, discounts, and webhooks
The Cowtic Public API is a versioned REST API under /api/v1. Every key is scoped to one organization. Use it to automate event setup, checkout, ticket issue, check-in, cancellations and refunds, and webhooks.
Base URL
https://api.cowtic.com/api/v1On local development the server usually listens on your configured NEXT_PUBLIC_SERVER_URL (for example http://localhost:8080/api/v1). The web app rewrites /api/* to that server, so /api/v1/openapi.json also works from the docs host.
OpenAPI specification
Machine-readable OpenAPI 3.1 is available at:
- Runtime:
/api/v1/openapi.json - Interactive reference: Explore and send API requests
Create an API key
- Open the organizer dashboard.
- Go to Organization settings → API keys.
- Create a key with the scopes your integration needs.
- Copy the secret once — it is shown only at creation or rotation.
Guides
JavaScript and TypeScript SDK
Install the official typed client
API reference
Explore schemas and send requests from the browser
Authentication
X-Api-Key and Bearer auth
Scopes
Resource and action permissions
Pagination
Cursor-based list endpoints
Idempotency
Safe retries for create and issue
Errors
RFC 9457 problem+json responses
Rate limits
RateLimit headers and 429 handling
Checkout
Free auto-issue vs Zahls paid checkout
Headless checkout
Custom cart, Zahls redirect, and ticket issuance
Event cancellation
Cancel an event and optionally refund it
Webhooks
HMAC signatures and retries
Versioning
Compatibility and deprecation policy
Resource map
| Area | Endpoints |
|---|---|
| Events | /events, /events/{eventId}, /events/{eventId}/cancel, /events/{eventId}/refunds |
| Ticket types | /events/{eventId}/ticket-types, /ticket-types/{ticketTypeId} |
| Orders | /orders, /orders/{orderId}, /orders/{orderId}/cancel |
| Tickets | /tickets, /tickets/issue, /tickets/check-in, /tickets/{ticketId} |
| Discounts | /discounts, /discounts/validate, /discounts/{discountId} |
| Webhooks | /webhooks, /webhooks/{webhookId}, deliveries, rotate-secret |