Coming soon The public API is not generally available yet. This reference is published in advance. Endpoints, payloads, and authentication may still change before release.

API Reference Coming soon

The Interloom API provides programmatic access to every entity in the platform. All operations available in the UI are also available via the API.

Currently live: Two endpoints are callable today — POST /cases (create a case) and GET /cases/{case_id} (fetch one) — both returning a Task object. Every other endpoint below is published in advance and not yet available.

Authentication

All requests require a bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY

API keys are scoped to an organization. Contact your administrator to generate a key, or create one under Settings → API Keys if you have admin access.

Base URL

https://app.interloom.com/api/v1/public

If your organization is on a dedicated instance, swap the host for your instance domain:

https://YOUR_INSTANCE.interloom.com/api/v1/public

Response Format

Successful responses return the resource payload at the top level. Metadata is returned in response headers.

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "Northwest Claims Intake",
  "created_at": "2025-01-15T09:30:00Z"
}
X-Request-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
X-Response-Timestamp: 2025-01-15T09:30:00Z

List endpoints return JSON arrays. Pagination uses RFC 5988-style Link headers (similar to GitHub’s REST API), so pagination metadata is kept out of the response body.

[
  ...
]
X-Request-Id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
X-Response-Timestamp: 2025-01-15T09:30:00Z
Link: <https://api.interloom.com/v1/cases?first=50>; rel="first", <https://api.interloom.com/v1/cases?first=50&after=eyJpZCI6ImNhc2VfMDAwNTAifQ>; rel="next"

Paginated endpoints accept:

ParameterTypeDescription
firstintegerNumber of items to return (default 50, max 100).
afterstringCursor token from the previous page’s Link header.

If results fit on one page, the Link header may be omitted.


Spaces

MethodEndpointDescription
GET/spacesList spaces in the organization
POST/spacesCreate a new space
GET/spaces/{id}Get a space by ID
PATCH/spaces/{id}Update a space
GET/spaces/{id}/membersList space memberships
POST/spaces/{id}/membersAdd a member to a space

Cases

MethodEndpointDescription
GET/casesList cases (filterable by space, phase, motion, priority)
POST/casesCreate a new case
GET/cases/{id}Get a case by ID
PATCH/cases/{id}Update a case (title, description, priority, assignment)
POST/cases/{id}/commenceTransition from intake to active
POST/cases/{id}/resolveTransition to resolved
POST/cases/{id}/reopenReopen a resolved case (requires reason)
POST/cases/{id}/closeTransition to closed (terminal)
PATCH/cases/{id}/motionSet motion (working, waiting, blocked, paused)
GET/cases/{id}/subcasesList subcases of a case

Filtering Cases

The GET /cases endpoint supports query parameters:

ParameterTypeExample
space_iduuidFilter by space
phaseenumactive, intake, resolved, closed
motionenumworking, waiting, blocked, paused, idle
priorityenumcritical, high, medium, low
assigned_actor_iduuidFilter by assigned actor
procedure_iduuidFilter by procedure

Stages

MethodEndpointDescription
GET/cases/{id}/stagesList stages for a case
GET/stages/{id}Get a stage by ID
PATCH/stages/{id}Update a stage (assignment, motion)
POST/stages/{id}/completeMark stage as completed
POST/stages/{id}/skipMark stage as skipped
POST/stages/{id}/spawn-subcaseSpawn a subcase from this stage

Instructions

MethodEndpointDescription
GET/stages/{id}/instructionsList instructions for a stage
POST/stages/{id}/instructionsAdd an instruction to a stage
PATCH/instructions/{id}Update an instruction
POST/instructions/{id}/completeMark instruction as completed

Procedures

MethodEndpointDescription
GET/proceduresList procedures (filterable by space)
POST/proceduresCreate a new procedure
GET/procedures/{id}Get a procedure by ID
PATCH/procedures/{id}Update a procedure
GET/procedures/{id}/stagesList procedure stage templates
POST/procedures/{id}/stagesAdd a stage template to a procedure
POST/cases/{id}/apply-procedureApply a procedure to an existing case

Actors

MethodEndpointDescription
GET/actorsList actors in the organization
POST/actorsCreate an actor (human or AI)
GET/actors/{id}Get an actor by ID
PATCH/actors/{id}Update an actor

AI Actor Configuration

When creating an AI actor, include the agent configuration:

{
  "type": "ai",
  "name": "Claims Triage Agent",
  "model_id": "claude-sonnet-4-5-20250929",
  "system_prompt": "You are a claims triage specialist...",
  "capabilities": ["triage", "document-review", "correspondence"]
}

Threads

MethodEndpointDescription
GET/threadsList threads (filterable by space, case)
POST/threadsCreate a standalone thread
GET/threads/{id}Get a thread by ID
GET/threads/{id}/activitiesList activities in a thread
POST/threads/{id}/activitiesPost an activity to a thread

Activity Types

When posting an activity, specify the type:

{
  "type": "comment",
  "content": "Reviewed the police report — liability is clear.",
  "visibility": "public"
}

Valid types: comment, status_change, stage_transition, tool_call, note_edit, system_event.

Artifacts

MethodEndpointDescription
GET/artifactsList artifacts (filterable by case, thread, space)
POST/artifactsUpload an artifact
GET/artifacts/{id}Get artifact metadata
GET/artifacts/{id}/downloadDownload artifact content
DELETE/artifacts/{id}Remove an artifact

DataTables

MethodEndpointDescription
GET/datatablesList data tables
POST/datatablesCreate a data table
GET/datatables/{id}Get data table metadata and schema
GET/datatables/{id}/rowsQuery rows (supports filtering, sorting, pagination)

EmailMessages

MethodEndpointDescription
GET/emailsList email messages
POST/emailsCreate a draft email
GET/emails/{id}Get an email by ID
PATCH/emails/{id}Update a draft email
POST/emails/{id}/sendQueue an email for sending

Tools

MethodEndpointDescription
GET/spaces/{id}/toolsList tools available in a space
POST/spaces/{id}/toolsRegister a tool in a space
POST/tools/{id}/attachAttach a tool to an actor

Labels

MethodEndpointDescription
GET/spaces/{id}/labelsList labels in a space
POST/spaces/{id}/labelsCreate a label
POST/cases/{id}/labelsApply a label to a case
DELETE/cases/{id}/labels/{label_id}Remove a label from a case

Rate Limits

API requests are limited to 1,000 requests per minute per API key. Rate limit headers are included in all responses:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 947
X-RateLimit-Reset: 1705312800

Errors

Validation errors return 422 with a detail array describing each problem — its location, a human-readable message, and a type code:

{
  "detail": [
    {
      "loc": ["path", "case_id"],
      "msg": "Invalid case ID",
      "type": "value_error"
    }
  ]
}

Need Help?

For API support, contact us at hello@interloom.com.