About carto-import-export-data
A CARTO skill for importing, exporting, and transferring data between warehouses, local files, and remote sources. It also covers preparing tilesets for rendering large geospatial datasets on maps.
Key features
- 01Import data from files or URLs
- 02Export data from a warehouse
- 03Transfer tables between connections
- 04Prepare tilesets for large maps
- 05Check asynchronous job status
Use cases
- 01Load CSV or GeoJSON into a warehouse
- 02Refresh a table from a remote URL
- 03Copy data between connections
- 04Prepare large spatial datasets for map rendering
MCP support
With an OAuth MCP session, import_data, export_data, and transfer_data handle data moves and support job-status checks; execute_async_query can create tilesets. The CARTO CLI is the alternative when no MCP server is attached or when using a token session.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ cartodb/ agent-skills --skill carto-import-export-dataAfter installing, type/carto-import-export-datain Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/exports.mdimports.mdtilesets.mdDetails
From the project READMEcarto-import-export-data
Move data into the warehouse from local files / URLs, pull data out, transfer tables between connections, and prepare tilesets for performant rendering of large geospatial datasets.
Access-path routing. With the CARTO MCP server attached (OAuth session), route interactive moves through
import_data,export_data, andtransfer_data(eachmethod: submit|status), and materialize tilesets withexecute_async_query. Fall back to thecarto import/carto sql jobCLI for scripted/bulk loads, headless pipelines, or when the server isn't attached — and note that over a token-authenticated MCP session the import/export/transfer tools are hidden (read/discovery subset only), so authoring moves there go via the CLI too.carto activity export(usage data → local disk) is CLI-only, no MCP equivalent. Format, size-limit, and destination-syntax guidance below applies on every path. Detection signals:carto-basics/references/access-paths.md.
When to use this skill
- The user has a CSV / GeoJSON / Shapefile / GeoParquet file and wants it queryable in the warehouse.
- The user wants to refresh an existing table from a remote URL, or copy a table between connections.
- The user wants to render a 10M+-row spatial dataset on a map (needs tileset preparation).
- The user is bulk-exporting CARTO activity data to disk for offline analysis.
To query a file already in the warehouse, jump to carto-query-datawarehouse. To discover what's already there, carto-explore-datawarehouse.
Quick reference
MCP (OAuth session) — submit then poll:
import_data { method: "submit", source: {url|file}, connection, destination, overwrite? }
export_data { method: "submit", ... } → status with the returned job id
transfer_data { method: "submit", source_connection, destination_connection, ... }
CLI fallback (scripted / headless / no server / token session):
# Import a local file (or --url for a remote source; --async to poll separately; --overwrite to replace)
carto import --file ./data.csv --connection carto_dw --destination project.dataset.table
What's in this skill
| Topic | Reference |
|---|---|
Importing — import_data / carto import flags, formats, size limits, async | references/imports.md |
| Tileset preparation for large maps | references/tilesets.md |
Exporting & transferring: warehouse-native unloads, export_data/transfer_data, activity export | references/exports.md |
Always-on guidance
--connection/connectionis the connection name (discover it withexplore_datamethod: list_connections, orcarto connections list --json), not the warehouse project ID.destinationis the fully-qualified target name in the warehouse's syntax:project.dataset.table(BigQuery),DATABASE.SCHEMA.TABLE(Snowflake),schema.table(Postgres/Redshift),catalog.schema.table(Databricks),SCHEMA.TABLE(Oracle).- 1 GB hard limit per file (CARTO-side, not a warehouse limit). For larger files, pre-stage to cloud storage and import from a presigned URL.
- Disable autoguessing (
--no-autoguessingon the CLI) when you've prepared a precise schema and don't want CARTO to second-guess types — especially numeric-looking columns that should stay string, like ZIP codes. - Imports/exports are async at the API level. MCP
import_data/export_datareturn a job id — poll withmethod: "status". The CLI polls to completion by default; pass--asyncto return immediately with a job id. - Tilesets follow import → materialize tileset table (
execute_async_queryorcarto sql job) → reference the tileset in a map. The tileset is created in the warehouse, not by the mover itself.