Cloud Call Center Software for Pakistan One business number, multi-agent calling, IVR, recordings, and analytics in one system.
Developer platform

The endpoints behind the Robo Connect softphone.

Everything the Robo Connect Dialer for Windows and Android fetches after an agent signs in: SIP setup, agents and presence, live calls, call history, recordings, transcripts, call notes, callbacks and contacts.

Every request runs as a signed-in agent

Requests use the agent's portal session, so each agent sees only their company's data and every write is attributed to them. Keep session cookies, SIP passwords and recordings on trusted devices and never in public frontend code or logs.

How requests work

Headers the softphone sends

  1. Keep the cookie jar.Reuse the session and XSRF-TOKEN cookies from sign-in on every request.
  2. Send Origin and Referer.https://portal.roboconnect.pk on every request, with X-Requested-With: XMLHttpRequest and a normal User-Agent. Without Origin, /api routes ignore the session.
  3. Add CSRF on writes.POST, PUT and PATCH send X-XSRF-TOKEN (the URL-decoded XSRF-TOKEN cookie) and Accept: application/json. Don't follow a write's redirect.
Save a call note after hang-up
PUT /calls/1504956/note
Origin: https://portal.roboconnect.pk
X-Requested-With: XMLHttpRequest
X-XSRF-TOKEN: <decoded XSRF-TOKEN cookie>
Accept: application/json
Content-Type: application/json

{ "notes": "Disposition: Interested\nSend pricing by email" }

POST /calls/1504956/callbacks
{ "assigned_to_user_id": 321,
  "due_at": "2026-10-21T10:00",
  "note": "Call back with pricing" }
01 / Session

Sign in as the agent

The softphone signs in with the agent's own portal email and password and keeps the session cookie. Every later request reuses that cookie.

GET/login

Sets the session and XSRF-TOKEN cookies. The page's data-page attribute carries the current Inertia version.

POST/login

Signs the agent in. Success is a 302 redirect to /.

email, passwordstring, required
The agent's portal login.
rememberboolean
Keep the session.
GET/api/sip-config

Confirms the session and returns the agent's SIP account: sip_username, sip_password, extension_number, wss_url, transport, ice_servers, dnd.

GET/companies/{companyId}/dialer-info/{userId}

Richer provisioning: name, company, extension, SIP host, port and transport, caller ID, brand name.

02 / Agents & presence

See who is available

Team rosters, presence and Do-Not-Disturb for the agent's company.

GET/monitor/live/{companyId}

Agents (name, extension, department, sip_status online|offline, status idle|on-call, dnd, today's call stats), liveCalls[] and recentActivity[].

GET/phone/agent-statuses

Lightweight presence map: { statuses: { extension: online|offline }, dnd }.

POST/phone/dnd

Set the signed-in agent's Do-Not-Disturb. An explicit set, not a toggle.

dndboolean, required
true or false.
03 / Live calls

Follow calls in progress

Live call data for wallboards and supervisor views. Poll every 2 to 5 seconds.

GET/api/live-calls

Active calls with direction, numbers, extension and agent, plus serverTime.

GET/monitor/live/{companyId}

The same live calls together with the agent roster (see Agents).

04 / Call history

Read and find call records

Call records include direction, numbers, start/answer/end time, duration, billable duration, disposition, cost, extension, notes, follow-up status, transcript status and recording availability.

GET/calls/history

Call records, 50 per page, as Inertia page props (send X-Inertia: true and X-Inertia-Version) in props.cdrs { data[], last_page }.

pageinteger
Page number.
search, date_from, date_to, disposition, directionstring
Same filters as the portal Call History screen.
GET/calls/{id}

One call as JSON: notes, follow_up_status, transcript, ai_summary, recording_exists.

GET/phone/timeline/{phone}

Every call with a number (calls[]) plus the matching contact. The softphone uses it to find the record of a call that just ended by matching its start time.

GET/calls/{id}/timeline

Timeline events (notes, comments, callbacks, status changes), teammates, tags and follow_up_status.

05 / Recordings & transcripts

Play, download and transcribe calls

Recordings are WAV (8 kHz mono, both sides mixed). Transcription runs on the platform.

GET/calls/recordings/{id}

Streams or downloads the recording (audio/wav, supports Range requests). 404 when the call has no recording.

POST/calls/{id}/transcribe

Start transcription of the call recording.

GET/calls/{id}/transcript-status

Poll every 5 seconds: transcript_status (processing, completed, failed), transcript, ai_summary, ai_analysis.

06 / Notes, status & callbacks

Write the call outcome back

After a call the softphone saves the agent's disposition note, follow-up status and callback on the call record, attributed to that agent.

PUT/calls/{id}/note

Save the post-call (disposition) note.

notesstring
e.g. "Disposition: Interested - send pricing".
PUT/calls/{id}/status

Set the follow-up status.

statusstring, required
open, in_progress, callback_scheduled, resolved or closed.
POST/calls/{id}/callbacks

Schedule a callback on the call.

assigned_to_user_idinteger, required
Portal user who calls back (usually the agent).
due_atstring, required
Local date-time, YYYY-MM-DDTHH:mm.
notestring
What the callback is about.
PATCH/calls/callbacks/{callbackId}

Complete, cancel or reopen a callback.

statusstring, required
done, cancelled or pending.
POST/calls/{id}/comments

Add a timeline comment.

bodystring, required
Comment text.
mentioned_user_idsinteger[]
Teammates to notify.
PUT/calls/{id}/tags

Replace the call's tags.

tag_idsinteger[]
Tag ids.
07 / Contacts

Look up and sync contacts

Caller lookup for incoming calls and two-way contact sync with the softphone.

GET/phone/lookup/{phone}

Who is calling: { found, contact }.

GET/contacts

Company contacts as Inertia page props (props.contacts).

POST/contacts

Create a contact from the softphone.

phonestring, required
Contact number.
accessstring, required
shared (whole company) or private (this agent).
name, email, company_name, role, notesstring
Optional details.
PUT/contacts/{id}

Update a contact (same fields).

POST/contacts/{id}/notes

Add a note to a contact.

contentstring, required
Note text.
08 / Responses

Status codes

StatusMeaningRecommended action
200Request completedRead the JSON body (or props for Inertia pages).
302Redirect after a write, or to /loginA write that redirects anywhere except /login succeeded. A redirect to /login means the session expired: sign in again.
401Session not acceptedSign in again and send the Origin header.
404Unknown recordCheck the id. A call record appears a few seconds after the call ends.
409Inertia version changedRepeat the request with the X-Inertia-Version from the response.
419CSRF token expiredRe-read the XSRF-TOKEN cookie and send it URL-decoded as X-XSRF-TOKEN.
422Validation failedThe errors object names each missing or invalid field.
429Too many requestsBack off and retry. Poll live data no faster than every 2 seconds.
Developer Support

Building on the Robo Connect softphone?

Tell us what you are connecting. We will confirm the features on your account and help you go live.

Discuss Your Integration