Bounty Submissions

Create Bounty Submission

Creates a submission on a workforce bounty. For content_url and media bounties, include the matching deliverable payload and the submission goes straight to review — create is the only step. For data_capture bounties, omit the deliverable: this starts a claimed attempt whose proof accumulates server-side, and the separate submit endpoint sends it to review once complete. Requires a user credential — account API keys cannot author submissions.

post/bounty_submissions

Headers

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

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

Request body

affiliate_codestring nullable

Affiliate code crediting the referrer, when the worker arrived through one.

bounty_idstring required

The bounty to submit to (bnty_ tag).

Response

submission created with an inline deliverable

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

Which of the bounty's accepted_deliverable_types this submission used. Branch on it to read the work: content_url and media carry deliverable_urls; data_capture carries capture_clips. null on submissions authored before deliverable types existed.

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",
  "status": "in_progress"
}

Changes