---
title: "Get Board"
method: GET
path: "/api/v1/board"
tags: ["Community Board"]
---

# Get Board

`GET /api/v1/board`

## Request

- Base URL: `https://api.gemstoneaiapp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.gemstoneaiapp.com/api/v1/board`
- Auth: none declared

This week's ranked board. Public.

Ordering is by computed score, not by stored rank, so the board reshuffles
the moment a vote lands rather than when a job next runs. That does mean
sorting in Python: the whole week's live entries are loaded, scored, and
sliced. At board volumes (tens of entries a week, capped by how many
people submit) this is far cheaper than the alternative of maintaining a
denormalised score column and eating a write amplification on every tap.
If a week ever breaks a few thousand entries, this is the thing to
revisit — not before.

## Query parameters

- `page` integer
- `page_size` integer
- `week` string, nullable: ISO date of a past week's Monday

## Headers

- `X-Device-Id` integer, nullable
- `authorization` string, nullable

## Response `200`

Successful Response

- BoardListResponse
  - `week_start` string, date, required
  - `closes_in_seconds` integer, required
  - `total` integer, required
  - `page` integer, required
  - `page_size` integer, required
  - `entries` BoardEntryOut[]
    - `id` integer, required
    - `piece` BoardPiece, required: The publishable projection of a scanned piece. Carries ONE price — `estimated_value` — and not the tier breakdown that produced it. Comparables are excluded outright: they are a subscriber surface, and a public card is the last place that should be relitigating which comp links still resolve.
      - `id` integer, required
      - `main_heading` string, nullable
      - `sub_heading` string, nullable
      - `description` string, nullable
      - `gem_species` string, nullable
      - `jewelry_type` string, nullable
      - `metal_type` string, nullable
      - `primary_stone` string, nullable
      - `carat_estimate` object, nullable
      - `color_grade` string, nullable
      - `clarity_grade` string, nullable
      - `cut_grade` string, nullable
      - `cut_shape` string, nullable
      - `origin_grade` string, nullable
      - `treatment_grade` string, nullable
      - `transparency_estimate` string, nullable
      - `estimated_value` object, nullable
      - `images` BoardImage[]
        - `id` integer, required
        - `image_url` string, required
        - `image_role` string
    - `cover_image_id` integer, nullable
    - `byline` string, required
    - `is_anonymous` boolean, required
    - `is_mine` boolean
    - `seed_prompt` string, nullable
    - `vote_count` integer
    - `comment_count` integer
    - `has_voted` boolean
    - `rank` integer, nullable
    - `score` number, nullable
    - `won_week` boolean
    - `week_start` string, date, required
    - `created_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

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