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, 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
Webhooks
HMAC signatures and retries
Versioning
Compatibility and deprecation policy
Resource map
| Area | Endpoints |
|---|---|
| Events | /events, /events/{eventId} |
| 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 |