object: alwayslist.data: the items on this page.has_more: whether more items follow.pagination.cursor: pass this to get the next page.nullon the last page.
integer
default:"20"
Items per page, from
1 to 100 unless the endpoint says otherwise.string
The
pagination.cursor from the previous response. Leave it out on the first request.boolean
default:"false"
Adds
pagination.total_count to the response. Supported on trademark search and the owner, attorney, firm, entity and jurisdiction lists. pagination.total_count_approximate: true marks a count that is not exact. On trademark search it means more than 10,000 matched: total_count reads 10,000 and is a lower bound. On the owner, attorney, firm and entity lists it can also mean the count includes records hidden from the results, so it can be higher than the rows you can page through. Request counts only when you need them, since they cost an extra query.Example
has_more is false:
Cursor rules
- Keep every other parameter (
q, filters,sort,limit) the same across pages. - Treat cursors as opaque. Their format can change without notice.
- Cursors don’t expire on a timer, but they can be invalidated. If a page returns
cursor_expiredorcursor_invalid, restart from the first page. See Errors.
Search depth
Trademark search pages in one of two ways, and only one has a depth limit:- By position, up to 10,000 rows. A search with
q, and any request served one row per record (international_registrations=expanded, or a grouped request that fell back with anexpanded_fallbackwarning), pages through a ranked or sorted result by position. It reaches at most 10,000 rows. When more match, the last page inside that window carries aresult_window_reachedwarning, and a cursor past it returns400cursor_window_exceeded. To reach more, narrow the query with filters, such as afiling_daterange. - By key, no fixed depth. A grouped request without
q, using filters or text filters only, pages by the sort values of the last row, so it can walk past 10,000 rows.
id, and prefer a filter such as an updated_at or filing_date range over a very deep walk when you sync. When the search index is rebuilt, an older cursor returns cursor_invalid: restart from the first page.