Ir al contenido
HILLS API v1 Acceso anticipado

Referencia de la API

Lanzamientos

Tu catálogo: lanzamientos con su estado, sus pistas y su entrega plataforma por plataforma.

Tu catálogo: lanzamientos con su estado, sus pistas y su entrega plataforma por plataforma.

URL base https://api.hillsmusic.com/v1. Cada solicitud envía una clave de API: Authorization: Bearer hm_live_….

  • Listar lanzamientos
  • Obtener un lanzamiento

Listar lanzamientos

GET /v1/releases · Ámbito: catalog:read

Los lanzamientos de tus artistas y sellos, del más reciente al más antiguo, 50 por página. Devuelve next_cursor como cursor para obtener la página siguiente; en la última página es null.

Obsoleto: los campos de estado con los términos antiguos (status en los lanzamientos, stores[key].state en cada plataforma, status y previous_status en las respuestas de simulate) se eliminan el 30 de abril de 2027. Usa en su lugar release_status y delivery_state para el lanzamiento, stores[key].status para cada plataforma y, en las respuestas de simulate, release_status, delivery_state y previous_release_status. Hasta entonces, las respuestas llevan las cabeceras Deprecation y Sunset. Qué cambia

Obsoleto: los valores antiguos del filtro status= (pending, rejected y distributed) dejan de aceptarse el 30 de abril de 2027. Usa en su lugar status=in_review, status=changes_requested y status=approved con delivery_state live o partially_live en la respuesta. Hasta entonces, las respuestas en las que la solicitud filtra por uno de los valores antiguos llevan las cabeceras Deprecation y Sunset. Qué cambia

Parámetros

Parámetro Ubicación Tipo Obligatorio Descripción
status query draft | in_review | pending | changes_requested | rejected | approved | distributed | archived | taken_down No Solo este estado del lanzamiento: draft, in_review, changes_requested, approved, archived o taken_down. Alias obsoletos, aceptados hasta el 30 de abril de 2027: pending (in_review), rejected (changes_requested), distributed (approved y publicado en al menos una plataforma).
cursor query string No next_cursor de la página anterior.
updated_since query fecha y hora ISO No Modificados en este momento o después (para sincronizar).
limit query integer (1–100) No Tamaño de página (predeterminado: 50).
member_id query integer No Solo los lanzamientos de este artista o sello.
upc query string No UPC exacto.
q query string No Busca en el título y el artista.

Ejemplo de solicitud

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

Respuesta 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"
}

Errores

Estado Cuándo
400 invalid: un parámetro es incorrecto; field indica cuál.
401 unauthenticated, invalid_key, key_revoked, key_expired o test_keys_retired.
403 insufficient_scope: a la clave le falta el ámbito; scope indica cuál. account_inactive o api_not_in_plan.
429 rate_limited: espera los segundos que indique Retry-After.

Obtener un lanzamiento

GET /v1/releases/{id} · Ámbito: catalog:read

Un lanzamiento con sus pistas y, por plataforma, su estado (consulta Estados), su fase y su enlace. status y stores[key].state conservan los términos antiguos hasta el 30 de abril de 2027, fecha en que se eliminan; lee en su lugar release_status, delivery_state y stores[key].status.

Obsoleto: los campos de estado con los términos antiguos (status en los lanzamientos, stores[key].state en cada plataforma, status y previous_status en las respuestas de simulate) se eliminan el 30 de abril de 2027. Usa en su lugar release_status y delivery_state para el lanzamiento, stores[key].status para cada plataforma y, en las respuestas de simulate, release_status, delivery_state y previous_release_status. Hasta entonces, las respuestas llevan las cabeceras Deprecation y Sunset. Qué cambia

Parámetros

Parámetro Ubicación Tipo Obligatorio Descripción
id path integer Sí El id del lanzamiento.

Ejemplo de solicitud

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

Respuesta 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"
      }
    }
  }
}

Errores

Estado Cuándo
401 unauthenticated, invalid_key, key_revoked, key_expired o test_keys_retired.
403 insufficient_scope: a la clave le falta el ámbito; scope indica cuál. account_inactive o api_not_in_plan.
404 not_found: no existe o no es tuyo.
429 rate_limited: espera los segundos que indique Retry-After.

¿Listo para integrar?

Solicita acceso a la API y te respondemos en 1 a 3 días hábiles.