import requests
url = "https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/interviews/import-transcript/"
payload = {
"transcript": "<string>",
"title": "<string>",
"interview_date": "2023-12-25",
"participants": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
transcript: '<string>',
title: '<string>',
interview_date: '2023-12-25',
participants: ['<string>']
})
};
fetch('https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/interviews/import-transcript/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/interviews/import-transcript/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"transcript": "<string>",
"title": "<string>",
"interview_date": "2023-12-25",
"participants": [
"<string>"
]
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_by_email": "[email protected]",
"type": "<string>",
"type_additional_parameters": {},
"chat_history": [
{}
],
"chat_memory": {},
"local_documents": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"assigned_to": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assigned_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assigned_to_email": "[email protected]",
"assigned_by_email": "[email protected]",
"is_pending_invite": true,
"topics": [
{
"title": "<string>",
"description": "<string>",
"status": "open",
"skill_id": "<string>"
}
],
"campaign": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"import_info": {
"import_status": "parsing",
"participants": [
"<string>"
],
"interview_date": "2023-12-25",
"error": "<string>"
},
"status": "pending",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "User not found"
}{
"error": "Authentication credentials were not provided."
}{
"error": "You do not have permission to perform this action."
}{
"error": "Not found."
}Import an external interview transcript
Import the transcript of an interview recorded outside the platform (e.g. a Granola/Teams/Zoom export). Admin only.
Creates a read-only interview (type “imported-interview”) and enqueues an
async parse that turns the raw text into speaker-labeled chat_history
messages plus inferred metadata. The response returns immediately with
import_info.import_status = "parsing"; poll the interview detail endpoint
until it is “ready” (status becomes “completed”) before reading the
transcript. All metadata fields are optional — anything omitted is inferred
from the transcript; importer-supplied values always win.
To import several transcripts, call this endpoint once per transcript — each import becomes its own interview and parses independently.
import requests
url = "https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/interviews/import-transcript/"
payload = {
"transcript": "<string>",
"title": "<string>",
"interview_date": "2023-12-25",
"participants": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
transcript: '<string>',
title: '<string>',
interview_date: '2023-12-25',
participants: ['<string>']
})
};
fetch('https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/interviews/import-transcript/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));curl --request POST \
--url https://eu.app.clarifeye.ai/api/v1/projects/{project_id}/interviews/import-transcript/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"transcript": "<string>",
"title": "<string>",
"interview_date": "2023-12-25",
"participants": [
"<string>"
]
}
'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"created_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_by_email": "[email protected]",
"type": "<string>",
"type_additional_parameters": {},
"chat_history": [
{}
],
"chat_memory": {},
"local_documents": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"assigned_to": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assigned_by": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assigned_to_email": "[email protected]",
"assigned_by_email": "[email protected]",
"is_pending_invite": true,
"topics": [
{
"title": "<string>",
"description": "<string>",
"status": "open",
"skill_id": "<string>"
}
],
"campaign": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>"
},
"import_info": {
"import_status": "parsing",
"participants": [
"<string>"
],
"interview_date": "2023-12-25",
"error": "<string>"
},
"status": "pending",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": "User not found"
}{
"error": "Authentication credentials were not provided."
}{
"error": "You do not have permission to perform this action."
}{
"error": "Not found."
}Authorizations
Use Authorization: Bearer
Path Parameters
UUID of the project
Body
Response
Interview created; parsing in progress
A structured interview conversation, including its full transcript.
Interview title (auto-generated from the topic when not provided).
UUID of the user who created the interview.
Email of the user who created the interview (the importer, for imported interviews).
Conversation type: "interview" (standard), "guided-interview" (multi-topic), or "imported-interview" (a read-only transcript of an interview recorded outside the platform, created via the import-transcript endpoint).
Free-form parameters associated with the conversation type.
Ordered list of transcript entries (messages, tool calls, etc.).
Assistant memory state accumulated over the conversation.
UUIDs of documents scoped locally to this interview.
UUID of the assigned user (null while a pending invite has not yet joined).
UUID of the user who created the assignment.
Assignee email, falling back to the invite email for not-yet-joined invitees.
True when assigned to someone who has not yet joined the project.
Guided interviews only: the ordered topic agenda seeded at assign time, with per-topic progress. Empty for every other interview type.
Show child attributes
Show child attributes
Campaign this interview belongs to; null for ad hoc interviews.
Show child attributes
Show child attributes
Parse-pipeline state of an imported external transcript (interviews of type
"imported-interview"). Null on every other interview type. The raw submitted
transcript is never returned — the parsed chat_history is the transcript.
Show child attributes
Show child attributes
Null for imported interviews until their transcript parse completes.
pending, in_progress, completed