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

# USPTO trademarks

> US federal trademarks: search about seven million applications and registrations by mark, owner, goods and services, class, status or filing date, and look any one up by its serial number.

The United States Patent and Trademark Office keeps the federal register of trademarks: every application filed since 1884 and every registration, with the mark, its status, the dates of its life (filing, publication, registration, renewal, abandonment or cancellation), the classes and the goods and services it covers, the owners and the attorney of record. Croma keeps every live mark and every mark filed since 2016 and brings them up to date with the register daily, so a search answers in milliseconds.

Search by any words of the mark, the owner's name or the goods and services, narrowed by owner, status, class, the owner's country, the registration number or the filing date, or look one mark up by its serial number.

<Note>
  The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries `as_of`: how current the data is. [How datasets work](/datasets).
</Note>

## Search trademarks

`POST /us/uspto/trademarks-search/v1` <a className="dataset-pill" href="/datasets">Dataset</a>

One search over the register, by the words of the mark, the owner or the goods and services, narrowed by owner, status, class, country or filing date.

| Field | Type | Notes |
| - | - | - |
| `query` | string | Optional words to find in the mark, the owner's name or the goods and services, e.g. `coffee`, `nintendo`. Every word must appear. |
| `owner` | string | Optional owner's full name as registered, e.g. `Nintendo of America Inc.`. Case and punctuation do not matter; use `query` for part of a name. |
| `status` | enum | Optional status: `live`, `dead`, `registered` (live and registered) or `pending` (live, not yet registered). |
| `international_class` | string | Optional Nice class, 1 to 45, e.g. `9` (software, electronics), `25` (clothing), `35` (business services). |
| `owner_country` | string | Optional country of the owner's address as the register writes it, e.g. `UNITED STATES`, `COLOMBIA`, `MEXICO`. |
| `registration_number` | string | Optional registration number, e.g. `7726306`. |
| `from_date` | string | Optional: only marks filed on or after this date, `yyyy-mm-dd`. |
| `to_date` | string | Optional: only marks filed on or before this date, `yyyy-mm-dd`. |
| `page` | integer | 1-based page number. Default `1`. |
| `per_page` | integer | Results per page (1-50). Default `20`. |

```bash theme={"dark"}
curl https://api.croma.run/us/uspto/trademarks-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "query": "nintendo",
        "status": "registered",
        "international_class": "9"
      }'
```

Returns `as_of` (how current the data is), the applied filters, `total` and `total_is_exact`, `page`, `per_page`, `total_pages`, `count` and `results[]`, most recently filed first. Every trademark carries `serial_number` (the eight-digit number assigned at filing), `registration_number` (once registered), `mark` (its words), `mark_types[]` (`TRADEMARK`, `SERVICE MARK`...), `drawing_type`, `status_code` and `status` as the USPTO words it, `is_live` and `is_registered`, the dates `filing_date`, `registration_date`, `publication_date`, `abandonment_date`, `cancellation_date`, `renewal_date`, `first_use_date` and `first_use_in_commerce_date`, `international_classes[]` (Nice classes as three digits, e.g. `009`), `goods_and_services[]` (one entry per class; for the rare mark whose list runs past 100,000 characters each entry is shortened, `goods_and_services_truncated` is true and `goods_and_services_url` links the whole list), `filing_basis[]` (`1a` use in commerce, `1b` intent to use, `44d`, `44e`, `66a` Madrid Protocol), `register` (`PRINCIPAL` or `SUPPLEMENTAL`), `owner_names[]`, `owner_entity_type`, `owner_citizenship`, `owner_city`, `owner_state`, `owner_country`, `attorney_name`, `has_assignment` (an assignment or a security interest has been recorded against the mark), `updated_at` (the USPTO's last update) and `official_url` (the mark's page at the USPTO). Fields the register does not state are null.

<Note>
  The copy holds every live mark and every mark filed since 2016, dead or alive. A mark abandoned or cancelled before 2016 that was filed before 2016 is not included.
</Note>

## One trademark

`POST /us/uspto/trademark/v1` <a className="dataset-pill" href="/datasets">Dataset</a>

| Field | Type | Notes |
| - | - | - |
| `serial_number` | string | **Required.** The mark's eight-digit serial number, e.g. `79392077`. |

```bash theme={"dark"}
curl https://api.croma.run/us/uspto/trademark/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "serial_number": "79392077" }'
```

Returns `as_of`, `found`, `serial_number` and `trademark`. Every trademark carries `serial_number` (the eight-digit number assigned at filing), `registration_number` (once registered), `mark` (its words), `mark_types[]` (`TRADEMARK`, `SERVICE MARK`...), `drawing_type`, `status_code` and `status` as the USPTO words it, `is_live` and `is_registered`, the dates `filing_date`, `registration_date`, `publication_date`, `abandonment_date`, `cancellation_date`, `renewal_date`, `first_use_date` and `first_use_in_commerce_date`, `international_classes[]` (Nice classes as three digits, e.g. `009`), `goods_and_services[]` (one entry per class; for the rare mark whose list runs past 100,000 characters each entry is shortened, `goods_and_services_truncated` is true and `goods_and_services_url` links the whole list), `filing_basis[]` (`1a` use in commerce, `1b` intent to use, `44d`, `44e`, `66a` Madrid Protocol), `register` (`PRINCIPAL` or `SUPPLEMENTAL`), `owner_names[]`, `owner_entity_type`, `owner_citizenship`, `owner_city`, `owner_state`, `owner_country`, `attorney_name`, `has_assignment` (an assignment or a security interest has been recorded against the mark), `updated_at` (the USPTO's last update) and `official_url` (the mark's page at the USPTO). Fields the register does not state are null.

<Note>
  A serial number the copy does not hold returns `found: false` with HTTP 200, not an error.
</Note>

Source: United States Patent and Trademark Office. US federal government work, in the public domain. Croma reshapes the records into the fields above.

<Card title="Full reference" icon="code" href="/api-reference/overview">
  Schemas, all response fields, and an interactive playground.
</Card>


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