Bulk CSV import

Use bulk CSV import when you need to load or refresh a large Fixed Location portfolio. Smaller integrations should usually use the REST Fixed Location endpoints directly so each change can be validated immediately.

The CSV is treated as the complete portfolio for your customer source. Each upload is a full sync: rows not yet in AURA are created, changed rows are updated, and any active Fixed Location in your source that is missing from the file is marked as deleted (matched on externalReferenceId). A partial CSV will silently remove every site it omits.

Choose one maintenance mode

Because each upload is a full sync, pick one of these modes and stay with it:

  • One-off import, then REST — use CSV once to seed the portfolio, then create, update, and delete Fixed Locations through the REST endpoints. Don’t upload another CSV unless it contains the entire current portfolio.
  • CSV sync as the source of truth — maintain the portfolio exclusively through repeated full-file uploads from your source system, and avoid making REST changes between uploads.

Mixing the two concurrently risks dropped sites: a Fixed Location created via the REST API will be deleted by the next CSV upload that doesn’t include it.

How it works

  1. Prepare a CSV of your complete Fixed Location portfolio from your source system.
  2. Upload it with a callback URL.
  3. AURA processes the file asynchronously as a full sync (create / update / delete).
  4. Your backend receives the result at the callback URL.
  5. Reconcile AURA Fixed Locations against your source system.

Three details matter for the upload:

  • It’s a multipart request, and the CSV file’s field name must be locations.
  • callbackUrl is required and must be HTTPS — the asynchronous import result is POSTed there.
  • The upload (POST /v1/predefinedlocations/upload) and export (GET /v1/predefinedlocations/download) live on the Panic API host but use /v1/... paths without the /panic-api prefix used by the rest of the API.

Reconciliation

Use a stable externalReferenceId for each Fixed Location. After the import finishes, compare the returned or downloaded records with your own source system and resolve missing, duplicated, or outdated locations before operators request response.

In the API Reference