# List Missed Calls

> GET /missed-calls - page through missed calls on your numbers with filters for number, caller, date and webhook delivery status.

Source: https://edesy.in/docs/missed-call/api-reference/list-missed-calls

```
GET /v1/missed-calls
```

Missed calls on your numbers, newest first, with the webhook delivery outcome for each. Calls are listed whether or not you have a webhook.

## Query parameters

| Name | Type | Description |
|---|---|---|
| `phone_number_id` | uuid | Only calls to this number of yours |
| `from` | string | Caller number, or part of it, to search for |
| `status` | string | Delivery status: `delivered`, `failed`, `pending`, `withheld`, `not_sent` |
| `start_date` | string | Calls on or after this time. RFC 3339, or `YYYY-MM-DD` (start of that IST day) |
| `end_date` | string | Calls on or before this time. RFC 3339, or `YYYY-MM-DD` (the whole IST day included) |
| `page` | integer | Page number from 1. Default 1 |
| `per_page` | integer | Rows per page, 1 to 200. Default 50 |

## Example

```bash
curl "https://voice-api.edesy.in/v1/missed-calls?start_date=2026-10-01&per_page=50" \
  -H "Authorization: Bearer vp_your_api_key"
```

```json
{
  "data": [
    {
      "call_sid": "CA_e5353a30-5f34-4582-bb9c-830ab7b513ef",
      "from": "+918273237781",
      "to": "+919484958085",
      "phone_number_id": "5e229f03-af3c-47f5-be45-5b11583a7c55",
      "received_at": "2026-10-18T07:50:33Z",
      "delivery_status": "delivered",
      "response_code": 200,
      "attempts": 1
    }
  ],
  "meta": { "page": 1, "per_page": 50, "total": 1 }
}
```

## Fields

| Field | Description |
|---|---|
| `call_sid` | Unique id of the call; the same value as in the webhook |
| `from` | Caller, E.164 |
| `to` | Your number that was called |
| `phone_number_id` | Id of your number |
| `received_at` | When the call came in, UTC |
| `delivery_status` | `delivered`; `failed` (all retries used, you can replay it); `pending` (still retrying); `withheld` (wallet too low when the call came in); `not_sent` (no webhook was set) |
| `response_code` | HTTP status your webhook returned; `0` if none |
| `attempts` | Delivery attempts made |
| `delivery_error` | Last delivery error, when there is one (omitted otherwise) |

An invalid filter returns `400`, for example `status must be one of delivered, failed, pending, withheld, not_sent`.
