Public docs

Beatlyze API docs

Contract-first reference for upload, analysis, billing, API keys, team access, and signed webhook delivery.

Live contract

Generated from the v2 FastAPI schema. Examples omit secrets and keep session/API-key auth explicit.

OpenAPI reference

Beatlyze v2 API

Static reference generated from the FastAPI schema. Protected routes require a workspace session or scoped API key; examples omit secret values.

GET/health

Response Body

application/json

curl -X GET "https://example.com/health"
{
  "property1": "string",
  "property2": "string"
}
GET/ready

Response Body

application/json

curl -X GET "https://example.com/ready"
{}
POST/v1/account/analyses

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/account/analyses" \  -H "Content-Type: application/json" \  -d '{    "idempotency_key": "stringst",    "storage_object_id": "string"  }'
{
  "created_at": "2019-08-24T14:15:22Z",
  "id": "string",
  "idempotent_replay": false,
  "source_url": "string",
  "status": "queued",
  "updated_at": "2019-08-24T14:15:22Z"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/account/analyses/{job_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

job_id*Job Id

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/account/analyses/string"
{
  "created_at": "2019-08-24T14:15:22Z",
  "id": "string",
  "idempotent_replay": false,
  "source_url": "string",
  "status": "queued",
  "updated_at": "2019-08-24T14:15:22Z"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/account/analyses/{job_id}/events

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

job_id*Job Id

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/account/analyses/string/events"
[
  {
    "created_at": "2019-08-24T14:15:22Z",
    "event_type": "string",
    "id": "string",
    "message": "string",
    "metadata": {}
  }
]
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/account/analyses/{job_id}/result

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

job_id*Job Id

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/account/analyses/string/result"
{
  "job_id": "string",
  "report_artifact": {},
  "result": {},
  "status": "queued"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/account/profile

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/account/profile"
{
  "email": "[email protected]",
  "expires_at": "2019-08-24T14:15:22Z",
  "notification_preferences": {
    "analysis_complete": true,
    "billing_updates": true,
    "product_updates": true
  },
  "user_id": "string",
  "workspace_id": "string",
  "workspace_name": "string",
  "workspace_role": "admin"
}
PATCH/v1/account/profile

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X PATCH "https://example.com/v1/account/profile" \  -H "Content-Type: application/json" \  -d '{}'
{
  "email": "[email protected]",
  "expires_at": "2019-08-24T14:15:22Z",
  "notification_preferences": {
    "analysis_complete": true,
    "billing_updates": true,
    "product_updates": true
  },
  "user_id": "string",
  "workspace_id": "string",
  "workspace_name": "string",
  "workspace_role": "admin"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/account/team

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/account/team"
{
  "invitations": [
    {
      "accepted_at": "2019-08-24T14:15:22Z",
      "created_at": "2019-08-24T14:15:22Z",
      "email": "[email protected]",
      "expires_at": "2019-08-24T14:15:22Z",
      "id": "string",
      "revoked_at": "2019-08-24T14:15:22Z",
      "role": "admin",
      "status": "pending"
    }
  ],
  "members": [
    {
      "email": "[email protected]",
      "role": "admin",
      "status": "active",
      "user_id": "string"
    }
  ]
}
POST/v1/account/team/invitations

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/account/team/invitations" \  -H "Content-Type: application/json" \  -d '{    "email": "[email protected]"  }'
{
  "accepted_at": "2019-08-24T14:15:22Z",
  "created_at": "2019-08-24T14:15:22Z",
  "email": "[email protected]",
  "expires_at": "2019-08-24T14:15:22Z",
  "id": "string",
  "revoked_at": "2019-08-24T14:15:22Z",
  "role": "admin",
  "status": "pending"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
DELETE/v1/account/team/invitations/{invitation_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

invitation_id*Invitation Id

Response Body

application/json

application/json

curl -X DELETE "https://example.com/v1/account/team/invitations/string"
{
  "revoked": true
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
PATCH/v1/account/team/members/{user_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

user_id*User Id

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X PATCH "https://example.com/v1/account/team/members/string" \  -H "Content-Type: application/json" \  -d '{    "role": "admin"  }'
{
  "member": {
    "email": "[email protected]",
    "role": "admin",
    "status": "active",
    "user_id": "string"
  },
  "updated": true
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
DELETE/v1/account/team/members/{user_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

user_id*User Id

Response Body

application/json

application/json

curl -X DELETE "https://example.com/v1/account/team/members/string"
{
  "removed": true
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
POST/v1/account/team/members/{user_id}/transfer-ownership

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

user_id*User Id

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/account/team/members/string/transfer-ownership"
{
  "owner": {
    "email": "[email protected]",
    "role": "admin",
    "status": "active",
    "user_id": "string"
  },
  "previous_owner": {
    "email": "[email protected]",
    "role": "admin",
    "status": "active",
    "user_id": "string"
  },
  "transferred": true
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/account/workspaces

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/account/workspaces"
{
  "workspaces": [
    {
      "current": true,
      "role": "admin",
      "workspace_id": "string",
      "workspace_name": "string"
    }
  ]
}
POST/v1/account/workspaces/{workspace_id}/session

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

workspace_id*Workspace Id

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/account/workspaces/string/session"
{
  "email": "[email protected]",
  "expires_at": "2019-08-24T14:15:22Z",
  "notification_preferences": {
    "analysis_complete": true,
    "billing_updates": true,
    "product_updates": true
  },
  "user_id": "string",
  "workspace_id": "string",
  "workspace_name": "string",
  "workspace_role": "admin"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
POST/v1/analyses

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Header Parameters

Idempotency-Key?string|null

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/analyses" \  -H "Content-Type: application/json" \  -d '{}'
{
  "created_at": "2019-08-24T14:15:22Z",
  "id": "string",
  "idempotent_replay": false,
  "source_url": "string",
  "status": "queued",
  "updated_at": "2019-08-24T14:15:22Z"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/analyses/{job_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

job_id*Job Id

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/analyses/string"
{
  "created_at": "2019-08-24T14:15:22Z",
  "id": "string",
  "idempotent_replay": false,
  "source_url": "string",
  "status": "queued",
  "updated_at": "2019-08-24T14:15:22Z"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/analyses/{job_id}/events

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

job_id*Job Id

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/analyses/string/events"
[
  {
    "created_at": "2019-08-24T14:15:22Z",
    "event_type": "string",
    "id": "string",
    "message": "string",
    "metadata": {}
  }
]
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/analyses/{job_id}/result

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

job_id*Job Id

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/analyses/string/result"
{
  "job_id": "string",
  "report_artifact": {},
  "result": {},
  "status": "queued"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
POST/v1/analyses/{job_id}/webhook-deliveries

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

job_id*Job Id

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/analyses/string/webhook-deliveries"
{
  "attempt_count": 0,
  "created_at": "2019-08-24T14:15:22Z",
  "event_type": "string",
  "id": "string",
  "job_id": "string",
  "signature": "string",
  "status": "string"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/api-keys

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/api-keys"
[
  {
    "created_at": "2019-08-24T14:15:22Z",
    "id": "string",
    "name": "string",
    "prefix": "string",
    "revoked_at": "2019-08-24T14:15:22Z",
    "scopes": [
      "analyses:create"
    ]
  }
]
POST/v1/api-keys

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/api-keys" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "scopes": [      "analyses:create"    ]  }'
{
  "created_at": "2019-08-24T14:15:22Z",
  "id": "string",
  "name": "string",
  "plaintext_key": "string",
  "prefix": "string",
  "scopes": [
    "analyses:create"
  ]
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
DELETE/v1/api-keys/{api_key_id}

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Path Parameters

api_key_id*Api Key Id

Response Body

application/json

application/json

curl -X DELETE "https://example.com/v1/api-keys/string"
{
  "revoked": true
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/audit-events

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/audit-events"
[
  {
    "action": "string",
    "created_at": "2019-08-24T14:15:22Z",
    "id": "string",
    "metadata": {},
    "target_id": "string",
    "target_type": "string"
  }
]
POST/v1/auth/email/start

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/auth/email/start" \  -H "Content-Type: application/json" \  -d '{    "email": "[email protected]"  }'
{
  "challenge_id": "string",
  "dev_code": "string",
  "expires_at": "2019-08-24T14:15:22Z"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
POST/v1/auth/email/verify

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/auth/email/verify" \  -H "Content-Type: application/json" \  -d '{    "challenge_id": "string",    "code": "string"  }'
{
  "email": "[email protected]",
  "expires_at": "2019-08-24T14:15:22Z",
  "user_id": "string",
  "workspace_id": "string"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
POST/v1/auth/logout

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X POST "https://example.com/v1/auth/logout"
{
  "revoked": true
}
GET/v1/auth/session

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/auth/session"
{
  "email": "[email protected]",
  "expires_at": "2019-08-24T14:15:22Z",
  "user_id": "string",
  "workspace_id": "string",
  "workspace_role": "admin"
}
POST/v1/billing/checkout-sessions

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/billing/checkout-sessions" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "string",
  "url": "string"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
POST/v1/billing/portal-sessions

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X POST "https://example.com/v1/billing/portal-sessions"
{
  "id": "string",
  "url": "string"
}
GET/v1/billing/status

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/billing/status"
{
  "local_credit_balance": 0,
  "plan": "string",
  "status": "string",
  "workspace_id": "string"
}
POST/v1/billing/stripe/webhook

Header Parameters

Stripe-Signature?string|null

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/billing/stripe/webhook"
{
  "accepted": true,
  "event_type": "string"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
POST/v1/storage-objects

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/storage-objects" \  -H "Content-Type: application/json" \  -d '{    "content_type": "string",    "purpose": "upload"  }'
{
  "bucket": "string",
  "expires_at": "2019-08-24T14:15:22Z",
  "id": "string",
  "key": "string",
  "signed_url": "string"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/v1/usage

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/usage"
{
  "local_analysis_credits": 0,
  "local_analysis_jobs": 0,
  "provider_enrichment_jobs": 0,
  "workspace_id": "string"
}
GET/v1/webhook-deliveries

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/webhook-deliveries"
[
  {
    "attempt_count": 0,
    "created_at": "2019-08-24T14:15:22Z",
    "event_type": "string",
    "id": "string",
    "job_id": "string",
    "signature": "string",
    "status": "string"
  }
]
POST/v1/webhook-deliveries/deliver

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Query Parameters

force?Force
Defaultfalse

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/webhook-deliveries/deliver"
{
  "property1": 0,
  "property2": 0
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
POST/v1/webhook-endpoints

Authorization

HTTPBearer
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/webhook-endpoints" \  -H "Content-Type: application/json" \  -d '{    "url": "http://example.com"  }'
{
  "created_at": "2019-08-24T14:15:22Z",
  "id": "string",
  "signing_secret": "string",
  "url": "string"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}
GET/version

Response Body

application/json

curl -X GET "https://example.com/version"
{
  "property1": "string",
  "property2": "string"
}
POST/webhooks/stripe

Header Parameters

Stripe-Signature?string|null

Response Body

application/json

application/json

curl -X POST "https://example.com/webhooks/stripe"
{
  "accepted": true,
  "event_type": "string"
}
{
  "detail": [
    {
      "ctx": {},
      "input": null,
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}