changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": true,
+ "description": "One job with everything known about it.",
+ "properties": {
+ "bounty": {
+ "additionalProperties": true,
+ "description": "A job listing and its live state.",
+ "properties": {
+ "amount": {
+ "description": "Pay in decimal form, e.g. \"5.00\".",
+ "type": "string"
+ },
+ "amount_units": {
+ "description": "Pay in the token's smallest units.",
+ "type": "string"
+ },
+ "chain": {
+ "description": "Network key, e.g. bsc.",
+ "type": "string"
+ },
+ "claim_expires_at": {
+ "description": "ISO time an unsubmitted claim lapses and the job reopens.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "claimed_at": {
+ "description": "ISO time the job was claimed.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "claimed_by": {
+ "description": "Wallet of the worker holding the claim, or null.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "created_at": {
+ "description": "ISO creation time.",
+ "type": "string"
+ },
+ "deadline": {
+ "description": "ISO time when the job expires and becomes refundable.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "description": {
+ "description": "Full instructions for the worker.",
+ "type": "string"
+ },
+ "escrow_contract": {
+ "description": "Contract holding the funds, or null if not contract-funded.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "funding_tx": {
+ "description": "0x hash of the deposit that funded this job, or null until funded.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "description": "Job id (uuid). Pass to fund_bounty, get_bounty and cancel_bounty.",
+ "type": "string"
+ },
+ "lat": {
+ "description": "Job latitude, or null if the job has no map pin.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "lng": {
+ "description": "Job longitude, or null if the job has no map pin.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "location_text": {
+ "description": "Human-readable place, e.g. \"123 Main St, Denver\".",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "min_completed": {
+ "description": "Completed jobs a worker needs before they can claim this one.",
+ "type": "number"
+ },
+ "moderation_summary": {
+ "description": "Short reason from the safety screen.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "moderation_verdict": {
+ "description": "Safety screen result: ok, caution, or pending.",
+ "type": "string"
+ },
+ "nearby_until": {
+ "description": "ISO time until only nearby workers can claim, or null if not set.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "photo_steps": {
+ "description": "Proof steps the worker must satisfy.",
+ "type": "array"
+ },
+ "radius_m": {
+ "description": "Metres from lat/lng a worker may be to claim or to submit.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "status": {
+ "description": "awaiting_funding | open | claimed | submitted | paying | completed | payout_failed | cancelled | expired.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Job title shown to workers.",
+ "type": "string"
+ },
+ "token_address": {
+ "description": "Token contract address, or null when paid in native BNB.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "token_decimals": {
+ "description": "Decimals used to convert amount into amount_units.",
+ "type": "number"
+ },
+ "token_symbol": {
+ "description": "Payment token: USDT, USDC, or BNB for native.",
+ "type": "string"
+ },
+ "updated_at": {
+ "description": "ISO time of the last change.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "payouts": {
+ "description": "Any payout or refund for this job, refreshed against the chain.",
+ "items": {
+ "additionalProperties": true,
+ "description": "An outbound transfer: a worker payout or a refund back to the funding wallet.",
+ "properties": {
+ "amount_units": {
+ "description": "Amount in the token's smallest units.",
+ "type": "string"
+ },
+ "attempts": {
+ "description": "Broadcast attempts so far.",
+ "type": "number"
+ },
+ "bounty_id": {
+ "description": "The job this payout belongs to.",
+ "type": "string"
+ },
+ "chain": {
+ "description": "Network the transfer was sent on.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "ISO creation time.",
+ "type": "string"
+ },
+ "id": {
+ "description": "Payout id (uuid).",
+ "type": "string"
+ },
+ "kind": {
+ "description": "payout pays a worker; refund returns the money to the funding wallet.",
+ "type": "string"
+ },
+ "last_error": {
+ "description": "Why the last attempt failed, or null.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "description": "pending | sent | confirmed | failed. failed can be retried with retry_payout.",
+ "type": "string"
+ },
+ "submission_id": {
+ "description": "The submission that triggered it, or null for a refund.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "to_address": {
+ "description": "Wallet that receives the money.",
+ "type": "string"
+ },
+ "tx_hash": {
+ "description": "0x hash of the on-chain transfer, or null until broadcast.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "submissions": {
+ "description": "All submissions, newest first, each with photo URLs and the worker's record.",
+ "items": {
+ "additionalProperties": true,
+ "description": "A worker's proof of completion for a job.",
+ "properties": {
+ "answers": {
+ "description": "Answers to text and checkbox steps.",
+ "type": "array"
+ },
+ "bounty_id": {
+ "description": "The job this submission belongs to.",
+ "type": "string"
+ },
+ "created_at": {
+ "description": "ISO submission time.",
+ "type": "string"
+ },
+ "distance_m": {
+ "description": "Metres from the job spot when submitted, or null if no location was sent.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "id": {
+ "description": "Submission id (uuid). Pass to review_submission.",
+ "type": "string"
+ },
+ "lat": {
+ "description": "Where the worker reported being.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "lng": {
+ "description": "Where the worker reported being.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "location_check": {
+ "description": "inside when within the job radius, outside when further, unknown when no location was sent.",
+ "type": "string"
+ },
+ "note": {
+ "description": "The worker's own note.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "photo_paths": {
+ "description": "Storage paths of the uploaded photos.",
+ "type": "array"
+ },
+ "photo_urls": {
+ "description": "Temporary https URLs for the photos (present in get_bounty, expire in about an hour).",
+ "type": "array"
+ },
+ "review_note": {
+ "description": "The note you sent back with the decision.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "reviewed_at": {
+ "description": "ISO time you reviewed it.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "description": "pending | approved | rejected.",
+ "type": "string"
+ },
+ "worker": {
+ "additionalProperties": true,
+ "description": "A worker's on-chain track record.",
+ "properties": {
+ "address": {
+ "description": "Worker wallet address (lowercase 0x...).",
+ "type": "string"
+ },
+ "approval_rate": {
+ "description": "Percent of reviewed submissions that were approved, or null if nothing has been reviewed yet.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "completed": {
+ "description": "Submissions approved.",
+ "type": "number"
+ },
+ "pending": {
+ "description": "Submissions still awaiting review.",
+ "type": "number"
+ },
+ "rejected": {
+ "description": "Submissions rejected.",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "worker_address": {
+ "description": "Wallet of the worker who submitted.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+}