# Origin One API > REST API documentation for the Origin One platform. - [Origin One API](https://api.docs.originone.ai/index.md): Integrate drug-testing orders, results, and clinics into your systems with the Origin One REST API. - [Authentication](https://api.docs.originone.ai/authentication.md): Authenticate to the Origin One API with a bearer API token. - [Scopes](https://api.docs.originone.ai/scopes.md): Every API token carries a set of scopes that determine which operations it can perform. - [Responses](https://api.docs.originone.ai/responses.md): Conventions every resource shares: resource types, lists, identifiers, dates, null versus omitted fields, and forward compatibility. - [Pagination](https://api.docs.originone.ai/pagination.md): List endpoints return a consistent page-based envelope. - [Errors](https://api.docs.originone.ai/errors.md): How the Origin One API reports validation failures and other errors. - [Webhooks](https://api.docs.originone.ai/webhooks.md): Receive order status updates by configuring a callback URL when creating an order. - [Order lifecycle](https://api.docs.originone.ai/order-lifecycle.md): How order and service statuses progress, and how to tell when a result is final. - [Create an order](https://api.docs.originone.ai/api-reference/orders/create.md): Creates an order at a location linked to the API token and returns it. When order matching finds an equivalent existing order, that order is returned instead with status 200 and a `matched` block. The participant’s `identifiers` are included only for tokens that also carry `order.participant.read`.… - [Get an order](https://api.docs.originone.ai/api-reference/orders/get.md): Returns an order placed at a location under a company linked to the API token. An order with no location, or at a location that belongs to no company, is never returned. The participant’s `identifiers` are included only for tokens that also carry `order.participant.read`. Returns 404 for any failure… - [List orders](https://api.docs.originone.ai/api-reference/orders/list.md): Returns the orders placed at locations under the companies linked to the API token, newest first. Filterable by company, location, status, order code, specimen, and creation time. There is no implicit date window: every visible order is listed unless `createdFrom`/`createdTo` narrow it. An order wit… - [Cancel an order](https://api.docs.originone.ai/api-reference/orders/cancel.md): Cancels an order placed at a location under a company linked to the API token and returns it. Every service except background checks is cancelled; the order itself is kept. Cancelling an order that is already cancelled changes nothing and returns it with 200. Returns 422 for an order in another fina… - [List agencies](https://api.docs.originone.ai/api-reference/agencies/list.md): Returns the regulatory agencies an order can name, with their job categories, ordered by code. Requires the `agency.list` scope. - [Get an agency](https://api.docs.originone.ai/api-reference/agencies/get.md): Returns an agency with the job categories it publishes. Requires the `agency.read` scope. - [Get a job category](https://api.docs.originone.ai/api-reference/job-categories/get.md): Returns a job category the agency publishes. Requires the `agency.jobCategories.read` scope. - [List clinics](https://api.docs.originone.ai/api-reference/clinics/list.md): Returns the clinics owned by the API token’s tenant, ordered by name. Filterable by name, active state, city, and state. Requires the `clinic.list` scope. - [Get a clinic](https://api.docs.originone.ai/api-reference/clinics/get.md): Returns a clinic owned by the API token’s tenant. Returns 404 for any failure — does not reveal whether the clinic exists. Requires the `clinic.read` scope. - [Search clinics](https://api.docs.originone.ai/api-reference/clinics/search.md): Returns active clinics owned by the API token’s tenant within `radiusMiles` of the given coordinates or address, nearest first. An address without `line1` matches clinics in its state and postal code instead, ordered by name. Filterable by service and location. Requires the `clinic.search` scope. - [List companies](https://api.docs.originone.ai/api-reference/companies/list.md): Returns the companies linked to the API token, ordered by name. Requires the `company.list` scope. - [Get a company](https://api.docs.originone.ai/api-reference/companies/get.md): Returns a company linked to the API token. Requires the `company.read` scope. - [List locations](https://api.docs.originone.ai/api-reference/locations/list.md): Returns the active locations under the companies linked to the API token, ordered by name. Filterable by name, company, city, and state. Requires the `location.list` scope. - [Get a location](https://api.docs.originone.ai/api-reference/locations/get.md): Returns an active location under a company linked to the API token. Returns 404 for any failure — does not reveal whether the location exists. Requires the `location.read` scope. - [List packages](https://api.docs.originone.ai/api-reference/packages/list.md): Returns the active packages assigned to the companies linked to the API token or to their locations, ordered by name. Filterable by name and location. Requires the `package.list` scope. - [Get a package](https://api.docs.originone.ai/api-reference/packages/get.md): Returns an active package assigned to a company linked to the API token or to one of its locations. Returns 404 for any failure — does not reveal whether the package exists. Requires the `package.read` scope. - [List services](https://api.docs.originone.ai/api-reference/services/list.md): Returns the services offered by the companies linked to the API token and their locations, ordered by name. Filterable by name and type. Requires the `service.list` scope. - [Get a service](https://api.docs.originone.ai/api-reference/services/get.md): Returns a service offered by a company linked to the API token or by one of its locations. Returns 404 for any failure — does not reveal whether the service exists. Requires the `service.read` scope. - [Order updated](https://api.docs.originone.ai/api-reference/webhooks/order-updated.md): Sent to the `callback.url` given when the order was created, each time the order or one of its services changes status. The body names the order; fetch it at `data.url` with the API token for its current state. Respond with any 2xx status to acknowledge. Anything else, or no response within 30 secon… ## OpenAPI Specs - [openapi](/api-reference/openapi.json) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.