Overview
Replicas are the avatar/voice personas used by AI Interviewers .
Use these endpoints to list the replicas available to a team or to register a new one. A
replica’s id is what you pass as aiConfiguration.replicaId when creating an AI
interview.
Only safe replica fields are returned. Provider credentials and sync internals are never
exposed by the API.
List Replicas
List the replicas available to the team.
Endpoint: GET /qsi/gather/replicas
Override the team context for this request.
curl https://api.prod.qualifi.hr/qsi/gather/replicas \
-H "x-api-key: ${ API_KEY }"
const response = await fetch ( 'https://api.prod.qualifi.hr/qsi/gather/replicas' , {
headers: { 'x-api-key' : apiKey }
});
const { data } = await response . json ();
response = requests.get(
'https://api.prod.qualifi.hr/qsi/gather/replicas' ,
headers = { 'x-api-key' : api_key}
)
data = response.json()
{
"data" : {
"replicas" : [
{
"id" : "replica-uuid" ,
"name" : "Professional Avatar" ,
"photoUrl" : "https://example.com/avatar.png" ,
"replicaId" : "replica-ext-id" ,
"organizationId" : "org-uuid" ,
"teamId" : "team-uuid" ,
"createdById" : "user-uuid" ,
"createdAt" : "2026-01-15T00:00:00Z" ,
"updatedAt" : "2026-01-15T00:00:00Z"
}
]
},
"meta" : {
"requestId" : "req-uuid" ,
"timestamp" : "2026-01-15T00:00:00Z"
}
}
Create Replica
Register a new replica for the team.
Endpoint: POST /qsi/gather/replicas
curl -X POST https://api.prod.qualifi.hr/qsi/gather/replicas \
-H "x-api-key: ${ API_KEY }" \
-H "Content-Type: application/json" \
-d '{
"name": "Professional Avatar",
"photoUrl": "https://example.com/avatar.png"
}'
const response = await fetch ( 'https://api.prod.qualifi.hr/qsi/gather/replicas' , {
method: 'POST' ,
headers: {
'x-api-key' : apiKey ,
'Content-Type' : 'application/json'
},
body: JSON . stringify ({
name: 'Professional Avatar' ,
photoUrl: 'https://example.com/avatar.png'
})
});
const { data } = await response . json ();
response = requests.post(
'https://api.prod.qualifi.hr/qsi/gather/replicas' ,
headers = {
'x-api-key' : api_key,
'Content-Type' : 'application/json'
},
json = {
'name' : 'Professional Avatar' ,
'photoUrl' : 'https://example.com/avatar.png'
}
)
data = response.json()
{
"data" : {
"replica" : {
"id" : "replica-uuid" ,
"name" : "Professional Avatar" ,
"photoUrl" : "https://example.com/avatar.png" ,
"replicaId" : "replica-ext-id" ,
"organizationId" : "org-uuid" ,
"teamId" : "team-uuid" ,
"createdById" : "user-uuid" ,
"createdAt" : "2026-01-15T00:00:00Z" ,
"updatedAt" : "2026-01-15T00:00:00Z"
}
},
"meta" : {
"requestId" : "req-uuid" ,
"timestamp" : "2026-01-15T00:00:00Z"
}
}
Interviews Configure AI interviewers that use a replica
Score Card Templates Define scoring rubrics for interviews