Channels
List channels and retrieve channel details using the Platform API.
Channels are the export destinations for your data — for example, Google Shopping or Amazon.
Get
Use a GET request to list all channels for a site or retrieve a specific channel.
curl https://platform-api.productsup.io/platform/v2/sites/123/channelscurl https://platform-api.productsup.io/platform/v2/sites/123/channels/321{
"success": true,
"Channels": [
{
"id": "321",
"site_id": "123",
"channel_id": "111",
"name": "Criteo DE",
"export_name": "Criteo",
"active": true,
"filename": "criteo_de_1.csv",
"filenames": [
{ "type": null, "filename": "criteo_de_1.csv" },
{ "type": null, "filename": "criteo_de_2.csv" }
],
"feed_destinations": {
"4711": {
"destination_id": 12,
"name": "Criteo feed - EU bucket",
"destination_name": "Google Merchant Center FTP",
"active": true,
"urls": [
"https://transport.productsup.io/abc123/channel/321/criteo_de.csv"
]
},
"4712": {
"destination_id": 12,
"name": "Criteo feed - US bucket",
"destination_name": "Google Merchant Center FTP",
"active": false,
"urls": []
},
"4713": {
"destination_id": 47,
"name": "Amazon S3",
"destination_name": "Amazon S3",
"active": false,
"urls": []
}
},
"links": [...]
},
{
"id": "541",
"site_id": "123",
"channel_id": "222",
"name": "Zanox DE",
"export_name": "FZanox",
"active": false,
"filename": null,
"filenames": [],
"feed_destinations": {},
"links": [...]
}
]
}Get all channels for a site
GET https://platform-api.productsup.io/platform/v2/sites/<siteId>/channels
| Field | Type | Description |
|---|---|---|
siteId | integer | Site to list channels for |
Get a channel by its identifier
GET https://platform-api.productsup.io/platform/v2/sites/<siteId>/channels/<channelId>
| Field | Type | Description |
|---|---|---|
siteId | integer | Site the channel belongs to |
channelId | integer | Channel to retrieve; use the site channel relation ID |
Response fields
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates request status |
Channels | array | List of channels |
Channel fields
| Field | Type | Description |
|---|---|---|
id | integer | ID of the site channel relation |
site_id | integer | ID of the referenced site |
channel_id | integer | ID of the channel |
name | string | Name of the export as configured on the channel |
export_name | string | Generic name of the export in the Productsup system |
active | boolean | Whether the channel is set as the main export for the site |
filename | string | First entry of filenames, for integrations that expect a single filename. Returns null when the channel has no filename configured |
filenames | array | Files the channel is configured to export. See filename fields |
feed_destinations | object | Destinations the channel exports to, keyed by the ID of the configured destination. See feed destination fields |
links | array | See link fields |
Filename fields
A channel can be configured with several files, and a delta channel has one file per delta type, so filenames lists all of them:
"filenames": [
{ "type": "new", "filename": "criteo_de_new.csv" },
{ "type": "modified", "filename": "criteo_de_modified.csv" }
]| Field | Type | Description |
|---|---|---|
type | string | Delta type this file holds, one of new, modified, unchanged, deleted or skipped. null for files that are not delta specific |
filename | string | The filename as configured |
Filenames are returned as configured, which means a filename can be a Twig template such as {{ Site.id ~ "_" ~ Export.name }}.csv. The platform resolves the template when it writes the file, not when you call this endpoint, so use the template to recognize the pattern of your exported files rather than as a literal name.
Feed destination fields
feed_destinations is an object keyed by the numeric ID of the configured destination. Each value describes one destination:
"feed_destinations": {
"4711": {
"destination_id": 12,
"name": "Criteo feed - EU bucket",
"destination_name": "Google Merchant Center FTP",
"active": true,
"urls": [
"https://transport.productsup.io/abc123/channel/321/criteo_de.csv"
]
}
}| Field | Type | Description |
|---|---|---|
destination_id | integer | ID of the destination type this destination is configured from, for example 12 for Google Merchant Center FTP. Several destinations of one channel can share the same destination_id |
name | string | Name given to this destination in the platform, for example Criteo feed - EU bucket. Falls back to destination_name when the destination has no name of its own |
destination_name | string | Name of the destination type, for example Google Merchant Center FTP. Returns null when the destination type cannot be resolved |
active | boolean | Whether this destination is active. Independent of the channel's own active field and of the other destinations |
urls | array | Feed URLs Productsup serves for this destination, one per file the channel exports. Empty for destinations that do not serve files |
Only destinations hosted by Productsup serve their files over a URL. Destinations that push to storage of your own — FTP, SFTP, Amazon S3, Google Cloud Storage, Microsoft Azure Blob Storage or an HTTP endpoint — deliver the file to that location instead, so urls is empty for them. An empty urls means the destination is not served by Productsup, not that the destination is misconfigured or has produced no files.
A channel can have several destinations of the same type, for example two Google Merchant Center FTP destinations. Each one is a separate entry with its own key and its own active flag. Match destinations on destination_id rather than on the object key when you look for a destination type.
When a channel has no destinations, feed_destinations serializes as an empty object ({}), not an empty array. Code that assumes an array here breaks on channels without destinations.
Links fields and values
| Name | Description |
|---|---|
self | Link to channel detail |
site | Link to site |
How is this guide?