POST
/batchRun up to 20 GET endpoints in a single round trip. Responses come back keyed by id, each with its own status, so one failure never sinks the batch.
Rate limit
30 req/min
Caching
The batch itself is not cached, but each sub-request uses its own endpoint cache. Per-response cache fields report HIT or MISS.
Notes
- Maximum 20 requests per batch, executed with a concurrency of 6.
- Streaming and binary endpoints cannot be batched: /cover, /artistimage, /media/*, /listen, /track/preview, /og, /share/card, /chat and /batch itself. Call those directly.
- Paths must be relative. Absolute URLs are rejected so the endpoint cannot be used as a proxy.
- The envelope is always 200 unless the request itself is malformed, so check the per-response status fields.
- Your User-Agent is carried onto each sub-request, so the batch satisfies the same requirements as a direct call.
- Duplicate ids get a numeric suffix rather than overwriting each other.
Authentication
Send a
User-Agent header containing a contact email. See authentication.Request
curl 'https://api.synkradio.co.uk/batch' \
-H 'User-Agent: [email protected]'Try it
POSTTry it
Sends a real requestNo parameters.
https://api.synkradio.co.uk/batchResponse
200 application/json
{
"count": 2,
"succeeded": 2,
"failed": 0,
"elapsedMs": 331,
"responses": {
"a": {
"status": 200,
"elapsedMs": 329,
"cache": null,
"body": {
"status": "degraded",
"version": "3.0.0",
"releasedAt": "14 Sep 2026",
"timestamp": "2026-09-14T22:44:47.171Z",
"elapsedMs": 325,
"checks": [
{
"name": "upstream-music-api",
"ok": true,
"status": 200,
"latencyMs": 97
},
{
"name": "upstream-audio-features",
"ok": true,
"status": 200,
"latencyMs": 324
},
{
"name": "cache-backend",
"ok": false,
"status": 530,
"latencyMs": 86
}
],
"degraded": true
}
},
"b": {
"status": 200,
"elapsedMs": 248,
"cache": null,
"body": [
{
"id": "USSM19303164",
"name": "Test",
"artist": "Prong",
"album": "Cleansing",
"durationMs": 400000,
"explicit": false,
"isrc": "USSM19303164",
"cover": "http://127.0.0.1:8787/cover?artist=Prong&title=Test",
"sources": [
"upstream",
"upstream"
],
"popularity": 79,
"score": 107.2
}
]
}
}
}Response schema
| Field | Type | Example | Description |
|---|---|---|---|
| count | number | 2 | |
| succeeded | number | 2 | |
| failed | number | 0 | |
| elapsedMs | number | 331 | |
| responses | object | 2 fields |