Channel Datafeeds

Manage datafeeds within a channel — create, update, delete, and check status of Google Merchant Center datafeeds.

Datafeeds are nested under a channel and represent individual feed configurations for a specific market (country + language). Currently supported for Google Merchant Center.

List datafeeds

GET /v1/channels/:slug/datafeeds

Returns all datafeeds for a channel.

Required scope: read_channels

Request

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

Response

{
  "data": [
    {
      "id": 1,
      "object": "datafeed",
      "datafeed_id": "1234567890",
      "datafeed_name": "US Products",
      "hour": 14,
      "time_zone": "America/New_York",
      "fetch_url": "https://feeds.simpleproductfeeds.com/abc123/gmcfeed.txt",
      "targets": [
        {"country": "US", "language": "en"}
      ],
      "created_at": "2026-01-10T08:00:00Z",
      "updated_at": "2026-03-01T10:00:00Z"
    }
  ]
}

Datafeed response fields

FieldTypeDescription
id integer Unique identifier.
object string Always "datafeed".
datafeed_id string | null External ID in the channel platform (e.g., Google Merchant Center datafeed ID).
datafeed_name string Display name for this datafeed.
hour integer Hour of day (0-23) when the datafeed is scheduled to fetch.
time_zone string IANA time zone for the fetch schedule.
fetch_url string | null URL the channel fetches product data from.
targets array Target markets, each with country and language codes.
created_at string ISO 8601 timestamp.
updated_at string ISO 8601 timestamp.

Get a datafeed

GET /v1/channels/:slug/datafeeds/:id

Returns a single datafeed.

Required scope: read_channels

Request

curl https://app.simpleproductfeeds.com/v1/channels/google/datafeeds/1 \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Errors

StatusCodeDescription
404resource_not_foundNo datafeed found with the given ID.

Create a datafeed

POST /v1/channels/:slug/datafeeds

Creates a new datafeed in the channel.

Required scope: write_channels

Parameters

ParameterTypeRequiredDescription
datafeed_namestringYesDisplay name for the datafeed.
hourintegerYesHour of day (0-23) for scheduled fetch.
time_zonestringYesIANA time zone (e.g., America/New_York).
targetsarrayNoTarget markets. Defaults to [{"country": "US", "language": "en"}].

Request

curl -X POST https://app.simpleproductfeeds.com/v1/channels/google/datafeeds \
  -H "Authorization: Bearer spf_live_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "datafeed_name": "EU Products",
    "hour": 6,
    "time_zone": "Europe/London",
    "targets": [
      {"country": "GB", "language": "en"},
      {"country": "DE", "language": "de"}
    ]
  }'

Response

Returns the created datafeed with status 201 Created.

Errors

StatusCodeDescription
401oauth_requiredGoogle OAuth is not connected. Connect the channel first.
422validation_failedInvalid datafeed parameters.

Update a datafeed

PATCH /v1/channels/:slug/datafeeds/:id

Updates an existing datafeed.

Required scope: write_channels

Parameters

All parameters are optional. Include only the ones you want to change.

ParameterTypeDescription
datafeed_namestringUpdated display name.
hourintegerUpdated fetch hour (0-23).
time_zonestringUpdated IANA time zone.
targetsarrayUpdated target markets.

Request

curl -X PATCH https://app.simpleproductfeeds.com/v1/channels/google/datafeeds/1 \
  -H "Authorization: Bearer spf_live_sk_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"hour": 8, "datafeed_name": "US Products - Morning"}'

Response

Returns the updated datafeed.

Errors

StatusCodeDescription
404resource_not_foundNo datafeed found with the given ID.
422validation_failedInvalid datafeed parameters.

Delete a datafeed

DELETE /v1/channels/:slug/datafeeds/:id

Permanently deletes a datafeed from the channel.

Required scope: write_channels

Request

curl -X DELETE https://app.simpleproductfeeds.com/v1/channels/google/datafeeds/1 \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Returns 204 No Content on success.

Errors

StatusCodeDescription
404resource_not_foundNo datafeed found with the given ID.

Get datafeed status

GET /v1/channels/:slug/datafeeds/:id/status

Returns the processing status and item counts from the channel platform.

Required scope: read_channels

Request

curl https://app.simpleproductfeeds.com/v1/channels/google/datafeeds/1/status \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Response

{
  "data": {
    "datafeed_id": "1234567890",
    "processing_status": "success",
    "items_total": 1482,
    "items_valid": 1450,
    "last_upload_date": "2026-03-09"
  }
}

Errors

StatusCodeDescription
401oauth_requiredGoogle OAuth is not connected.

Get datafeed issues

GET /v1/channels/:slug/datafeeds/:id/issues

Returns product issues reported by the channel platform.

Required scope: read_channels

Request

curl https://app.simpleproductfeeds.com/v1/channels/google/datafeeds/1/issues \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Response

{
  "data": {
    "total_products": 1482,
    "products_with_issues": 32,
    "issues": [
      {
        "severity": "warning",
        "title": "Missing GTIN",
        "description": "32 products are missing a GTIN value.",
        "affected_items": 32
      }
    ]
  }
}

Trigger immediate fetch

POST /v1/channels/:slug/datafeeds/:id/fetch_now

Triggers an immediate fetch of the datafeed by the channel platform, outside the regular schedule.

Required scope: write_channels

Request

curl -X POST https://app.simpleproductfeeds.com/v1/channels/google/datafeeds/1/fetch_now \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Response

{
  "data": {
    "message": "Fetch triggered. It may take a few minutes for the channel to process the datafeed."
  }
}

Get datafeed options

GET /v1/channels/:slug/datafeeds/options

Returns available options for creating or updating datafeeds — valid hours, time zones, and countries.

Required scope: read_channels

Request

curl https://app.simpleproductfeeds.com/v1/channels/google/datafeeds/options \
  -H "Authorization: Bearer spf_live_sk_your_key_here"

Response

{
  "data": {
    "hours": [
      {"label": "12:00 AM", "value": 0},
      {"label": "1:00 AM", "value": 1}
    ],
    "time_zones": [
      {"label": "Eastern Time (US & Canada)", "value": "America/New_York"},
      {"label": "Pacific Time (US & Canada)", "value": "America/Los_Angeles"}
    ],
    "countries": [
      {"label": "United States", "value": "US"},
      {"label": "United Kingdom", "value": "GB"}
    ]
  }
}