Synsigra docs
Rendered API reference
Base URL: https://www.timeonion.com/syn_sig_ra. Browser calls use the secure session cookie. Scripts and CI use Authorization: Bearer <api-key>.
No PHI: API requests, project names, labels, scenario drafts, and custom-pack text must contain synthetic engineering data only.
| Method | Path | Purpose | Auth |
|---|---|---|---|
| GET | /healthz | Liveness/build | Public |
| GET | /readyz | Readiness and disk | Public |
| GET | /v1/legal | Current terms version, public notices, retention and billing status | Public |
| GET | /v1/packs | Rich curated pack catalog | Public |
| GET | /v1/packs/{pack_id} | Pack detail including scoreable/reference-only targets | Public |
| POST | /v1/auth/register | Accept current terms, create account and send verification email | Public |
| POST | /v1/auth/verify-email | Verify email and start browser session | Public |
| POST | /v1/auth/resend-verification | Request another verification email | Public |
| POST | /v1/auth/password-reset/request | Request password-reset email | Public |
| POST | /v1/auth/password-reset/complete | Set new password and start session | Public |
| POST | /v1/auth/login | Start browser session after verification | Public |
| GET | /v1/auth/me | Current account | Session |
| POST | /v1/auth/logout | End browser session | Session |
| PATCH/DELETE | /v1/account | Update profile or permanently delete the owned workspace with re-authentication | Authenticated |
| POST | /v1/account/password | Change password and invalidate prior browser sessions | Authenticated |
| GET | /v1/account/export | Download account, workspace, legal, and audit data without secrets | Authenticated |
| GET/POST | /v1/projects | List/create projects | Authenticated |
| GET/POST/DELETE | /v1/api-keys | Manage personal API keys | Authenticated |
| POST | /v1/api-keys/{api_key_id}/rotate | Atomically replace a key and return the replacement secret once | Authenticated |
| GET | /v1/audit-events | Organization-scoped JSON/CSV audit export | Owner/admin |
| GET | /v1/downloads/verifier | Verifier download metadata | Authenticated |
| GET | /v1/downloads/verifier/{filename} | Download generator-free verifier bundle or wheel | Authenticated |
| GET | /v1/authoring/schema | Core scenario-authoring schema metadata | Authenticated |
| GET | /v1/authoring/templates | Core scenario templates | Authenticated |
| POST | /v1/authoring/preview | Preview scenario package analysis | Authenticated |
| GET | /v1/authoring/curated-scenarios/{pack_id}/{case_id} | Clone curated scenario JSON into a draft | Authenticated |
| POST | /v1/lab/previews | Render a bounded, short-lived case waveform preview | Authenticated writer |
| GET/DELETE | /v1/lab/previews/{preview_id} | Read exact preview provenance or discard it | Authenticated owner |
| GET | /v1/lab/previews/{preview_id}/viewer[/window|/overlays] | Describe/read the preview through the reusable binary viewer API | Authenticated owner |
| GET/POST/PUT/DELETE | /v1/scenarios | Scenario draft lifecycle | Authenticated |
| GET/POST/DELETE | /v1/custom-packs | Compose/list/hide custom packs | Authenticated |
| GET/POST | /v1/jobs | List/create jobs; send Idempotency-Key on creation | Authenticated |
| GET/DELETE | /v1/jobs/{job_id} | Read or soft-delete job | Organization |
| POST | /v1/jobs/{job_id}/cancel | Cancel queued job | Developer+ |
| POST | /v1/jobs/{job_id}/retry | Retry failed/cancelled job | Developer+ |
| GET | /v1/jobs/{job_id}/viewer | Describe viewable signal cases and channels | Organization |
| GET | /v1/jobs/{job_id}/viewer/window | Read selected channels for one bounded binary viewport | Organization |
| GET | /v1/jobs/{job_id}/viewer/overlays | Read bounded ground-truth events and intervals for one viewport | Organization |
| GET/HEAD | /v1/jobs/{job_id}/verification-kit.zip | Stream or resume the role-selected challenge and submission-template kit | Organization |
| GET/HEAD | /v1/jobs/{job_id}/manifest.json | Read or inspect the immutable manifest without resolving a package ID | Organization |
| GET/HEAD | /v1/artifacts/{package_id}/manifest.json | Download immutable manifest with checksum metadata | Organization |
| GET/HEAD | /v1/artifacts/{package_id}/package.zip | Stream or resume package ZIP with Range and checksum metadata | Organization |
| GET | /v1/usage | Caller usage and limits | Authenticated |
| GET | /v1/metrics | Operational metrics | Owner/admin |
| POST | /mcp | Stateless Streamable HTTP MCP tools and prompts | Bearer API key |
R-peak scope: start with the eight-case r_peak_rr_simple_stress_v1, then use r_peak_rr_snr_ladder_v1 for clean, −0.2/−0.5 dB, and every integer −1…−11 dB. Both make each complete case an independent R-peak + RR verdict with no pooling. Use r_peak_rr_noise_v1 only when the algorithm also emits signal-quality intervals.
HRV scope: start with hrv_simple_cases_v1 for ten independent HRV-only case verdicts. Use hrv_robustness_v2 when the algorithm also emits R peaks and signal-quality intervals.
Minimal curl client
read -r -s SYN_SIG_RA_API_KEY
BASE=https://www.timeonion.com/syn_sig_ra
curl -fsS "$BASE/v1/packs"
curl -fsS -H "Authorization: Bearer $SYN_SIG_RA_API_KEY" "$BASE/v1/projects"
curl -fsS -H "Authorization: Bearer $SYN_SIG_RA_API_KEY" -H "Content-Type: application/json" \
-d '{"project_id":"org_live_default","pack_id":"r_peak_rr_simple_stress_v1"}' "$BASE/v1/jobs"
Minimal Python client
import json, os, urllib.request
base = "https://www.timeonion.com/syn_sig_ra"
key = os.environ["SYN_SIG_RA_API_KEY"]
req = urllib.request.Request(base + "/v1/jobs", data=json.dumps({
"project_id": "org_live_default",
"pack_id": "r_peak_rr_simple_stress_v1",
}).encode(), headers={
"Authorization": "Bearer " + key,
"Content-Type": "application/json",
})
print(urllib.request.urlopen(req).read().decode())
Raw machine-readable contract: live OpenAPI YAML. AI assistants can use the separate Synsigra MCP server.