Returns one conversation from the current organization, including the joined visitor record and computed dashboard fields such as unreadCount, tags, messageCount, and firstResponseTimeMs.
/api/conversations/{id}Returns one conversation from the current organization, including the joined visitor record and computed dashboard fields such as unreadCount, tags, messageCount, and firstResponseTimeMs. Visitor callers can read only their own conversations. Missing conversations, cross-organization access, or history outside the caller's allowed window return an error.
Bearer API key or X-API-Key header.conversations:readautomation_api)Resource identifier.
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
{
"id": "11111111-1111-4111-8111-111111111111",
"organizationId": "22222222-2222-4222-8222-222222222222",
"visitorId": "33333333-3333-4333-8333-333333333333",
"operatorId": null,
"status": "open",
"priority": "normal",
"source": "widget",
"aiEnabled": true,
"locale": "en",
"localeSource": "organization_default",
"localeLocked": false,
"localeUpdatedAt": null,
"snoozedUntil": null,
"lastMessageAt": "2026-06-23T08:30:00.000Z",
"title": "Need help with billing",
"messageCount": 4,
"hasUnreadMessages": true,
"tags": [
"billing"
],
"customFields": {},
"language": null,
"aiSummary": null,
"aiSummaryGeneratedAt": null,
"aiClassification": null,
"metadata": {},
"version": 1,
"createdAt": "2026-06-23T08:00:00.000Z",
"updatedAt": "2026-06-23T08:30:00.000Z",
"visitor": {
"id": "33333333-3333-4333-8333-333333333333",
"identifier": "[email protected]",
"publicCode": "VIS-3A3B",
"identitySource": "verified",
"identityVerifiedAt": "2026-06-23T08:05:00.000Z",
"fingerprint": null,
"geoCountry": null,
"geoCity": null,
"totalSessions": 1,
"firstSeenAt": "2026-06-23T08:00:00.000Z",
"lastSeenAt": "2026-06-23T08:30:00.000Z",
"name": "Avery Visitor",
"email": "[email protected]",
"phone": null,
"metadata": {}
},
"lastMessage": null,
"unreadCount": 0
}{
"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/11111111-1111-4111-8111-111111111111' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...'const response = await fetch("https://api.convor.io/api/conversations/11111111-1111-4111-8111-111111111111", {
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?