API
Five endpoints. No SDK.
Submit a batch, poll it, download a CSV. curl is enough.
Authentication
Every request carries X-API-Key. Keys are per organisation and carry your
plan's monthly allowance.
Submit a batch
curl -X POST https://oneeda.net/v1/batches \
-H "X-API-Key: $KEY" -H "Content-Type: application/json" \
-d '{"label":"2026 sync library","tracks":[
{"filename":"0001.wav","url":"https://your-bucket/0001.wav"}
]}'
URLs may be presigned; we read each file once. Up to 5,000 tracks per request.
The response is 202.
List and progress
GET /v1/batches # every batch of yours
GET /v1/batches/{id} # progress and verdict counts
GET /v1/batches/{id}/tracks?filter=ai
GET /v1/usage # this month
Results
GET /v1/batches/{id}/results.csv
filename,sha256,verdict,grade,duration_sec,error
| Column | Meaning |
verdict | Exactly AI or Human |
grade | A — the file declares a generated origin, independently
verifiable. B — acoustic analysis only |
sha256 | Hash of the exact bytes we analysed |
error | Only for tracks we could not process. Never billed |
Excel audit sheet
GET /v1/batches/{id}/results.xlsx
Same ownership rule as the CSV. Sheets: Summary, AI flagged,
Not flagged, Failed, All tracks. A 501 means the
server could not build the workbook — use the CSV.
Shareable report
Each free scan on the check page returns report_url
(GET /r/{id}) and a badge at GET /r/{id}/badge.svg. A report shows the
verdict, evidence grade, declared generator, length, time and SHA-256 — not the file name,
not the audio. Anyone with the link can open it; it is not indexed. It records one automated
check and does not certify who made a track.
Report a false positive
POST /v1/reports {"batch_id":"…","filename":"…","note":"…"}
Errors
| Status | Meaning |
| 400 | Malformed body, or no usable track |
| 401 | Missing or unknown key |
| 404 | No such batch, or not yours |
| 413 | More than 5,000 tracks in one request |
| 429 | Monthly allowance exhausted |
Accuracy and the conditions it was measured under are on
Method and
Known limits. Read them before wiring this into an
automated takedown path.