v8

OpenAPI 3.1.02026-08-033623795.0 MB
Bounty Submissions

Submit Bounty Submission

Submits a claimed attempt for review. A livestream attempt needs an ended proof stream and can attach an optional deliverable — links, files, and a caption in any combination; if the attempt already went to review when its stream ended, the payload attaches to it once, until reviewers start voting. A data capture attempt instead needs enough validated clip time and takes no payload. Only the worker who started the attempt can submit it — account API keys cannot.

post/bounty_submissions/{bounty_submission_id}/submit

Headers

Idempotency-Keystring
Example:d9105228-4a08-46b1-8b91-42fed586d383

A unique key that makes this request safe to retry. See Idempotent requests.

Request body

Response

attempt submitted for review

bounty_idstring required

The bounty the work was submitted to, prefixed bnty_.

capture_filenamestring nullable required

The vendor filename stem Country_City_Site_Station_Operator, derived from the capture metadata. null until every component is present.

captured_clip_countinteger required

Number of verified capture clips accepted for this submission so far. 0 for submissions whose deliverable doesn't accumulate clips.

captured_duration_secondsinteger required

Total verified duration of accepted capture clips, in whole seconds. 0 for submissions whose deliverable doesn't accumulate clips.

citystring nullable required

Capture metadata: city the footage was recorded in. null unless capture metadata was provided.

contentstring nullable required

Written proof the worker submitted with their work.

countrystring nullable required

Capture metadata: country the footage was recorded in. null unless capture metadata was provided.

created_atstring required

When the submission was created, as an ISO 8601 timestamp.

deliverable_type'content_url' | 'media' | 'data_capture' | 'null' nullable required

How the work arrived when it came in through the API in one shot, informational only — read the work from deliverable_urls, files, and capture_clips directly. null for submissions whose proof is a livestream recording, including ones that attached links or files on submit.

deliverable_urlsstring[] nullable required
denial_reasonstring nullable required

Why the submission was denied, when a presentable reason exists. Always null unless status is denied.

devicestring nullable required

Capture metadata: device the footage was recorded on. null unless capture metadata was provided.

fovinteger nullable required

Capture metadata: horizontal field of view in degrees. null when not reported.

idstring required

Submission ID, prefixed btys_.

operatorstring nullable required

Capture metadata: identifier of the person who recorded the footage. null unless capture metadata was provided.

resolved_atstring nullable required

When the submission was approved or denied, as an ISO 8601 timestamp. null until then.

sitestring nullable required

Capture metadata: site or venue the footage was recorded at. null unless capture metadata was provided.

stationstring nullable required

Capture metadata: station or position within the site. null unless capture metadata was provided.

status'in_progress' | 'submitted' | 'approved' | 'denied' required

Lifecycle state. in_progress submissions are active attempts that have not submitted proof yet; submitted submissions await review; approved submissions were accepted and paid; denied submissions were rejected.

submitted_atstring nullable required

When proof was submitted for review, as an ISO 8601 timestamp. null while the attempt is in progress.

updated_atstring required

When the submission was last updated, as an ISO 8601 timestamp.

Example response

{
  "capture_clips": [
    {
      "status": "recording"
    }
  ],
  "deliverable_type": "content_url",
  "files": [
    {
      "attachment_type": "image"
    }
  ],
  "status": "in_progress"
}