Skip to main content

SCM Uploader


The SCM Uploader Tool is a tool for brand owners to upload product, code, serial number and SCM data. It will validate the CSV before splitting it in batches and uploading the batches as JSON to the API. When the extended_id is chosen as the key, it will split up the CSV in batches of 1000, when another SCM field is chosen, it will split it up in batches of 100.

The tool is built in Python and runs on Windows, Mac and Linux.

Download SCM Uploader for your Operating System:


The portal has campaign settings which define the SCM fields for all codes in a campaign, as well as the aggregation options (logistical units).

The SCM Uploader Tool then calls the Scantrust SCM data Upload API. For more information about this APIs, visit our SCM API Documentation.

Two-Factor Authentication

Users with 2FA are required to use an authorization token to login to the Scantrust portal. Because of this, they need to use an UAT token to run this tool.

Example csv



$ ./scm_upload --csv csv_file.csv [--user --password your_pwd
--token your_uat_token
--server --key data_key --verbose
-m field1 -m field2 -m field3 ...]



The CSV file for uploading e.g. my_data.csv

[OPTIONAL] --server

The Scantrust server domain. Defaults to

[OPTIONAL] --user

Your Scantrust account email

[OPTIONAL] --password

Your Scantrust password. If not specified you will be asked for input when running the script.

[OPTIONAL] --token

UAT token to login from the Scantrust portal. This token will take precedence over user/pass authentication.

NOTE: Required for 2FA users.

[OPTIONAL] --key

The header value you want to use as data_key. This key will determine which codes the other values apply to. If left blank, extended_id will be used (code message).

[OPTIONAL] --mandatory or -m

A field to specify header values that need to be mandatory. This option can be passed multiple times. The tool will validate and error before uploading if any value for the specified fields are missing in the CSV.

[OPTIONAL] --verbose

Run the tool with extra output, handy to debug errors.

[OPTIONAL] --logfile

Custom logfile. Defaults to <csv file>.log