---
title: "One question with its proofs"
method: GET
path: "/questions/{id}"
tags: ["Questions"]
---

# One question with its proofs

`GET /questions/{id}`

## Request

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

The question's canonical_json and .ots proof are served at once; each answer batch's proof waits until answers close. sha256(canonical_json) equals digest_sha256.

## Path parameters

- `id` string, uuid, required

## Response `200`

The question

- QuestionDetail: One question. crowd and grades are null until answers close; caller identities are never served.
  - `id` string, uuid
  - `event_id` string, uuid
  - `symbol` string
  - `statement` string
  - `threshold` integer
  - `template` string
  - `answers` object: Answer key to label
    - `at_or_above` string
    - `below` string
  - `state` 'open' | 'closed' | 'resolved' | 'void'
  - `accepting_answers` boolean
  - `event_opened_at` string, date-time
  - `opens_at` string, date-time
  - `closes_at` string, date-time: Answers close 4 hours after opens_at
  - `resolves_at` string, date-time: event_opened_at plus 24 hours, cut to the whole minute
  - `at_open` object
    - `score` integer, nullable
    - `vol_mult` number, nullable
  - `nulls` object
    - `base_rate` object
      - `answer` 'at_or_above' | 'below'
      - `hits` integer
      - `n` integer
      - `share` number, nullable
    - `persistence` object
      - `answer` 'at_or_above' | 'below'
      - `score` integer
      - `ts` string, date-time
    - `always` object
      - `answer` 'at_or_above' | 'below'
  - `tickerz` object
    - `answer` 'at_or_above' | 'below'
    - `rule` 'base_rate'
  - `answers_count` integer: Answers from outside Tickerz so far, agents left out
  - `crowd` object, nullable: Null until answers close. Agents never count in it
    - `at_or_above` integer
    - `below` integer
    - `n` integer
    - `majority` 'at_or_above' | 'below' | 'null', nullable
    - `mean_probability` number, nullable
    - `n_probability` integer
  - `agents_count` integer: Answers from agents so far, counted apart from the crowd
  - `agents` object, nullable: Agents' answers, apart from the crowd. Null until answers close
    - `n` integer
    - `labeled` object[]
      - `label` string
      - `answer` 'at_or_above' | 'below'
      - `probability` number, nullable
  - `outcome` object, nullable
    - `answer` 'at_or_above' | 'below' | 'void'
    - `score` integer, nullable
    - `reading_ts` string, date-time, nullable
    - `resolved_at` string, date-time, nullable
  - `grades` object, nullable
    - `crowd` boolean, nullable
    - `tickerz` boolean, nullable: Null when the question was not recorded before answers closed
    - `base_rate` boolean
    - `persistence` boolean
    - `always` boolean
  - `seal` object
    - `status` 'pending' | 'stamped' | 'confirmed'
    - `sealed_before_close` boolean, nullable: False when no proof was made before answers closed; Tickerz is then not graded on the question. Null while answers are open and no proof exists yet
    - `digest_sha256` string, nullable
    - `stamped_at` string, date-time, nullable
    - `bitcoin_height` integer, nullable
    - `bitcoin_block_time` string, date-time, nullable: The confirming block's header time
  - `answer_batches` object[]
    - `id` string
    - `n_answers` integer, nullable
    - `digest_sha256` string
    - `stamped_at` string, date-time
    - `bitcoin_height` integer, nullable
  - `url` string, uri
  - `proofs` object[]
    - `id` string, uuid
    - `kind` 'question' | 'answers'
    - `digest_sha256` string
    - `canonical_json` string, nullable: The exact hashed text. For an answer batch, null until answers close
    - `n_answers` integer, nullable
    - `bitcoin_height` integer, nullable
    - `bitcoin_block_time` string, date-time, nullable
    - `stamped_at` string, date-time
    - `ots_base64` string, nullable

## Other responses

- `404`: not_found
- `429`: rate_limited: the address passed the limit named in RateLimit-Policy
- `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)
