Productsup
Platform API

Channels

List channels and retrieve channel details using the Platform API.

6 min read

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/channels
curl 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

FieldTypeDescription
siteIdintegerSite to list channels for

Get a channel by its identifier

GET https://platform-api.productsup.io/platform/v2/sites/<siteId>/channels/<channelId>

FieldTypeDescription
siteIdintegerSite the channel belongs to
channelIdintegerChannel to retrieve; use the site channel relation ID

Response fields

FieldTypeDescription
successbooleanIndicates request status
ChannelsarrayList of channels

Channel fields

FieldTypeDescription
idintegerID of the site channel relation
site_idintegerID of the referenced site
channel_idintegerID of the channel
namestringName of the export as configured on the channel
export_namestringGeneric name of the export in the Productsup system
activebooleanWhether the channel is set as the main export for the site
filenamestringFirst entry of filenames, for integrations that expect a single filename. Returns null when the channel has no filename configured
filenamesarrayFiles the channel is configured to export. See filename fields
feed_destinationsobjectDestinations the channel exports to, keyed by the ID of the configured destination. See feed destination fields
linksarraySee 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" }
]
FieldTypeDescription
typestringDelta type this file holds, one of new, modified, unchanged, deleted or skipped. null for files that are not delta specific
filenamestringThe 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"
        ]
    }
}
FieldTypeDescription
destination_idintegerID 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
namestringName 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_namestringName of the destination type, for example Google Merchant Center FTP. Returns null when the destination type cannot be resolved
activebooleanWhether this destination is active. Independent of the channel's own active field and of the other destinations
urlsarrayFeed 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.

NameDescription
selfLink to channel detail
siteLink to site

On this page

Still stuck?

Reach out to our support team and we’ll help you get unstuck.

Contact support