Upload a recording for analysis
curl --request POST \
--url https://api.pineyard.ai/speech/calls \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--header 'Idempotency-Key: <idempotency-key>' \
--form file=@example-file \
--form 'repId=<string>' \
--form 'scorecardId=<string>'const form = new FormData();
form.append('file', '<string>');
form.append('repId', '<string>');
form.append('scorecardId', '<string>');
const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', Authorization: 'Bearer <token>'}
};
options.body = form;
fetch('https://api.pineyard.ai/speech/calls', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pineyard.ai/speech/calls"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = {
"repId": "<string>",
"scorecardId": "<string>"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text){
"id": "<string>",
"status": "UPLOADING",
"fileName": "<string>",
"fileSizeBytes": 123,
"durationSeconds": 123,
"score": 123,
"outcomeLabel": "<string>",
"summary": "<string>",
"errorMessage": "<string>",
"callDate": "<string>",
"createdAt": "<string>",
"completedAt": "<string>",
"rep": {
"id": "<string>",
"name": "<string>"
},
"scorecard": {
"id": "<string>",
"name": "<string>"
}
}Recordings
Upload a recording for analysis
POST
/
speech
/
calls
Upload a recording for analysis
curl --request POST \
--url https://api.pineyard.ai/speech/calls \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--header 'Idempotency-Key: <idempotency-key>' \
--form file=@example-file \
--form 'repId=<string>' \
--form 'scorecardId=<string>'const form = new FormData();
form.append('file', '<string>');
form.append('repId', '<string>');
form.append('scorecardId', '<string>');
const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', Authorization: 'Bearer <token>'}
};
options.body = form;
fetch('https://api.pineyard.ai/speech/calls', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.pineyard.ai/speech/calls"
files = { "file": ("example-file", open("example-file", "rb")) }
payload = {
"repId": "<string>",
"scorecardId": "<string>"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>"
}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text){
"id": "<string>",
"status": "UPLOADING",
"fileName": "<string>",
"fileSizeBytes": 123,
"durationSeconds": 123,
"score": 123,
"outcomeLabel": "<string>",
"summary": "<string>",
"errorMessage": "<string>",
"callDate": "<string>",
"createdAt": "<string>",
"completedAt": "<string>",
"rep": {
"id": "<string>",
"name": "<string>"
},
"scorecard": {
"id": "<string>",
"name": "<string>"
}
}Required scope:
speech.upload
Idempotency: an Idempotency-Key header is required when calling with an API key. See Idempotency.
Requires speech analysis enabled for your workspace. Otherwise the request is refused; see Errors.
Authorizations
Your API key, e.g. pk_live_xxxxxxxxxxxxxxxxxxxxxxxx.
Headers
Unique value (e.g. a UUID) per action, up to 200 printable ASCII characters. Reuse it only to retry the same request; the first response is replayed for 24 hours.
Maximum string length:
200Example:
"f1d2c3b4-0000-4000-8000-000000000000"
Body
multipart/form-data
Response
Accepted
Available options:
UPLOADING, PROCESSING, COMPLETED, FAILED, INGEST_FAILED Show child attributes
Show child attributes
Show child attributes
Show child attributes

