# Trademark Clearance Checker — USPTO Name Screening (`delta_tools/trademark-clearance-checker`) Actor

Check a business name before you build on it. This trademark search screens your name against live USPTO records and returns exact and close matches grouped by class, with the owner, the status, and why each match counts. Screening only, not legal advice.

- **URL**: https://apify.com/delta_tools/trademark-clearance-checker.md
- **Developed by:** [Delta Tools](https://apify.com/delta_tools) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 name screenings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Trademark Clearance Checker — USPTO Name Screening & Conflict Research

Trademark Clearance Checker runs a trademark search on the business name you are about to use and screens it against live USPTO trademark records.

It is built for founders, shop owners, and creators who are close to spending money on a logo, a domain, or a first product run, and who want to know first whether the name is already taken.

You get back one summary per name: exact and close matches grouped by Nice class, each with its owner, its status, a similarity score, and a plain reason it matched, plus a signal level that says how crowded the name looks.

### What this tool is — and is not

This is a **trademark screening and research tool**. It organizes public USPTO records to help you research naming options and spot potential conflicts early.

It is **not** a legal trademark clearance service, and its output is **not a clearance decision**.

> **Disclaimer:** The output of this Actor is an informational trademark screening and research summary generated from public USPTO records. It is not legal advice, not a legal opinion, and not a substitute for a professional trademark clearance search performed by a qualified trademark attorney. Trademark rights and registration outcomes depend on many factors beyond the records shown here, including common-law use and the distinctiveness of the mark. Consult a trademark attorney before adopting, using, or filing to register any name. The same disclaimer is included in every output record.

### Input

- **Names to screen** — your candidate names (required)
- **Nice classes of interest** (optional) — matches in these classes are flagged
- **Similarity threshold** — how close a record must be to count as a near match
- **Include dead records** — cancelled, abandoned, and expired records are reported separately when enabled
- **Max matches per name**

### Output

One dataset record per name:

- `summaryText` — the plain-language research summary
- `conflictSignalLevel` — HIGH / MODERATE / LOW, from live-record counts only (not a legal assessment)
- `liveExactMatches`, `liveNearMatches`, `deadMatches` — counts
- `matchesByClass` — matching records grouped by Nice class
- `topMatches` — strongest matches first, with similarity score and match reasons
- `disclaimer` — the legal disclaimer above, on every record

### Sample output

One real record from the October 23, 2026 verification run, dataset FfmvpWxqgTw5FUBYd, trimmed to the essential fields, with topMatches shortened to the first match. The run screened two names; this is the first.

```json
{
  "name": "Nimbus Coffee Roasters",
  "conflictSignalLevel": "MODERATE",
  "liveExactMatches": 0,
  "liveNearMatches": 60,
  "classesWithLiveMatches": [
    "016",
    "021",
    "025",
    "030",
    "032",
    "035",
    "040",
    "043"
  ],
  "summaryText": "Screening summary for \"Nimbus Coffee Roasters\": found 0 live exact match(es) and 60 live near match(es) at similarity >= 0.55, plus 56 dead record(s). Live matches appear in Nice classes: 016, 021, 025, 030, 032, 035, 040, 043. Conflict signal level (record counts only, not a legal assessment): MODERATE. Strongest live matches: NIMBUS COFFEE (class 043, LIVE, owner: Nimbus Coffee LLC (LIMITED LIABILITY COMPANY; CALIFORNIA, USA), similarity 0.863); COFFEE ROASTERS (class 030, LIVE, owner: Coffee Roasters, Inc. (CORPORATION; NEW JERSEY, USA), similarity 0.86); NIRVANA COFFEE ROASTERS (class 030, LIVE, owner: Andrew j Chetram (INDIVIDUAL; USA), similarity 0.783). This is a research summary of public records, not a clearance decision.",
  "topMatches": [
    {
      "mark": "NIMBUS COFFEE",
      "serialNumber": "90272676",
      "status": "PUBLICATION/ISSUE REVIEW COMPLETE",
      "isLive": true,
      "owner": "Nimbus Coffee LLC (LIMITED LIABILITY COMPANY; CALIFORNIA, USA)",
      "niceClasses": [
        "043"
      ],
      "filingDate": "2020-10-22",
      "similarityScore": 0.863,
      "matchType": "near",
      "matchReasons": [
        "one mark contains the other's full text",
        "shares distinctive word(s): COFFEE, NIMBUS",
        "sounds alike (phonetic match)"
      ]
    }
  ],
  "disclaimer": "DISCLAIMER: This report is an informational trademark screening and research summary generated from public USPTO records. It is not legal advice, not a legal opinion, and not a substitute for a professional trademark clearance search performed by a qualified trademark attorney. Trademark rights and registration outcomes depend on many factors beyond the records shown here, including common-law use and the distinctiveness of the mark. Consult a trademark attorney before adopting, using, or filing to register any name."
}
```

### Pricing

Pay per event: **$0.001 Actor start + $0.01 per name screened**. No subscription. A name whose screening fails is not charged — you only pay for completed summaries.

Worked cost example: 10 completed screenings cost $0.001 for the run start plus $0.01 each, for $0.101 in event charges.

### Honest limits

1. This screening reads public USPTO records only. It does not see common law use, state registers, or applications filed after the run finishes.

2. Similarity scores and the signal level are sorting help for research. They are counts and comparisons, not legal conclusions.

3. A name with no matches is not cleared, and a crowded name is not automatically unusable. Only a qualified trademark attorney can give a clearance opinion.

4. This tool is a screening and research aid. Its output is not legal advice and is not a substitute for a professional clearance search.

### Notes

- Data comes from the public USPTO Trademark Search index, the same index behind the official search UI. Record coverage and status reflect what the USPTO publishes.
- Similarity is computed with explainable signals (identical text, spelling distance, shared distinctive words, phonetic match) — every near match lists why it was included, so you can judge it yourself.

### Works well with

Once a name passes screening and the brand starts moving, the next job is usually reaching people: suppliers, stockists, and partners worth writing to. Fresh Email Finder at https://apify.com/delta_tools/fresh-email-finder reads the contact emails companies publish on their live websites, so the launch list is built from real addresses instead of guesses.

# Actor input Schema

## `includeDeadRecords` (type: `boolean`):

Also list dead records (cancelled, abandoned, expired). They do not block a name the way live records can, but they show naming history. They are always reported separately from live matches.

## `maxMatchesPerName` (type: `integer`):

Maximum number of matching records to include per screened name (5-100).

## `names` (type: `array`):

Candidate brand names to screen against USPTO trademark records. Each name is screened for exact and near matches and returns one organized research summary. This is a screening and research tool: results are informational and are not legal advice or a professional clearance decision.

## `niceClasses` (type: `array`):

If your planned goods or services fall in specific Nice classes (1-45), list them. Matches in these classes are flagged in the summary so you can focus your review. Leave empty to review all classes.

## `similarityThreshold` (type: `number`):

Minimum similarity score (0.40-0.95) for a record to count as a near match. Lower values surface more distant matches for broader research; higher values keep only close matches.

## Actor input object example

```json
{
  "includeDeadRecords": false,
  "maxMatchesPerName": 25,
  "names": [
    "Nimbus Coffee Roasters",
    "Acme Widgets"
  ],
  "similarityThreshold": 0.55
}
```

# Actor output Schema

## `classesWithLiveMatches` (type: `string`):

Nice classes containing live matches, comma-separated.

## `conflictSignalLevel` (type: `string`):

HIGH, MODERATE, or LOW, summarizing live-record counts only. Not a legal assessment.

## `dataSource` (type: `string`):

Where the records came from.

## `deadMatches` (type: `string`):

Count of dead records found (as text).

## `deadMatchesIncluded` (type: `string`):

Whether dead records were included among the shown matches (as text).

## `disclaimer` (type: `string`):

Legal disclaimer carried on every record.

## `error` (type: `string`):

Present only when a screening failed; failed screenings are not charged.

## `liveExactMatches` (type: `string`):

Count of live records with identical mark text (as text).

## `liveNearMatches` (type: `string`):

Count of live near matches at or above the similarity threshold (as text).

## `matchesByClass` (type: `string`):

Matching records grouped by individual Nice class, as JSON text. Combined class strings from the source are split before grouping.

## `name` (type: `string`):

The candidate name as provided.

## `normalizedName` (type: `string`):

The candidate name normalized for matching (uppercased, punctuation stripped).

## `screenedAt` (type: `string`):

UTC timestamp of the screening.

## `summaryText` (type: `string`):

Plain-language research summary of what the screening found.

## `topMatches` (type: `string`):

Strongest matches as JSON text, with similarity score and reasons. Each match's niceClasses value is an array of individual three-digit Nice class strings; combined class strings are split before output.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "includeDeadRecords": false,
    "maxMatchesPerName": 25,
    "names": [
        "Nimbus Coffee Roasters",
        "Acme Widgets"
    ],
    "similarityThreshold": 0.55
};

// Run the Actor and wait for it to finish
const run = await client.actor("delta_tools/trademark-clearance-checker").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "includeDeadRecords": False,
    "maxMatchesPerName": 25,
    "names": [
        "Nimbus Coffee Roasters",
        "Acme Widgets",
    ],
    "similarityThreshold": 0.55,
}

# Run the Actor and wait for it to finish
run = client.actor("delta_tools/trademark-clearance-checker").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "includeDeadRecords": false,
  "maxMatchesPerName": 25,
  "names": [
    "Nimbus Coffee Roasters",
    "Acme Widgets"
  ],
  "similarityThreshold": 0.55
}' |
apify call delta_tools/trademark-clearance-checker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,delta_tools/trademark-clearance-checker"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/xzb2KFfFtnYvpSeJk/builds/2O1cyNMDxKvaOjycz/openapi.json
