Basenet Public API
Versioned public REST API for the Basenet legal practice platform. Versioning policy: the /api/v1 path prefix is the major version; breaking changes ship under /api/v2 with v1 supported through a published deprecation window. Auth uses scoped Bearer tokens; every request is permission-filtered by the same engine that guards the UI. Rate limits are per token. Money is integer cents; timestamps are ISO-8601 UTC.
Version 1.0.0
Base URL
/matters
- GETList matters (scope matters:read)
/api/v1/matters - POSTCreate a matter (scope matters:write)
/api/v1/matters - GETGet a matter (scope matters:read)
/api/v1/matters/{id} - GETGet legal-aid (toevoeging) details for a matter (scope billing:read). Returns present=false when no row exists.
/api/v1/matters/{id}/legal-aid - PUTCreate or update legal-aid (toevoeging) details for a matter (scope billing:write; billing update required).
/api/v1/matters/{id}/legal-aid - POSTAdd another legal-aid grant (toevoeging) to a matter; it becomes the active grant billing runs through (scope billing:write; billing update required).
/api/v1/matters/{id}/legal-aid
relations
- GETList relations (scope relations:read)
/api/v1/relations - POSTCreate a relation (scope relations:write). Runs the advisory duplicate check; send confirmDuplicates=true to create anyway after reviewing matches (BLI-1408).
/api/v1/relations - GETGet a relation (scope relations:read)
/api/v1/relations/{id}
documents
- GETList document metadata (scope documents:read)
/api/v1/documents - GETExport permission-filtered document metadata CSV (scope documents:read)
/api/v1/documents/export - GETDownload document content (scope documents:read)
/api/v1/documents/{id}/content
hours
- GETList hour entries (scope hours:read)
/api/v1/hours - POSTCreate an hour entry (scope hours:write)
/api/v1/hours
tasks
webhooks
- GETList webhook subscriptions (scope webhooks:admin)
/api/v1/webhooks - POSTCreate a webhook subscription (scope webhooks:admin)
/api/v1/webhooks
billing
bi
- GETOData service document listing the BI entity sets (scope bi:read)
/api/v1/bi - GETOData v4 $metadata (EDMX) for the BI entity sets (scope bi:read)
/api/v1/bi/$metadata - GETBI: denormalized matters (scope bi:read)
/api/v1/bi/matters - GETBI: denormalized hours (scope bi:read)
/api/v1/bi/hours - GETBI: denormalized billing (scope bi:read)
/api/v1/bi/billing
offline-sync
- GETList devices for the calling staff API token user (scope sync:read)
/api/v1/sync/devices - POSTRegister a device and return its device bearer token once (scope sync:write)
/api/v1/sync/devices - DELETERevoke one of the calling user’s devices (scope sync:write)
/api/v1/sync/devices/{id} - GETBootstrap an offline-sync device session (device bearer token)
/api/v1/sync/bootstrap - POSTEnable or disable a matter subscription for the authenticated device
/api/v1/sync/subscriptions - POSTCompute the server-owned sync plan for a matter
/api/v1/sync/matters/{id}/reconcile - GETDownload document bytes for a sync plan download action
/api/v1/sync/documents/{id}/content - POSTUpload bytes for a new document or document version
/api/v1/sync/matters/{id}/documents - POSTCommit the post-transfer baseline for a matter
/api/v1/sync/matters/{id}/commit - GETAdvertise the currently selected offline-sync contract version
/api/v1/sync/contract-version
proposals
- POSTCreate an agent proposal without mutating business data (scope proposals:write)
/api/v1/proposals - GETGet a permission-filtered proposal (scope proposals:read)
/api/v1/proposals/{id} - DELETECancel an open or accepted proposal (scope proposals:write)
/api/v1/proposals/{id} - PATCHRevise an open proposal and increment its version (scope proposals:write)
/api/v1/proposals/{id} - POSTAccept an exact proposal version (interactive human sessions only)
/api/v1/proposals/{id}/accept - POSTCommit an accepted, allowlisted proposal idempotently (scope proposals:write)
/api/v1/proposals/{id}/commit