What you need
- A sandbox API key (
pk_sandbox_…) - An HTTP client (
curl, Postman, or your language’s HTTP library)
Step 1 — Mock fixture (free, ~1 second)
Submit a deterministic test analysis. No real audio required.Org and rep are created automatically if they don’t exist yet. You don’t need to call
POST /v1/orgs first for analyses to work.Step 2 — Poll until complete
status will progress: queued → processing → completed. Mock fixtures usually complete in under a second.
When status === "completed", the response includes the full analysis:
Step 3 — Real audio
Replace the mock URL with a publicly reachable HTTPS URL to an audio file:- HTTPS (no plain HTTP)
- No additional auth headers required (pre-signed S3 / GCS URLs are perfect)
- Codec: MP3, WAV, M4A, or FLAC
- Length: 10 seconds to 60 minutes
Step 4 — Stop polling, use webhooks
Polling works for prototyping but isn’t sustainable for production. Register a webhook once and Parlay will notify you when each analysis completes:signing_secret (shown once — store it). Verify every webhook with HMAC-SHA256. See the webhooks guide.
Common pitfalls
`recording_url` returns 404 to Parlay
`recording_url` returns 404 to Parlay
Parlay fetches the file from the URL you provide. If the URL requires auth (Authorization header, custom token), it will fail. Use a pre-signed URL instead.
Same call submitted twice creates two analyses
Same call submitted twice creates two analyses
org_id + rep_id + recording_url does NOT deduplicate. Use Idempotency-Key with the same value on retries to avoid duplicates.Status stuck on `processing` for >10 min
Status stuck on `processing` for >10 min
Likely the audio is corrupt or unreachable. Call
GET /v1/analyses/:id and check the error field. The crash recovery scanner marks stuck jobs failed automatically after 10 min.`recording_too_long` — splitting an audio file
`recording_too_long` — splitting an audio file
Parlay caps at 60 minutes. For longer calls, split before upload. There’s no built-in concatenation across analyses (yet).
What’s next
Rep intelligence
Persona, methodology, and synthesis at scale
Webhooks
Stop polling — get notified

