Exports

List export history, check export status, and download source CSV files from completed exports.

List exports

GET /v1/exports

Returns a paginated list of exports, most recent first.

Required scope: read_exports

Parameters

ParameterTypeDefaultDescription
pageinteger1Page number.
per_pageinteger25Results per page (maximum 100).

Request

curl "https://app.simpleproductfeeds.com/v1/exports?page=1&per_page=10" \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Response

{
  "data": [
    {
      "id": "exp_567",
      "object": "export",
      "status": "completed",
      "rows_count": 1482,
      "started_at": "2026-03-09T14:25:00Z",
      "completed_at": "2026-03-09T14:30:00Z",
      "failed_at": null,
      "error_details": null,
      "has_source_csv": true,
      "created_at": "2026-03-09T14:24:00Z"
    },
    {
      "id": "exp_566",
      "object": "export",
      "status": "failed",
      "rows_count": 0,
      "started_at": "2026-03-09T12:00:00Z",
      "completed_at": null,
      "failed_at": "2026-03-09T12:01:30Z",
      "error_details": "Shopify API rate limit exceeded",
      "has_source_csv": false,
      "created_at": "2026-03-09T12:00:00Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 10,
    "total": 45,
    "total_pages": 5,
    "has_more": true
  }
}

Response fields

FieldTypeDescription
id string Unique identifier with exp_ prefix.
object string Always "export".
status string Export status: "pending", "running", "completed", "failed", or "cancelled".
rows_count integer Number of product rows in the export.
started_at string | null ISO 8601 timestamp when the export started processing.
completed_at string | null ISO 8601 timestamp when the export finished successfully.
failed_at string | null ISO 8601 timestamp when the export failed, if applicable.
error_details string | null Error message if the export failed.
has_source_csv boolean Whether a downloadable source CSV is available.
created_at string ISO 8601 timestamp when the export was created.

Export status values

StatusDescription
pendingExport is queued and waiting to start.
runningExport is currently fetching products or generating the feed.
completedExport finished successfully.
failedExport encountered an error. See error_details.
cancelledExport was stopped before completion.

Get an export

GET /v1/exports/:id

Returns a single export by ID.

Required scope: read_exports

Request

curl https://app.simpleproductfeeds.com/v1/exports/exp_567 \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

The exp_ prefix is optional — both exp_567 and 567 are accepted.

Response

Returns a single export object wrapped in data.

Errors

StatusCodeDescription
404resource_not_foundNo export found with the given ID.

Download export CSV

GET /v1/exports/:id/download

Returns a temporary presigned URL to download the source CSV for an export.

Required scope: read_exports

Request

curl https://app.simpleproductfeeds.com/v1/exports/exp_567/download \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Response

{
  "data": {
    "download_url": "https://s3.amazonaws.com/...",
    "filename": "export_567.csv",
    "expires_in": 3600
  }
}
FieldTypeDescription
download_url string Presigned S3 URL. Valid for the duration specified in expires_in.
filename string Suggested filename for the download.
expires_in integer Number of seconds until the download URL expires.

Errors

StatusCodeDescription
404resource_not_foundNo export found with the given ID.
404no_downloadThis export does not have a downloadable source CSV.