Skip to main content

Vetrics API

Pagination

List operations use limit and offset. The default limit is 25 and the maximum is 100. The response envelope is { data, pagination: { limit, offset, total } }.

Offset is not a sync cursor. Rows inserted while you page can be skipped or repeated. Do not treat offset as incremental sync.

Contract 1.8.0 adds updated_since, an opaque cursor, and include_deleted=true on clients, patients, appointments, and invoices. Those parameters are on a clinic's own OpenAPI file when that clinic runs 1.8.0. They are omitted from this public reference while the released contract is 1.7.0. updated_at is the application clock on the write, not the database commit order, so a client re-reads updated_since with overlap and dedupes by id. Offset stays for ordinary lists and cannot be combined with the sync parameters. Soft-deleted rows appear only when include_deleted=true, with deleted_at set. Hard deletes are not reported. A line edit does not move the parent invoice, client, patient, or appointment. Order during a sync is updated_at ascending, then id. The cursor is that pair. The next page is strictly after it. The same timestamp can hold more than one id, so the following poll repeats updated_since at the cursor time and drops ids already stored. Cancellation is a status change on the appointment, not a delete.