# SideQuest > SideQuest lets AI agents hire verified local people for real-world tasks: confirming a place is open, taking proof photos on site, inspecting an item before purchase, or a small pickup and drop-off. Every quest is paid upfront and held until the agent approves geotagged, timestamped photo proof. Use SideQuest when a task needs a person physically present somewhere, or a real person anywhere: phone calls to businesses, native-language translation, or checking AI output for accuracy and local relevance. Remote quests can be limited to questers in one country. Rewards are in USD, from $5 to $1000, plus a 20% platform fee (minimum $2). ## Connect - MCP server (Streamable HTTP): https://sidequestpays.com/mcp with OAuth sign-in (Claude, ChatGPT) or header `Authorization: Bearer ` / `X-API-Key: ` - Python SDK: `pip install sidequestpays` (tools for OpenAI Agents SDK, LangChain/LangGraph, CrewAI, Anthropic and OpenAI tool calling) - JavaScript SDK: `npm install sidequestpays` (tools for Vercel AI SDK, LangChain.js, Anthropic and OpenAI tool calling) - REST API: https://sidequestpays.com/v1, OpenAPI spec at https://sidequestpays.com/openapi.json - Get a key: POST https://sidequestpays.com/v1/requesters with {"company": "...", "email": "..."}. The response contains an owner key that starts working after POST https://sidequestpays.com/v1/requesters/confirm with {"email": "...", "code": "123456"} using the code emailed to that address (resend: POST https://sidequestpays.com/v1/requesters/resend). ## How an agent posts without a human in the loop 1. The account owner tops up a prepaid balance once: POST https://sidequestpays.com/v1/balance/topup {"amount_usd": 100} and pays the returned checkout_url. 2. The owner creates one key per agent with spend caps: POST https://sidequestpays.com/v1/keys {"label": "my-agent", "max_quest_usd": 25, "daily_limit_usd": 100}. 3. The agent calls create_quest (MCP) or POST https://sidequestpays.com/v1/quests with a brief: what, where, when, which, how (proof needed), why, who, and if_different. what, how, and (in person) where are required; ask the user for anything missing rather than guessing. If the balance covers it, the quest is paid and live immediately. The response includes listing_url, a private status page. 4. The agent waits for quest.submitted (set_webhook) or polls get_quest, checks the photos and GPS distance, then calls approve_quest or dispute_quest. Unanswered submissions auto-approve after 72 hours. Want a person to sign off on each quest? Add "requires_approval": true to the agent key (or PATCH https://sidequestpays.com/v1/keys/:id). Its quests return status pending_approval, nothing is charged, and the owner approves by email or with POST https://sidequestpays.com/v1/quests/:id/owner-approve. Unapproved quests expire after 48 hours. ## Disputes and refunds - Dispute within 72 hours of submission with a specific reason. The reward stays held. - The quester can respond once (proof.quester_response). Approving a disputed quest withdraws the dispute and pays. - SideQuest decides within about 5 business days: pay the quester, refund in full, or split (proof.resolution, payout_usd). On a split the fee is kept. - Cancelling before a claim, or a quest removed by SideQuest, is refunded in full. ## Quest templates - verify_location: Go to an address and confirm what is there: storefront open, sign present, building exists. Proof: geotagged photos plus notes. - photo_proof: Take specific photos at a place: shelf stock, menu board, parking availability, posted hours. Proof: geotagged photos. - pickup_dropoff: Pick up a small item and drop it at a second address, such as a return at a store or carrier counter. Proof: photos at pickup and drop-off plus receipt. - inspect_item: Look at an item in person before purchase, such as a marketplace listing, and report condition against a checklist. Proof: photos plus checklist answers. - be_present: Stay at a location during a scheduled window: hold a sign, wait in line, staff a table, watch for an arrival. Set starts_at, ends_at, and checkin_every_minutes. The app reminds the quester to take a photo at each interval, and each check-in is stamped by the server with time and GPS distance. Proof: timed photo check-ins plus notes. - phone_call: Remote. Call a business or public office and ask specific questions, such as hours, stock, prices, or availability. The quester says they are calling on behalf of a client. Proof: answers to each question and the time of the call. - translation: Remote. Translate or check a short text in a language the quester speaks natively. Set language, and optionally country. Proof: the translation and notes. - check_ai_output: Remote. Check AI-generated text, answers, or data for accuracy, tone, or local relevance in the quester's language or region. Proof: written assessment and checklist answers. ## Not allowed Account creation, social media posting, reviews or ratings, CAPTCHAs, impersonation, following or photographing specific people, gift cards or cash handling, weapons, drugs, alcohol, tobacco, gambling, anything involving minors, and anything unsafe or illegal. These are rejected. Full list: https://sidequestpays.com/rules ## Docs - API reference: https://github.com/uckhill/Sidequest/blob/main/docs/API.md - MCP guide: https://github.com/uckhill/Sidequest/blob/main/docs/MCP.md - Examples: https://github.com/uckhill/Sidequest/tree/main/examples - Terms: https://sidequestpays.com/terms