Ardela
Ardela
Docs
API

Recordings API

List, fetch, and mark recordings filed via the v1 API.

The recordings endpoints are the core of most integrations — poll for completed work, fetch full content, then mark recordings filed after syncing to an external system.

List recordings

GET /api/v1/recordings

Scope: read:recordings

Primary polling endpoint for Zapier, Clio, Actionstep, and custom integrations. By default returns completed, unsynced recordings.

Query parameters

ParameterTypeDefaultDescription
statusstringCOMPLETEDDRAFT, PENDING, TRANSCRIBING, REVIEW_PENDING, COMPLETED, ARCHIVED
syncStatestringunsyncedunsynced, synced, or all
updatedSinceISO 8601Filter by last update time
cursorstringPagination cursor from meta.nextCursor
includestringSet to content to include note/document bodies in the list response
limitinteger100Min 1, max 500

Default list responses are metadata-first — no transcript or large content bodies. Fetch GET /recordings/:id for full content. Use include=content only when you need bodies in the list response (e.g. a single Zapier trigger step).

Example request

GET /api/v1/recordings?status=COMPLETED&syncState=unsynced&limit=50
Authorization: Bearer ardela_pk_...

Example response

{
  "data": [{
    "id": "clxxx123",
    "title": "Client Meeting Notes",
    "status": "COMPLETED",
    "priority": "MEDIUM",
    "audioDuration": 180,
    "notes": [{
      "id": "note_1",
      "templateName": "Meeting Notes",
      "templateId": "tmpl_123",
      "sortOrder": 1,
      "createdAt": "2025-12-02T10:00:00.000Z"
    }],
    "documents": [{
      "id": "doc_1",
      "templateName": "Letter",
      "templateId": "tmpl_456",
      "sortOrder": 2,
      "createdAt": "2025-12-02T10:00:00.000Z"
    }],
    "author": {
      "id": "user123",
      "name": "Jane Doe",
      "email": "jane@firm.com"
    },
    "client": {
      "id": "client123",
      "name": "Acme Corp",
      "referenceNumber": "CLI-001"
    },
    "matter": {
      "id": "matter123",
      "name": "Contract Review",
      "referenceNumber": "MAT-2025-001"
    },
    "createdAt": "2025-12-02T10:00:00.000Z",
    "updatedAt": "2025-12-02T10:30:00.000Z",
    "lastSyncedAt": null,
    "syncCount": 0
  }],
  "meta": {
    "count": 1,
    "limit": 50,
    "hasMore": false,
    "nextCursor": null
  }
}

Pagination

When meta.hasMore is true, pass meta.nextCursor as the cursor query parameter on the next request. Continue until hasMore is false.


Get a recording

GET /api/v1/recordings/:id

Scope: read:recordings

Returns full recording details including transcript, notes, documents, and sync metadata. Use this after the list endpoint when you need complete content.

Response fields

FieldDescription
transcriptFull transcript text
notes[]Generated notes with content, template metadata
documents[]Generated documents with content, template metadata
client, matterLinked client and matter with reference numbers
authorRecording author name and email
lastSyncedAt, syncCountFiling history

List and detail responses include at most 50 note/document blocks per recording.


Mark recording filed

POST /api/v1/recordings/:id/filings

Scope: write:recordings

Call after successfully creating a document or note in an external CRM or practice management system. Updates sync metadata so the recording no longer appears in syncState=unsynced polls.

Request body

{
  "provider": "clio",
  "externalId": "doc_123",
  "externalUrl": "https://app.clio.com/documents/doc_123",
  "filedAt": "2026-05-30T12:00:00.000Z",
  "metadata": {
    "matterId": "matter_123",
    "documentType": "note"
  }
}
FieldRequiredDescription
providerYesExternal system identifier (e.g. clio, actionstep, zapier)
externalIdYesID of the created record in the external system
externalUrlNoLink back to the external record
filedAtNoISO 8601 timestamp (defaults to now)
metadataNoProvider-specific references (JSON object)

Rules

  • Recording must have status: COMPLETED — filing draft or in-progress recordings returns 409
  • Recording must belong to the API key's workspace
  • Repeating the same provider + externalId is idempotent and does not increment syncCount again

Example response

{
  "success": true,
  "data": {
    "id": "clxxx123",
    "lastSyncedAt": "2026-05-30T12:00:00.000Z",
    "syncCount": 1,
    "syncMetadata": {
      "provider": "clio",
      "externalId": "doc_123",
      "externalUrl": "https://app.clio.com/documents/doc_123",
      "filedAt": "2026-05-30T12:00:00.000Z",
      "metadata": { "matterId": "matter_123" }
    }
  }
}

Status values

StatusDescription
DRAFTBeing edited
PENDINGQueued for transcription
TRANSCRIBINGTranscription in progress
REVIEW_PENDINGAwaiting review
COMPLETEDReady to sync
ARCHIVEDArchived

Priority levels

LOW · MEDIUM · HIGH · URGENT

On this page