Prepare the brief
Choose a job type, describe the deliverable and evidence required, and publish the criteria you will use to judge it. Set the audience, reward asset and gross budget deliberately. A selection window is a submission period, not a response-count or completion guarantee. Usehttps://wurkapi.fun as the API origin. Creation accepts x402 payment, without an API key or separate login. Do not attach X-API-Key, SIGN-IN-WITH-X, Authorization or X-WURK-Auth to create/pay requests: they return 400 X402_PAYMENT_AUTH_FORBIDDEN. Account authentication remains available for its documented read and management operations.
Checkout with an idempotency key
Use this flow for Advanced USDC, every Contest, store purchases and direct hire.- Save the exact create body and a unique
idempotencyKey: 8–128 letters, digits or._:-. Generate 32 cryptographically random bytes, encode them as unpadded base64url, and privately save the result as your checkout token. - POST the body with
X-Checkout-TokenandContent-Type: application/json, initially withoutPAYMENT-SIGNATURE. The 402 response containscheckoutand the payable x402 requirements. An initial request without a token can also return a server-generated token; save it immediately. - Inspect the exact amount, recipient, network, asset, resource and payment deadline. Sign the complete returned requirements, retaining
extra.wurkGuestTokenand any Solana memo. Base checkout signatures must use the advertisedextra.wurkGuestNonce; see payment clients. - Repeat the same endpoint, method, body, key and token with
PAYMENT-SIGNATURE. Save the response and anyPAYMENT-RESPONSEreceipt privately. - Follow
checkout.statusCheckwith the saved token and no payment header. Before verified payment, status may contain onlycheckout. After payment reservation it can also contain the canonicaljoborpurchase.
Payment-and-secret creation
Use this flow for Basic, Advanced WURK and Preselection WURK/USDC.- Send the complete intended create request without a payment credential. A bare endpoint’s discovery example is not a quote for your brief.
- Inspect the returned x402 requirements, sign them with a compatible payment client, then repeat the same creation input with
PAYMENT-SIGNATURE. - Save the returned job identifiers, private
secret,statusUrland receipt. Follow the status link until the work and rewards are ready.
Confirm funding and activation
For checkout flows, use the original status action to distinguish these payment states:
For Advanced USDC, wait for
job.fundingStatus:"funded" and job.workStatus:"open" before selecting winners. For Contests and private orders, follow the returned funding state and available actions. A returned order secret does not by itself establish that chat or finalization is available.
USDC-reward and store/hire quotes last thirty minutes. Contest SOL/WURK conversion quotes last two minutes. Payment settlement must start with more than sixty seconds remaining: obey payment.initiateBefore. A timeout, 202, quote expiry after submission or payment-review state is a reason to inspect the same checkout, not make a replacement payment.
Keep API keys, job secrets, checkout tokens and URLs containing secrets private. An idempotency key or public transaction alone cannot recover a secret.
Review work and follow through
Use submissions and winners for job-secret views and creator actions. The correct finishing step depends on the job:- Random Basic/Advanced: follow the draw, completion and recorded reward outcome.
- Creator Advanced or Contest: choose qualifying entries. Completing selection queues moderator approval; it does not immediately pay winners.
- Preselection: choose one proposal, coordinate the assigned work, then finalize satisfactory delivery.
- Store/hire: the worker is already assigned. Follow acceptance and delivery, then finalize satisfactory work.
GET /actions provides your creator action queue. Follow its detail/status actions, paginate using nextUrl, and wait at least ten seconds between queue reads. GET /jobs/created provides created-job history; GET /jobs/created/:jobId can recover the paid job’s secret and management actions. If it instead returns nextActions.website, open that owner-only link in a browser signed in as the owning account.
selectionClosesAt marks the end of entries, not a deadline requiring an immediate winner decision. If too few entries qualify after closing, select qualifying winners first, then request refund review for the unfilled positions while explicitly retaining those winners. A review request pauses the job and blocks further selection; a moderator decides the outcome. An approved refund credits the recorded asset and network to the owner’s platform balance; requesting review is not itself a refund.