---
title: "USPTO Trademark"
method: POST
path: "/us/uspto/trademark/v1"
tags: ["United States", "United States Patent and Trademark Office"]
---

# USPTO Trademark

`POST /us/uspto/trademark/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/us/uspto/trademark/v1`
- Auth: HTTP bearer

Retrieve one US federal trademark application or registration by its eight-digit serial number, e.g. `79392077`: the mark, its status and dates, classes, goods and services, filing basis, owners, attorney and whether an assignment was recorded. Served by Croma from its copy of the register (`as_of` says how current the data is).

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `serial_number` string, required: The mark's eight-digit serial number, assigned when the application was filed, e.g. `79392077`.

## Response `200`

Successful response

- UsptoTrademarkResponse
  - `data` UsptoTrademarkData, required
    - `as_of` string, nullable, required: How current the data in this response is.
    - `found` boolean, required
    - `serial_number` string, required
    - `trademark` object, nullable, required
      - `serial_number` string, required: The eight-digit serial number the USPTO assigned when the application was filed, e.g. "79392077". It identifies the mark for its whole life.
      - `registration_number` string, nullable, required: The registration number, once the mark registered, e.g. "7726306". Null while the application is pending, or when it never registered.
      - `mark` string, nullable, required: The words of the mark, e.g. "GAME & WARIO". Null for a design-only mark with no words.
      - `mark_types` string[], required: What the mark identifies: "TRADEMARK" (goods), "SERVICE MARK" (services), "COLLECTIVE MEMBERSHIP MARK", "CERTIFICATION MARK" and so on; a mark can be several.
      - `drawing_type` string, nullable, required: How the mark is drawn, as the register describes it, e.g. "(4) STANDARD CHARACTER MARK", "(3) DESIGN PLUS WORDS, LETTERS, AND/OR NUMBERS".
      - `status_code` number, nullable, required: The USPTO's status code, e.g. 700 (registered), 602 (abandoned), 686 (published for opposition).
      - `status` string, nullable, required: The status as the USPTO words it, e.g. "REGISTERED", "ABANDONED - FAILURE TO RESPOND OR LATE RESPONSE".
      - `is_live` boolean, required: True while the application is pending or the registration is in force; false once abandoned, cancelled or expired.
      - `is_registered` boolean, required: True once the mark registered (and while the registration stands).
      - `filing_date` string, nullable, required: `yyyy-mm-dd` the application was filed; what `from_date` and `to_date` filter on.
      - `registration_date` string, nullable, required: `yyyy-mm-dd` the mark registered.
      - `publication_date` string, nullable, required: `yyyy-mm-dd` the mark was published for opposition.
      - `abandonment_date` string, nullable, required: `yyyy-mm-dd` the application was abandoned.
      - `cancellation_date` string, nullable, required: `yyyy-mm-dd` the registration was cancelled.
      - `renewal_date` string, nullable, required: `yyyy-mm-dd` of the last renewal of the registration.
      - `first_use_date` string, nullable, required: `yyyy-mm-dd` the owner states the mark was first used anywhere.
      - `first_use_in_commerce_date` string, nullable, required: `yyyy-mm-dd` the owner states the mark was first used in US commerce.
      - `international_classes` string[], required: The international (Nice) classes of the goods and services, as three digits, e.g. ["009", "028"]. "A", "B" and "200" are the USPTO's own classes for certification and collective membership marks.
      - `goods_and_services` string[], required: The goods and services the mark covers, one entry per class, e.g. "IC 009: Recorded video game programs; ...". Shortened when the whole list is very long; see `goods_and_services_truncated`.
      - `goods_and_services_truncated` boolean, required: True for the rare mark whose goods and services run past 100,000 characters: `goods_and_services` then carries the start of each class, and `goods_and_services_url` the whole list.
      - `goods_and_services_url` string, nullable, required: The whole goods and services list as a JSON array, when `goods_and_services` is shortened. Null otherwise.
      - `filing_basis` string[], required: The current legal basis of the application, as the USPTO codes it: "1a" (use in commerce), "1b" (intent to use), "44d", "44e" (a foreign application or registration), "66a" (an international registration under the Madrid Protocol).
      - `register` string, nullable, required: "PRINCIPAL" or "SUPPLEMENTAL", the register the mark is on or applied for.
      - `owner_names` string[], required: The owners as the register records them, e.g. ["Nintendo of America Inc."].
      - `owner_entity_type` string, nullable, required: The kind of owner, e.g. "CORPORATION", "LIMITED LIABILITY COMPANY", "INDIVIDUAL".
      - `owner_citizenship` string, nullable, required: Where the owner is organized or a citizen, as the register writes it, e.g. "WASHINGTON, USA", "TURKEY".
      - `owner_city` string, nullable, required: The city of the owner's address, when the register states it.
      - `owner_state` string, nullable, required: The US state of the owner's address, e.g. "North Carolina". Null outside the US.
      - `owner_country` string, nullable, required: The country of the owner's address, as the register writes it, e.g. "UNITED STATES", "JAPAN".
      - `attorney_name` string, nullable, required: The attorney of record, when there is one.
      - `has_assignment` boolean, required: True when an assignment (a transfer of ownership or a security interest) has been recorded against the mark.
      - `updated_at` string, nullable, required: When the USPTO last updated the record, ISO 8601.
      - `official_url` string, required: The mark's page at the USPTO's Trademark Status and Document Retrieval system.

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
