Base URLs
All API requests use the base URL for your environment:
All versioned endpoints are mounted under
/api/v1. For example, the full URL for listing safety reports in production is:
Versioning
The API uses URL-based versioning. The current and only version is v1. All endpoints are prefixed with/api/v1/.
Authentication
Most endpoints require authentication. The API supports two authentication methods:- JWT tokens — passed as a
Bearertoken in theAuthorizationheader or via the session cookie. - API keys — passed in the
X-API-Keyheader for service-to-service calls.
Tenant Context
PlaneConnection is a multi-tenant platform. Tenant context is provided via headers set by the application router:
All data operations are scoped to the authenticated user’s workspace. You cannot access data belonging to another workspace.
Request Format
- Content-Type:
application/jsonfor all request bodies - HTTP Methods:
GET,POST,PUT,PATCH,DELETE - Query parameters: Use snake_case (e.g.,
page_size,date_from) - Request bodies: Use camelCase (e.g.,
tailNumber,riskScore)
Response Format
All responses follow a consistent JSON envelope:- Success
- Single Resource
- Error
Pagination
List endpoints support cursor-based pagination with these query parameters:
Paginated responses include
total, page, per_page, and total_pages fields in the data envelope.
Rate Limits
Rate limits are enforced per client IP address using a sliding window algorithm:
When rate-limited, the API returns a
429 Too Many Requests response.
Health Checks
Two health endpoints are available without authentication:API Documentation
The API also serves interactive documentation:CORS
The API supports Cross-Origin Resource Sharing (CORS) for browser-based clients. Allowed methods areGET, POST, PUT, PATCH, DELETE, and OPTIONS. CORS preflight responses are cached for 24 hours.
Allowed origins include:
- Configured allowed origins for your deployment
- PlaneConnection domain patterns (
*.planeconnection.com)
Security Headers
All responses include these security headers:Request Tracing
Every response includes anx-request-id header for tracing. If you include an X-Request-Id header in your request, the API will echo it back. Otherwise, a UUID is generated automatically.
Authentication
JWT tokens, API keys, and service auth
Error Codes
Error response format and troubleshooting
Safety Endpoints
Reports, investigations, CPAs, risk assessments
Ops Endpoints
Trips, fleet, crew, dispatch