Info
For new integrations, use the v2 API. The v2 use-case API returns a job_id immediately; the completed result is delivered via webhook or optional polling with GET /v2/jobs/{job_id}. See API Overview and POST /v2/use-case/analyze.
Legacy API (v1)
The Legacy API (v1) is a job-based, condition-specific API for wellness, cognitive, and anemia analysis. For new integrations, prefer the v2 API: use-case bundles with multipart upload and a job flow (job_id, webhooks, optional job polling) — see POST /v2/use-case/analyze.
Authentication
| Header | Description |
|---|---|
X-Account-ID | Your account identifier |
X-Secret-Key | Your secret key |
Note: v1 uses X-Secret-Key. The v2 API uses X-API-Key instead — see API Overview.
See Getting Started for credential setup.
When to use v1
- Existing v1 integrations — Continue using v1 until you migrate to v2.
- Condition-specific workflows — Wellness, cognitive, or anemia conditions with a job + webhook flow.
- Job-based flow — Submit audio, receive a
job_id, then poll job detail or configure a webhook to receive results when the job completes.
For use-case bundles, use POST /v2/use-case/analyze. For a single condition, use POST /v2/condition/analyze. Both use multipart/form-data and are async by default.
Endpoint groups
| Group | Purpose | Reference |
|---|---|---|
| Account | Webhook configuration, credits, job list and detail | Webhook, Credits, Jobs, Job Detail |
| Wellness | Wellness condition: analyze audio (upload or URL), with optional diarization | Conditions |
| Cognitive | Cognitive condition: analyze audio (upload or URL), with optional diarization | Conditions |
| Anemia | Anemia condition: analyze audio (upload or URL), with optional diarization | Conditions |
Audio and errors
- Audio format and recording guidelines: Audio Requirements.
- Error codes and retry guidance: Error Reference.
Account Endpoints
POST /api/v1/account/webhook
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Required | HTTPS URL where webhooks are sent. Must be publicly accessible. |
| secret_key | string | Required | Secret used to sign webhook payloads. Store securely and use only for signature verification on your server. |
Example
curl -X POST "https://api.amplifierhealth.com/api/v1/account/webhook" \
-H "X-Account-ID: your-account-id" \
-H "X-Secret-Key: your-secret-key" \
-H "Content-Type: application/json" \
-d '{"url":"https://your-server.com/webhooks/amplifier","secret_key":"your-webhook-secret"}'The webhook format, signature verification process, and best practices are the same across v1 and v2. See Webhooks (v2 Account) for the full implementation guide, including the signature verification code example.
Response
| Field | Type | Description |
|---|---|---|
success | boolean | Whether the webhook was configured. |
message | string | Confirmation message. |
Errors
Validation errors return 422 with a detail array. For authentication (401), rate limiting (429), and other codes, see Error Reference.
GET /api/v1/account/credits
Response
| Field | Type | Description |
|---|---|---|
credits | integer | Remaining credits for the account. |
If the account has no remaining credits, analyze endpoints return 402 Payment Required. Check this endpoint before submitting jobs.
Example
curl -X GET "https://api.amplifierhealth.com/api/v1/account/credits" \
-H "X-Account-ID: your-account-id" \
-H "X-Secret-Key: your-secret-key"Errors
For 401 and other codes, see Error Reference.
GET /api/v1/account/jobs
Response
| Field | Type | Description |
|---|---|---|
jobs | array of objects | List of job objects for the current page. Each object contains job_id (string), status (string), and created_at (string, ISO 8601). Use each job_id with job detail to retrieve full results. |
page | integer | Current page number (0-based). |
total_pages | integer | Total number of pages available. |
Example
curl -X GET "https://api.amplifierhealth.com/api/v1/account/jobs" \
-H "X-Account-ID: your-account-id" \
-H "X-Secret-Key: your-secret-key"Errors
For 401 and other codes, see Error Reference.
GET /api/v1/account/jobs/[job_id]
Path Parameters
| Parameter | Type | Description |
|---|---|---|
job_id | string | Job identifier returned from an analyze endpoint. |
Response
| Field | Type | Description |
|---|---|---|
job_id | string | Unique job identifier. |
status | string | Job status (e.g. pending, done). |
created_at | string or null | ISO timestamp when the job was created. |
completed_at | string or null | ISO timestamp when the job completed. |
result | object or null | Full analysis result when the job has completed; null otherwise. |
audio_content_type | string | MIME type of submitted audio. |
audio_size_bytes | integer | Size of submitted audio in bytes. |
audio_duration_seconds | number | Duration of submitted audio in seconds. |
pipeline_type | string | Condition type (e.g. wellness). |
Poll this endpoint until status is done to retrieve the result, or configure a webhook to receive the result when the job completes.
For the expected fields in each condition's result, see Legacy API (v1) — Conditions.
Example
curl -X GET "https://api.amplifierhealth.com/api/v1/account/jobs/{job_id}" \
-H "X-Account-ID: your-account-id" \
-H "X-Secret-Key: your-secret-key"Errors
422 is returned for invalid job_id. For 401, 404, and other codes, see Error Reference.
