---
title: OData
description: Connect BI tooling to the permission-filtered OData v4 service.
---

The public contract exposes an OData v4 service under `/api/v1/bi` for tokens with `bi:read`:

- `GET /api/v1/bi` returns the service document.
- `GET /api/v1/bi/$metadata` returns the EDMX/CSDL metadata document.
- `GET /api/v1/bi/matters`, `/hours`, and `/billing` return OData v4 collection envelopes with `@odata.context`, `value`, and an optional `@odata.nextLink`.

Use `$top` and `$skip` for paging. The current contract does not advertise general `$filter`, `$orderby`, `$select`, `$expand`, or DirectQuery semantics, so clients must not assume support for them.

To connect an OData-aware BI client, provide the deployed app's `/api/v1/bi` URL as the service root and authenticate with the scoped bearer token issued for the integration. The service document and metadata let the client discover the three entity sets.

[Open the published OpenAPI JSON](/openapi.json) for the exact entity schemas, or read the [developer API map](/developers/public-api).
