1. Match docket entries to records
Look up each entry by number within its register. Up to 100 numbers fit in one request:Python
- One match: store its
idon the docket entry. - Several matches: offices reuse numbers. Compare
dates.applicationandmark.textwith the docket entry, and ask a person when they do not settle it. - No match: check the number format against a record from the same office, check the register’s coverage in
GET /v1/jurisdictions(earliest_application_year), and keep the entry for manual review.
id. Ids are permanent; numbers are not unique.
2. Load the full records
Fetch full records 100 ids at a time with batch retrieve:Python
unavailable belong to a register that is reloading, or to a record that cannot be assembled right now: retry them on the next run. Ids under not_found no longer exist; flag them for review.
3. Keep the records current
There are two ways, and the cheaper one depends on the size of your docket and how busy its registers are.
You can mix them: follow the feed for quiet registers and poll ids in the busy ones.
4. Turn changes into docket events
A new version of a record is not necessarily a docket event: register reloads and processing changes republish records with nothing visible changed (see How records change). Compare the fields that drive your docket with your stored copy, and raise an event only when one of them differs:Python
name under a new name_key, it is not a change of ownership.
5. Check against the office before you act
Status mappings and dates come from each office’s own publications, with the delays described in Coverage & freshness. Treat a docket event from the API as a prompt to confirm with the office, especially for deadlines.Removed records
Records that an office deletes are not announced in v1. Running the id poll weekly, even if you follow the feed, catches them asnot_found.