Skip to main content

API Overview

The Inherent API is organized around REST. It accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes.

Base URL

https://api.inherent.systems/api/v1

Authentication

All API requests require authentication using a Bearer token:

curl https://api.inherent.systems/api/v1/documents \
-H "Authorization: Bearer inh_live_abc123..."

See the Authentication Guide for details on creating and managing API keys.

Request Format

Send JSON in request bodies:

curl -X POST https://api.inherent.systems/api/v1/search \
-H "Authorization: Bearer $INHERENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "your search query"}'

Response Format

All responses are JSON:

{
"data": { ... },
"meta": {
"request_id": "req_abc123",
"latency_ms": 45
}
}

Errors

Errors follow a consistent format:

{
"error": {
"code": "invalid_request",
"message": "The 'query' field is required",
"param": "query",
"request_id": "req_abc123"
}
}

HTTP Status Codes

CodeDescription
200Success
201Created
400Bad request - invalid parameters
401Unauthorized - invalid or missing API key
403Forbidden - insufficient permissions
404Not found
429Rate limit exceeded
500Server error

Error Codes

CodeDescription
invalid_requestRequest body is malformed
missing_parameterRequired parameter is missing
invalid_parameterParameter value is invalid
resource_not_foundRequested resource doesn't exist
rate_limit_exceededToo many requests
quota_exceededPlan quota reached
internal_errorServer-side error

Pagination

List endpoints support pagination:

curl "https://api.inherent.systems/api/v1/documents?limit=20&cursor=doc_abc123" \
-H "Authorization: Bearer $INHERENT_API_KEY"

Response includes pagination metadata:

{
"data": [...],
"pagination": {
"has_more": true,
"next_cursor": "doc_xyz789",
"total": 150
}
}

Rate Limits

PlanRequests/minuteRequests/day
Free6010,000
Pro300100,000
EnterpriseCustomCustom

Rate limit headers are included in responses:

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 297
X-RateLimit-Reset: 1705312800

Versioning

The API is versioned via the URL path (/api/v1/). Breaking changes will be released in new versions.

API Endpoints

MethodEndpointDescription
POST/searchSemantic search

Documents

MethodEndpointDescription
GET/documentsList documents
GET/documents/:idGet document

Chunks

MethodEndpointDescription
GET/chunks/:document_idGet document chunks
GET/chunks/:document_id/contextGet full document context

Ingestion (Coming Soon)

MethodEndpointDescription
POST/documentsUpload a document
POST/documents/urlImport from URL
GET/documents/:id/statusGet processing status

Workspaces (Coming Soon)

MethodEndpointDescription
POST/workspacesCreate workspace
GET/workspacesList workspaces
PATCH/workspaces/:idUpdate workspace
DELETE/workspaces/:idDelete workspace

Versions (Coming Soon)

MethodEndpointDescription
GET/documents/:id/versionsList versions
GET/documents/:id/versions/:vGet version
GET/documents/:id/versions/compareCompare versions
POST/documents/:id/rollbackRollback version