API
A public REST API for automating and integrating your expiration tracking — the same API that powers the mobile app in Cloud mode.
One API for the app and for you
Everything the mobile app does in Cloud mode goes through the versioned REST API at /api/v1 — and the same API is open to you. It speaks JSON, is scoped to a single workspace per key, and ships with interactive OpenAPI (Swagger) documentation where you can try every endpoint.
API keys
API keys are managed in the web app under Settings → API. Each key is bound to the user who created it and to one specific workspace, so it can only reach data of that workspace. The workspace owner creates keys and sees every key in the workspace; members see and revoke their own. The key value is shown only once after creation.
Authentication
Send the key as a bearer token in the Authorization header. Requests run with the permissions of the key's user inside the key's workspace: owners can manage everything, members manage items they created.
What the API covers
Expiration items
List, detail with history events, create, update, delete, renew, archive, and restore.
Categories
Manage the custom categories of the workspace.
Attachments
Upload, download, and delete item attachments within the workspace cloud quota.
Workspaces and members
Manage workspaces, switch between them, invite members by email, and remove members or invitations.
Workspace reminders
The owner can update or delete reminders of any workspace member.
Account and sync
Profile and password management plus sync-state and export endpoints used by the mobile app.
Interactive documentation
The complete, always up-to-date reference is generated from the code as an OpenAPI specification. Open the Swagger UI to browse every endpoint, its parameters, and example responses — and call the API directly from the browser.
Open Swagger documentationRate limits
The API allows 60 requests per minute per user; login and registration endpoints allow 5 requests per minute per IP address. Responses use standard HTTP status codes with JSON error bodies.
Prefer push over polling?
Webhooks complement the API: instead of asking for changes, have expiration item events delivered to your endpoint with signed payloads.
Learn about webhooks