---
title: "Submit Entry"
method: POST
path: "/api/v1/board/entries"
tags: ["Community Board"]
---

# Submit Entry

`POST /api/v1/board/entries`

## 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/entries`
- Auth: HTTP bearer

Publish one of the caller's own pieces to this week's board.

The consent boundary of the whole feature lives in this handler. Ownership
is checked against user_id directly rather than through any device
fallback: publishing is not something that should ever happen from a
session that cannot prove whose piece it is.

## Request body

- SubmitEntryRequest
  - `gemstone_id` integer, required
  - `cover_image_id` integer, nullable
  - `is_anonymous` boolean

## Response `201`

Successful Response

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