# 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](https://developer.hillsmusic.com/es/changelog/#2026-10-11-status-fields-sunset)
> **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](https://developer.hillsmusic.com/es/changelog/#2026-10-11-status-fields-sunset)
### 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
```bash
curl "https://api.hillsmusic.com/v1/releases?status=approved&limit=20" \
-H "Authorization: Bearer $HILLS_API_KEY"
```
### Respuesta `200`
```json
{
"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](https://developer.hillsmusic.com/es/changelog/#2026-10-11-status-fields-sunset)
### Parámetros
| Parámetro | Ubicación | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- | --- |
| `id` | path | integer | Sí | El id del lanzamiento. |
### Ejemplo de solicitud
```bash
curl "https://api.hillsmusic.com/v1/releases/812" \
-H "Authorization: Bearer $HILLS_API_KEY"
```
### Respuesta `200`
```json
{
"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. |
Fuente: https://developer.hillsmusic.com/es/reference/releases/