On this page
Base URL https://dueta.ai. JSON in and out unless a row says otherwise. Every authenticated route takes Authorization: Bearer with an API key or a session token, except the rows marked session-only. The page column links to the task that uses the route.
Auth
| Route | What it does | Auth | Page |
|---|---|---|---|
| POST/v1/auth/signup | Create an account. Answers a session token; 5 / minute per IP. | none | Authenticate |
| POST/v1/auth/login | Trade email + password for a session token; 10 / minute per IP. | none | Authenticate |
| POST/v1/auth/logout | Clear the session cookie. 204, unauthenticated on purpose. | none | Authenticate |
| GET/v1/auth/me | The signed-in account: email, verified_at, has_password, google_linked. | session | Authenticate |
| GET/v1/auth/verify?token= | The emailed verification link. Redirects to the console with ?status=ok or invalid. | none | Authenticate |
| POST/v1/auth/verify/resend | Send the verification email again. 202. | none | Authenticate |
| POST/v1/auth/password/forgot | Email a reset link. 202 whether or not the address exists. | none | Authenticate |
| POST/v1/auth/password/reset | Set a new password from a reset token. 204, or 400 for a used or expired link. | none | Authenticate |
| POST/v1/auth/password/change | Change the password with the current one. 204. | session | Authenticate |
| POST/v1/auth/password/set | Give a Google-only account a password. 204. | session | Authenticate |
| GET/v1/auth/google/start | Begin Google sign-in. Google sign-in isn't available yet: 501 until configured. | none | Authenticate |
| POST/v1/auth/google/unlink | Detach Google. 409 unless the account also has a password. | session | Authenticate |
API keys
| Route | What it does | Auth | Page |
|---|---|---|---|
| POST/v1/keys | Create a key. The only response carrying the full secret. | session | Authenticate |
| GET/v1/keys | List key metadata: prefixes, never secrets. | session | Authenticate |
| POST/v1/keys/{id}/rotate | Replace the secret in place. The old one dies at once. | session | Authenticate |
| DELETE/v1/keys/{id} | Revoke. 204, idempotent. | session | Authenticate |
Uploads
| Route | What it does | Auth | Page |
|---|---|---|---|
| POST/v1/uploads | Declare a recording. 201 with an id, content_url and events_url. | key or session | Upload audio |
| PUT/v1/uploads/{id}/content | Send the bytes, raw. One request, or several with Content-Range. | key or session | Upload audio |
| GET/v1/uploads/{id} | State, bytes_received, duration, sample rate, checksum. | key or session | Upload audio |
| GET/v1/uploads/{id}/events | The same upload as server-sent events. | key or session | Upload audio |
| GET/v1/uploads | List uploads, newest first. limit, offset, state=. | key or session | Upload audio |
| DELETE/v1/uploads/{id} | Delete an upload and its bytes. 204, or 409 while a job uses it. | key or session | Upload audio |
Jobs
| Route | What it does | Auth | Page |
|---|---|---|---|
| POST/v1/jobs/quote | Price a set of uploads. Reserves nothing. | key or session | Run a separation |
| POST/v1/jobs/separation | Duplex: one mixed recording in, one track per speaker out. | key or session | Run a separation |
| POST/v1/jobs/dominant-separation | Dominant: 2-10 close-mic recordings in, one clean track each plus the room. | key or session | Run a separation |
| GET/v1/jobs/{id} | Status, stage, progress, steps, queue_position, worker_alive, result. | key or session | Track a job |
| GET/v1/jobs/{id}/events | The same job as server-sent events. | key or session | Track a job |
| POST/v1/jobs/{id}/cancel | Cancel a queued or running job. 409 once terminal. | key or session | Track a job |
| GET/v1/jobs | List jobs, newest first. limit, offset. | key or session | Track a job |
Results
| Route | What it does | Auth | Page |
|---|---|---|---|
| GET/v1/jobs/{id}/stems/{name} | One output track. WAV by default, ?format=flac for FLAC. | key or session | Get results |
| GET/v1/jobs/{id}/archive | Every stem in one streamed ZIP. | key or session | Get results |
| GET/v1/jobs/{id}/inputs/{name} | The original recording, in the container it arrived in. | key or session | Get results |
Billing & credit
| Route | What it does | Auth | Page |
|---|---|---|---|
| GET/v1/credits | Balance and the last 50 ledger rows. | key or session | Billing & credit |
| GET/v1/usage | Billed seconds and dollars per UTC day. from=, to=. | key or session | Billing & credit |
| GET/v1/billing/topup | Top-up bounds, presets, rate and charge currency. Public. | none | Billing & credit |
| POST/v1/billing/checkout | Start a top-up order for a whole-dollar amount. | key or session | Billing & credit |
| GET/v1/billing/orders | Top-up orders, newest first. | key or session | Billing & credit |
| GET/v1/billing/orders/{id} | One order and its status. | key or session | Billing & credit |
| GET/v1/billing/auto-recharge | Auto-recharge settings and whether they can fire. | key or session | Billing & credit |
| PUT/v1/billing/auto-recharge | Save enabled, threshold_usd, amount_usd. | key or session | Billing & credit |