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
ColumnMeaning
verdictExactly AI or Human
gradeA — the file declares a generated origin, independently verifiable. B — acoustic analysis only
sha256Hash of the exact bytes we analysed
errorOnly for tracks we could not process. Never billed

Report a false positive

POST /v1/reports  {"batch_id":"…","filename":"…","note":"…"}

Errors

StatusMeaning
400Malformed body, or no usable track
401Missing or unknown key
404No such batch, or not yours
413More than 5,000 tracks in one request
429Monthly 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.