Skip to main content

List Entities

Returns a paginated list of root entities for a project. Entities represent companies, labels, publishers, and other organizations referenced in contracts.

Request

GET /v1/entities

Query Parameters

ParameterTypeRequiredDefaultDescription
projectIdUUIDYesThe project to list entities for
pageintegerNo1Page number (1-indexed)
perPageintegerNo20Items per page (1–100)
includeMergedstringNofalseSet to true to include merged entities for each root entity
Royaltyport de-duplicates entities by merging variants into a single root record. Use includeMerged=true to see which entity records have been merged under each root.

Headers

HeaderRequiredDescription
AuthorizationYesBearer <token> — must be scoped to the requested project

Response

{
  "data": [
    {
      "id": "entity-1",
      "name": "Sony Music Entertainment",
      "email": "legal@sonymusic.com",
      "phone": "+1-212-833-8000",
      "address": "25 Madison Ave, New York, NY 10010",
      "shorthand": "SME",
      "division_of": "entity-5",
      "project_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "merged": [
        { "id": "entity-2", "name": "Sony Music" },
        { "id": "entity-3", "name": "SME" }
      ]
    }
  ]
}
The merged array only appears when includeMerged=true. Without it, only the base entity fields are returned.

Response Fields

FieldTypeDescription
idstringUnique entity identifier
namestringEntity name
emailstringContact email address, if available
phonestringContact phone number, if available
addressstringMailing or registered address, if available
shorthandstringAbbreviated name or alias used for the entity, if available
division_ofstringID of the parent entity if this entity is a division or subsidiary, if applicable
project_idstringThe project this entity belongs to
created_atstringISO 8601 timestamp of when the entity was created
updated_atstringISO 8601 timestamp of when the entity was last updated
mergedarrayMerged entity records (only present when includeMerged=true)
Fields such as email, phone, address, shorthand, and division_of are only included in the response when they have a value — null fields are omitted.

Errors

StatusDescription
400Missing projectId or invalid query parameters
403Token is not scoped to the requested project

Example

curl "https://api.royaltyport.com/v1/entities?projectId=a1b2c3d4-...&includeMerged=true" \
  -H "Authorization: Bearer rp_your_token_here"

Get Entity

Returns a single entity by ID.

Request

GET /v1/entities/{entity_id}

Path Parameters

ParameterTypeRequiredDescription
entity_idstringYesThe entity ID

Query Parameters

ParameterTypeRequiredDefaultDescription
projectIdUUIDYesThe project the entity belongs to
includeMergedstringNofalseSet to true to include merged entities

Headers

HeaderRequiredDescription
AuthorizationYesBearer <token> — must be scoped to the requested project

Response

{
  "data": {
    "id": "entity-1",
    "name": "Sony Music Entertainment",
    "email": "legal@sonymusic.com",
    "phone": "+1-212-833-8000",
    "address": "25 Madison Ave, New York, NY 10010",
    "shorthand": "SME",
    "division_of": "entity-5",
    "project_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "merged": [
      { "id": "entity-2", "name": "Sony Music" }
    ]
  }
}

Errors

StatusDescription
400Missing projectId
403Token is not scoped to the requested project
404Entity not found

Example

curl "https://api.royaltyport.com/v1/entities/entity-1?projectId=a1b2c3d4-...&includeMerged=true" \
  -H "Authorization: Bearer rp_your_token_here"