I maintain this Actor. This is an AI-assisted technical walkthrough, fact-checked against its accepted source contract and saved acceptance evidence.
Two trademark records can carry the same wordmark and different class observations. A string match alone does not answer whether the records are identical, whether the classes were parsed correctly, or whether a legal conflict exists. A data review layer should make those narrower questions explicit.
The Trademark Class Overlap Review Actor processes supported successful USPTO source records. It groups documented wordmark observations, preserves serial-number identities, and reports class intersections and unions. It does not search a live trademark register, perform phonetic matching, or provide availability, infringement, or clearance decisions.
Preserve the record identity inside the group
Accepted source records need success: true, a serial_number, and trademark_wordmark. The source's query_phrase is a search query rather than a mark identity. Records sharing a normalized wordmark can be compared while remaining distinct records identified by their serial numbers. Grouping must not erase that distinction.
The wordmark normalization uses Unicode NFKC, JavaScript toLowerCase(), and whitespace normalization as documented by the product. This is a deterministic text grouping rule. It is not a similarity model and does not evaluate how marks sound, look to consumers, or function commercially. A reviewer should be able to inspect the original wordmark alongside the normalized group key.
Parse classes conservatively
Source classes may arrive as a string. Only the documented explicit numeric tokens from one through forty-five are parsed. Invalid tokens remain gaps. Replacing an unparsed class value with an empty set would conceal the difference between no observed classes and a parsing problem.
The saved acceptance example includes class_group_reviewed, action review_class_group, and high confidence. Useful fields include distinctRecordCount, classIntersection, classUnion, recordsWithNoParsedClasses, and invalidClassTokenCount. Preserve those coverage fields in an export. A nonempty intersection is a relationship between supplied class sets, not a legal conclusion about the marks.
Separate status disagreement from current validity
The Actor retains observed status values and can expose disagreement. It does not establish that a registration is currently valid. Filing and registration dates are event dates; an absent observation timestamp remains absent. Processing an old snapshot today does not refresh the underlying registry status.
Before putting the output in a search review tool, test two different serial numbers with the same normalized mark, a source row containing an invalid class token, and a failed source row. Confirm that distinct records stay distinct, parsing gaps remain visible, and unsuccessful source observations do not turn into a paid mark assessment. Check record conflicts and evidence omissions rather than evaluating only the top-level status. The practical result is a compact review group with traceable observations, suitable for handing off to a separate qualified trademark review. Keep any legal decision outside this transformation and record the source capture date with the handoff.
Run a small saved snapshot
Start with an existing Dataset you are authorized to read. Replace the Dataset placeholder below with its actual ID. Supported input can also use a source run ID or inline records; choose one explicit source. This Actor does not launch the upstream collection for you.
curl --request POST \
'https://api.apify.com/v2/acts/zinin~trademark-class-overlap-review/runs?maxTotalChargeUsd=0.10' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data '{"datasetId":"REPLACE_WITH_YOUR_DATASET_ID","maxInputRows":100,"maxResults":10}'
The response identifies an asynchronous run. Save that run ID and check its status before reading its default Dataset. A client timeout does not cancel a server run; inspect the existing ID before starting another one. maxInputRows bounds ingestion and maxResults caps useful output. Neither option establishes complete coverage of a larger source. The API charge limit is a ceiling, not a promise that ten results will fit.
Price and evidence limits
On 15 October 2026 the observed FREE-plan price is $0.025 per mark assessment, with no paid start event for this Actor. Other subscription tiers can have different prices; verify the current Actor page before use. Source collection is a separate activity and may carry its own charges. Free diagnostic rows do not count as paid useful assessments.
The examples discussed here come from saved owner acceptance runs. They show specific observed behavior, rather than customer acceptance, profitability, or an exhaustive guarantee for every input. A new run of identical input can be charged again without adding new source evidence. Retain input provenance, the actual build ID, and the source observation window when comparing results over time.
Top comments (0)