Feed Runs

View per-feed run history, check the latest run status, and download feed output files.

A feed run is the output of applying a feed’s rules and transformations to an extract. Each time an extract completes, every active feed generates a new run. The latest completed run determines the published feed file at the feed’s URL.

Runs are scoped to a specific feed — use the feed ID in the path to access a feed’s run history.


List runs

GET /v1/feeds/:feed_id/runs

Returns a paginated list of runs for a specific feed, most recent first.

Required scope: read_exports

Parameters

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

Request

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

Response

{
  "data": [
    {
      "id": "run_234",
      "object": "run",
      "feed_id": "feed_1",
      "status": "completed",
      "has_output": true,
      "created_at": "2026-03-09T15:05:00Z",
      "completed_at": "2026-03-09T15:05:30Z"
    },
    {
      "id": "run_233",
      "object": "run",
      "feed_id": "feed_1",
      "status": "completed",
      "has_output": true,
      "created_at": "2026-03-08T14:05:00Z",
      "completed_at": "2026-03-08T14:05:25Z"
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 10,
    "total": 45,
    "total_pages": 5,
    "has_more": true
  }
}

Run response fields

FieldTypeDescription
id string Unique identifier with run_ prefix.
object string Always "run".
feed_id string ID of the feed this run belongs to (with feed_ prefix).
status string Run status: "running", "completed", or "failed".
has_output boolean Whether a downloadable output file is available.
created_at string ISO 8601 timestamp when the run started.
completed_at string | null ISO 8601 timestamp when the run finished.

Run status values

StatusDescription
runningFeed transformations are being applied to the extract data.
completedRun finished successfully. The feed output file is available.
failedRun encountered an error during transformation.

Get a run

GET /v1/feeds/:feed_id/runs/:id

Returns a single run by ID.

Required scope: read_exports

Request

curl https://app.simpleproductfeeds.com/v1/feeds/feed_1/runs/run_234 \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

The run_ prefix is optional — both run_234 and 234 are accepted.

Response

Returns a single run object wrapped in data.

Errors

StatusCodeDescription
404resource_not_foundNo run found with the given ID for this feed.

Get latest run

GET /v1/feeds/:feed_id/runs/latest

Returns the most recent completed run for a feed. This is the run that produced the currently published feed file.

Required scope: read_exports

Request

curl https://app.simpleproductfeeds.com/v1/feeds/feed_1/runs/latest \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Response

Returns a single run object wrapped in data.

Errors

StatusCodeDescription
404resource_not_foundNo completed runs found for this feed.

Download feed output

GET /v1/feeds/:feed_id/runs/latest/download

Returns a temporary presigned URL to download the output file from the latest completed run. This is the fully transformed feed file — the same content served at the feed’s public URL.

Required scope: read_exports

Request

curl https://app.simpleproductfeeds.com/v1/feeds/feed_1/runs/latest/download \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Response

{
  "data": {
    "download_url": "https://s3.amazonaws.com/...",
    "filename": "feed_1.txt",
    "expires_in": 300
  }
}
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 (300).

Errors

StatusCodeDescription
404resource_not_foundNo completed runs found for this feed, or the output file is not available.