Zum Inhalt springen
HILLS API v1 Early Access

API-Referenz

Releases

Ihr Katalog: Releases mit Status, Tracks und Auslieferung Store für Store.

Ihr Katalog: Releases mit Status, Tracks und Auslieferung Store für Store.

Basis-URL https://api.hillsmusic.com/v1. Jede Anfrage sendet einen API-Schlüssel: Authorization: Bearer hm_live_….

  • Releases auflisten
  • Release abrufen

Releases auflisten

GET /v1/releases · Scope: catalog:read

Die Releases Ihrer Artists und Labels, die neuesten zuerst, 50 pro Seite. Geben Sie next_cursor als cursor zurück, um die nächste Seite zu erhalten; auf der letzten Seite ist er null.

Veraltet: Am 30. April 2027 werden die Statusfelder mit den alten Wörtern entfernt (status bei Releases, stores[key].state bei jedem Store, status und previous_status in simulate-Antworten). Verwenden Sie stattdessen release_status und delivery_state für das Release, stores[key].status für jeden Store und in simulate-Antworten release_status, delivery_state und previous_release_status. Bis dahin tragen Antworten die Header Deprecation und Sunset. Was sich ändert

Veraltet: Am 30. April 2027 werden die alten Filterwörter pending, rejected und distributed für status= nicht mehr akzeptiert. Verwenden Sie stattdessen status=in_review, status=changes_requested und status=approved mit delivery_state live oder partially_live in der Antwort. Bis dahin tragen Antworten, bei denen die Anfrage mit einem der alten Wörter filtert, die Header Deprecation und Sunset. Was sich ändert

Parameter

Parameter Ort Typ Pflicht Beschreibung
status query draft | in_review | pending | changes_requested | rejected | approved | distributed | archived | taken_down Nein Nur dieser Release-Status: draft, in_review, changes_requested, approved, archived oder taken_down. Veraltete Aliase, akzeptiert bis 30. April 2027: pending (in_review), rejected (changes_requested), distributed (approved und in mindestens einem Store live).
cursor query string Nein next_cursor der vorherigen Seite.
updated_since query ISO-Datum und -Uhrzeit Nein Zu oder nach diesem Zeitpunkt geändert (für die Synchronisierung).
limit query integer (1–100) Nein Seitengröße (Standard 50).
member_id query integer Nein Nur die Releases dieses Artists oder Labels.
upc query string Nein Exakte UPC.
q query string Nein Suche in Titel und Artist.

Beispielanfrage

curl "https://api.hillsmusic.com/v1/releases?status=approved&limit=20" \
  -H "Authorization: Bearer $HILLS_API_KEY"

Antwort 200

{
  "data": [
    {
      "id": 812,
      "title": "Midnight Run",
      "version": null,
      "type": "single",
      "status": "distributed",
      "release_status": "approved",
      "review_stage": null,
      "delivery_state": "partially_live",
      "update_state": "none",
      "stores_live": 12,
      "stores_total": 30,
      "live_at": "2026-10-05T10:12:00Z",
      "artists": "Luna",
      "featured_artists": null,
      "label": "Nova Records",
      "genre": "Pop",
      "upc": "0123456789012",
      "release_date": "2026-11-01",
      "cover_url": "/api/catalog/files/cover/…",
      "member_id": 41,
      "track_count": 1,
      "submitted_at": "2026-10-02T08:00:00Z",
      "created_at": "2026-09-30T08:00:00Z",
      "updated_at": "2026-10-03T08:00:00Z"
    }
  ],
  "next_cursor": "aWQ6ODEy"
}

Fehler

Status Wann
400 invalid: Ein Parameter ist fehlerhaft; field nennt ihn.
401 unauthenticated, invalid_key, key_revoked, key_expired oder test_keys_retired.
403 insufficient_scope: Dem Schlüssel fehlt der Scope; scope nennt ihn. account_inactive oder api_not_in_plan.
429 rate_limited: Retry-After Sekunden warten.

Release abrufen

GET /v1/releases/{id} · Scope: catalog:read

Ein Release mit seinen Tracks und pro Store Status (siehe Statuswerte), Phase und Link. status und stores[key].state behalten die alten Wörter bis 30. April 2027 und werden dann entfernt; lesen Sie stattdessen release_status, delivery_state und stores[key].status.

Veraltet: Am 30. April 2027 werden die Statusfelder mit den alten Wörtern entfernt (status bei Releases, stores[key].state bei jedem Store, status und previous_status in simulate-Antworten). Verwenden Sie stattdessen release_status und delivery_state für das Release, stores[key].status für jeden Store und in simulate-Antworten release_status, delivery_state und previous_release_status. Bis dahin tragen Antworten die Header Deprecation und Sunset. Was sich ändert

Parameter

Parameter Ort Typ Pflicht Beschreibung
id path integer Ja Die ID des Releases.

Beispielanfrage

curl "https://api.hillsmusic.com/v1/releases/812" \
  -H "Authorization: Bearer $HILLS_API_KEY"

Antwort 200

{
  "data": {
    "id": 812,
    "title": "Midnight Run",
    "type": "single",
    "status": "distributed",
    "release_status": "approved",
    "delivery_state": "partially_live",
    "update_state": "none",
    "stores_live": 1,
    "stores_total": 2,
    "live_at": "2026-10-05T10:12:00Z",
    "upc": "0123456789012",
    "release_date": "2026-11-01",
    "member_id": 41,
    "tracks": [
      {
        "id": 2001,
        "disc_number": 1,
        "position": 1,
        "title": "Midnight Run",
        "isrc": "USRC17607839",
        "explicit": "not_explicit",
        "duration_ms": 201000
      }
    ],
    "stores": {
      "spotify": {
        "status": "live",
        "op": "insert",
        "phase": "done",
        "url": "https://open.spotify.com/album/…",
        "state": "live"
      },
      "apple_music": {
        "status": "delivered",
        "op": "insert",
        "phase": "done",
        "url": null,
        "state": "sent"
      }
    }
  }
}

Fehler

Status Wann
401 unauthenticated, invalid_key, key_revoked, key_expired oder test_keys_retired.
403 insufficient_scope: Dem Schlüssel fehlt der Scope; scope nennt ihn. account_inactive oder api_not_in_plan.
404 not_found: Existiert nicht oder gehört nicht Ihnen.
429 rate_limited: Retry-After Sekunden warten.

Bereit für die Integration?

Beantragen Sie API-Zugang – wir melden uns innerhalb von 1–3 Werktagen bei Ihnen.