Skip to main content

Bounties API

Bounties are open tasks that any qualified, verified worker can claim. Unlike standard tasks (which can be directed to specific workers), bounties are posted publicly and the first eligible worker to accept gets the assignment.

Base path: /v1/bounties

Bounties vs. Tasks​

FeatureTaskBounty
AssignmentCan target specific workersFirst-come, first-served
Platform fee16%20%
Worker payout84% of budget80% of budget
VisibilityCan be private until assignedAlways visible to qualified workers
Use caseYou know which worker you wantYou want the fastest available worker

Bounties are ideal when location matters more than the specific worker -- for example, "someone in downtown Chicago needs to photograph this address."


Create Bounty​

POST /v1/bounties

Create an open bounty. The request body is identical to Create Task, but the task is created as a bounty with the higher take rate (20%).

Request Body​

FieldTypeRequiredDescription
titlestringYesBounty title (1-200 characters)
descriptionstringYesDetailed description (1-2000 characters)
instructionsstringNoPrivate instructions for the worker (max 5000 characters)
categorystringYesTask category
required_skillsstring[]NoRequired worker skills
locationobjectYesTask location with city, state, latitude, longitude
budget_centsintegerYesTotal budget in cents (minimum 500)
prioritystringNo"normal" or "urgent" (default: "normal")
deadlinestringNoISO 8601 deadline
proof_typesstring[]NoRequired proof types (default: ["photo"])
metadataobjectNoArbitrary key-value pairs

Example Request​

curl -X POST https://api.workfunder.com/v1/bounties \
-H "Authorization: Bearer wf_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Mystery shop at Coffee Corner on 5th Ave",
"description": "Visit Coffee Corner, order a medium latte, and evaluate the customer experience. Note wait time, staff friendliness, drink quality, and store cleanliness.",
"instructions": "Do not reveal that you are conducting a mystery shop. Act as a normal customer. Take a photo of your receipt and a photo of the interior.",
"category": "mystery_shopping",
"required_skills": ["mystery_shopping"],
"location": {
"address": "456 5th Ave",
"city": "New York",
"state": "NY",
"latitude": 40.7549,
"longitude": -73.9840
},
"budget_cents": 7500,
"priority": "normal",
"proof_types": ["photo"],
"metadata": {
"chain": "Coffee Corner",
"store_id": "CC-NYC-042"
}
}'

Example Response​

{
"id": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5",
"developer_id": "d1e2f3a4b5c6d1e2f3a4b5c6d1e2f3a4",
"title": "Mystery shop at Coffee Corner on 5th Ave",
"description": "Visit Coffee Corner, order a medium latte, and evaluate the customer experience. Note wait time, staff friendliness, drink quality, and store cleanliness.",
"category": "mystery_shopping",
"required_skills": ["mystery_shopping"],
"location_address": "456 5th Ave",
"location_city": "New York",
"location_state": "NY",
"location_latitude": 40.7549,
"location_longitude": -73.9840,
"budget_cents": 7500,
"platform_fee_cents": 1500,
"worker_payout_cents": 6000,
"priority": "normal",
"status": "pending",
"environment": "live",
"worker_id": null,
"max_proof_attempts": 3,
"proof_types": ["photo"],
"metadata": {
"chain": "Coffee Corner",
"store_id": "CC-NYC-042"
},
"created_at": "2026-02-24T12:00:00.000Z",
"updated_at": "2026-02-24T12:00:00.000Z"
}

Note the pricing breakdown for a $75.00 bounty:

  • Platform fee: $15.00 (20%)
  • Worker payout: $60.00 (80%)

List Bounties​

GET /v1/bounties

Retrieve a paginated list of your bounties.

Query Parameters​

ParameterTypeDefaultDescription
statusstring--Filter by status
limitinteger20Results per page (max 100)
offsetinteger0Number of results to skip

Example Request​

curl "https://api.workfunder.com/v1/bounties?status=posted&limit=20" \
-H "Authorization: Bearer wf_live_your_key"

Example Response​

{
"data": [
{
"id": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5",
"title": "Mystery shop at Coffee Corner on 5th Ave",
"status": "posted",
"category": "mystery_shopping",
"budget_cents": 7500,
"location_city": "New York",
"location_state": "NY",
"worker_id": null,
"created_at": "2026-02-24T12:00:00.000Z"
}
],
"meta": {
"total": 1,
"limit": 20,
"offset": 0
}
}

Get Bounty​

GET /v1/bounties/:id

Retrieve a single bounty by ID.

Path Parameters​

ParameterTypeDescription
idstringThe bounty ID

Example Request​

curl https://api.workfunder.com/v1/bounties/b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5 \
-H "Authorization: Bearer wf_live_your_key"

Example Response​

Returns the full bounty object (same format as the Create Bounty response, with current status).

Errors​

CodeStatusDescription
TASK_NOT_FOUND404Bounty not found or does not belong to your account

Cancel Bounty​

DELETE /v1/bounties/:id

Cancel a bounty. Same cancellation rules as Cancel Task apply.

Example Request​

curl -X DELETE https://api.workfunder.com/v1/bounties/b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5 \
-H "Authorization: Bearer wf_live_your_key"

Example Response​

{
"id": "b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5",
"status": "cancelled",
"cancelled_at": "2026-02-24T15:00:00.000Z"
}

Errors​

CodeStatusDescription
TASK_NOT_FOUND404Bounty not found
INVALID_TASK_STATE409Bounty cannot be cancelled in its current state