Format requests to the Casebook API
The Casebook API allows you to create, read, update, and delete data in Casebook. This developer guide introduces common examples to help you get started with the Casebook API.
To interact with the Casebook API, your organization must be licensed for External Data Interoperability (API), included in Casebook Enterprise.
For more help with the Casebook API, get in touch with the Casebook Support team.
Introduction
Requests to the Casebook API support standard JSON:API modifiers for formatting, filtering, sorting, and pagination.
Prerequisites
You'll need to register an incoming application and obtain a Bearer token to authorize your requests to the Casebook API
Instructions
Set Authorization and Content-Type headers
Each request must include the following headers:
-
Authorization:
Bearer <YOUR_ACCESS_TOKEN>
-
Content-Type:
application/vnd.api+json
Route your request
Start with the base URL
First, all requests to the Casebook API must be directed to the correct base URL.
- For accounts in Canada, use
https://api.casebookca.net - For accounts in the US, use
https://api.casebook.net
Add the Service
Next, add the relevant Casebook service after the base URL in your request.
Here are a few common examples:
- People:
<BASE_URL>/people/… - Intake:
<BASE_URL>/intake/… - Cases:
<BASE_URL>/cases/… - Providers:
<BASE_URL>/providers/… - Services:
<BASE_URL>/services/… - Attachments and Notes:
<BASE_URL>/attachments/…
Specify the Operation and Endpoint
Next, specify the Operation (GET, POST, PATCH, or DELETE) and the relevant endpoint in your request.
Here are a few common examples:
- Providers - Get all Providers: GET <BASE_URL>/providers/providers
- Intake - Create a Report: POST <BASE_URL>/intake/reports
- People - Update a Person: PATCH <BASE_URL>/people/people/<YOUR_PERSON_ID>
-
Attachments - Delete a Note: DELETE <BASE_URL>/attachments/notes/<YOUR_NOTE_ID>
Include query parameters to modify results
Requests often require sorting, filters, and pagination to narrow down the records you want to retrieve. Query parameters let you specify these filters directly in the endpoint URL.
Use ? before the first modifier, and & before any additional modifiers to chain multiple conditions.
Here are a few common examples:
Filter
Flter results based on values in one or more fields
- Exact match: filter results with a case-sensitive exact match on a field
- Equals:
filter[<YOUR_FIELD_NAME>]=<YOUR_VALUE> - Not equals:
filter[<YOUR_FIELD_NAME>][neq]=<YOUR_VALUE>
- Equals:
- Comparing dates and numbers: filter results within a range of values
-
- Greater than:
filter[<YOUR_FIELD_NAME>][g]=<YOUR_VALUE> - Greater than or equal to:
filter[<YOUR_FIELD_NAME>][ge]=<YOUR_VALUE> - Less than:
filter[<YOUR_FIELD_NAME>][l]=<YOUR_VALUE> - Less than or equal to:
filter[<YOUR_FIELD_NAME>][le]=<YOUR_VALUE>
- Greater than:
- Empty values: filter results
- Include only empty values:
filter[<YOUR_FIELD_NAME>]=null; - Exclude empty values:
filter[<YOUR_FIELD_NAME>][neq]=null
- Include only empty values:
Sort
Determine the sort order for your results based on values in one or more fields
- Sort in ascending order:
sort=<YOUR_FIELD_NAME> - Sort in descending order:
sort=-<YOUR_FIELD_NAME>
Page
Ten results will be returned with each request by default - use page numbers to return a specific set of results. Specify the page size for your results to override the default.
- Return a specific page of results:
page=<YOUR_PAGE_NUMBER> - Specify the page size for results:
page[size]=<YOUR_PAGE_SIZE>
Tips
While chaining multiple query parameters, remember to use ? before the first and & before each additional parameter
Examples
Get all active Services offered by a specific Provider
GET <BASE_URL>/services/service_offerings?filter[provider_id]=<YOUR_PROVIDER_ID>&filter[archived]=false
- Headers:
- Authorization:
Bearer <YOUR_BEARER_TOKEN> - Content-Type:
application/vnd.api+json
- Authorization:
- Operation: GET
- Base URL: either
https://api.casebookca.net(Canada) orhttps://api.casebook.net(US) - Casebook service:
/services - Endpoint:
/service_offerings - Query parameters:
- filter[provider_id]=
<YOUR_PROVIDER_ID> - filter[archived]=
false
- filter[provider_id]=
Try it
Get all Notes created between two dates
GET <BASE_URL>/attachments/notes?filter[created_at][ge]=2025-01-01T00:00:00Z&filter[created_at][le]=2025-06-30T23:59:59Z
- Headers:
- Authorization: Bearer
<YOUR_BEARER_TOKEN> - Content-Type:
application/vnd.api+json
- Authorization: Bearer
- Operation: GET
- Base URL: either
https://api.casebookca.net(Canada) orhttps://api.casebook.net(US) - Casebook service:
/attachments - Endpoint:
/notes - Query parameters:
- filter[provider_id]=
<YOUR_PROVIDER_ID> - filter[archived]=
false
- filter[provider_id]=
Try it
People - Get all People with a specific last name
GET <BASE_URL>/people/people?filter[last_name][like]=Doe
- Headers:
- Authorization:
Bearer <YOUR_BEARER_TOKEN> - Content-Type:
application/vnd.api+json
- Authorization:
- Operation: GET
- Base URL: either
https://api.casebookca.net(Canada) orhttps://api.casebook.net(US) - Casebook service:
/people - Endpoint:
/people - Query parameters:
- filter[last_name][like]=
Doe
- filter[last_name][like]=