Documentation Index
Fetch the complete documentation index at: https://docs.objectionly.com/llms.txt
Use this file to discover all available pages before exploring further.
Base URL
https://api.objectionly.com
Endpoint
POST /api/call-processing/queue
Authentication
X-Objectionly-Proxy-Token
Required only when your workspace is configured to require a proxy token.
Optional source header. Supported values match the source body field. If
both are sent, the body source value takes precedence.
Request Body
title
string
default:"Discovery call - Acme"
required
Call title.
repEmail
string
default:"rep@acme.com"
required
Rep or host identity. This is usually an email address, but it can also be a
unique rep identifier configured in Objectionly.
callDate
string
default:"2026-01-31T18:30:00Z"
required
ISO-8601 timestamp.
Plain transcript text. This is the preferred text field for new integrations.
Absolute http(s) URL for a remote audio or video file. Can be used by
itself or together with transcriptText.
Multipart file upload for direct media ingestion. file and mediaUrl
cannot be sent together.
Rep or host display name.
Duration in minutes. Must be a positive integer. Defaults to 30 if omitted.
Additional context to store with the call.
Used for de-duplication/idempotency across calls.
Optional source value. Supported values: manually, firefliesai,
fathom, zoom, gohighlevel, zapier, custom_api.
Bypasses early short-call filtering when set to true. For manual imports,
this defaults to true if omitted.
Optional list of call attendees. Send up to 10 attendee objects.
Provide at least one ingest input: transcriptText, mediaUrl, or file.
Attendees should be sent as an array. Each attendee can include name, phone,
email, and uniqueId.
Example with one attendee:
{
"attendees": [
{
"name": "Alex Buyer",
"phone": "+15551234567",
"email": "alex@example.com",
"uniqueId": "crm-contact-id"
}
]
}
Attendee fields are optional. Objectionly trims attendee values, stores blank
values as null, and skips attendee objects where every field is blank.
Media-only requests are accepted. When you upload a file or provide a
mediaUrl without transcript text, Objectionly stores the media and
transcribes it later during processing.
Supported media types are .mp3, .wav, .m4a, and .mp4, mapped to
audio/mpeg, audio/wav, audio/m4a, and video/mp4.
Examples
{
"title": "Discovery call - Acme",
"transcriptText": "Full transcript text...",
"repEmail": "rep@acme.com",
"repName": "Alex Rep",
"callDate": "2026-01-31T18:30:00Z",
"callDuration": 42,
"description": "Optional summary or metadata...",
"externalMeetingId": "optional-idempotency-key",
"source": "custom_api",
"attendees": [
{
"name": "Alex Buyer",
"phone": "+15551234567",
"email": "alex@example.com",
"uniqueId": "crm-contact-id"
}
]
}
{
"title": "Remote recording",
"mediaUrl": "https://cdn.example.com/calls/discovery-call.mp4",
"repEmail": "rep@acme.com",
"repName": "Alex Rep",
"callDate": "2026-01-31T18:30:00Z",
"callDuration": 42,
"source": "custom_api"
}
{
"title": "Remote recording with transcript",
"transcriptText": "Transcript already captured by the upstream system.",
"mediaUrl": "https://cdn.example.com/calls/discovery-call.mp3",
"repEmail": "rep@acme.com",
"repName": "Alex Rep",
"callDate": "2026-01-31T18:30:00Z",
"source": "firefliesai"
}
Send a multipart/form-data request with form fields like title,
repEmail, callDate, optional transcriptText, and a file part.
To include attendees in a multipart request, send an attendees form field
containing a JSON-encoded array, such as
[{"name":"Alex Buyer","phone":"+15551234567"}].Do not manually set the multipart Content-Type header; your HTTP client
should generate it with the boundary.
Responses
Queued (200)
Filtered Out (200)
Duplicate (200)
Unique identifier for the queued call.
Queue status for the call.
Indicates the call was queued successfully.
{
"callId": "uuid",
"status": "queued",
"queued": true
}
Unique identifier for the call record.
filtered_out when the call is stopped during ingest, such as for a
short call.
false when the call was stored but not queued for worker processing.
{
"callId": "uuid",
"status": "filtered_out",
"queued": false
}
Existing call identifier.
Current status of the existing call.
Returned when externalMeetingId matches an existing call.
{
"callId": "uuid",
"status": "queued",
"duplicate": true
}
In the duplicate case, status is the existing call’s current status.
mediaUrl must be an absolute http(s) URL.
- In production,
mediaUrl must use https.
- The URL must resolve to a public internet address.
- Redirects are allowed, but only up to the configured limit.
- Maximum media size is 500 MB.
- Unsupported media types return
415 Unsupported Media Type.
Errors
| Status | Description |
|---|
| 400 | Missing or invalid fields such as title, repEmail, callDate, callDuration, forceImport, source, malformed mediaUrl, malformed multipart attendees, more than 10 attendees, or sending file and mediaUrl together |
| 401 | Missing or invalid authentication |
| 413 | Uploaded or remote media exceeds the 500 MB limit |
| 415 | Unsupported media type |
| 422 | mediaUrl could not be fetched or failed remote URL safety checks |
| 500 | Failed to store media or queue the call |