Migrating

Migrating from any CSV

The generic path, for a system that is not on this list.

3 min read

If it exports a CSV, it migrates

There is no integration to build. Export whatever your system produces, upload it, confirm the column mapping, and import. The parser handles delimiters, encodings, decimal commas, preamble rows above the header and subtotal rows in the middle of it.

If you would rather script it, the same guarantees are on the API. Post batches of events to /v1/import/events and the response tells you what was accepted, what was already present and what could not be read — per item, never all-or-nothing.

curl -X POST https://api.thepixeldata.com/v1/import/events \
  -H "content-type: application/json" \
  -b "pd_session=$SESSION" \
  -H "x-csrf-token: $CSRF" \
  -d '{"events":[{"event_id":"...","event_type":"call","timestamp":"2024-03-01T09:15:00Z","account":"acct_orbit","quantity":65,"unit":"second","properties":{"destination":"447700900123"}}]}'
The API path requires event_id to be a UUID, like the rest of the documented API. The CSV importer folds whatever identifier your file carries into a deterministic one, because a spreadsheet never has UUIDs.

What is not here yet

A warehouse sync connector — pulling usage straight from Snowflake or BigQuery on a schedule — is Stage 4 and does not exist. If that is how your usage reaches you today, export to CSV or post to the API in the meantime, and tell us: it moves up the list.