Skip to content

API / Import

Method Endpoint Description
GET /api/import/subscribers Retrieve import statistics.
GET /api/import/subscribers/logs Retrieve import logs.
POST /api/import/subscribers Upload a file for bulk subscriber import.
DELETE /api/import/subscribers Stop and remove an import.

GET /api/import/subscribers

Retrieve the status of an ongoing import.

Example Request
curl -u "api_user:token" -X GET 'http://localhost:9000/api/import/subscribers'
Example Response
{
    "data": {
        "name": "",
        "total": 0,
        "imported": 0,
        "status": "none"
    }
}

GET /api/import/subscribers/logs

Retrieve logs from an ongoing import.

Example Request
curl -u "api_user:token" -X GET 'http://localhost:9000/api/import/subscribers/logs'
Example Response
{
    "data": "2020/04/08 21:55:20 processing 'import.csv'\n2020/04/08 21:55:21 imported finished\n"
}

POST /api/import/subscribers

Send a CSV (optionally ZIP compressed) file to import subscribers. Use a multipart form POST.

Parameters
Name Type Required Description
params JSON string Yes Stringified JSON with import parameters.
file file Yes File for upload.

params (JSON string)

Name Type Required Description
mode string Yes subscribe or blocklist
delim string Yes Single character indicating delimiter used in the CSV file, eg: ,
lists []number Yes Single character indicating delimiter used in the CSV file, eg: ,
overwrite bool Yes Whether to overwrite the subscriber parameters including subscriptions or ignore records that are already present in the database.
Example Request
curl -u "api_user:token" -X POST 'http://localhost:9000/api/import/subscribers' \
  -F 'params={"mode":"subscribe", "subscription_status":"confirmed", "delim":",", "lists":[1, 2], "overwrite": true}' \
  -F "file=@/path/to/subs.csv"
Example Response
    {
        "mode": "subscribe", // subscribe or blocklist
        "delim": ",",        // delimiter in the uploaded file
        "lists":[1],         // array of list IDs to import into
        "overwrite": true    // overwrite existing entries or skip them?
    }

DELETE /api/import/subscribers

Stop and delete an ongoing import.

Example Request
curl -u "api_user:token" -X DELETE 'http://localhost:9000/api/import/subscribers' 
Example Response
{
    "data": {
        "name": "",
        "total": 0,
        "imported": 0,
        "status": "none"
    }
}