Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.opereit.ai/llms.txt

Use this file to discover all available pages before exploring further.

The Opereit API lets you create and track claims, upload carrier contracts, audit incoming carrier invoices against them, and retrieve the resulting line items and findings. It’s designed so you can build end-to-end workflows without using the dashboard.

Base URL

All endpoints are served under:
https://api.obsydianai.com

Authentication

Every request to the Invoice Auditing API must be authenticated with an Opereit API key using HTTP Basic Auth. An API key is a pair of values:
  • A key ID: a public identifier for the key.
  • A key secret: the password component, prefixed with opr_live_. The secret is shown only once, at creation time, and cannot be retrieved later. Store it in a secrets manager.
Send credentials in the Authorization header as base64-encoded key_id:key_secret:
Authorization: Basic <base64(key_id:key_secret)>
Most HTTP clients build this header for you when you supply user/password, for example with curl:
curl https://api.opereit.com/v1/contracts \
  -u "key_id:opr_live_your_secret_here"
API keys are scoped to a single organization. To provision a key, contact your Opereit account manager.

Unauthenticated requests

Requests without a valid Authorization header receive 401 Unauthorized along with a WWW-Authenticate: Basic realm="Obsydian API" response header:
{
  "error": "Authentication required"
}

Conventions

  • All request and response bodies are JSON, except for file uploads which use multipart/form-data.
  • Field names are snake_case.
  • Timestamps are ISO 8601 (2026-04-29T10:15:00Z); date-only fields use YYYY-MM-DD.
  • Monetary amounts, weights, and rates are returned as decimal strings to preserve precision.
  • List endpoints are cursor-paginated with ?limit=50&cursor=<opaque_string> query parameters. Response format: { data, pagination: { cursor, has_more } }.

Errors

Errors return a JSON body with a single error field describing what went wrong:
{
  "error": "Invalid contract_id"
}
StatusMeaning
400Request was malformed or failed validation.
401Authentication missing or invalid.
404The requested resource does not exist.
500Unexpected server error.