Feeds

List feeds, get feed status, and browse transformed feed products with applied rules and mappings.

A feed is an independently configured product data output. Each feed has its own rules, settings, column mappings, and published URL. Every shop starts with a primary feed and can create additional feeds for different languages or markets.

Feed types

TypeDescription
primaryThe default feed created when you install the app. Every shop has exactly one.
languageA translation feed for a specific locale (e.g., French, German). Uses Shopify’s translation data.
marketA feed targeting a specific market with independent product selection and configuration.

List feeds

GET /v1/feeds

Returns all active feeds for your shop.

Required scope: read_feeds

Request

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

Response

{
  "data": [
    {
      "id": "feed_1",
      "object": "feed",
      "feed_type": "primary",
      "locale": null,
      "display_name": "Primary",
      "feed_url": "https://feeds.simpleproductfeeds.com/abc123/gmcfeed.txt",
      "product_count": 1482,
      "last_run_at": "2026-03-09T14:30:00Z",
      "created_at": "2026-01-10T08:00:00Z"
    },
    {
      "id": "feed_2",
      "object": "feed",
      "feed_type": "language",
      "locale": "fr",
      "display_name": "French",
      "feed_url": "https://feeds.simpleproductfeeds.com/abc123/gmcfeed-fr.txt",
      "product_count": 1482,
      "last_run_at": "2026-03-09T14:30:00Z",
      "created_at": "2026-02-15T10:00:00Z"
    },
    {
      "id": "feed_3",
      "object": "feed",
      "feed_type": "market",
      "locale": null,
      "display_name": "Canada Feed",
      "feed_url": "https://feeds.simpleproductfeeds.com/abc123/gmcfeed-canada-feed.txt",
      "product_count": 850,
      "last_run_at": "2026-03-09T14:30:00Z",
      "created_at": "2026-03-01T12:00:00Z"
    }
  ]
}

Response fields

FieldTypeDescription
id string Unique identifier with feed_ prefix.
object string Always "feed".
feed_type string Feed type: "primary", "language", or "market".
locale string | null ISO locale code for language feeds (e.g., "fr", "de"). Null for primary and market feeds.
display_name string Human-readable name for the feed.
feed_url string | null Public URL of the feed output file. Null if never generated.
product_count integer Number of products in this feed.
last_run_at string | null ISO 8601 timestamp of the last successful run.
created_at string ISO 8601 timestamp when the feed was created.

Get a feed

GET /v1/feeds/:id

Returns a feed’s current status, product count, public feed URL, and last generation details.

Required scope: read_feeds

Request

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

The feed_ prefix is optional — both feed_1 and 1 are accepted.

Response

{
  "data": {
    "object": "feed",
    "status": "fresh",
    "product_count": 1482,
    "feed_url": "https://feeds.simpleproductfeeds.com/abc123/gmcfeed.txt",
    "last_generated_at": "2026-03-09T14:30:00Z",
    "last_export_id": "ext_567"
  }
}

Response fields

FieldTypeDescription
object string Always "feed".
status string Feed status: "fresh" (up to date), "generating" (extract in progress), or "never_generated" (no extracts yet).
product_count integer Number of products in the active feed. 0 if no feed data exists.
feed_url string | null Public URL of the feed output file. Null if never generated.
last_generated_at string | null ISO 8601 timestamp of the last successful feed generation.
last_export_id string | null ID of the last extract (with ext_ prefix). Null if never extracted.

Feed status values

StatusDescription
freshThe feed is up to date. No extract is running.
generatingAn extract is currently in progress.
never_generatedNo extracts have been created yet.

Errors

StatusCodeDescription
404resource_not_foundNo feed found with the given ID.

List feed products

GET /v1/feeds/:id/products

Returns transformed feed products with all rules, mappings, and transformations applied. This shows exactly what appears in your published feed, including excluded products and exclusion reasons.

Required scope: read_products

Parameters

ParameterTypeDefaultDescription
pageinteger1Page number (minimum 1).
per_pageinteger25Results per page (maximum 100).
searchstringSearch transformed product data.
sortstringColumn name to sort by.
orderstringascSort direction: asc or desc.

Request

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

Response

{
  "data": [
    {
      "object": "feed_product",
      "excluded": false,
      "excluded_reason": null,
      "fields": {
        "id": "shopify_US_8012345678901_44012345678901",
        "title": "Blue T-Shirt - Medium",
        "description": "A comfortable blue cotton t-shirt.",
        "link": "https://my-store.myshopify.com/products/blue-t-shirt?variant=44012345678901",
        "image_link": "https://cdn.shopify.com/s/files/1/example/shirt-blue.jpg",
        "price": "29.99 USD",
        "sale_price": "29.99 USD",
        "availability": "in_stock",
        "brand": "My Brand",
        "google_product_category": "Apparel & Accessories > Clothing > Shirts & Tops"
      }
    },
    {
      "object": "feed_product",
      "excluded": true,
      "excluded_reason": "Out of stock",
      "fields": {
        "id": "shopify_US_8012345678902_44012345678902",
        "title": "Red T-Shirt - Large",
        "availability": "out_of_stock"
      }
    }
  ],
  "meta": {
    "page": 1,
    "per_page": 5,
    "total": 1482,
    "total_pages": 297,
    "has_more": true
  }
}

Response fields

FieldTypeDescription
object string Always "feed_product".
excluded boolean Whether this product is excluded from the feed by a rule.
excluded_reason string | null Reason for exclusion, if excluded.
fields object All feed column values for this product after transformations are applied.

Errors

StatusCodeDescription
404resource_not_foundNo feed found with the given ID.
422no_feedNo feed data has been generated for this feed yet.