---
title: "List Public Submissions"
method: GET
path: "/bounties/{bounty_id}/submissions"
tags: ["Bounties"]
---

# List Public Submissions

`GET /bounties/{bounty_id}/submissions`

Lists a bounty's publicly visible work — submitted, approved, and denied submissions in the reduced public shape. Authentication is optional; a bounty that is not publicly visible returns `404`.

## Path parameters

- `bounty_id` string, required

## Query parameters

- `status` 'submitted' | 'approved' | 'denied'
- `created_after` string
- `created_before` string
- `order` 'created_at' | 'updated_at'
- `direction` 'asc' | 'desc'
- `first` integer
- `after` string
- `last` integer
- `before` string

## Response `200`

public bounty submissions listed

- object
  - `data` PublicBountySubmission[], required
    - `bounty_id` string, required — The bounty the work was submitted to, prefixed `bnty_`.
    - `claimed_at` string, nullable, required — When the worker claimed the submission, as an ISO 8601 timestamp.
    - `created_at` string, required — When the submission was created, as an ISO 8601 timestamp.
    - `denial_reason` string, nullable, required — Why the submission was denied, when a presentable reason exists. Always `null` unless `status` is `denied`.
    - `id` string, required — Submission ID, prefixed `btys_`.
    - `latest_proof_livestream_feed` BountySubmissionLivestreamFeed, required
      - `id` string, required — Livestream feed ID.
      - `recording_status` 'recording' | 'processing' | 'completed' | 'failed' | 'null', nullable, required — Recording lifecycle state.
      - `recording_url` string, nullable, required — Playback URL for a completed proof recording, when available.
      - `thumbnail_url` string, nullable, required — Current proof thumbnail URL, when available.
      - `title` string, required — Display title for the proof livestream.
    - `resolved_at` string, nullable, required — When the submission was approved or denied, as an ISO 8601 timestamp. `null` until then.
    - `status` 'submitted' | 'approved' | 'denied', required — Lifecycle state. `submitted` submissions await review; `approved` submissions were accepted and paid; `denied` submissions were rejected. In-progress attempts never appear on the public list.
    - `submitted_at` string, nullable, required — When proof was submitted for review, as an ISO 8601 timestamp.
    - `updated_at` string, required — When the submission was last updated, as an ISO 8601 timestamp.
    - `worker` UserSummary, required
      - `id` string, required — User ID, prefixed `user_`.
      - `name` string, nullable, required — Display name.
      - `profile_picture` UserProfilePicture, required
        - `url` string, required — Avatar image URL. Always present — a generated placeholder when the user set no picture.
      - `username` string, required — Public username.
  - `page_info` object, required
    - `end_cursor` string, nullable, required
    - `has_next_page` boolean, required
    - `has_previous_page` boolean, required
    - `start_cursor` string, nullable, required

## Other responses

- `400` — Invalid Parameters
- `404` — Resource not found

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/revisions/a84d4905fdbb/schema)
