Endpoint reference
All REST endpoints of API v1
Complete reference for every endpoint in the v1 API. Base URL: https://cbcthub.com/api/v1
GET
/api/v1/meReturns your account info (plan, storage, exam count). Useful to verify the key works.
json
{
"user_id": "...",
"email": "soporte@miclinica.com",
"plan": "pro",
"scopes": ["exams:read", "exams:write"],
"storage": { "used_bytes": 41200000000, "limit_bytes": 375809638400, "used_percent": 11 },
"exams": { "count": 110, "limit": 999999 }
}POST
/api/v1/examsCreates an exam and returns presigned URLs for direct upload to R2.
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | ✓ | Internal exam name (max 200 chars). |
| exam_type | string | — | cbct (default), radiografia, mesh, atm. Radiografia requires Pro. |
| patient_name | string | — | Patient name. Shown in viewer. |
| patient_id | string | — | SSN, ID number, medical record number. |
| birth_date | string ISO | — | YYYY-MM-DD. |
| reason | string | — | Reason / clinical findings requested. |
| expiration_days | number | — | Days until expiry. null = never. |
| files | array | ✓ | [{ name, size }]. Min 1, max 5000. |
GET
/api/v1/exams?limit=20&offset=0List your account exams, paginated. Default limit=20, max 100.
GET
/api/v1/exams/{id}Single exam details. Includes share_url, viewer_url, share_password and public_page_pin.
POST
/api/v1/exams/{id}/confirmMarks exam as ready after files are uploaded. Idempotent.
DELETE
/api/v1/exams/{id}Deletes the exam. R2 files are cleaned up in background. Non-reversible.