a84d4905fdbb

latestOpenAPI 3.1.02026-08-143874115.7 MB
Bounties

Update Bounty

Updates a bounty. A published bounty accepts title, description, and country targeting while it is still open with nothing under review. A scheduled (not-yet-published) draft additionally accepts the reward, winner slots, and schedule.

patch/bounties/{id}

Request body

accepted_submissions_limitinteger nullable

Scheduled drafts only. Number of submissions that can be accepted (winner slots).

allowed_country_codesstring[] nullable

Replace the countries whose residents can work the bounty, as ISO 3166 alpha-2 codes. Empty means worldwide.

business_goal_type'clipping' | 'post_engagement' | 'owned_account_growth' | 'ugc_content' | 'local_activation' | 'data_capture' | 'other'

What the poster wants the work to achieve, declared once here.

descriptionstring

New full task instructions.

frequency'once' | 'hourly' | 'daily' | 'weekly' | 'monthly'

Scheduled drafts only. How often the schedule creates a new bounty.

gross_reward_amountnumber nullable

Scheduled drafts only. Gross bounty-pool amount (USD) escrowed per accepted submission. The escrowed total (this times accepted_submissions_limit) must stay at least $5.

publish_atstring nullable

Scheduled drafts only. New ISO 8601 time to publish the draft. Must be in the future.

publish_at_timezonestring nullable

Scheduled drafts only. IANA timezone for recurring occurrences.

titlestring

New short name of the task.

Example request

{
  "accepted_submissions_limit": 3,
  "allowed_country_codes": [
    "US"
  ],
  "business_goal_type": "data_capture",
  "description": "Record one continuous pass of a full interior detail, dash to trunk, on a customer vehicle.",
  "frequency": "weekly",
  "gross_reward_amount": 40,
  "publish_at": "2026-01-01T12:00:00.000Z",
  "publish_at_timezone": "America/Chicago",
  "title": "Record interior detailing passes"
}

Response

bounty updated

accepted_deliverable_typesstring[] required
accepted_submissions_countinteger required

Submissions accepted so far.

accepted_submissions_limitinteger required

Number of submissions that can be accepted (winner slots).

affiliate_share_amountnumber required

What a referrer earns per accepted submission when the worker arrived through their affiliate link, in whole currency units, at the standard platform fee rate. Taken out of the worker's post-fee reward rather than added on top. 0 when the bounty pays no affiliate share, including bounties tied to no account, which cannot record a referral.

allowed_country_codesstring[] required
budget_amountnumber required

Total gross budget committed to the bounty: gross_reward_amount times accepted_submissions_limit.

business_goal_type'clipping' | 'post_engagement' | 'owned_account_growth' | 'ugc_content' | 'local_activation' | 'data_capture' | 'other' | 'null' nullable required

What the poster wants the work to achieve, declared once at create. null for bounties created before the taxonomy rolled out.

cancel_requested_atstring nullable required

When cancellation was requested, as an ISO 8601 timestamp. On a closed bounty this means the cancel is pending: submissions are stopped and the bounty cancels once in-flight submissions resolve. On a canceled bounty it records when the cancellation was requested. null when no cancellation was ever requested.

created_atstring required

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

currency'usd' | 'sgd' | 'inr' | 'aud' | 'brl' | 'cad' | 'dkk' | 'eur' | 'nok' | 'gbp' | 'sek' | 'chf' | 'hkd' | 'huf' | 'jpy' | 'mxn' | 'myr' | 'pln' | 'czk' | 'nzd' | 'aed' | 'cop' | 'ron' | 'thb' | 'bgn' | 'idr' | 'dop' | 'php' | 'try' | 'krw' | 'twd' | 'vnd' | 'pkr' | 'clp' | 'uyu' | 'ars' | 'zar' | 'dzd' | 'tnd' | 'mad' | 'kes' | 'kwd' | 'jod' | 'all' | 'xcd' | 'amd' | 'bsd' | 'bhd' | 'bob' | 'bam' | 'khr' | 'crc' | 'xof' | 'egp' | 'etb' | 'gmd' | 'ghs' | 'gtq' | 'gyd' | 'ils' | 'jmd' | 'mop' | 'mga' | 'mur' | 'mdl' | 'mnt' | 'nad' | 'ngn' | 'mkd' | 'omr' | 'pyg' | 'pen' | 'qar' | 'rwf' | 'sar' | 'rsd' | 'lkr' | 'tzs' | 'ttd' | 'uzs' | 'rub' | 'cny' | 'kzt' | 'awg' required

Currency for all amounts on the bounty, as a lowercase ISO 4217 code.

descriptionstring required

Full task instructions shown to workers.

experience_idstring nullable required

Experience the bounty is hosted in, prefixed exp_. null for platform-wide bounties; may belong to a different account than the funder.

gross_paid_out_amountnumber required

Gross amount paid out from the bounty pool across accepted submissions — worker payouts, platform fees, and affiliate shares together. Tips and reviewer rewards are excluded.

gross_reward_amountnumber required

Gross bounty-pool amount allocated per accepted submission, in whole currency units.

idstring required

Bounty ID, prefixed bnty_.

net_reward_amountnumber required

What a worker is quoted per accepted submission after the platform fee, in whole currency units. The exact post-fee figure, at the standard platform fee rate — a worker who locked a different rate, or who arrived through an affiliate link, is paid a different amount.

scheduled_frequency'once' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'null' nullable required

How often the schedule creates a new bounty. Each occurrence is a separate bounty; the original is not republished.

scheduled_publish_atstring nullable required

When a scheduled bounty will publish, as an ISO 8601 timestamp. null once published, for bounties that were never scheduled, and for terminally failed drafts parked for manual rescheduling.

spots_remaininginteger required

Unfilled winner capacity: accepted_submissions_limit minus accepted_submissions_count, clamped to zero. Not a signal that the bounty currently accepts new claims.

status'scheduled' | 'open' | 'closed' | 'completed' | 'canceled' required

Lifecycle state. scheduled bounties are unpublished drafts, visible to their poster and the account's authorized managers; open bounties accept new submissions; closed bounties are live but no longer accept new submissions; completed bounties paid out every winner slot; canceled bounties ended before filling their slots.

submissions_closed_atstring nullable required

When new submissions stopped being accepted, as an ISO 8601 timestamp. Set when a cancellation is requested on a bounty with work in flight, so in-flight submissions can resolve before the bounty cancels. null when submissions were never stopped — including completed bounties that simply filled every winner slot.

titlestring required

Short name of the task shown to workers.

unresolved_submissions_countinteger required

Submissions still awaiting an outcome: in progress or pending review.

updated_atstring required

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

Example response

{
  "accepted_deliverable_types": [
    "data_capture"
  ],
  "accepted_submissions_limit": 3,
  "affiliate_share_amount": 5.6,
  "allowed_country_codes": [
    "US"
  ],
  "budget_amount": 120,
  "business_goal_type": "data_capture",
  "cancel_requested_at": "2026-01-01T12:00:00.000Z",
  "capture_spec": {
    "filename_pattern": "Country_City_Site_Station_Operator",
    "imu": {
      "device_motion_units": "ua=m/s²,gv=g,r=rad/s,q=unit",
      "magnetometer_units": "µT",
      "min_rate_hz": 90,
      "target_rate_hz": 100,
      "warmup_min_rate_hz": 45,
      "warmup_ns": 3000000000
    },
    "manifest_schema_version": 2,
    "min_clip_duration_seconds": 120,
    "min_total_verified_duration_seconds": 14400,
    "required_metadata_fields": [
      "country"
    ],
    "single_continuous_take": true,
    "video": {
      "bitrate_ceiling_mbps": 50,
      "bitrate_floor_mbps": 4,
      "bitrate_target_mbps": 12,
      "camera_lens": "ultra_wide",
      "codecs": [
        "h264"
      ],
      "fps": 30,
      "frame_gap_tolerance_ms": 1000,
      "height": 1080,
      "min_fov_degrees": 130,
      "orientation": "landscapeRight",
      "preferred_fov_degrees": 140,
      "stabilization_mode": "off",
      "width": 1920
    }
  },
  "created_at": "2026-01-01T12:00:00.000Z",
  "currency": "usd",
  "description": "Record one continuous pass of a full interior detail, dash to trunk, on a customer vehicle.",
  "experience_id": "exp_xxxxxxxxxxxxxx",
  "funding_account": {
    "id": "biz_xxxxxxxxxxxxxx",
    "title": "Shine Time Auto Detailing"
  },
  "gross_reward_amount": 40,
  "id": "bnty_xxxxxxxxxxxxxx",
  "net_reward_amount": 28,
  "poster": {
    "id": "user_xxxxxxxxxxxxxx",
    "name": "Dana Whitfield",
    "profile_picture": {
      "url": "https://assets-2-rough.whop.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    },
    "username": "danawhitfield"
  },
  "scheduled_frequency": "weekly",
  "scheduled_publish_at": "2026-01-01T12:00:00.000Z",
  "spots_remaining": 3,
  "status": "scheduled",
  "submissions_closed_at": "2026-01-01T12:00:00.000Z",
  "title": "Record interior detailing passes",
  "updated_at": "2026-01-01T12:00:00.000Z"
}