Skip to content

REST API Overview

The Circadify REST API provides programmatic access to vital signs measurement sessions, API key management, usage tracking, and account operations.

https://api.circadify.com

All endpoints are served over HTTPS. There is no version prefix in the URL path.

The API uses two authentication methods depending on the endpoint:

SDK session endpoints use your API key passed via the X-API-Key header:

Terminal window
curl -X POST https://api.circadify.com/sdk/session/start \
-H "X-API-Key: ck_test_your_key_here" \
-H "Content-Type: application/json"

API keys follow the format ck_{environment}_{hex} where environment is test or live.

Bearer Token Authentication (Developer endpoints)

Section titled “Bearer Token Authentication (Developer endpoints)”

Developer account endpoints use a Firebase ID token in the Authorization header:

Terminal window
curl https://api.circadify.com/developer/profile \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIs..."
  • All request bodies must be JSON with Content-Type: application/json
  • Responses are flat JSON objects (no envelope wrapper)
  • Timestamps are Unix timestamps (seconds) unless noted otherwise

Successful responses return the relevant data directly:

{
"session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"vitals": { ... }
}

Error responses return a structured error object:

{
"error": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded",
"retryable": true
}

The API supports cross-origin requests from any origin:

  • Allowed Origins: *
  • Allowed Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
  • Allowed Headers: Content-Type, Authorization, X-API-Key
  • Max Age: 86400 seconds (24 hours)

All endpoints respond to OPTIONS preflight requests.

Authenticated with X-API-Key header.

MethodPathDescription
POST/sdk/session/startCreate a new measurement session
POST/sdk/session/upload-completeNotify that tensor upload is complete
GET/sdk/session/result/{sessionId}Retrieve session results

Authenticated with Authorization: Bearer token.

MethodPathDescription
GET/developer/profileGet your developer profile
PATCH/developer/profileUpdate name or company
GET/developer/keysList your API keys
POST/developer/keysCreate a new API key
DELETE/developer/keys/{id}Revoke an API key
GET/developer/usageGet current month usage
GET/developer/usage/historyGet usage history (last 6 months)
POST/developer/checkoutCreate a Stripe checkout session
POST/developer/billing-portalOpen Stripe billing portal

No authentication required.

MethodPathDescription
POST/developer/signupRegister a new developer account
POST/developer/loginLog in with email and password
POST/developer/forgot-passwordRequest a password reset email
POST/developer/reset-passwordReset password with token
GET/developer/verifyVerify email address
  • Sessions — Create and manage measurement sessions
  • Results — Retrieve and interpret vital signs
  • Errors — Handle error responses
  • Rate Limits — Understand usage limits