Skip to main content
POST
/
v1
/
trademarks
/
batch
Batch Get Trademarks
curl --request POST \
  --url https://api.example.com/v1/trademarks/batch \
  --header 'Content-Type: application/json' \
  --data '
{
  "ids": [
    "<string>"
  ]
}
'
{
  "object": "list",
  "data": [
    {
      "id": "tm_8kLm2nPq",
      "mark_text": "AURORA",
      "status": {
        "primary": "active",
        "stage": "registered"
      },
      "office_code": "uspto",
      "jurisdiction_code": "US",
      "filing_date": "2023-04-12",
      "registration_date": "2024-09-18",
      "nice_classes": [9, 35, 42],
      "owners": [
        { "id": "own_Rj3kL9mN", "name": "Aurora Digital Inc.", "country_code": "US", "role": "owner" }
      ]
    },
    {
      "id": "tm_Xp4wQ7vR",
      "mark_text": "NEXTERA",
      "status": {
        "primary": "pending",
        "stage": "published"
      },
      "office_code": "euipo",
      "jurisdiction_code": "EU",
      "filing_date": "2025-11-03",
      "registration_date": null,
      "nice_classes": [25, 35],
      "owners": [
        { "id": "own_Yk8mN2pQ", "name": "NextEra Fashion Group", "country_code": "US", "role": "owner" }
      ]
    }
  ],
  "has_more": false,
  "pagination": {
    "cursor": null
  },
  "livemode": true,
  "request_id": "req_bT9kM3nP"
}

Overview

Fetch up to 100 trademarks in a single request by providing their IDs. This is significantly more efficient than making individual GET requests when you need to hydrate a list of known trademark IDs, such as after a search or when loading a portfolio view. All IDs that are found are returned in the data array. IDs that do not exist or belong to a different organization are silently omitted.

Request Body

ids
string[]
required
Array of trademark IDs to retrieve (max 100). Each must be a tm_* prefixed ID.

Response

data
object[]
Array of trademark objects matching the requested IDs.
{
  "object": "list",
  "data": [
    {
      "id": "tm_8kLm2nPq",
      "mark_text": "AURORA",
      "status": {
        "primary": "active",
        "stage": "registered"
      },
      "office_code": "uspto",
      "jurisdiction_code": "US",
      "filing_date": "2023-04-12",
      "registration_date": "2024-09-18",
      "nice_classes": [9, 35, 42],
      "owners": [
        { "id": "own_Rj3kL9mN", "name": "Aurora Digital Inc.", "country_code": "US", "role": "owner" }
      ]
    },
    {
      "id": "tm_Xp4wQ7vR",
      "mark_text": "NEXTERA",
      "status": {
        "primary": "pending",
        "stage": "published"
      },
      "office_code": "euipo",
      "jurisdiction_code": "EU",
      "filing_date": "2025-11-03",
      "registration_date": null,
      "nice_classes": [25, 35],
      "owners": [
        { "id": "own_Yk8mN2pQ", "name": "NextEra Fashion Group", "country_code": "US", "role": "owner" }
      ]
    }
  ],
  "has_more": false,
  "pagination": {
    "cursor": null
  },
  "livemode": true,
  "request_id": "req_bT9kM3nP"
}

Code Examples

curl -X POST https://api.signa.so/v1/trademarks/batch \
  -H "Authorization: Bearer sig_live_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "ids": ["tm_8kLm2nPq", "tm_Xp4wQ7vR", "tm_Zr5nK8jL"]
  }'

Errors

StatusTypeDescription
400validation_errorids array is missing, empty, or exceeds 100 items
401unauthorizedMissing or invalid API key
429rate_limitedToo many requests