Skip to content

Label

A label is the releasing entity for music products. Every label belongs to a company and carries usage-rights metadata that governs how its catalog may be exploited across DSPs.


Lists Labels

GET https://domain.com/api/v1/labels

Headers

Name Type Description
Authorization* String Bearer \
Content-Type* String application/vnd.api+json

Response — 200 OK

{
  "data": [
    {
      "type": "labels",
      "id": "<ID>",
      "attributes": {
        "name": "label name",
        "usage": {
          "download": true,
          "copy_scan": true,
          "on_demand_stream": true,
          "non_interactive_stream": true
        },
        "description": "label description",
        "created-at": "2023-08-11T20:44:59.000000Z",
        "updated-at": "2023-08-11T20:44:59.000000Z"
      },
      "relationships": {
        "company": {
          "links": {
            "related": "https://domain.com/api/v1/labels/<ID>/company",
            "self": "https://domain.com/api/v1/labels/<ID>/relationships/company"
          }
        },
        "products": {
          "links": {
            "related": "https://domain.com/api/v1/labels/<ID>/products",
            "self": "https://domain.com/api/v1/labels/<ID>/relationships/products"
          }
        }
      },
      "links": {
        "self": "https://domain.com/api/v1/labels/<ID>"
      }
    }
  ],
  "meta": {
    "page": {
      "currentPage": 1,
      "from": 1,
      "lastPage": 1,
      "perPage": 20,
      "to": 1,
      "total": 1
    }
  },
  "jsonapi": {
    "version": "1.0"
  },
  "links": {
    "first": "https://domain.com/api/v1/labels?page[number]=1&page[size]=20",
    "last": "https://domain.com/api/v1/labels?page[number]=1&page[size]=20"
  }
}

Filters

Filter Example
Name /labels?filter[name]=Label name
ID /labels?filter[id]=1
Label IDs /labels?filter[label-ids]=1,2,3
Products /labels?filter[products][name]=product name · /labels?filter[products][status]=draft
Has Products /labels?filter[has-products]=true
Has Company /labels?filter[has-company]=true

Get Label

GET https://domain.com/api/v1/labels/:id

Path Parameters

Name Type Description
id* Number Label ID

Headers

Name Type Description
Authorization* String Bearer \
Content-Type* String application/vnd.api+json

Response — 200 OK

{
  "data": {
    "type": "labels",
    "id": "<ID>",
    "attributes": {
      "name": "label name",
      "usage": {
        "download": true,
        "copy_scan": true,
        "on_demand_stream": true,
        "non_interactive_stream": true
      },
      "description": "label description",
      "created-at": "2023-08-11T20:44:59.000000Z",
      "updated-at": "2023-08-11T20:44:59.000000Z"
    },
    "relationships": {
      "company": {
        "links": {
          "related": "https://domain.com/api/v1/labels/1/company",
          "self": "https://domain.com/api/v1/labels/1/relationships/company"
        }
      },
      "products": {
        "links": {
          "related": "https://domain.com/api/v1/labels/1/products",
          "self": "https://domain.com/api/v1/labels/1/relationships/products"
        }
      }
    },
    "links": {
      "self": "https://domain.com/api/v1/labels/1"
    }
  },
  "jsonapi": {
    "version": "1.0"
  },
  "links": {
    "self": "https://domain.com/api/v1/labels/1"
  }
}

Create Label

POST https://domain.com/api/v1/labels

A label must be associated with a company. If usage is omitted, it defaults to all four flags set to true.

Headers

Name Type Description
Authorization* String Bearer \
Content-Type* String application/vnd.api+json

Request Body

Name Type Required Description
name String Yes Label name
company Object Yes Company resource (relationship)
description String No Label description
usage Object No { "download": true, "copy_scan": true, "on_demand_stream": true, "non_interactive_stream": true } — defaults to all four flags true if omitted

Response — 201 Created

{
  "data": {
    "type": "labels",
    "id": "<ID>",
    "attributes": {
      "name": "label name 3",
      "usage": {
        "download": true,
        "copy_scan": true,
        "on_demand_stream": true,
        "non_interactive_stream": true
      },
      "description": "label 3 description",
      "created-at": "2023-08-12T14:49:21.000000Z",
      "updated-at": "2023-08-12T14:49:21.000000Z"
    },
    "relationships": {
      "company": {
        "links": {
          "related": "https://domain.com/api/v1/labels/<ID>/company",
          "self": "https://domain.com/api/v1/labels/<ID>/relationships/company"
        }
      },
      "products": {
        "links": {
          "related": "https://domain.com/api/v1/labels/<ID>/products",
          "self": "https://domain.com/api/v1/labels/<ID>/relationships/products"
        }
      }
    },
    "links": {
      "self": "https://domain.com/api/v1/labels/<ID>"
    }
  },
  "jsonapi": {
    "version": "1.0"
  },
  "links": {
    "self": "https://domain.com/api/v1/labels/<ID>"
  }
}

Update Label

PATCH https://domain.com/api/v1/labels/:id

All fields are optional; send only the attributes you want to change.

Path Parameters

Name Type Description
id* Number Label ID

Headers

Name Type Description
Authorization* String Bearer \
Content-Type* String application/vnd.api+json

Request Body

Name Type Required Description
name String No Label name
description String No Label description
usage Object No { "download": true, "copy_scan": true, "on_demand_stream": true, "non_interactive_stream": true }
company Object No Company resource (relationship) — can be reassigned

Response — 200 OK

{
  "data": {
    "type": "labels",
    "id": "<ID>",
    "attributes": {
      "name": "label name 3",
      "usage": {
        "download": true,
        "copy_scan": true,
        "on_demand_stream": true,
        "non_interactive_stream": true
      },
      "description": "label 3 description",
      "created-at": "2023-08-12T14:49:21.000000Z",
      "updated-at": "2023-08-12T14:49:21.000000Z"
    },
    "relationships": {
      "company": {
        "links": {
          "related": "https://domain.com/api/v1/labels/<ID>/company",
          "self": "https://domain.com/api/v1/labels/<ID>/relationships/company"
        }
      },
      "products": {
        "links": {
          "related": "https://domain.com/api/v1/labels/<ID>/products",
          "self": "https://domain.com/api/v1/labels/<ID>/relationships/products"
        }
      }
    },
    "links": {
      "self": "https://domain.com/api/v1/labels/<ID>"
    }
  },
  "jsonapi": {
    "version": "1.0"
  },
  "links": {
    "self": "https://domain.com/api/v1/labels/<ID>"
  }
}

Delete Label

DELETE https://domain.com/api/v1/labels/:id

Path Parameters

Name Type Description
id* Number Label ID

Headers

Name Type Description
Authorization* String Bearer \
Content-Type* String application/vnd.api+json

Response — 204 No Content (delete OK, empty body)

Response — 404 Not Found

{
  "jsonapi": {
    "version": "1.0"
  },
  "errors": [
    {
      "status": "404",
      "title": "Not Found"
    }
  ]
}