Upload files to your CARTO account and manipulate them by using a set of HTTP commands.

This component is still under support but it will not be further developed. We don’t recommend starting new projects with it as it will eventually become deprecated. Instead, learn more about our new APIs here

Quickstart

For this example (and the rest of the ones illustrated here) we will be using a command-line tool known as cURL. For more info about this tool see this blog post or type man curl in bash.

Uploading a Local File

Suppose you have a CARTO account whose username is documentation, and you want to upload a local file named prism_tour.csv (located in the Documents folder). This requires that you execute the following command on a Terminal window:

Call

1
2
curl -v -F file=@/home/documentation/Documents/prism_tour.csv
"https://documentation.carto.com/api/v1/imports/?api_key=3102343c42da0f1ffe6014594acea8b1c4e7fd64"

Note that the api_key element has an alphanumeric value that is exclusive to the documentation CARTO account.

The response to this request appears in the following format, where a successful value indicates that the import process is enqueued:

Response

1
2
3
4
{
  "item_queue_id": "efa9925c-31dd-11e4-a95e-0edbca4b5057",
  "success": true
}

The item_queue_id value is a unique identifier that references the import process. Once this process has started, its information can be obtained doing a request to the imports endpoint as explained in the “Check the status of an import process section.

Uploading from a Remote URL

Suppose you have a server at the hostname examplehost.com, with a csv named sample.csv already uploaded. Creating a table from the URL requires that you execute the following command on a Terminal window:

Call

1
2
curl -v -H "Content-Type: application/json" -d '{"url":"https://examplehost.com/sample.csv"}'
"https://documentation.carto.com/api/v1/imports/?api_key=3102343c42da0f1ffe6014594acea8b1c4e7fd64"

The response to this request returns the following format, returning a success value if the import process is correctly enqueued:

Response

1
2
3
4
{
  "item_queue_id": "efa9925c-31dd-11e4-a95e-0edbca4b5057",
  "success": true
}

Connecting to a Database

Suppose you have an external MySQL database named mydb that you want to connect to. For the purpose of this example, you will access a server with the address of mydbserver.com. Your username is myuser, and your password is mypass. Connect a CARTO dataset to a remote table, named mytable, by executing the following command on a Terminal window:

Call

1
2
3
4
5
6
7
8
9
10
11
12
curl -v -H "Content-Type: application/json" -d '{
  "connector": {
    "provider": "mysql",
    "connection": {
      "server":"mydatabaserver.com",
      "database":"mydb",
      "username":"myuser,
      "password":"mypass"
    },
    "table": "mytable"
  }
}' "https://documentation.carto.com/api/v1/imports/?api_key=3102343c42da0f1ffe6014594acea8b1c4e7fd64"

Response

1
2
3
4
{
  "item_queue_id": "tyf9925c-32dd-11f4-a95f-0fdbca4b5058",
  "success": true
}