REST API Reference

The Isometrik REST API provides programmatic access to manage rooms, participants, recordings, and more. All API requests require authentication using your API key.

Base URL

https://api.isometrik.com/v1

Authentication

Include your API key in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Rooms

Create Room

POST /rooms

{
  "name": "my-room",
  "maxParticipants": 10,
  "emptyTimeout": 300,
  "metadata": {}
}

Response:
{
  "id": "RM_abc123",
  "name": "my-room",
  "creationTime": "2024-01-01T00:00:00Z",
  "numParticipants": 0
}

List Rooms

GET /rooms?limit=20&offset=0

Response:
{
  "rooms": [
    {
      "id": "RM_abc123",
      "name": "my-room",
      "numParticipants": 5,
      "creationTime": "2024-01-01T00:00:00Z"
    }
  ],
  "total": 1
}

Get Room

GET /rooms/{roomId}

Response:
{
  "id": "RM_abc123",
  "name": "my-room",
  "numParticipants": 5,
  "participants": [
    {
      "identity": "user-123",
      "name": "John Doe",
      "metadata": {}
    }
  ],
  "creationTime": "2024-01-01T00:00:00Z"
}

Delete Room

DELETE /rooms/{roomId}

Response: 204 No Content

Participants

List Participants

GET /rooms/{roomId}/participants

Response:
{
  "participants": [
    {
      "identity": "user-123",
      "name": "John Doe",
      "metadata": {},
      "joinedAt": "2024-01-01T00:00:00Z"
    }
  ]
}

Remove Participant

DELETE /rooms/{roomId}/participants/{identity}

Response: 204 No Content

Recordings

Start Recording

POST /recordings

{
  "roomId": "RM_abc123",
  "type": "composite",
  "output": {
    "format": "mp4",
    "s3": {
      "bucket": "my-bucket",
      "key": "recordings/room-123.mp4"
    }
  }
}

Response:
{
  "id": "REC_xyz789",
  "roomId": "RM_abc123",
  "status": "starting",
  "startedAt": "2024-01-01T00:00:00Z"
}

Stop Recording

POST /recordings/{recordingId}/stop

Response:
{
  "id": "REC_xyz789",
  "status": "stopped",
  "stoppedAt": "2024-01-01T01:00:00Z",
  "output": {
    "url": "https://s3.amazonaws.com/my-bucket/recordings/room-123.mp4"
  }
}

Error Responses

All errors follow this format:

{
  "error": {
    "code": "ROOM_NOT_FOUND",
    "message": "Room with ID RM_abc123 not found"
  }
}

Rate Limits

API requests are rate-limited per API key:

  • 100 requests per second for most endpoints
  • 10 requests per second for room creation
  • Rate limit headers are included in responses

Next Steps