API integration overview
Understand the supported HTTP contract, its trust boundaries, and the shortest path to a working integration.
Last updated: 9/13/2026
The API reference publishes the same OpenAPI 3.1 document used to generate the repository's typed client. It covers the consumer and administrator application APIs; it is not an unauthenticated public payment API.
Start here
- Choose the consumer or administrator realm. A token issued for one realm is rejected by the other.
- Obtain a short-lived Privy access token through the corresponding application.
- Bootstrap the session with
PUT /v1/consumer/sessionorPUT /v1/admin/session. - For consumer requests, discover active memberships with
GET /v1/consumer/organizationsand use the returned organization ID in organization-scoped paths. - Add
Idempotency-Keyand exact-version fields whenever the selected endpoint declares them.
The hosted API base URL is https://api-production-2c86.up.railway.app. Local development uses http://localhost:4000.
Bash
curl --fail-with-body \
https://api-production-2c86.up.railway.app/health/live
Protected request shape:
Bash
curl --fail-with-body \
-H "Authorization: Bearer $AETHER_ACCESS_TOKEN" \
https://api-production-2c86.up.railway.app/v1/consumer/organizations
Never place access tokens in source control, documentation, screenshots, URLs, or support messages.
Contract and client
- Browse every operation in the API reference.
- Download the machine-readable OpenAPI document.
- The repository's
@workspace/api-clientpackage generates TypeScript types from this exact document. - Route authentication, organization access, roles, validation, and payment policy are enforced by the API even when a caller bypasses the product UI.