USPTO Trademark Search, Owner & Gazette Monitor avatar

USPTO Trademark Search, Owner & Gazette Monitor

Pricing

from $14.25 / 1,000 trademark search records

Go to Apify Store
USPTO Trademark Search, Owner & Gazette Monitor

USPTO Trademark Search, Owner & Gazette Monitor

Search official USPTO trademark records, inspect current status and ownership, retrieve recorded assignments and Gazette publications, and monitor typed changes.

Pricing

from $14.25 / 1,000 trademark search records

Rating

0.0

(0)

Developer

Luka

Luka

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Search official USPTO trademark records by name, owner, serial number, registration number, assignment party, or Trademark Official Gazette issue. Get current status and owner evidence, recorded assignment history, Gazette publications, or only verified changes on repeat runs.

Choose one workflow, paste the smallest useful target, and start with the safe defaults. The Actor uses first-party USPTO HTTPS sources directly—no USPTO account, API key, browser, proxy, child Actor, or competing scraper.

Trademark search output is evidence retrieval, not a legal clearance opinion. A recorded assignment is not automatically the current owner, and a missing value is never presented as a completed check.

🚀 Start in 60 seconds

  1. Choose Search trademarks and leave Baseline selected.
  2. Enter a word mark, owner, or other supported term.
  3. Keep Maximum search records at 10 for the first run.
  4. Start the Actor, then open the Dataset to inspect status, owner, classes, goods/services, and coverage.
{
"operation": "trademark_search",
"mode": "baseline",
"searchTerms": ["APPLE"],
"maxSearchResults": 10,
"maxBuyerChargeUsd": 5
}

🎯 Choose the right workflow

WorkflowBest forWhat it returns
Search trademarksName, owner, goods/services, number, design, or advanced field searchOfficial search rows, optionally enriched with current case details
Look up casesExact serial or registration numbersCurrent status, owner, attorney/correspondent, classes, history, and documents
Build an owner portfolioOne or more owner names plus optional deeper evidenceCurrent portfolio records with optional assignments and Gazette publications
Search assignment historySerial, registration, assignee, or assignorRecorded reel/frame/property transactions with separate parties and dates
Search Gazette publicationsLatest or chosen issue datesFiltered official results or streamed complete ST.96 XML issue evidence

Use baseline to return the selected current evidence. Use changes to compare the exact normalized target scope with the last successfully delivered state. The first Changes run safely initializes a baseline; later runs emit only typed changes, plus optional free unchanged audit rows.

📦 What you get

Every row has a stable identity, an explicit row type, official-source provenance, and a coverage result. Depending on the workflow, rows can include:

  • serial and registration numbers, mark wording, status code/text/date, and normalized LIVE/DEAD/UNKNOWN state;
  • current owner, reported owners, attorney/correspondent, classes, goods/services, history, and document metadata;
  • assignment reel/frame identity, conveyance, assignors, assignees, execution/recordation dates, and official document URL;
  • Gazette issue date, reason code/text, section, classes, mark, and owner evidence;
  • typed NEW, UPDATED, STATUS_CHANGED, OWNER_CHANGED, ASSIGNMENT_RECORDED, or GAZETTE_PUBLISHED events with before, after, and changedFields;
  • per-target source receipts with raw, filtered, duplicate, invalid, and delivered counts.
recordTypeMeaning
trademark_search_recordOfficial search result, optionally enriched with current detail
trademark_snapshotExact current serial-based case snapshot
assignment_recordOne recorded reel/frame/property transaction
gazette_recordOne issue/date/reason publication fact
changeOne deterministic typed transition
unchangedOptional free audit row in Changes mode
source_receiptAttempt, completion, count, cap, and coverage evidence for one target

Synthetic USPTO trademark, assignment, and Gazette output

Synthetic fixture preview generated through the Actor's real output path. It uses reserved test identities and makes no live USPTO request.

Representative fixture row (guaranteed core fields plus common search fields):

{
"recordType": "trademark_search_record",
"entityType": "search",
"stableId": "uspto:tm:serial:99000001",
"serialNumber": "99000001",
"registrationNumber": "9901001",
"mark": "NORTHSTAR FIXTURE",
"statusCode": "700",
"statusText": "REGISTERED",
"liveDead": "LIVE",
"currentOwner": {
"name": "NORTHSTAR FIXTURE LABS LLC",
"entityType": "LIMITED LIABILITY COMPANY",
"country": "US"
},
"sourceRoute": "USPTO_TRADEMARK_SEARCH_TSDR_DETAIL",
"sourceRetrievedAt": "2026-08-28T20:00:00.000Z",
"coverageStatus": "COMPLETE",
"sourceContractVersion": "USPTO_TM_PUBLIC_V2_20260829"
}

Because this is a synthetic fixture, it deliberately omits sourceUrl. Live rows include the exact first-party USPTO URL used for that retrieval.

Stable identities are target-safe: cases use the eight-digit serial; assignments use reel, frame, and serial; Gazette events use issue date, serial, and reason code. Registration numbers remain aliases. Search rank loss, Gazette absence, and an assignment recording never become invented removal or ownership events.

🎛️ Input guide

Start and monitoring

InputDefaultEffect on result or cost
operationtrademark_searchSelects one of the five official-source workflows.
modebaselinechanges enables exact target-scoped state and typed repeat-run events.
maxBuyerChargeUsd5 USDStops before source work when the conservative maximum event charge could exceed this ceiling.
watchIdemptyAdds a human state namespace; normalized targets, filters, routes, and caps are still hashed.
includeUnchangedfalseChanges only: adds free unchanged audit rows without billing them as changes.

Trademark search, cases, and portfolios

InputDefaultHard bound and behavior
searchTermsAPPLEUp to 20 terms, each 120 characters; used by Search and Portfolio.
searchFieldallOne of nine bounded official field groups.
searchMatchTypecontainsContains, exact phrase, prefix, or escaped wildcard matching.
advancedQueriesemptyUp to 10 bounded AND/OR/NOT field clauses; raw query JSON is rejected.
maxSearchResults10Maximum 500 unique results; reports CAPPED when valid scope remains.
serialNumbersemptyExact eight-digit case identities; combined serial/registration inputs cannot exceed 500.
registrationNumbersemptyRegistration aliases resolved to serial identity before monitoring.
ownerNamesemptyUp to 20 current-owner portfolio terms, each 160 characters.
includeDetailstrueAdds one current-detail request per resolved serial and replaces basic fields with richer current evidence where available.
includeAssignmentsfalseAdds recorded Assignment Center rows; turn it on only when transaction history is useful.
includeGazettefalsePortfolio only: adds the selected Gazette issue route and its issue/result units.

Assignment history

InputDefaultHard bound and behavior
assigneeNamesemptyUp to 20 recorded-assignee party searches.
assignorNamesemptyUp to 20 recorded-assignor party searches.
assignmentNameMatchpartialChooses the official partial or exact party-name search behavior.
maxAssignmentRecords100Maximum 2,500 unique assignment rows; remaining valid scope is CAPPED.

Trademark Official Gazette

InputDefaultHard bound and behavior
gazetteIssueDateslatest publishedUp to four Tuesday issue dates in YYYY-MM-DD format.
gazetteRoutexml_bulkComplete streaming XML is issue-backed but much larger; api_filter is cheaper and covers only the declared filter.
gazetteSearchTermsemptyUp to 25 mark, owner, goods/services, or serial terms.
gazetteSearchInall supportedUp to four supported Gazette fields.
publicationReasonsallUp to 20 official reason codes or names.
internationalClassesallOptional Nice classes 1–45.
maxGazetteRecords50Maximum 5,000 matching publications; an unfinished issue is CAPPED.

Limits and safeguards

InputDefaultHard bound and behavior
maxItems1,000Global maximum 5,000 business rows after target-scoped deduplication.
maxTrackedItems2,500Maximum 5,000 state records; must cover the selected Changes workload.
maxRequests1,000Hidden request/retry guard; maximum 5,000.
maxSourceBytes300,000,000Hidden transfer guard; maximum 1,000,000,000 bytes. Increase only for multiple full XML issues.
maxRuntimeSecs600Hidden source-work deadline; maximum 1,800 seconds.
requestIntervalMs350Hidden ordinary-request pacing guard; allowed range 250–5,000 ms.

💰 Pricing

Apify shows the authoritative event prices before you start a priced run. The total follows the work actually delivered:

run charge = delivered Baseline search rows or watch results/changes + delivered case or assignment rows + a minimum completed check only when those units are below the safe run minimum + completed watch or Gazette checks + delivered Gazette publications

There is no generic paid start event. On a non-Gazette, non-watch run, the Actor first totals the useful business units it can actually deliver. It adds one completion-check receipt only when those units alone would fall below the run's conservative minimum; valuable Search or Assignment rows that already cover that minimum do not receive an unnecessary extra check. Search/Portfolio Changes use a separate watch-result/change unit plus one completed watch check. A completed requested Gazette issue uses its issue/source-check units even when buyer filters leave zero matching publications. Blocked, partial, capped, duplicate, suppressed, and undelivered work is never used to justify a completion charge.

EventFreeBronzeSilverGoldPlatinumDiamond
Trademark search record$0.01425$0.01425$0.01425$0.01425$0.01425$0.01425
Watch result or change$0.04750$0.04750$0.04750$0.04750$0.04750$0.04750
Complete trademark watch check$0.04750$0.04750$0.04750$0.04750$0.04750$0.04750
Completed official USPTO check$0.007295$0.007295$0.007295$0.007295$0.007295$0.007295
Verified Gazette source run$0.03800$0.03800$0.03800$0.03800$0.03800$0.03800
Current trademark check$0.000475$0.000475$0.000475$0.000475$0.000475$0.000475
Status or owner change$0.002850$0.002850$0.002850$0.002850$0.002850$0.002850
Recorded assignment$0.006175$0.0060135$0.0058615$0.005700$0.005700$0.005700
Complete Gazette issue check$0.09500$0.08550$0.07600$0.06365$0.06365$0.06365
Gazette publication$0.07600$0.06840$0.06080$0.05092$0.05092$0.05092

The event name describes the billing trigger. A row, change, check, or publication is charged only after its corresponding useful result or completion receipt is ready for confirmed delivery.

maxBuyerChargeUsd is checked conservatively before the first official request. Blocked, invalid, duplicate, suppressed, and undelivered rows are not paid events. Start with small result limits; raise only the cap that expands a useful buyer outcome.

✅ Coverage you can trust

CoverageExact meaning
COMPLETEEvery requested target or bounded partition finished and all required rows were retained for delivery.
PARTIALUseful evidence was retained, but at least one required target or partition failed.
FILTEREDThe official partition completed and declared buyer filters removed source rows.
CAPPEDA declared row, page, byte, request, runtime, state, or spending guard stopped valid remaining scope.
BLOCKEDA required route or source contract failed; no empty conclusion is allowed.
EMPTY_CONFIRMEDThe complete bounded requested scope finished successfully with zero matching rows.

Every declared search query, assignment query, and Gazette issue gets its own receipt. A target skipped after a run-wide unique-row cap is explicitly CAPPED, attempted: false, and exhausted: false. If filters examine source rows but remove all of them, the result is FILTERED zero—not source-wide EMPTY_CONFIRMED.

Changes state uses schema v2 with deterministic v1 migration, integrity validation, a 5,000-record / 9 MB boundary, and exact scope hashing. A PREPARED delivery outbox is persisted before event-aware Dataset delivery. State commits only after confirmed delivery; incomplete, blocked, capped, or ambiguous attempts cannot advance it or silently retry a possible charge.

Locked official routes

SurfaceFirst-party routeMethod
Trademark searchtmsearch.uspto.gov/.../tmsearchPOST
Current case detailtmsearch.uspto.gov/.../tsdr-api?serialNumber=...GET
Assignment historyassignmentcenter.uspto.gov/.../public/search/trademarkPOST
Gazette discovery/filtertm-eog-service.uspto.gov/.../external/search/...GET/POST
Gazette bulk XMLcdn.uspto.gov/doc/TMOGIssue_..._entire?extension=xmlGET stream

The Actor rejects every other host/path/method combination, redirects, HTML on JSON/XML routes, unexpected media types, and source-contract drift. Ordinary requests are paced and transient retries are bounded.

🔌 API and automation

Download Dataset rows as JSON, CSV, Excel, XML, or RSS, or read them through the Apify API. The Output tab links to the mixed Dataset, buyer overview, and OUTPUT run summary.

For repeat monitoring, save a successful Changes input as an Apify Task and schedule that Task at the interval you need. Keep the same targets and watchId; changing a target, filter, route, or cap intentionally creates a separate state scope. Downstream automation should branch on recordType, then inspect changeType, changeTypes, before, after, and coverageStatus before acting.

❓ FAQ and support

Does a result prove that a mark is available?

No. The Actor retrieves official evidence; it does not make clearance, infringement, validity, availability, or legal conclusions.

Is the latest recorded assignee always the current owner?

No. Assignment history and current TSDR owner evidence remain separate so one never silently overwrites the other.

Why did my run return CAPPED?

One declared guard stopped remaining valid scope. Read the target's stopReason, raise only the relevant limit, and rerun the same scope.

Can no Gazette match be treated as unchanged current status?

No. Gazette absence applies only to the completed issue/filter scope. Current status comes from current case-detail evidence.

What should I include in a support request?

Include the Apify run ID, input with secrets removed, affected stableId values, and the relevant source receipt. Never send account tokens or private credentials.