---
title: "Import an anonymous checklist."
method: POST
path: "/account/import"
tags: ["Account"]
---

# Import an anonymous checklist.

`POST /account/import`

## Request

- Base URL: `https://animalchecklist.com/api/v1`
- URL: `https://animalchecklist.com/api/v1/account/import`
- Auth: API key in cookie `ac_session`

After the person confirms, merges local and anonymous server sightings into this account. A successful import retires the old anonymous code.

## Headers

- `X-Account-Id` string, uuid, required

## Request body

- object
  - `code` string
  - `sightings` Sighting[], required
    - `animalId` string, required: Slug of the animal taxon, for example `red-fox`.
    - `seenAt` string, date-time, required
    - `updatedAt` string, date-time, required: Merge key, last writer wins.
    - `deleted` boolean, required: Tombstone. Other devices drop the row.

## Response `200`

Merged sightings.

- object
  - `data` Sighting[], required
    - `animalId` string, required: Slug of the animal taxon, for example `red-fox`.
    - `seenAt` string, date-time, required
    - `updatedAt` string, date-time, required: Merge key, last writer wins.
    - `deleted` boolean, required: Tombstone. Other devices drop the row.

## Other responses

- `400`: Invalid input.
- `401`: Sign-in required.
- `403`: A same-origin request is required.
- `404`: Not found.
- `409`: Account changed in another tab.
- `429`: Rate limited.
- `500`: Unexpected error.

---

[API](https://skmtc.dev/animalchecklist/apis/animal-checklist-api.md) · [All operations](https://skmtc.dev/animalchecklist/apis/animal-checklist-api/llms.txt) · [OpenAPI document](https://skmtc.dev/animalchecklist/apis/animal-checklist-api/revisions/0910760ad25b?raw)
