Aller au contenu
API HILLS v1 Accès anticipé

Référence API

Sorties

Votre catalogue : les sorties avec leur statut, leurs titres et leur livraison plateforme par plateforme.

Votre catalogue : les sorties avec leur statut, leurs titres et leur livraison plateforme par plateforme.

URL de base https://api.hillsmusic.com/v1. Chaque requête envoie une clé d’API : Authorization: Bearer hm_live_….

  • Lister les sorties
  • Obtenir une sortie

Lister les sorties

GET /v1/releases · Scope : catalog:read

Les sorties de vos artistes et labels, de la plus récente à la plus ancienne, 50 par page. Renvoyez next_cursor dans cursor pour obtenir la page suivante ; il vaut null sur la dernière page.

Obsolète : les champs de statut à l’ancienne terminologie (status sur les sorties, stores[key].state sur chaque plateforme, status et previous_status dans les réponses de simulation) seront supprimés le 30 avril 2027. Utilisez plutôt release_status et delivery_state pour la sortie, stores[key].status pour chaque plateforme et, dans les réponses de simulation, release_status, delivery_state et previous_release_status. D’ici là, les réponses portent les en-têtes Deprecation et Sunset. Ce qui change

Obsolète : les anciennes valeurs du filtre status= (pending, rejected et distributed) ne seront plus acceptées le 30 avril 2027. Utilisez plutôt status=in_review, status=changes_requested, et status=approved avec delivery_state live ou partially_live dans la réponse. D’ici là, les réponses (lorsque la requête filtre sur l’une des anciennes valeurs) portent les en-têtes Deprecation et Sunset. Ce qui change

Paramètres

Paramètre Emplacement Type Obligatoire Description
status query draft | in_review | pending | changes_requested | rejected | approved | distributed | archived | taken_down Non Uniquement ce statut de sortie : draft, in_review, changes_requested, approved, archived ou taken_down. Alias obsolètes, acceptés jusqu’au 30 avril 2027 : pending (in_review), rejected (changes_requested), distributed (approved et en ligne sur au moins une plateforme).
cursor query string Non Le next_cursor de la page précédente.
updated_since query date-heure ISO Non Modifiées à cette date et heure ou après (pour la synchronisation).
limit query integer (1–100) Non Taille de page (50 par défaut).
member_id query integer Non Uniquement les sorties de cet artiste ou de ce label.
upc query string Non UPC exact.
q query string Non Recherche dans l’intitulé et l’artiste.

Exemple de requête

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

Réponse 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"
}

Erreurs

Statut Quand
400 invalid : un paramètre est incorrect ; field l’indique.
401 unauthenticated, invalid_key, key_revoked, key_expired ou test_keys_retired.
403 insufficient_scope : la clé n’a pas le scope requis ; scope l’indique. account_inactive ou api_not_in_plan.
429 rate_limited : attendez le nombre de secondes indiqué par Retry-After.

Obtenir une sortie

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

Une sortie avec ses titres et, pour chaque plateforme, son statut (voir Statuts), sa phase et son lien. status et stores[key].state gardent l’ancienne terminologie jusqu’au 30 avril 2027, date de leur suppression ; lisez plutôt release_status, delivery_state et stores[key].status.

Obsolète : les champs de statut à l’ancienne terminologie (status sur les sorties, stores[key].state sur chaque plateforme, status et previous_status dans les réponses de simulation) seront supprimés le 30 avril 2027. Utilisez plutôt release_status et delivery_state pour la sortie, stores[key].status pour chaque plateforme et, dans les réponses de simulation, release_status, delivery_state et previous_release_status. D’ici là, les réponses portent les en-têtes Deprecation et Sunset. Ce qui change

Paramètres

Paramètre Emplacement Type Obligatoire Description
id path integer Oui L’identifiant de la sortie.

Exemple de requête

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

Réponse 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"
      }
    }
  }
}

Erreurs

Statut Quand
401 unauthenticated, invalid_key, key_revoked, key_expired ou test_keys_retired.
403 insufficient_scope : la clé n’a pas le scope requis ; scope l’indique. account_inactive ou api_not_in_plan.
404 not_found : la ressource n’existe pas ou ne vous appartient pas.
429 rate_limited : attendez le nombre de secondes indiqué par Retry-After.

Prêt à vous intégrer ?

Demandez l’accès à l’API : nous vous répondons sous 1–3 business days.