AI-powered crash analysis is now available on all plans — including Free.Read the crash analysis guide

Export API Reference

Pull your session, crash, event, and network data into a data warehouse, BI tool, or custom pipeline using your project API key. All export endpoints return paginated JSON or CSV.

Not for ingestion. These endpoints are read-only and designed for data export. To send data from your app, use the Ingestion API.

Authentication

Use the same project API key as the Ingestion API — passed as a Bearer token.

Authorization: Bearer bp_your_api_key_here

Base URL

https://api.bugspulse.com/export

Common parameters

All endpoints share these query parameters:

ParamDefaultDescription
page1Page number (1-based)
limit100Rows per page — max 1,000
formatjsonjson or csv — csv returns a file download
Export endpoints are rate-limited to 60 requests / minute per API key.

Sessions

GET/export/sessions

Paginated list of sessions with device info, duration, and status.

Additional parameters

ParamDescription
fromISO 8601 start date (e.g. 2026-01-01)
toISO 8601 end date

Example

curl "https://api.bugspulse.com/export/sessions?from=2026-01-01&to=2026-01-31&limit=1000" \
  -H "Authorization: Bearer bp_your_key_here"

# CSV download
curl "https://api.bugspulse.com/export/sessions?format=csv&from=2026-01-01" \
  -H "Authorization: Bearer bp_your_key_here" -o sessions.csv

Response

{
  "data": [
    {
      "id": "sess_1780000000_abc123",
      "userId": "usr_123",
      "status": "completed",       // active | completed | crashed
      "platform": "ios",
      "osVersion": "17.4",
      "appVersion": "2.4.1",
      "networkType": "wifi",
      "eventCount": 42,
      "hasCrash": false,
      "hasNetworkErrors": false,
      "duration": 183000,          // milliseconds
      "startedAt": "2026-01-15T10:00:00.000Z",
      "endedAt":   "2026-01-15T10:03:03.000Z"
    }
  ],
  "total": 1500,
  "page": 1,
  "limit": 100,
  "pages": 15
}

Crashes

GET/export/crashes

All crash groups for the project with occurrence counts, affected devices, and status.

Example

curl "https://api.bugspulse.com/export/crashes?format=csv" \
  -H "Authorization: Bearer bp_your_key_here" -o crashes.csv

Response

{
  "data": [
    {
      "id": "crash_xyz",
      "message": "TypeError: Cannot read properties of undefined",
      "status": "open",            // open | acknowledged | resolved | ignored
      "isFatal": true,
      "handled": false,
      "occurrenceCount": 14,
      "affectedDevices": 9,
      "platform": "android",
      "appVersion": "2.4.1",
      "osVersion": "14",
      "firstSeenAt": "2026-01-10T08:00:00.000Z",
      "lastSeenAt":  "2026-01-15T22:14:00.000Z"
    }
  ],
  "total": 38,
  "page": 1,
  "limit": 100,
  "pages": 1
}

Events

GET/export/events

All events for a specific session in sequence order. Useful for replaying or analysing individual user journeys.

Required parameter

sessionId — the session ID to fetch events for.

Example

curl "https://api.bugspulse.com/export/events?sessionId=sess_1780000000_abc123" \
  -H "Authorization: Bearer bp_your_key_here"

Response

{
  "data": [
    {
      "id": "evt_001",
      "type": "navigate",
      "timestamp": "2026-01-15T10:00:01.000Z",
      "sequenceNumber": 0,
      "data": { "from": null, "to": "Home" }
    },
    {
      "id": "evt_002",
      "type": "custom",
      "timestamp": "2026-01-15T10:00:05.000Z",
      "sequenceNumber": 1,
      "data": { "name": "button_press", "properties": { "screen": "home" } }
    }
  ],
  "total": 42,
  "page": 1,
  "limit": 42,
  "pages": 1
}

Network logs

GET/export/network

Paginated network request logs with status codes, durations, and errors.

Additional parameters

ParamDescription
fromISO 8601 start date
toISO 8601 end date

Example

curl "https://api.bugspulse.com/export/network?from=2026-01-01&format=csv" \
  -H "Authorization: Bearer bp_your_key_here" -o network.csv

Response

{
  "data": [
    {
      "id": "req_001",
      "sessionId": "sess_1780000000_abc123",
      "method": "POST",
      "url": "https://api.yourapp.com/checkout",
      "statusCode": 500,
      "duration": 1840,
      "error": "Internal Server Error",
      "timestamp": "2026-01-15T10:00:07.000Z"
    }
  ],
  "total": 890,
  "page": 1,
  "limit": 100,
  "pages": 9
}

Data warehouse pipeline

Paginate through large datasets with a shell loop:

#!/bin/bash
API_KEY="bp_your_key_here"
BASE="https://api.bugspulse.com"

# Pull all sessions page by page
page=1
while true; do
  response=$(curl -s "$BASE/export/sessions?page=$page&limit=1000" \
    -H "Authorization: Bearer $API_KEY")
  echo "$response" >> sessions.jsonl
  pages=$(echo "$response" | jq '.pages')
  [ "$page" -ge "$pages" ] && break
  ((page++))
done

echo "Done — $pages pages exported"