Server-side integration
All routes on this page are called from your server, with your secret key in the Authorization: Bearer wu_sk_… header. They accept no call from a browser (no CORS).
Create a session
POST /v1/sessions
| Field | Required | Description |
|---|---|---|
zone |
yes | Treated area: thoracolumbar_spine, cervical_spine, shoulder, knee, peripheral_nerve, pelvic_perineal (questionnaires by area) |
patient.sex |
yes | male or female (avatar choice) |
patient.height_cm |
yes | 50 to 250 — converts surfaces into cm² |
patient.weight_kg |
yes | 2 to 400 — selects the body shape (BMI range) |
locale |
no | “language-COUNTRY” locale among those allowed for your account (fr-FR, en-GB…). Defaults to your default locale |
modules |
yes | ["cartography"], ["questionnaires"] or both. The MCRi needs both |
reference |
no | Your record identifier (up to 64 printable characters). Opaque: printed on the PDF, never interpreted nor stored |
resume_bundle |
no | A previously received resume bundle, to reopen an assessment (resume) |
options.session_pin |
no | none, optional (default) or required: session code asked before handing the device to the patient |
options.show_results |
no | Show the result on the component's end screen. Defaults to your account setting |
No identifying data is expected or accepted: any unknown field is rejected (400).
- Lifetime: a session expires 2 hours after creation.
- Idempotency: an
Idempotency-Keyheader (up to 128 characters) replays the same response for 24 hours, with no duplicate and no quota used. - Quotas: sessions per day and submissions per minute are set for your account. Beyond them, the API answers
429with aRetry-Afterheader.
Track a session
GET /v1/sessions/{id} returns the session status (created, in_progress, completed), area, modules and dates. It returns no health data.
Retrieve the result
GET /v1/sessions/{id}/result
| Response | Case |
|---|---|
200 |
The result (details), its report_url and the resume_bundle |
409 result_not_ready |
The assessment has not been sent yet |
410 result_expired |
The result was deleted: 15 min after first retrieval, or 15 min after sending |
404 session_not_found |
Unknown or purged session, or one belonging to another account |
Tip: retrieve the result as soon as your page receives completed, then store it. Wave Up does not keep it.
PDF report
GET /v1/sessions/{id}/report.pdf returns the co-branded report, with your logo and Wave Up's. With ?locale=en-GB (an allowed locale), the report is recomputed in that language from the resume bundle.
Purge a session
DELETE /v1/sessions/{id} deletes the session and its result immediately (204).