Skip to content

The heavendata FTP server

Connect to the heavendata FTP server to download a channel's files, upload files for a data source to import, or upload assets to an inbox — which credentials to use, and what you find there.

heavendata runs an FTP server at ftp.eu.40three.net. Other systems use it in three ways, and each has its own FTP credentials — a username and a password, which the app shows you or you set there:

You want to Use the FTP credentials of Set them in After you connect you see
Download a channel’s files (export) the channel the channel’s Publishing step, publishing method FTP server the channel’s folder — download a channel’s files
Upload files for a data source to import (import) the data source the data source’s connection, FTP push the data source’s folder — upload files for a data source
Upload asset files to an asset inbox the asset inbox Settings → Assets → Inboxes, the inbox’s FTP Access an empty folder — upload files to an asset inbox

One set of credentials reaches one channel, one data source or one inbox, and nothing else. To do two of these things, use two sets. An inbox’s username is given to you; a channel’s or a data source’s you choose yourself.

A channel’s or a data source’s username:

  • is required, even on a channel or data source you save disabled;
  • cannot be anonymous, in capitals or not — the server keeps that name for itself;
  • cannot start with inbox., which is kept for asset inboxes;
  • must not be in use by any other channel or data source on heavendata. A channel’s username is checked on every save; a data source’s only when it is saved with Enabled ticked, because that is when its login is created or changed.

Spaces before or after it are ignored. A save that breaks one of these rules is refused, and says which. A username already in use, for example, reads:

Couldn’t save the data source. The username “supplier-a” is already in use. Choose another username. (E03-109)

The server accepts plain FTP and encrypted FTP (FTPS). Use FTPS: over plain FTP, your password and your files cross the internet unencrypted.

Setting Value
Host ftp.eu.40three.net — the name the server’s certificate is issued for, so a client that checks the certificate accepts it
Port 21
Encryption Explicit TLS on port 21. Do not use ftps:// addresses or implicit encryption: nothing answers on port 990
Mode Passive

There is no heavendata SFTP server, so an SFTP pull data source cannot fetch from this one.

WinSCP is a Windows application for connecting to an FTP server and browsing its files. In the login dialog, choose FTP as the file protocol and explicit TLS/SSL as the encryption.

curl downloads and uploads files from the command line, so it suits a script that runs on its own. Windows 10 and 11 include it as curl.exe; for other systems, see curl downloads.

To download a channel’s file:

Terminal window
curl --ssl-reqd --user USERNAME:PASSWORD -o products.csv ftp://ftp.eu.40three.net/CHANNEL_ID/products.csv

To upload a file for a data source:

Terminal window
curl --ssl-reqd --user USERNAME:PASSWORD -T products.csv ftp://ftp.eu.40three.net/DATA_SOURCE/import/

Replace USERNAME and PASSWORD with the FTP credentials, and CHANNEL_ID or DATA_SOURCE with the folder you see after you connect. An upload’s file name must match one of the data source’s datasets — see upload files for a data source.

--ssl-reqd makes curl encrypt the login and the file transfer, and stop with an error rather than fall back to plain FTP. Do not use --ssl instead: it falls back to plain FTP without telling you.

curl on Windows can end an upload with error 56 even though the server accepted the file — on the upload that completes a data source’s set of files, and on an upload to an asset inbox. A script that checks curl’s exit code reports those uploads as failed; check the run or the inbox instead.

It does not work with this server. It supports only active FTP, in which the server opens the data connection to your computer — and your firewall or router blocks that. Use WinSCP or curl.

This is the export direction: a channel whose publishing method is FTP server puts its files on the server, and another system downloads them. Set the channel’s FTP credentials in its Publishing step — see File transfer.

After you connect you see one folder, named after the channel’s id:

Path What is in it
<channel id>/<file> One file for each of the channel’s feeds, from the channel’s latest run
<channel id>/history/<run id>/ One folder per run, with the files of that run

The channel’s Feeds list and its dashboard show each feed’s address on the server, in the form ftp://ftp.eu.40three.net/<channel id>/<file name> — the quickest way to the exact path.

The folder is read-only: you can list and download, but not upload, rename or delete.

The files at the top change when a run has written all of the channel’s feeds. Until then you download the previous run’s files.

This is the import direction: you, or a supplier, upload files, and a data source imports them. First set up and enable an FTP push data source — see setting up an FTP push source. A source that has not been saved enabled since its connection was set to FTP push has no login on the server yet, so the server refuses its FTP credentials.

Give each file the file name its dataset is set up with. The server refuses a file whose name matches none of the data source’s datasets.

After you connect you see one folder for the data source, and two folders inside it. The data source’s folder is named after its key, or its id if it has none — browse the root in an FTP client to see it.

Path What is in it
<data source>/import Where you upload files
<data source>/archive/<reference> The files each run read, one folder per run

An import starts when every file the data source expects has arrived — one for each of its datasets. A partial set waits in import for the rest.

When an import starts, the files it takes are moved out of import into a new folder under archive. A file that has left import has been read.

archive holds the runs you started in the app too, such as Upload and import or Run stored files. Each folder is named by the run’s Reference, which the run’s details show in Background jobs, so you can match a folder to its run. The names do not sort by time: sort by date in your FTP client to see the newest run first.

Archived imports are kept for 30 days, or the most recent 5,000 imports of that data source — whichever comes first. After that the folder and its files are removed. The import folder is yours: nothing clears it automatically, so a file that never completed a set stays until you remove it.

How long the runs themselves are kept is in Background jobs.

Once a source has been saved enabled, disabling it does not take its FTP credentials away — changing its connection to anything but FTP push does. From the save that disables it, an upload is still accepted into import, but it is not imported: the file is neither refused nor deleted, and waits there. A new username or password saved while the source is disabled takes effect only at the save that enables it again; until then the old ones still log in.

Enabling the source again does not import what is waiting. Uploads after that are handled as usual, and a file already waiting in import counts towards the set that starts the next import. To import a complete set that is waiting, upload one of its files again.

An asset inbox takes new asset files. Its FTP Access block, under Settings → Assets → Inboxes, shows the host, the port and the username to use. The password is the inbox’s Secret: an inbox without one has no FTP access. The default inbox has no FTP Access block — create another inbox to upload over FTP.

After you connect you see an empty folder. Upload files into it; you cannot list, download or delete them, or create folders.