Skip to main content

Authentication

All public Phonefarm endpoints currently use one shared bearer secret.

Request Authentication

Send:
In the current implementation, this shared secret is configured as INGEST_SECRET in the runtime environment, even for non-ingest APIs. For docs and integrations, treat it as one shared public API bearer secret. Workspace-scoped API keys are part of the target architecture, but they are not the public authentication model for the documented endpoints until those endpoints are added to these docs and openapi.json.

Authenticated Endpoints

  • POST /capability-requests/enqueue
  • POST /maintenance/requests
  • GET /processes/{process_id}
  • POST /processes/{process_id}/cancel
  • POST /ingest
  • POST /cancel
  • POST /runtime-snapshots/upsert

Example

Callback Signing

If PHONE_FARM_WEBHOOK_SECRET is configured, Phonefarm signs outbound callbacks with:
  • X-PhoneFarm-Timestamp
  • X-PhoneFarm-Signature
Signature input:
Signature algorithm:

Example Verification

Failure Behavior

  • Missing auth header returns 401.
  • Invalid bearer token returns 401.
  • Missing server-side secret configuration returns 500.