Skip to main content
POST
/
v2
/
api
/
conversations
/
items
/
search
Search all conversations
curl --request POST \
  --url https://api.withallo.com/v2/api/conversations/items/search \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "search": "billing issues",
  "type": "CALL",
  "sort": "RELEVANCE",
  "date": {
    "from": "2026-01-01",
    "to": "2026-04-21"
  }
}
'
{
  "data": [
    {
      "id": "cll-abc123",
      "type": "CALL",
      "direction": "INBOUND",
      "allo_number": "+14155550100",
      "contact_number": "+14155551234",
      "contacts": [
        {
          "id": "cnt-abc123",
          "name": "Sarah Johnson"
        }
      ],
      "user": {
        "id": "usr-abc123",
        "name": "Alex Kim"
      },
      "date": "2026-04-21T14:30:00Z",
      "duration": 145,
      "result": "ANSWERED",
      "recording_url": "https://storage.withallo.com/recordings/cll-abc123.mp3",
      "summary": "Customer called about a billing issue on their last invoice.",
      "tags": [
        "billing",
        "support"
      ]
    }
  ],
  "pagination": {
    "page": 1,
    "size": 20,
    "total_count": 1,
    "total_pages": 1,
    "has_more": false
  }
}

Documentation Index

Fetch the complete documentation index at: https://help.withallo.com/llms.txt

Use this file to discover all available pages before exploring further.

Required scope: CONVERSATIONS_READ
This endpoint is paginated. Use page and size in the request body to control results. See Pagination.

Search behavior

The search field is a keyword search, not a natural language query. Extract keywords from the user’s question before passing them.
User askssearch value
”Find calls where customers complained about billing”"billing complaint"
”What did we discuss about the refund policy?”"refund policy"
”Show me conversations mentioning enterprise pricing”"enterprise pricing"
How matching works:
  • Terms are AND’d"billing refund" matches items containing both words
  • Prefix matching is used — "bill" matches “billing”, “billed”, etc.
  • Searches across: call transcripts, call summaries, and SMS message content
  • Use sort=RELEVANCE to rank results by match quality instead of date

Field notes

FieldNull when
summarySMS items, or calls where AI summary is not yet available
durationSMS items (only applies to calls)
resultSMS items (only applies to calls)
recording_urlRecording disabled, call not answered, or SMS items
transcriptNot requested via extend=transcript, or SMS items
contentCall items (only applies to SMS)
statusCall items (only applies to SMS)
tagsSMS items (tags only apply to calls)

Extend parameter

ValueEffect
transcriptInclude full call transcripts on each item
Passing an unsupported value returns a 400 error with code UNSUPPORTED_EXTEND_VALUE.

Authorizations

Authorization
string
header
required

Body

application/json
allo_number
string
contact_number
string
user_id
string
direction
enum<string>
Available options:
INBOUND,
OUTBOUND
type
enum<string>
default:ALL
Available options:
CALL,
SMS,
ALL
result
enum<string>
Available options:
ANSWERED,
VOICEMAIL,
TRANSFERRED
tags
string[]
unread
boolean
unresponded
boolean

Keyword search (not natural language). Extract keywords from the user's question. Terms are AND'd with prefix matching — 'billing refund' matches items containing both words, 'bill' matches 'billing'. Searches across call transcripts, summaries, and SMS content.

sort
enum<string>
default:DATE_DESC
Available options:
DATE_DESC,
DATE_ASC,
RELEVANCE
extend
string
page
integer
default:1
size
integer
default:20
Required range: x <= 100
date
object

Date range to filter by

Response

Search results

data
object[]
pagination
object