Skip to main content
GET

When To Use This

Use this endpoint to measure how much of a blocker a mark is. Each row is one citation occurrence: this mark named as the prior right in one office action against one application. This is the outbound direction, so the marks in trademark are other people’s applications, and the mark in the path is the reference the examiner reached for. It answers questions a search index cannot: whether the office has actually treated this mark as a bar, how often, how recently, and whether those refusals stuck.
Rows are citation occurrences, not applications. One application cited in both a nonfinal and a final office action produces two rows for the same mark. To count distinct applications, group by trademark.id, falling back to application_ref when trademark is null. A raw row count overstates how many applications this mark has blocked.
For the inbound direction, the prior marks cited against this application, use Trademark Citations.
Coverage today is USPTO only. Citations are extracted from USPTO office actions and cover §2(d) likelihood-of-confusion refusals. Other offices return an empty list. Check capabilities.citations on List Offices to see the state of any office programmatically, rather than inferring coverage from an empty response.

Freshness

Citations are extracted hourly from stored office actions. Dispositions are recomputed once a day, so a newly extracted citation carries disposition: null until the next daily refresh, which can be up to about 24 hours. A disposition can also change on a later run as prosecution continues. disposition_as_of is stamped when the current disposition was first derived or last changed, and deliberately does not move when a daily run re-derives the same value. An unchanged timestamp means the disposition has been stable, not that the refresh stopped running.

Rows Matched By Reference

Examiners cite an application or registration number. Signa resolves that number to a mark on the register at extraction time, but some rows never resolve: the cited number may belong to a mark Signa does not hold, or the mark may have been ingested after its citations were extracted. This endpoint returns those rows too. It matches on the resolved link, and additionally on this mark’s own application and registration numbers for unlinked citations from the same office, so a citation that names your number is returned even when the extraction pipeline never linked it. On such a row cited_trademark is null and cited_ref carries the number the examiner printed. Treat cited_trademark: null as “matched by reference only”, not as a missing field. Dropping those rows undercounts how often the mark has been used as a bar.

Path Parameters

string
required
Trademark ID (tm_...). This is the cited prior mark.

Query Parameters

string
Filter by how the citation resolved, comma-separated. One or more of citation_issued, maintained, withdrawn, abandoned_after, published. Rows whose disposition has not been computed yet are excluded when this filter is supplied.
string
Filter by the stage the citation reached, comma-separated. One or both of nonfinal, final. final includes citations first raised in a nonfinal action that a later final action maintained.
integer
default:"20"
Page size (1-100).
string
Opaque cursor from the previous response’s pagination.cursor.
Results are ordered by action_date descending, newest first, with undated actions last and id as the final tiebreaker. The order is fixed: there is no sort parameter.

Response

The object is identical to the one returned by Trademark Citations, read in the other direction: trademark is the citing application and cited_trademark is the mark in the path, or null on a reference-matched row.
string
Always list.
object[]
boolean
Whether more rows are available.
object
Cursor for the next page.
string
Unique request identifier for support and debugging.

Example Request

Example Response

The second row was matched by reference: the examiner cited registration 5567890, and that citation is returned even though the extraction pipeline never linked it to a record.

Code Examples

Errors