Skip to main content
GET
/
v1
/
export
/
jobs
/
:id
Get Export Job
curl --request GET \
  --url https://api.shoal.xyz/v1/export/jobs/:id \
  --header 'Authorization: Bearer <token>'
Use this route to inspect the current status and fulfillment metadata for a specific export request.

Access

  • Access layer: premium
  • Plan floor: enterprise
  • Surface: export

Path Parameters

ParameterTypeRequiredDescription
idstringYesExport job id

Request

cURL
curl -X GET "https://api.shoal.xyz/v1/export/jobs/d9d2a2e6-2df2-45ef-9f08-2e1ab36ef8e0" \
  -H "Authorization: Bearer YOUR_ENTERPRISE_API_KEY"

Response (200)

{
  "data": {
    "id": "d9d2a2e6-2df2-45ef-9f08-2e1ab36ef8e0",
    "appUserId": "app_user_123",
    "apiKeyId": 17,
    "scope": "replay.global",
    "format": "jsonl",
    "status": "requested",
    "requestedParams": {
      "since": "2026-04-01T00:00:00.000Z",
      "until": "2026-04-10T00:00:00.000Z",
      "category": null,
      "includeEvidence": true,
      "organizationIds": []
    },
    "note": "Internal warehouse backfill for April incident review",
    "downloadUrl": null,
    "expiresAt": null,
    "error": null,
    "createdAt": "2026-04-11T20:15:00.000Z",
    "updatedAt": "2026-04-11T20:15:00.000Z"
  }
}

Notes

  • Export jobs are account-scoped.
  • downloadUrl and expiresAt remain null until fulfillment is complete.
  • This route is the right place to poll status instead of replaying bulk data routes.

Errors

  • 404 if the export job does not exist for the authenticated account
  • 403 if the API key does not meet the enterprise plan floor
  • 500 on internal server error