API-DOKUMENTATION

Public REST API. Key-authentifiziert, OpenAPI-dokumentiert.

Lies deinen OGRECORDS Katalog und verwalte Smart Links und Draft-Releases programmatisch — über eine schlichte REST-API. Authentifiziere dich mit einem Scoped API-Key aus deinem Dashboard. Early Access auf Anfrage.

API-ReferenzAPI-Keys verwaltenEarly Access anfragen

Überblick: REST-API, Scoped-Keys, Rate-Limits, OpenAPI

REST lesen + schreiben

Lies Releases, Tracks, Smart Links und Stats — und erstelle oder bearbeite deine Smart Links und Draft-Releases — über schlichtes HTTPS. JSON-Antworten, limit/offset-Pagination, vorhersehbare Schemas. Distribution und Submit bleiben außerhalb der API.

Scoped API-Keys

Authentifiziere dich mit einem ogr_pk_ Key als Bearer-Token oder im X-API-Key-Header. Jeder Key trägt explizite Scopes — read:releases, read:smartlinks, read:stats, write:smartlinks, write:releases — und ist jederzeit im Dashboard rotier- und widerrufbar.

Rate-Limits + Header

Jede Antwort trägt X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset. Über dem Kontingent kommt 429 mit Retry-After. Free-Keys bekommen 1.000 Requests/Tag, Business-Keys 100.000.

Selbst-gehostetes OpenAPI 3.0

Die vollständige maschinenlesbare Spec liegt unter /api/v1/public/openapi.json und rendert als interaktive Referenz auf dieser Seite — kein Drittanbieter-Doku-Host, keine externen Calls.

ENDPOINT-ÜBERSICHT

Die Endpoints zum Launch.

Jeder Endpoint wird mit einem Scoped API-Key authentifiziert und von https://api.og-records.com ausgeliefert. Read-Endpoints plus owner-scoped Writes für Smart Links und Draft-Releases — Distribution und Submit sind nicht exponiert.

Releases

  • GET/api/v1/public/releasesListe deine Releases. Paginierung mit limit und offset.
  • GET/api/v1/public/releases/{id}Ein einzelnes Release per id.
  • POST/api/v1/public/releasesDraft-Release erstellen (write:releases). KYC + Onboarding nötig.
  • PATCH/api/v1/public/releases/{id}Draft-Metadaten aktualisieren (write:releases). Nur Pre-Submit-Drafts.
  • DELETE/api/v1/public/releases/{id}Draft-Release löschen (write:releases).

Tracks

  • GET/api/v1/public/tracks?release_id={id}Tracks eines Releases, das dir gehört.
  • GET/api/v1/public/tracks/{id}Einen einzelnen Track per id.

Smart Links

  • GET/api/v1/public/smartlinksListe deine Smart Links.
  • POST/api/v1/public/smartlinksSmart Link für ein eigenes Release erstellen (write:smartlinks).
  • PATCH/api/v1/public/smartlinks/{id}Einen deiner Smart Links aktualisieren (write:smartlinks).
  • DELETE/api/v1/public/smartlinks/{id}Einen Smart Link deaktivieren (write:smartlinks).

Stats & Spec

  • GET/api/v1/public/stats/release/{id}Streams, Listener und Saves mit Aufschlüsselung pro DSP und Land. range = 7d, 14d, 30d, 90d, 1y oder ytd.
  • GET/api/v1/public/openapi.jsonDas OpenAPI-3.0-Dokument. Public und cacheable — kein Key nötig.

Artists & Earnings

  • GET/api/v1/public/artistsListe deine Roster-Artists (read:artists).
  • GET/api/v1/public/earnings/balanceDein USD-Wallet-Saldo-Snapshot (read:earnings).
WEBHOOKS

Werde benachrichtigt, wenn ein Release seinen Status ändert.

Registriere einen HTTPS-Endpoint und wir POSTen ein signiertes JSON-Event, sobald eines deiner Releases ausgeliefert, abgelehnt oder heruntergenommen wird. Endpoints verwaltest du im Dashboard — jeder bekommt sein eigenes Signing-Secret, das einmalig angezeigt wird.

Events zum Launch

  • release.delivered — das Release wurde an die Stores ausgeliefert.
  • release.rejected — ein Store oder QC-Schritt hat das Release abgelehnt.
  • release.takedown — das Release wurde heruntergenommen.
  • release.live — das Release ist jetzt live auf den Stores.

Jede Zustellung trägt diese Header

  • X-Webhook-Signature — lowercase-hex HMAC-SHA256 des rohen Request-Bodys, mit deinem Signing-Secret als Schlüssel.
  • X-Webhook-Timestamp — ISO-8601-Sendezeit, gleich dem created_at im Body.
  • X-Webhook-Event — der Event-Name, z.B. release.delivered.
  • X-Webhook-Id — eine eindeutige ID für diese Zustellung.

Der Payload ist ein JSON-Body mit id, event, created_at und einem data-Objekt, das release_id enthält. Zum Verifizieren berechnest du HMAC-SHA256 über den exakten rohen Body mit deinem Signing-Secret neu und vergleichst ihn timing-sicher mit X-Webhook-Signature — dann prüfst du, dass X-Webhook-Timestamp innerhalb von etwa fünf Minuten liegt, um Replays abzuweisen.

Fehlgeschlagene Zustellungen werden mit exponentiellem Backoff wiederholt. Nach 15 Fehlern in Folge deaktiviert sich der Endpoint automatisch und du registrierst ihn neu, um fortzufahren.

Webhooks verwalten in deinem Dashboard.

AUTHENTIFIZIERUNG

API-Keys mit Scopes.

Erstell einen Key in deinem Dashboard und schick ihn als Authorization: Bearer ogr_pk_… Header oder im X-API-Key-Header. Jeder Key ist gescopet — read:releases, read:smartlinks, read:stats, write:smartlinks, write:releases — sodass eine Integration nur das bekommt, was sie braucht. Keys sind jederzeit rotier- und widerrufbar. Schreibzugriff ist owner-scoped und löst nie Distribution aus; OAuth gehört nicht zu diesem Launch.

RATE-LIMITS

Was dein Key darf.

Free
1.000 Req / Tag

Standard für jeden neuen Key. Passt für Dashboards, Cron-Syncs und Prototyping.

Business
100.000 Req / Tag

Höheres Tageskontingent für Produktions-Integrationen. Auf Anfrage.

Jede Antwort enthält X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset. Ist das Tageskontingent erschöpft, kommt 429 mit Retry-After-Header — die Sekunden bis zum Reset des Fensters.

EARLY ACCESS

Bau auf deinem Katalog.

Die Public API ist im Early Access. Schreib uns, was du bauen willst, und wir aktivieren API-Keys für deinen Account.

Early Access anfragenReferenz lesen