Skip to main content
GET
/
v1
/
calls
List calls
curl --request GET \
  --url https://api.osvi.ai/v1/calls \
  --header 'API-Token: <api-key>'
{
  "success": true,
  "data": [
    {
      "call_id": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
      "agent_uuid": "agent_IsZ3Q6Sf_60Eh26XQMGbz-R_og",
      "agent_name": "Appointment Reminder",
      "phone_number": "+919876543210",
      "from_number": "+911140001234",
      "status": "picked",
      "call_type": "outbound",
      "duration_seconds": 42,
      "call_ended_by": "agent",
      "call_ended_reason": "assistant-ended-call",
      "campaign_id": 7,
      "campaign_upload_id": 19,
      "tag": {
        "id": 12,
        "name": "interested",
        "color_code": "#22c55e"
      },
      "created_at": "2026-06-12T09:30:00+05:30",
      "call_picked_at": "2026-06-12T09:30:04+05:30"
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 4,
    "total_count": 87,
    "per_page": 25
  }
}

Authorizations

API-Token
string
header
required

16-character API token associated with your OSVI account. Find it in your dashboard under Settings → API.

Query Parameters

status
enum<string>

Filter by outcome. Accepts a single value or a comma-separated list.

Available options:
picked,
not_picked,
failed,
busy,
voicemail,
in_progress
agent_uuid
string

Only calls handled by this agent. Returns 404 if the agent is not on your account.

campaign_id
integer
campaign_upload_id
integer

Only calls from a specific contact upload within a campaign.

phone_number
string

Partial match on the other party's number.

call_type
enum<string>
Available options:
inbound,
outbound
start_date
string

Inclusive lower bound on call_picked_at. Accepts a date (2026-06-01, interpreted in IST) or a full ISO-8601 timestamp.

end_date
string

Inclusive upper bound on call_picked_at.

page
integer
default:1
per_page
integer
default:25

Results per page (max 100).

Response

Paginated list of calls.

success
boolean
Example:

true

data
object[]
meta
object

Pagination metadata. per_page is capped at 100.