Skip to main content
GET
/
v1
/
recordings
/
search
Search Transcripts
curl --request GET \
  --url https://api.example.com/v1/recordings/search
{
  "query": "<string>",
  "data": [
    {
      "recording": {},
      "matches": [
        {
          "text": "<string>",
          "timestamp": 123,
          "speaker": "<string>"
        }
      ],
      "matchCount": 123
    }
  ],
  "pagination": {}
}
Search through all your completed transcripts to find specific words or phrases. Returns matching recordings with context snippets and timestamps.

Query Parameters

q
string
required
Search query (minimum 2 characters). Also accepts query as alias.
page
integer
default:"1"
Page number (1-indexed)
limit
integer
default:"20"
Results per page (max 50)

Request

curl -X GET "https://app.transcord.app/api/v1/recordings/search?q=contract" \
  -H "Authorization: Bearer tr_live_your_api_key"

Response

query
string
The search query that was executed
data
array
Array of search results
pagination
object
Pagination info (page, limit, total, totalPages, hasMore)
Response
{
  "query": "contract",
  "data": [
    {
      "recording": {
        "id": "clx1234567890",
        "callSid": "CA1234567890abcdef",
        "toNumber": "+14155551234",
        "fromNumber": "+14155555678",
        "duration": 342,
        "status": "ready",
        "direction": "outbound",
        "createdAt": "2026-01-15T10:30:00.000Z"
      },
      "matches": [
        {
          "text": "...about the contract terms we discussed...",
          "timestamp": 45.2,
          "speaker": "them"
        },
        {
          "text": "...I'll send the contract over by Friday...",
          "timestamp": 128.5,
          "speaker": "you"
        }
      ],
      "matchCount": 2
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 3,
    "totalPages": 1,
    "hasMore": false
  }
}

Errors

StatusDescription
400Search query too short (minimum 2 characters)
401Invalid or missing API key