Searches conversation messages by content and falls back to a case-insensitive match when no ranked results are found.
/api/conversations/searchSearches conversation messages by content and falls back to a case-insensitive match when no ranked results are found. Results are ordered by relevance, include matching snippets, and are paginated within the documented search window. Search offsets are capped to protect the ranked query; refine the search phrase when the requested offset exceeds the documented search window.
Bearer API key or X-API-Key header.conversations:readautomation_api)Full-text search query.
Maximum number of search results to return.
Zero-based number of search results to skip.
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"data": [
{
"id": "11111111-1111-4111-8111-111111111111",
"organizationId": "22222222-2222-4222-8222-222222222222",
"visitorId": "33333333-3333-4333-8333-333333333333",
"operatorId": "44444444-4444-4444-8444-444444444444",
"status": "open",
"priority": "normal",
"source": "api",
"aiEnabled": true,
"locale": "en",
"localeSource": "organization_default",
"localeLocked": false,
"localeUpdatedAt": null,
"title": "Billing question",
"messageCount": 2,
"hasUnreadMessages": true,
"tags": [
"billing"
],
"customFields": {},
"createdAt": "2026-08-03T08:30:00.000Z",
"updatedAt": "2026-08-03T08:35:00.000Z"
}
],
"pagination": {
"totalItems": 1,
"page": 1,
"pageSize": 20,
"hasNextPage": false,
"hasPrevPage": false
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}{
"error": {
"code": "string",
"message": "string",
"fields": {
"property1": "string",
"property2": "string"
},
"details": {},
"correlationId": "string"
}
}curl --request GET \
'https://api.convor.io/api/conversations/search?q=payment+issue' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...'const response = await fetch("https://api.convor.io/api/conversations/search?q=payment+issue", {
method: "GET",
headers: {
"Accept": "application/json",
"Authorization": "Bearer convor_sk_..."
},
});
const contentType = response.headers.get("content-type") ?? "";
const data = response.status === 204
? null
: contentType.includes("json")
? await response.json()
: contentType.startsWith("text/")
? await response.text()
: await response.blob();
if (!response.ok) {
const message = typeof data === "object" && data !== null
&& "error" in data && typeof data.error === "object"
&& data.error !== null && "message" in data.error
? String(data.error.message)
: "Convor API request failed (" + response.status + ")";
throw new Error(message);
}
console.log(data);Was this page helpful?