> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinakelai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search trademarks

> Search every available register with structured filters; returns a page of trademark summaries.

Search every available register with structured filters. Returns a page of [summaries](https://docs.pinakelai.com/concepts/trademark-record.md#the-summary), newest filing first.

* Different parameters are combined with AND. Several values of one parameter, repeated or comma-separated, are combined with OR.
* At least one filter is required; `jurisdiction` counts. Without `jurisdiction`, every available register is searched.
* `owner_*`, `representative_*`, `previous_owner_*` and the party phrase filters need `jurisdiction` with at most 5 codes.
* Phrase filters take one value of 1 to 200 characters. `goods_services_phrase` is not available in v1.
* `include=full` returns full `trademark` objects instead of summaries, with `limit` of at most 25.
* To get the next page, send the same filters and `sort` with `cursor` set to `next_cursor`.

[Searching](https://docs.pinakelai.com/guides/searching.md) explains every filter, anchored and broad searches, sorting and totals.

```bash cURL theme={null}
curl -G "https://api.pinakelai.com/v1/trademarks" \
  -H "Authorization: Bearer $PINAKEL_API_KEY" \
  --data-urlencode "jurisdiction=AD" \
  --data-urlencode "number=48000,48003" \
  --data-urlencode "include_total=true"
```

```python Python theme={null}
import os

import requests

resp = requests.get(
    "https://api.pinakelai.com/v1/trademarks",
    headers={"Authorization": f"Bearer {os.environ['PINAKEL_API_KEY']}"},
    params={"jurisdiction": "AD", "number": "48000,48003", "include_total": "true"},
    timeout=30,
)
resp.raise_for_status()
page = resp.json()
```

```javascript JavaScript theme={null}
const params = new URLSearchParams({
  jurisdiction: "AD",
  number: "48000,48003",
  include_total: "true",
});
const res = await fetch(`https://api.pinakelai.com/v1/trademarks?${params}`, {
  headers: { Authorization: `Bearer ${process.env.PINAKEL_API_KEY}` },
});
const page = await res.json();
```

```json 200 theme={null}
{
  "object": "list",
  "data": [
    {
      "object": "trademark_summary",
      "id": "tm_AD_097c8a54-c1a8-5a8e-8b77-fb1b9e51ccba",
      "jurisdiction": "AD",
      "office": "AD",
      "origin_office": null,
      "identifiers": {
        "application_number": "48003",
        "registration_number": "48003"
      },
      "mark": {
        "text": "SkingénIA by GALENIC",
        "translation": null,
        "transliteration": null,
        "feature": "word",
        "kind": "individual"
      },
      "status": {
        "value": "registered",
        "category": "live",
        "date": "2020-06-23"
      },
      "dates": {
        "application": "2020-06-23",
        "registration": "2020-06-23",
        "publication": "2025-07-30",
        "expiry": "2030-06-23",
        "renewal": null,
        "termination": null,
        "opposition_period_end": null
      },
      "primary_owner": {
        "name": "GALENIC COSMETICS LABORATORY",
        "country": null
      },
      "owner_count": 1,
      "nice_class_count": 1,
      "primary_nice_class": 9,
      "media": {
        "has_image": false
      },
      "updated_at": "2026-11-10T09:02:13.498211Z",
      "links": {
        "self": "https://api.pinakelai.com/v1/trademarks/tm_AD_097c8a54-c1a8-5a8e-8b77-fb1b9e51ccba"
      }
    },
    {
      "object": "trademark_summary",
      "id": "tm_AD_2376e41e-3d24-57e3-af6f-6a176f9985ba",
      "jurisdiction": "AD",
      "office": "AD",
      "origin_office": null,
      "identifiers": {
        "application_number": "48000",
        "registration_number": "48000"
      },
      "mark": {
        "text": "NOKY",
        "translation": null,
        "transliteration": null,
        "feature": "word",
        "kind": "individual"
      },
      "status": {
        "value": "registered",
        "category": "live",
        "date": "2009-06-05"
      },
      "dates": {
        "application": "2009-06-05",
        "registration": "2009-06-05",
        "publication": "2025-07-28",
        "expiry": "2029-06-05",
        "renewal": null,
        "termination": null,
        "opposition_period_end": null
      },
      "primary_owner": {
        "name": "ESSITY PLD FRANCE SAS",
        "country": null
      },
      "owner_count": 1,
      "nice_class_count": 3,
      "primary_nice_class": 8,
      "media": {
        "has_image": false
      },
      "updated_at": "2026-11-10T09:02:13.512000Z",
      "links": {
        "self": "https://api.pinakelai.com/v1/trademarks/tm_AD_2376e41e-3d24-57e3-af6f-6a176f9985ba"
      }
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "unavailable_jurisdictions": [],
  "total": {
    "value": 2,
    "relation": "eq"
  }
}
```

```json 400 theme={null}
{
  "type": "https://docs.pinakelai.com/errors/invalid-request",
  "title": "Invalid request",
  "status": 400,
  "detail": "The request has invalid parameters; see errors.",
  "request_id": "req_01M7Q41A2B3C4D5E6F7G8H9J0K",
  "errors": [
    {
      "code": "invalid-parameter",
      "detail": "owner_key needs jurisdiction with at most 5 codes.",
      "parameter": "owner_key"
    }
  ]
}
```

```json 422 theme={null}
{
  "type": "https://docs.pinakelai.com/errors/query-too-broad",
  "title": "Query too broad",
  "status": 422,
  "detail": "mark_text_phrase matches more than 100,000 records. Narrow the search.",
  "request_id": "req_01M7Q41B3C4D5E6F7G8H9J0K1M"
}
```


## OpenAPI

````yaml GET /v1/trademarks
openapi: 3.1.0
info:
  title: Pinakel Trademark Data API
  summary: 'Trademark records from 119 registers: search, retrieve, sync and coverage.'
  description: >
    Structured trademark records from national, regional and international
    registers, normalized into one object.


    - **Authentication:** every endpoint except `GET /v1/health` needs
    `Authorization: Bearer <key>` (`pk_live_...` or `pk_test_...`). Keys are
    never accepted in the URL.

    - **Errors** are RFC 9457 problem details (`application/problem+json`) whose
    `type` links to the error's documentation; every response carries
    `X-Request-Id`.

    - **Limits:** the `RateLimit` and `RateLimit-Policy` headers report the
    key's per-minute and monthly allowance; `429` responses say which one ran
    out and when to retry.

    - **Pagination** is by opaque cursor: send `next_cursor` back with the same
    filters.

    - **Stability:** v1 only gains additive changes. Enumerations in responses
    are open (`x-extensible-enum`): treat unknown values as `other`.


    Guides, concepts and coverage: https://docs.pinakelai.com
  termsOfService: https://www.pinakelai.com/terms-of-use
  contact:
    name: Pinakel API support
    url: https://docs.pinakelai.com/
  license:
    name: 'Proprietary: use under the Pinakel terms of use'
    url: https://www.pinakelai.com/terms-of-use
  version: 1.0.0
servers:
  - url: https://api.pinakelai.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Trademarks
    description: Search, retrieve and batch-retrieve records.
  - name: Changes
    description: Follow every record that changed, by cursor.
  - name: Jurisdictions
    description: Registers covered, their state and freshness.
  - name: Account
    description: Your usage, and the public health check.
paths:
  /v1/trademarks:
    get:
      tags:
        - Trademarks
      summary: Search trademarks
      operationId: searchTrademarks
      parameters:
        - name: jurisdiction
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Registers to search, as listed by GET /v1/jurisdictions (e.g. CH,
            US, EM, WO). Repeat the parameter or separate values with commas
            (OR), up to 20. Default: every available register.
        - name: application_number
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Exact application number in the office's format, e.g. VA 2026 00923.
            Matched as sent, upper-cased, and upper-cased without spaces, so
            letter case and extra spaces do not matter; keep the office's own
            spacing and punctuation. Repeat the parameter for several values
            (OR), up to 100.
        - name: registration_number
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Exact registration number in the office's format. Matched as sent,
            upper-cased, and upper-cased without spaces, so letter case and
            extra spaces do not matter; keep the office's own spacing and
            punctuation. Repeat the parameter for several values (OR), up to
            100.
        - name: number
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Matches either the application or the registration number. Matched
            as sent, upper-cased, and upper-cased without spaces, so letter case
            and extra spaces do not matter; keep the office's own spacing and
            punctuation. Repeat the parameter for several values (OR), up to
            100.
        - name: international_registration_number
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Madrid international registration number, in national registers and
            WIPO's. Matched as sent, upper-cased, and upper-cased without
            spaces, so letter case and extra spaces do not matter; keep the
            office's own spacing and punctuation. Without a number or mark_text
            filter, at most 1,000 records may match (else 422 query-too-broad).
            Repeat the parameter for several values (OR), up to 20.
        - name: priority_number
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Number of a claimed priority application. Matched as sent,
            upper-cased, and upper-cased without spaces, so letter case and
            extra spaces do not matter; keep the office's own spacing and
            punctuation. Without a number or mark_text filter, at most 1,000
            records may match (else 422 query-too-broad). Repeat the parameter
            for several values (OR), up to 20.
        - name: mark_text
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Exact mark text, compared after the normalization stored names get
            (case, accents, punctuation and trailing legal forms are ignored).
            Repeat the parameter for several values (OR), up to 20.
        - name: mark_text_phrase
          in: query
          required: false
          schema:
            maxLength: 200
            minLength: 1
            type: string
          description: >-
            Phrase in the mark text, its translation or transliteration: Latin
            and Cyrillic match whole words in order, CJK the exact character
            sequence. No substring search.
        - name: primary_owner_name
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Exact name of the first-listed owner (normalized like mark_text);
            fast in any scope. Repeat for several values: primary_owner_name and
            primary_owner_key are one filter, and all their values are combined
            with OR, up to 20 together.
        - name: primary_owner_key
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            A stored owner name key (a party's `name_key`), matched verbatim
            against the first-listed owner. Repeat for several values:
            primary_owner_name and primary_owner_key are one filter, and all
            their values are combined with OR, up to 20 together.
        - name: owner_name
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Exact name of any current owner, holder or applicant (normalized).
            Needs jurisdiction with 1 to 5 registers. Repeat for several values:
            owner_name and owner_key are one filter, and all their values are
            combined with OR, up to 20 together.
        - name: owner_key
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            A stored `name_key` of any current owner, holder or applicant,
            verbatim. Needs jurisdiction with 1 to 5 registers. Repeat for
            several values: owner_name and owner_key are one filter, and all
            their values are combined with OR, up to 20 together.
        - name: representative_name
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Exact name of a current representative or correspondent
            (normalized). Needs jurisdiction with 1 to 5 registers. Repeat for
            several values: representative_name and representative_key are one
            filter, and all their values are combined with OR, up to 20
            together.
        - name: representative_key
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            A stored `name_key` of a current representative or correspondent,
            verbatim. Needs jurisdiction with 1 to 5 registers. Repeat for
            several values: representative_name and representative_key are one
            filter, and all their values are combined with OR, up to 20
            together.
        - name: previous_owner_name
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Exact name of a previous owner or holder (normalized). Needs
            jurisdiction with 1 to 5 registers. Repeat for several values:
            previous_owner_name and previous_owner_key are one filter, and all
            their values are combined with OR, up to 20 together.
        - name: previous_owner_key
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            A stored `name_key` of a previous owner or holder, verbatim. Needs
            jurisdiction with 1 to 5 registers. Repeat for several values:
            previous_owner_name and previous_owner_key are one filter, and all
            their values are combined with OR, up to 20 together.
        - name: owner_name_phrase
          in: query
          required: false
          schema:
            maxLength: 200
            minLength: 1
            type: string
          description: >-
            Phrase in the names of current owners, holders and applicants. Needs
            jurisdiction with 1 to 5 registers.
        - name: representative_name_phrase
          in: query
          required: false
          schema:
            maxLength: 200
            minLength: 1
            type: string
          description: >-
            Phrase in the names of current representatives and correspondents.
            Needs jurisdiction with 1 to 5 registers.
        - name: goods_services_phrase
          in: query
          required: false
          schema:
            type: string
          description: >-
            Reserved: goods and services phrase search is not available yet (400
            invalid-request, code not-yet-available).
        - name: office
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Registering office; WIPO's register reports WO. Repeat the parameter
            or separate values with commas (OR), up to 20.
        - name: origin_office
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Office of origin of an international registration (WIPO's register).
            Repeat the parameter or separate values with commas (OR), up to 20.
        - name: status
          in: query
          required: false
          schema:
            items:
              enum:
                - registered
                - pending
                - abandoned
                - cancelled
                - expired
                - unknown
                - other
                - none
              type: string
            type: array
          description: >-
            Status value; `other` = a status outside this list, `unknown` = the
            office says unknown, `none` = not stated. Repeat the parameter or
            separate values with commas (OR), up to 20.
        - name: status_category
          in: query
          required: false
          schema:
            items:
              enum:
                - live
                - dead
                - unknown
                - none
              type: string
            type: array
          description: >-
            live, dead or unknown; `none` = not stated. Repeat the parameter or
            separate values with commas (OR), up to 20.
        - name: mark_feature
          in: query
          required: false
          schema:
            items:
              enum:
                - word
                - figurative
                - combined
                - three_dimensional
                - colour
                - combination_of_colours
                - sound
                - hologram
                - olfactory
                - motion
                - multimedia
                - position
                - pattern
                - touch
                - taste
                - stylized_characters
                - other
                - none
              type: string
            type: array
          description: >-
            Mark feature; `other` = a value outside this list, `none` = not
            stated. Repeat the parameter or separate values with commas (OR), up
            to 20.
        - name: mark_kind
          in: query
          required: false
          schema:
            items:
              enum:
                - individual
                - collective
                - certificate
                - guarantee
                - defensive
                - geographical
                - common_right
                - logotype
                - service
                - trademark
                - denomination
                - other
                - none
              type: string
            type: array
          description: >-
            Kind of mark; `other` = a value outside this list, `none` = not
            stated. Repeat the parameter or separate values with commas (OR), up
            to 20.
        - name: has_image
          in: query
          required: false
          schema:
            type: boolean
          description: 'true: only records with a mark image; false: only records without.'
        - name: primary_owner_country
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            ISO 3166-1 alpha-2 country of the first-listed owner. Repeat the
            parameter or separate values with commas (OR), up to 20.
        - name: nice_class
          in: query
          required: false
          schema:
            items:
              type: integer
            type: array
          description: >-
            Nice class, 1 to 45; a record matches if it lists any of them.
            Repeat the parameter or separate values with commas (OR), up to 20.
        - name: similar_group_code
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Similar-group code (CN, KR). Repeat the parameter or separate values
            with commas (OR), up to 20.
        - name: vienna_code
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            Vienna code: 27.05.01 matches exactly; 27 or 27.05 matches the codes
            under it and needs jurisdiction, nice_class or primary_owner_country
            too. Repeat the parameter or separate values with commas (OR), up to
            20.
        - name: designated_country
          in: query
          required: false
          schema:
            items:
              type: string
            type: array
          description: >-
            ISO 3166-1 alpha-2 country designated by an international
            registration. Repeat the parameter or separate values with commas
            (OR), up to 20.
        - name: application_date_from
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Earliest application date, YYYY-MM-DD, inclusive.
        - name: application_date_to
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Latest application date, YYYY-MM-DD, inclusive.
        - name: registration_date_from
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Earliest registration date, YYYY-MM-DD, inclusive.
        - name: registration_date_to
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Latest registration date, YYYY-MM-DD, inclusive.
        - name: publication_date_from
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Earliest publication date, YYYY-MM-DD, inclusive.
        - name: publication_date_to
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Latest publication date, YYYY-MM-DD, inclusive.
        - name: expiry_date_from
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Earliest expiry date, YYYY-MM-DD, inclusive.
        - name: expiry_date_to
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Latest expiry date, YYYY-MM-DD, inclusive.
        - name: renewal_date_from
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Earliest renewal date, YYYY-MM-DD, inclusive.
        - name: renewal_date_to
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Latest renewal date, YYYY-MM-DD, inclusive.
        - name: termination_date_from
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Earliest termination date, YYYY-MM-DD, inclusive.
        - name: termination_date_to
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Latest termination date, YYYY-MM-DD, inclusive.
        - name: opposition_period_end_date_from
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Earliest opposition period end date, YYYY-MM-DD, inclusive.
        - name: opposition_period_end_date_to
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Latest opposition period end date, YYYY-MM-DD, inclusive.
        - name: status_date_from
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Earliest status date, YYYY-MM-DD, inclusive.
        - name: status_date_to
          in: query
          required: false
          schema:
            format: date
            type: string
          description: Latest status date, YYYY-MM-DD, inclusive.
        - name: sort
          in: query
          required: false
          schema:
            default: '-application_date'
            enum:
              - '-application_date'
              - application_date
              - '-registration_date'
              - registration_date
              - '-expiry_date'
              - expiry_date
            type: string
          description: >-
            -application_date (newest first, the default) or application_date.
            registration_date and expiry_date, either direction, need an anchor
            filter (a number, name, key or phrase). Undated records come last.
        - name: limit
          in: query
          required: false
          schema:
            default: 25
            maximum: 100
            minimum: 1
            type: integer
          description: >-
            Items per page, 1 to 100 (default 25; at most 25 with include=full).
            Pages can be short, even empty, while has_more is true.
        - name: include
          in: query
          required: false
          schema:
            items:
              const: full
              type: string
            type: array
          description: >-
            full: return full trademark objects instead of summaries (limit at
            most 25).
        - name: include_total
          in: query
          required: false
          schema:
            default: false
            type: boolean
          description: >-
            true: add `total` {value, relation}; computed on the first page and
            carried in the cursor.
        - name: cursor
          in: query
          required: false
          schema:
            maxLength: 6000
            type: string
          description: >-
            next_cursor of the previous page. Send it with the same filters and
            sort; limit, include and include_total may change.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrademarkList'
        '400':
          description: invalid-request, invalid-cursor, cursor-mismatch
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '401':
          description: unauthenticated, key-revoked
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '403':
          description: product-not-enabled
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '422':
          description: query-too-broad, query-timeout
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '429':
          description: rate-limited, quota-exceeded
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '500':
          description: internal-error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        '503':
          description: unavailable, jurisdiction-unavailable, search-index-unavailable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
        default:
          description: Any other problem (RFC 9457).
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDocument'
components:
  schemas:
    TrademarkList:
      properties:
        object:
          type: string
          const: list
          title: Object
        data:
          items:
            oneOf:
              - $ref: '#/components/schemas/TrademarkSummary'
              - $ref: '#/components/schemas/Trademark'
            discriminator:
              propertyName: object
              mapping:
                trademark: '#/components/schemas/Trademark'
                trademark_summary: '#/components/schemas/TrademarkSummary'
          type: array
          title: Data
        has_more:
          type: boolean
          title: Has More
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
        unavailable_jurisdictions:
          items:
            type: string
          type: array
          title: Unavailable Jurisdictions
        search_progress:
          anyOf:
            - $ref: '#/components/schemas/SearchProgress'
            - type: 'null'
        total:
          anyOf:
            - $ref: '#/components/schemas/TotalDocument'
            - type: 'null'
      type: object
      required:
        - object
        - data
        - has_more
        - next_cursor
        - unavailable_jurisdictions
      title: TrademarkList
    ProblemDocument:
      properties:
        type:
          type: string
          title: Type
        title:
          type: string
          title: Title
        status:
          type: integer
          title: Status
        detail:
          type: string
          title: Detail
        request_id:
          type: string
          title: Request Id
        errors:
          anyOf:
            - items:
                $ref: '#/components/schemas/FieldErrorDocument'
              type: array
            - type: 'null'
          title: Errors
        violated_policies:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Violated Policies
      additionalProperties: true
      type: object
      required:
        - type
        - title
        - status
        - detail
        - request_id
      title: ProblemDocument
      description: OpenAPI schema of every error response (RFC 9457).
    TrademarkSummary:
      properties:
        object:
          type: string
          const: trademark_summary
          title: Object
        id:
          type: string
          title: Id
        jurisdiction:
          type: string
          title: Jurisdiction
        office:
          anyOf:
            - type: string
            - type: 'null'
          title: Office
        origin_office:
          anyOf:
            - type: string
            - type: 'null'
          title: Origin Office
        identifiers:
          $ref: '#/components/schemas/SummaryIdentifiers'
        mark:
          $ref: '#/components/schemas/Mark'
        status:
          $ref: '#/components/schemas/SummaryStatus'
        dates:
          $ref: '#/components/schemas/Dates'
        primary_owner:
          $ref: '#/components/schemas/PrimaryOwner'
        owner_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Owner Count
        nice_class_count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Nice Class Count
        primary_nice_class:
          anyOf:
            - type: integer
            - type: 'null'
          title: Primary Nice Class
        media:
          $ref: '#/components/schemas/Media'
        updated_at:
          type: string
          title: Updated At
        links:
          $ref: '#/components/schemas/Links'
      type: object
      required:
        - object
        - id
        - jurisdiction
        - office
        - origin_office
        - identifiers
        - mark
        - status
        - dates
        - primary_owner
        - owner_count
        - nice_class_count
        - primary_nice_class
        - media
        - updated_at
        - links
      title: TrademarkSummary
      description: |-
        Search and feed item built from the core row only (plan 0). Ask
        include=full (limit <= 25) for full trademark objects.
    Trademark:
      properties:
        object:
          type: string
          const: trademark
          title: Object
        id:
          type: string
          title: Id
        jurisdiction:
          type: string
          title: Jurisdiction
        office:
          anyOf:
            - type: string
            - type: 'null'
          title: Office
        origin_office:
          anyOf:
            - type: string
            - type: 'null'
          title: Origin Office
        identifiers:
          $ref: '#/components/schemas/Identifiers'
        mark:
          $ref: '#/components/schemas/Mark'
        status:
          $ref: '#/components/schemas/Status'
        dates:
          $ref: '#/components/schemas/Dates'
        classification:
          $ref: '#/components/schemas/Classification'
        parties:
          $ref: '#/components/schemas/Parties'
        designated_countries:
          items:
            type: string
          type: array
          title: Designated Countries
        media:
          $ref: '#/components/schemas/Media'
        updated_at:
          type: string
          title: Updated At
        source:
          $ref: '#/components/schemas/Source'
        links:
          $ref: '#/components/schemas/Links'
        goods_services:
          anyOf:
            - items:
                $ref: '#/components/schemas/GoodsServicesEntry'
              type: array
            - type: 'null'
          title: Goods Services
          description: Only with include=goods_services.
        previous_parties:
          anyOf:
            - $ref: '#/components/schemas/Parties'
            - type: 'null'
          description: Only with include=previous_parties.
        assignments:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Assignments
          description: Only with include=assignments.
        securities:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Securities
          description: Only with include=assignments.
        source_record:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Source Record
          description: >-
            Only with include=source_record; not covered by the stability
            guarantee.
      type: object
      required:
        - object
        - id
        - jurisdiction
        - office
        - origin_office
        - identifiers
        - mark
        - status
        - dates
        - classification
        - parties
        - designated_countries
        - media
        - updated_at
        - source
        - links
      title: Trademark
      description: The trademark object (plan 1.9). Include fields appear only when asked.
    SearchProgress:
      properties:
        application_date_reached:
          anyOf:
            - type: string
            - type: 'null'
          title: Application Date Reached
      type: object
      required:
        - application_date_reached
      title: SearchProgress
    TotalDocument:
      properties:
        value:
          type: integer
          title: Value
        relation:
          type: string
          title: Relation
          x-extensible-enum:
            - eq
            - gte
      type: object
      required:
        - value
        - relation
      title: TotalDocument
    FieldErrorDocument:
      properties:
        code:
          type: string
          title: Code
        detail:
          type: string
          title: Detail
        parameter:
          anyOf:
            - type: string
            - type: 'null'
          title: Parameter
        pointer:
          anyOf:
            - type: string
            - type: 'null'
          title: Pointer
      additionalProperties: false
      type: object
      required:
        - code
        - detail
      title: FieldErrorDocument
      description: OpenAPI schema of one `errors[]` item.
    SummaryIdentifiers:
      properties:
        application_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Application Number
        registration_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Registration Number
      type: object
      required:
        - application_number
        - registration_number
      title: SummaryIdentifiers
    Mark:
      properties:
        text:
          anyOf:
            - type: string
            - type: 'null'
          title: Text
        translation:
          anyOf:
            - type: string
            - type: 'null'
          title: Translation
        transliteration:
          anyOf:
            - type: string
            - type: 'null'
          title: Transliteration
        feature:
          anyOf:
            - type: string
            - type: 'null'
          title: Feature
          x-extensible-enum:
            - word
            - figurative
            - combined
            - three_dimensional
            - colour
            - combination_of_colours
            - sound
            - hologram
            - olfactory
            - motion
            - multimedia
            - position
            - pattern
            - touch
            - taste
            - stylized_characters
            - other
        kind:
          anyOf:
            - type: string
            - type: 'null'
          title: Kind
          x-extensible-enum:
            - individual
            - collective
            - certificate
            - guarantee
            - defensive
            - geographical
            - common_right
            - logotype
            - service
            - trademark
            - denomination
            - other
      type: object
      required:
        - text
        - translation
        - transliteration
        - feature
        - kind
      title: Mark
    SummaryStatus:
      properties:
        value:
          anyOf:
            - type: string
            - type: 'null'
          title: Value
          x-extensible-enum:
            - registered
            - pending
            - abandoned
            - cancelled
            - expired
            - unknown
            - other
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Category
          x-extensible-enum:
            - live
            - dead
            - unknown
        date:
          anyOf:
            - type: string
            - type: 'null'
          title: Date
      type: object
      required:
        - value
        - category
        - date
      title: SummaryStatus
    Dates:
      properties:
        application:
          anyOf:
            - type: string
            - type: 'null'
          title: Application
        registration:
          anyOf:
            - type: string
            - type: 'null'
          title: Registration
        publication:
          anyOf:
            - type: string
            - type: 'null'
          title: Publication
        expiry:
          anyOf:
            - type: string
            - type: 'null'
          title: Expiry
        renewal:
          anyOf:
            - type: string
            - type: 'null'
          title: Renewal
        termination:
          anyOf:
            - type: string
            - type: 'null'
          title: Termination
        opposition_period_end:
          anyOf:
            - type: string
            - type: 'null'
          title: Opposition Period End
      type: object
      required:
        - application
        - registration
        - publication
        - expiry
        - renewal
        - termination
        - opposition_period_end
      title: Dates
    PrimaryOwner:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
          description: ISO 3166-1 alpha-2 where resolvable.
      type: object
      required:
        - name
        - country
      title: PrimaryOwner
    Media:
      properties:
        has_image:
          type: boolean
          title: Has Image
      type: object
      required:
        - has_image
      title: Media
    Links:
      properties:
        self:
          type: string
          title: Self
      type: object
      required:
        - self
      title: Links
    Identifiers:
      properties:
        application_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Application Number
        registration_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Registration Number
        international_registration_numbers:
          items:
            type: string
          type: array
          title: International Registration Numbers
        priority_claims:
          items:
            $ref: '#/components/schemas/PriorityClaim'
          type: array
          title: Priority Claims
      type: object
      required:
        - application_number
        - registration_number
        - international_registration_numbers
        - priority_claims
      title: Identifiers
    Status:
      properties:
        value:
          anyOf:
            - type: string
            - type: 'null'
          title: Value
          description: >-
            registered, pending, abandoned, cancelled, expired, unknown, other;
            null = not stated.
          x-extensible-enum:
            - registered
            - pending
            - abandoned
            - cancelled
            - expired
            - unknown
            - other
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Category
          description: live, dead, unknown; null = not stated.
          x-extensible-enum:
            - live
            - dead
            - unknown
        date:
          anyOf:
            - type: string
            - type: 'null'
          title: Date
        office_status:
          anyOf:
            - type: string
            - type: 'null'
          title: Office Status
        office_status_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Office Status Code
      type: object
      required:
        - value
        - category
        - date
        - office_status
        - office_status_code
      title: Status
    Classification:
      properties:
        nice_classes:
          items:
            type: integer
          type: array
          title: Nice Classes
        national_classes:
          items:
            type: string
          type: array
          title: National Classes
        similar_group_codes:
          items:
            type: string
          type: array
          title: Similar Group Codes
        vienna_codes:
          items:
            type: string
          type: array
          title: Vienna Codes
      type: object
      required:
        - nice_classes
        - national_classes
        - similar_group_codes
        - vienna_codes
      title: Classification
    Parties:
      properties:
        owners:
          items:
            $ref: '#/components/schemas/Party'
          type: array
          title: Owners
        representatives:
          items:
            $ref: '#/components/schemas/Party'
          type: array
          title: Representatives
      type: object
      required:
        - owners
        - representatives
      title: Parties
    Source:
      properties:
        processed_on:
          anyOf:
            - type: string
            - type: 'null'
          title: Processed On
      type: object
      required:
        - processed_on
      title: Source
    GoodsServicesEntry:
      properties:
        nice_class:
          anyOf:
            - type: integer
            - type: 'null'
          title: Nice Class
        class_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Class Code
        language:
          anyOf:
            - type: string
            - type: 'null'
          title: Language
        text:
          anyOf:
            - type: string
            - type: 'null'
          title: Text
        translation:
          anyOf:
            - type: string
            - type: 'null'
          title: Translation
      type: object
      required:
        - nice_class
        - class_code
        - language
        - text
        - translation
      title: GoodsServicesEntry
    PriorityClaim:
      properties:
        number:
          anyOf:
            - type: string
            - type: 'null'
          title: Number
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
          description: ISO 3166-1 alpha-2 where resolvable.
        date:
          anyOf:
            - type: string
            - type: 'null'
          title: Date
          description: YYYY-MM-DD.
      type: object
      required:
        - number
        - country
        - date
      title: PriorityClaim
    Party:
      properties:
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        name_translated:
          anyOf:
            - type: string
            - type: 'null'
          title: Name Translated
        name_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Name Key
          description: >-
            Usable as an owner_key= / representative_key= value; may change when
            normalization improves.
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
        address:
          anyOf:
            - type: string
            - type: 'null'
          title: Address
        entity:
          anyOf:
            - type: string
            - type: 'null'
          title: Entity
        roles:
          items:
            type: string
          type: array
          title: Roles
      type: object
      required:
        - name
        - name_translated
        - name_key
        - country
        - address
        - entity
        - roles
      title: Party
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key: Authorization: Bearer pk_live_... (or pk_test_...).'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.