# Get a batch report

`GET https://api.parasend.com/v1/batches/{id}/report`

Source: https://parasend.com/docs/api/batches/report

Authentication: `Authorization: Bearer <API key>` (a `ps_test_` key in test mode, `ps_live_` in live mode).

The batch's funnel report, as JSON, or as CSV with `Accept: text/csv`.

## Path parameters

- `id` (string, required): The batch's ID, starting `bat_`.

## Example: Get a batch report

```bash
curl "https://api.parasend.com/v1/batches/bat_01M6R27T8SXWNM911FS53W4S9F/report" \
  -H "Authorization: Bearer $PARASEND_KEY"
```

```js
const res = await fetch('https://api.parasend.com/v1/batches/bat_01M6R27T8SXWNM911FS53W4S9F/report', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.PARASEND_KEY}`,
  },
});
const data = await res.json();
```

## Response 200

The report.

```json
{
  "object": "batch_report",
  "batch": {
    "id": "bat_01M6R27T8SXWNM911FS53W4S9F",
    "object": "batch",
    "name": "November notices, first run",
    "status": "sending",
    "sending_mode": "on_finalize",
    "follow_up_policy_id": null,
    "allow_policy_override": true,
    "follow_ups_paused": false,
    "scheduled_at": null,
    "send_window": {
      "tz": "Atlantic/Reykjavik",
      "end": "21:00",
      "start": "09:00"
    },
    "defaults": {},
    "files": [],
    "accepting_deliveries": false,
    "counts": {
      "total": 2,
      "delivered": 0,
      "ended": 0,
      "in_progress": 2
    },
    "created_by": {
      "user_id": "usr_01M6R27SYD4B50414S0BZ4KBKR",
      "via": "api_key"
    },
    "livemode": false,
    "created": "2026-11-06T09:15:05.881Z",
    "sent_out_at": "2026-11-06T09:15:05.922Z",
    "following_up_at": null,
    "completed_at": null,
    "cancelled_at": null
  },
  "follow_up_funnel": {
    "as_of": "2026-11-06T09:15:05.930Z",
    "policy_id": null,
    "total": 2,
    "not_yet_notified": 2,
    "notice": {
      "delivered": 0,
      "in_progress": 0,
      "unreachable": 0,
      "expired": 0,
      "revoked": 0,
      "not_matched": 0,
      "sent": 0,
      "bounced": 0,
      "renotified_via_lookup": 0,
      "renotified_delivered": 0,
      "email_opened": 0
    },
    "reminders": [],
    "outcome": {
      "delivered": 0,
      "in_progress": 2,
      "unreachable": 0,
      "expired": 0,
      "revoked": 0,
      "not_matched": 0
    },
    "confirmed_direct": 0,
    "rescued_by_followups": 0,
    "delivered_total": 0
  },
  "funnel": {
    "total": 2,
    "notified": 0,
    "opened": 0,
    "authenticated": 0,
    "confirmed_direct": 0,
    "rescued_by_followups": 0,
    "delivered_total": 0,
    "expired": 0,
    "revoked": 0,
    "auth_failed": 0,
    "bounced": 0,
    "paper_pending": 0,
    "needs_address": 0,
    "bounce_rate": 0,
    "median_time_to_confirm": null
  },
  "kpis": {
    "delivered": 0,
    "delivered_pct": 0,
    "in_progress": 2,
    "median_time_to_delivery": null,
    "bounce_rate": 0,
    "rescued_by_followups": 0,
    "spend": {
      "sms_messages": 0,
      "lookups": 0,
      "amount": 0,
      "currency": "ISK",
      "estimated": true
    },
    "vs_previous": null
  }
}
```

Errors: one shape, `{"error": {type, code, message, param, request_id}}`; every code is listed at https://parasend.com/docs/errors.
