Distributor API

Check metadata
before delivery

One endpoint for your ingest pipeline: send release rows, get back every formatting, ISRC/UPC, featured-artist, spam-pattern and AI-disclosure issue, with the fix and the published guideline behind it. The rules are the same ones the free Metadata Checker uses.

Quickstart

One request

Send rows as JSON or a CSV file with the columns artist, featured_artists, track_title, version, release_title, genre, explicit, isrc, upc, language, ai_use, duration. Every row comes back with its findings, a suggested fix and the published guideline behind it.

curl https://metadatastyleguidelines.pages.dev/api/v1/check \
  -H "Authorization: Bearer $MSG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"rows":[{"artist":"Nova Reyes","track_title":"Golden Hour ft. Kai Lane",
              "isrc":"US-RC1-26-00002","upc":"036000291452","explicit":"false",
              "genre":"Pop","language":"en","ai_use":"None","duration":"3:05"}]}'
curl https://metadatastyleguidelines.pages.dev/api/v1/check \
  -H "Authorization: Bearer $MSG_API_KEY" \
  -H "Content-Type: text/csv" \
  --data-binary @release.csv

Response (abridged)

{
  "rows": 1,
  "counts": { "error": 1, "warning": 1, "info": 0 },
  "findings": [
    { "row": 1, "rule": "ISRC_FORMAT", "severity": "error", "status": "documented",
      "field": "isrc", "value": "US-RC1-26-00002",
      "message": "Deliver without hyphens/spaces/lowercase",
      "suggestion": "USRC12600002",
      "sources": ["https://isrc.ifpi.org/en/isrc-standard/code-syntax", "…"] },
    …
  ],
  "usage": { "month": "2026-10", "tracks_used": 1, "tracks_limit": 10000 }
}
Auth & limits

Keys, rate limits and quotas

AuthenticationAuthorization: Bearer msg_live_… (or X-API-Key). Keys are issued per account and stored only as a hash. We can't recover a lost key, but we can revoke it and issue a new one.
Rate limitPer key, per minute (60 on Starter, 300 on Growth). Over the limit you get 429 with code rate_limited and a Retry-After header.
Monthly quotaCounted in tracks (rows checked), reset on the 1st of each month (UTC). A request that would exceed the quota is rejected whole with 429 quota_exceeded and isn't counted.
Request sizeUp to 5,000 rows and 5 MB per request.
HeadersEvery successful response includes X-RateLimit-Limit, X-Quota-Limit and X-Quota-Remaining.
DataRequest bodies are processed in memory and not stored. We keep per-key monthly counts of requests and tracks.
Reference

Endpoints

post/api/v1/check

Check up to 5,000 tracks

Send rows as JSON or CSV. Each row counts as one track against your monthly quota. Unknown columns are ignored; missing columns are treated as empty.

Body: application/json or text/csv

  • 200 Findings for every row
  • 400 Invalid body (bad JSON/CSV, no rows)
  • 401 Missing, malformed or revoked API key
  • 413 Body over 5 MB or more than 5,000 rows
  • 429 Rate limit (code rate_limited, with Retry-After) or monthly quota exceeded (code quota_exceeded)

get/api/v1/usage

Current month's usage for your key

  • 200 Usage
  • 401 Missing, malformed or revoked API key
  • 429 Rate limit exceeded

Finding object

rowinteger1-based row number in your input
rulestring
severityerror | warning | info
statusstringdocumented = stated in a published guideline; heuristic = a pattern we flag for review
fieldstring
valuestring
messagestring
suggestionstring | null
sourcesstring[]

Full machine-readable spec: /openapi.json (OpenAPI 3.1.0). Import it into Postman, Insomnia or a client generator.

Pricing (USD)

Plans

Starter

$299 / month

10,000 tracks / month
60 requests / minute

  • · Full findings with fixes and sources
  • · JSON and CSV input, up to 5,000 rows per request
  • · Usage endpoint and quota headers
  • · Email support
Request access
Most popular

Growth

$999 / month

100,000 tracks / month
300 requests / minute

  • · Everything in Starter
  • · 10× the volume at a third of the per-track price
  • · Rule-change notes before they ship
  • · Priority support
Request access

Enterprise

Custom

Custom monthly volume
Custom rate limits

  • · Everything in Growth
  • · Volume pricing
  • · Custom rules for your house style
  • · Security review and invoicing
Contact us

Billed monthly, excluding applicable taxes. A track is one row checked; re-checking a corrected row counts again.

Get a key

Request API access