---
seo:
  description: >-
    Versioned public REST API for the Basenet legal practice platform.
    Versioning policy: the /api/v1 path prefix is the major version; breaking
    changes ship…
sidebar:
  label: Overview
title: 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

- [`GET /api/v1/matters`](/partner/api/matters/get-api-v1-matters) — List matters (scope matters:read).
- [`POST /api/v1/matters`](/partner/api/matters/post-api-v1-matters) — Create a matter (scope matters:write).
- [`GET /api/v1/matters/{id}`](/partner/api/matters/get-api-v1-matters-id) — Get a matter (scope matters:read).
- [`GET /api/v1/matters/{id}/legal-aid`](/partner/api/matters/get-api-v1-matters-id-legal-aid) — Get legal-aid (toevoeging) details for a matter (scope billing:read). Returns present=false when no row exists.
- [`PUT /api/v1/matters/{id}/legal-aid`](/partner/api/matters/put-api-v1-matters-id-legal-aid) — Create or update legal-aid (toevoeging) details for a matter (scope billing:write; billing update required).
- [`POST /api/v1/matters/{id}/legal-aid`](/partner/api/matters/post-api-v1-matters-id-legal-aid) — Add another legal-aid grant (toevoeging) to a matter; it becomes the active grant billing runs through (scope billing:write; billing update required).

## relations

- [`GET /api/v1/relations`](/partner/api/relations/get-api-v1-relations) — List relations (scope relations:read).
- [`POST /api/v1/relations`](/partner/api/relations/post-api-v1-relations) — Create a relation (scope relations:write). Runs the advisory duplicate check; send confirmDuplicates=true to create anyway after reviewing matches (BLI-1408).
- [`GET /api/v1/relations/{id}`](/partner/api/relations/get-api-v1-relations-id) — Get a relation (scope relations:read).

## documents

- [`GET /api/v1/documents`](/partner/api/documents/get-api-v1-documents) — List document metadata (scope documents:read).
- [`GET /api/v1/documents/export`](/partner/api/documents/get-api-v1-documents-export) — Export permission-filtered document metadata CSV (scope documents:read).
- [`GET /api/v1/documents/{id}/content`](/partner/api/documents/get-api-v1-documents-id-content) — Download document content (scope documents:read).

## hours

- [`GET /api/v1/hours`](/partner/api/hours/get-api-v1-hours) — List hour entries (scope hours:read).
- [`POST /api/v1/hours`](/partner/api/hours/post-api-v1-hours) — Create an hour entry (scope hours:write).

## tasks

- [`GET /api/v1/tasks`](/partner/api/tasks/get-api-v1-tasks) — List tasks (scope tasks:read).
- [`POST /api/v1/tasks`](/partner/api/tasks/post-api-v1-tasks) — Create a task (scope tasks:write).

## webhooks

- [`GET /api/v1/webhooks`](/partner/api/webhooks/get-api-v1-webhooks) — List webhook subscriptions (scope webhooks:admin).
- [`POST /api/v1/webhooks`](/partner/api/webhooks/post-api-v1-webhooks) — Create a webhook subscription (scope webhooks:admin).

## billing

- [`GET /api/v1/invoices`](/partner/api/billing/get-api-v1-invoices) — List invoices (scope billing:read).

## bi

- [`GET /api/v1/bi`](/partner/api/bi/get-api-v1-bi) — OData service document listing the BI entity sets (scope bi:read).
- [`GET /api/v1/bi/$metadata`](/partner/api/bi/get-api-v1-bi-metadata) — OData v4 $metadata (EDMX) for the BI entity sets (scope bi:read).
- [`GET /api/v1/bi/matters`](/partner/api/bi/get-api-v1-bi-matters) — BI: denormalized matters (scope bi:read).
- [`GET /api/v1/bi/hours`](/partner/api/bi/get-api-v1-bi-hours) — BI: denormalized hours (scope bi:read).
- [`GET /api/v1/bi/billing`](/partner/api/bi/get-api-v1-bi-billing) — BI: denormalized billing (scope bi:read).

## offline-sync

- [`GET /api/v1/sync/devices`](/partner/api/offline-sync/get-api-v1-sync-devices) — List devices for the calling staff API token user (scope sync:read).
- [`POST /api/v1/sync/devices`](/partner/api/offline-sync/post-api-v1-sync-devices) — Register a device and return its device bearer token once (scope sync:write).
- [`DELETE /api/v1/sync/devices/{id}`](/partner/api/offline-sync/delete-api-v1-sync-devices-id) — Revoke one of the calling user’s devices (scope sync:write).
- [`GET /api/v1/sync/bootstrap`](/partner/api/offline-sync/get-api-v1-sync-bootstrap) — Bootstrap an offline-sync device session (device bearer token).
- [`POST /api/v1/sync/subscriptions`](/partner/api/offline-sync/post-api-v1-sync-subscriptions) — Enable or disable a matter subscription for the authenticated device.
- [`POST /api/v1/sync/matters/{id}/reconcile`](/partner/api/offline-sync/post-api-v1-sync-matters-id-reconcile) — Compute the server-owned sync plan for a matter.
- [`GET /api/v1/sync/documents/{id}/content`](/partner/api/offline-sync/get-api-v1-sync-documents-id-content) — Download document bytes for a sync plan download action.
- [`POST /api/v1/sync/matters/{id}/documents`](/partner/api/offline-sync/post-api-v1-sync-matters-id-documents) — Upload bytes for a new document or document version.
- [`POST /api/v1/sync/matters/{id}/commit`](/partner/api/offline-sync/post-api-v1-sync-matters-id-commit) — Commit the post-transfer baseline for a matter.
- [`GET /api/v1/sync/contract-version`](/partner/api/offline-sync/get-api-v1-sync-contract-version) — Advertise the currently selected offline-sync contract version.

## proposals

- [`POST /api/v1/proposals`](/partner/api/proposals/post-api-v1-proposals) — Create an agent proposal without mutating business data (scope proposals:write).
- [`GET /api/v1/proposals/{id}`](/partner/api/proposals/get-api-v1-proposals-id) — Get a permission-filtered proposal (scope proposals:read).
- [`DELETE /api/v1/proposals/{id}`](/partner/api/proposals/delete-api-v1-proposals-id) — Cancel an open or accepted proposal (scope proposals:write).
- [`PATCH /api/v1/proposals/{id}`](/partner/api/proposals/patch-api-v1-proposals-id) — Revise an open proposal and increment its version (scope proposals:write).
- [`POST /api/v1/proposals/{id}/accept`](/partner/api/proposals/post-api-v1-proposals-id-accept) — Accept an exact proposal version (interactive human sessions only).
- [`POST /api/v1/proposals/{id}/commit`](/partner/api/proposals/post-api-v1-proposals-id-commit) — Commit an accepted, allowlisted proposal idempotently (scope proposals:write).
