Lifecycle dates
Every record has adates block with seven dates, plus status.date. Each is a calendar date, YYYY-MM-DD, exactly as the office states it, with no time zone.
Offices use these dates differently. Some republish a mark after an event such as an assignment, so
publication can be years after registration. Read each date as “the date this office gave for this event”, and check Data quality for register-specific notes.
null means not stated
Anull date means the office did not publish it. Pinakel never computes a missing date: an expiry date is not derived from a registration date and a term length, and a registration date is not copied from an application date. If you need a computed deadline, compute it yourself and keep it separate from the office’s date.
A record whose date is null never matches a range filter on that date.
Implausible dates
Office data contains typing errors, such as a year0201 or 2201. Pinakel returns these dates as stated, because silently correcting them would hide the office’s error.
For sorting only, a date before 1800-01-01 or more than one day in the future counts as undated. Undated records come last in both ascending and descending order, so a sort by application date starts with real dates. Records with equal dates are ordered by jurisdiction and id.
Date filters
Ranges use<field>_date_from and <field>_date_to. Both bounds are inclusive and optional, and from must not be after to. Use one bound for an open range.
Sorting by date
An anchor filter is a number, name, key or phrase filter (see Searching). Without one, sorting by registration or expiry date gets 400
invalid-request. There is no sort by updated_at: use the changes feed to process records in change order.
Timestamps
Timestamps are UTC, with microseconds and aZ suffix: 2026-11-10T09:02:13.512000Z.
The changes feed’s
since parameter takes an RFC 3339 timestamp with Z or an offset, such as 2026-12-01T00:00:00Z.