---
title: "Save one answer and receive its result."
method: POST
path: "/quiz/rounds/{id}/answers"
---

# Save one answer and receive its result.

`POST /quiz/rounds/{id}/answers`

## Request

- Base URL: `https://animalchecklist.com/api/v1`
- URL: `https://animalchecklist.com/api/v1/quiz/rounds/{id}/answers`
- Auth: HTTP bearer

Same-origin only. The server scores ordered answers. Replaying the same answer is safe. A different replay is rejected. Each account earns points once per species and difficulty.

## Path parameters

- `id` string, uuid, required

## Headers

- `X-Account-Id` string, uuid

## Request body

- object
  - `index` integer, required
  - `choice` string, uuid, required

## Response `200`

Answer feedback and next question or receipt. No-store.

- object
  - `data` QuizState, required
    - `id` string, uuid, required
    - `difficulty` 'easy' | 'standard' | 'hard', required
    - `answered` integer, required
    - `token` string: Round bearer secret. Returned only at creation.
    - `question` object
      - `index` integer, required
      - `group` string, required
      - `points` 10 | 20 | 30, required
      - `photo` object, required: Opaque photo URL. Attribution is returned only after an answer.
        - `url` string, required
      - `choices` object[], required
        - `id` string, uuid, required
        - `name` string, required
        - `nameEn` string, required
        - `nameDe` string, required
        - `nameSci` string, required
    - `receipt` object
      - `id` string, uuid, required
      - `token` string, required
      - `difficulty` 'easy' | 'standard' | 'hard', required
      - `points` integer, required
      - `correct` integer, required
      - `completedAt` integer, required: Unix time in milliseconds.
      - `awards` object[], required
        - `animalId` string, required: Slug of the animal taxon, for example `red-fox`.
        - `difficulty` 'easy' | 'standard' | 'hard', required
        - `points` integer, required
    - `accountScore` object
      - `points` integer, required
      - `earnedPoints` integer
    - `answer` object
      - `correct` boolean, required
      - `correctChoiceId` string, required
      - `name` string, required
      - `photo` object, required: Photo credit. Check the licence and source before reuse.
        - `url` string, uri, required
        - `sourceUrl` string, uri, required: Page to link when you show it.
        - `license` 'CC0' | 'Public domain' | 'Pexels License' | 'Pixabay Content License', required
        - `licenseUrl` string, uri: Licence terms or public-domain status guidance.
        - `author` string, required: Credited author. Empty when the source gives no name.
        - `source` 'inaturalist' | 'commons' | 'gbif' | 'pexels' | 'pixabay', required: Photo source.

## Other responses

- `400`: Invalid input.
- `401`: Sign-in required.
- `403`: A same-origin request is required.
- `404`: Round unavailable or bearer secret incorrect.
- `409`: The round belongs to another account, or this answer conflicts with its saved state.
- `410`: An unfinished round expired after seven days.
- `429`: Rate limited.
- `500`: Unexpected error.
- `503`: The catalog photo or eligible species are unavailable.

---

[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)
