Skip to main content
POST
Batch Get Trademarks

Overview

Fetch up to 100 trademarks in a single request. This is significantly more efficient than making individual GET /v1/trademarks/{id} calls when hydrating a list of known marks, e.g. after a search or when loading a portfolio view. The endpoint accepts either:
  • ids: an array of Signa public IDs (tm_*), or
  • identifiers: an array of office-native identifiers (application number + office, registration number + office, or IR number).
You must supply exactly one of ids or identifiers. Items that resolve are returned in the data array; items that do not match any trademark are returned in the not_found array, so callers can reconcile the inputs against the response.

Request Body

string[]
Array of Signa trademark IDs (tm_*), max 100. Mutually exclusive with identifiers.
object[]
Array of office-native identifiers, max 100. Mutually exclusive with ids. Each entry must include exactly one of:
  • application_number + office (uppercase ST.3 office code, e.g. US; legacy lowercase like uspto accepted as an alias)
  • registration_number + office
  • ir_number (no office; Madrid IRs are global)
string[]
Optional detail projections, applied to every trademark in the response. office_extensions includes each trademark’s office_extensions object (raw office-specific data), which is otherwise omitted. There is no fields= sparse projection on batch; each returned trademark is the full detail tier.

Response

string
Always list.
object[]
Array of trademark detail-tier objects matching the requested inputs.
(string | object)[]
Inputs that could not be resolved. When ids was supplied, this is an array of the unresolved Signa IDs. When identifiers was supplied, this is an array of the original identifier objects that did not match. Callers should diff this against the input list to know what to retry or surface.
boolean
Always false. Batch is not paginated.
object
Always { "cursor": null }.
string
Unique request identifier for support and debugging.

Code Examples

When to Use Batch vs. Individual Lookups

A batch request of 50 IDs counts as one request against your rate limit, not 50. Use batches whenever you know the IDs upfront. See Rate Limits.
Keep batch sizes at or below 100 items. Requests with more than 100 IDs are rejected with a 400 validation error.
A batch request returns HTTP 200 even if some requested items are not found. Always check the not_found array to reconcile against your input list. For chunking strategies when you have more than 100 IDs, see the Bulk operations guide.

Errors