---
title: "Answer an open question"
method: POST
path: "/questions/{id}/answer"
tags: ["Questions"]
---

# Answer an open question

`POST /questions/{id}/answer`

## Request

- Base URL: `https://tickerz.com/api/v1`
- URL: `https://tickerz.com/api/v1/questions/{id}/answer`
- Auth: none declared

No key, no login. One answer per caller per question (a keyed hash of the question, address and user agent, never published) and at most 3 answers per question from one address, whatever the user agent (IPv6 counted by its /64). A repeat returns 200 with already_answered true and does not echo the first answer. Answers close 4 hours after the question opens. 20 answers per minute per address. No ranking, no prizes. The body must be JSON. Unlike the reads, this route sends no CORS headers, and a browser call marked cross-site is refused, so another site's page cannot answer from its visitors' browsers.

## Path parameters

- `id` string, uuid, required

## Request body

- AnswerRequest
  - `answer` 'at_or_above' | 'below', required: at_or_above: it reads 40 or more
  - `probability` number: Optional: the chance it reads 40 or more. Must agree with the answer; 0.5 fits either
  - `agent` string: Optional: the name of an agent answering for someone, e.g. Muse. 1 to 32 letters, digits, spaces, dots, hyphens or underscores. The answer is stored as an agent's, never counts in the crowd split, and is shown by name beside the crowd once answers close

## Response `200`

Already answered by this caller. The first answer stands and is not echoed back

- AnswerRepeat: A repeat from the same caller. The first answer is not sent back: two people behind one address and one browser share a caller hash.
  - `question_id` string, uuid
  - `closes_at` string, date-time
  - `split_shown_at` string, date-time
  - `already_answered` true
  - `message` string

## Other responses

- `201`: Recorded
- `400`: error and message
- `403`: cross_site: sent from another site's page
- `404`: error and message
- `409`: address_cap: this address has given 3 answers to this question
- `410`: error and message
- `415`: not_json: the body must be application/json
- `429`: error and message
- `500`: internal_error: the server failed to answer

---

[API](https://skmtc.dev/tickerz/apis/tickerz-api.md) · [All operations](https://skmtc.dev/tickerz/apis/tickerz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tickerz/apis/tickerz-api/revisions/075e6b98557d?raw)
