API conventions
These conventions apply across the Panic API. Individual endpoint pages remain the source of truth for request and response fields.
Environments and identifiers
Staging and production use separate base URLs, credentials, customers, subscriptions, callouts, and configuration. Treat identifiers returned by one environment as invalid in the other.
Use the canonical path casing shown in the API Reference. Most current
operations use /panic-api/v2; the fixed-location CSV import/export operations
retain their /v1 paths for compatibility.
Authentication
Send bearer tokens as:
Server credentials belong only in a trusted backend. Treat access tokens as opaque credentials: do not place them in logs or analytics, and do not use unverified decoded claims as proof of identity.
Content and dates
- Send JSON with
Content-Type: application/jsonunless the endpoint documents CSV or KML. - Send timestamps as ISO 8601 in UTC, for example
2026-07-24T09:30:00.000Z. - Do not assume numeric IDs are consecutive or portable between environments.
- Preserve the field casing shown in the schema. Some legacy response fields,
such as
CancelledDate, begin with an uppercase letter.
Success and error responses
Creates, updates, and deletes commonly return 200; do not require 201 or
204 for success. Error bodies are not yet uniform, so clients should inspect
message, errors, and error.
See Errors & status codes for retry and rate-limit guidance.
Retry safety
Retry transient network failures, 502, and 5xx with exponential backoff and
jitter. Honour RateLimit-Reset after 429.
Do not blindly retry a create request after an ambiguous timeout. First query the resulting customer, subscription, or active callout using the identifiers available to you. Webhook consumers must be idempotent because the same event can be delivered more than once.
Compatibility
Unknown response fields should be ignored rather than treated as errors. Treat unknown callout statuses as in progress unless the status is explicitly terminal. Avoid coupling to undocumented routes or fields: they can support AURA-hosted products without being part of the public integration contract.
