Exports one conversation transcript from the authenticated organization. `format` defaults to `csv`. Use `format=csv` for an immediate CSV file download. Use `format=pdf` to start an async background job; in that case the endpoint returns `202` with a polling `statusUrl` instead of the file itself. Large transcripts are capped at the first 5000 messages. The CSV export includes one flattened transcript field that concatenates the conversation messages in chronological order.
/api/conversations/{id}/exportOrganization API key supplied as Authorization: Bearer convor_sk_....
In: header
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
"string"{
"jobId": "pdf-export-job-123",
"status": "pending",
"statusUrl": "/api/conversations/11111111-1111-4111-8111-111111111111/export/pdf-export-job-123/status"
}{
"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/00000000-0000-4000-8000-000000000000/export?format=pdf' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer convor_sk_...'const response = await fetch("https://api.convor.io/api/conversations/00000000-0000-4000-8000-000000000000/export?format=pdf", {
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?
Delete a conversation
Soft-deletes one conversation in the current organization. Admin access is required. The conversation status is changed to `deleted` and all messages in that conversation are marked with `deletedAt` so they no longer appear in normal views. The record is not physically removed from the database. Access requires an active organization administrator session or an organization API key with the `conversations:write` scope. API-key calls also require the automation API module. Data is isolated to the authenticated organization; identifiers from another organization or site are not disclosed.
Get conversation by 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. Authenticate with an organization API key sent in `X-API-Key` or as a Bearer token and carrying the exact `conversations:read` scope. API-key access also requires the Automation & API module (`automation_api`). Authorized dashboard sessions remain supported where the route already permits them. The request is isolated to the authenticated organization. Resource and site/project identifiers must belong to that organization; out-of-scope identifiers are not disclosed. Visitor bearer callers can read only conversations owned by their authenticated visitor identity. Retry behavior: This read-only operation is safe to retry.