> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.odr.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.odr.io/_mcp/server.

# ODR Search API v4

> Overview of the Open Data Repository Search API v4

## ODR Search API v4

This collection covers the **Open Data Repository (ODR) Search API, version 4**. It provides a comprehensive set of endpoints for interacting with datasets, records, templates, files, jobs, and user management within the ODR platform.

---

## Authentication

* `/token` — Obtain an authentication token for API access.
* `/user` / `/user (Check User)` / `/user/permissions` — Retrieve user details and check permissions.

---

## Datasets

* `/dataset` — Create or manage datasets.
* `/dataset/{dataset_uuid}/{limit}/{offset}` — Paginate through records in a dataset.
* `/dataset/{dataset_uuid}/record` — Add a record to a specific dataset.
* `/dataset/{dataset_uuid}/search/{limit}/{offset}.{_format}` — Search within a dataset with pagination and format options.
* `/dataset/{dataset_uuid}/modified/records/{timestamp}/{limit}/{offset}` — Retrieve records modified after a given timestamp.
* `/dataset/quota/{dataset_uuid}` — Check storage quota for a dataset.

---

## Records

* `/record/{record_uuid}` — Retrieve a single record by UUID.
* `/record` (Array Input Version) — Submit multiple records using array input.
* `/dataset/record` — Create a new record.
* `/dataset/record/{record_uuid}` — Retrieve or update a specific record.
* `/dataset/record/public` — Change a record's public visibility status.
* `/record/{record_uuid}/{field_uuid}/value` — Set or update a field value on a record.
* `/record/{record_uuid}/{field_uuid}/{option_uuid}/{selected|unselected}` — Toggle a selection option on a record field.

---

## Templates & Masters

* `/template/{template_uuid}` — Retrieve a template definition.
* `/master/{template_uuid}` — Retrieve a master template.
* `/search/template/{template_uuid}` — Search records using a template.
* `/search/database/{dataset_uuid}/records/{limit}/{offset}` — Search all records in a dataset database.

---

## Files

* `/file` — Upload a file to a record (template and non-template variants).
* `/file/{file_uuid}` — Retrieve or delete a file or image by UUID.

---

## Jobs

* `job` — Create a new background job.
* `job` (worker job) — Trigger a worker job.
* `job/status/{job_id}` — Check the status of a running job.
* `job/complete/{job_id}` — Mark a job as complete.
* `job` (update) — Update an existing job.
* `jobs` — List all currently running jobs for the authenticated user.
* `jobs/completed` — List all completed jobs for the authenticated user.

---

## Environment Variables

The API requires the following variables, configured via your environment:

| Variable  | Description                                |
| --------- | ------------------------------------------ |
| `url`     | Base URL of the ODR API                    |
| `token`   | Bearer token for authenticated requests    |
| `apiuser` | Username credential used to obtain a token |
| `apipass` | Password credential used to obtain a token |