SYNK
POST/batch

Run 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 request
No parameters.
https://api.synkradio.co.uk/batch

Response

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

FieldTypeExampleDescription
countnumber2
succeedednumber2
failednumber0
elapsedMsnumber331
responsesobject2 fields