API संदर्भ
सत्यापित मानव ऑपरेटरों से वास्तविक दुनिया के कार्यों को कमीशन करें। सीधे REST API का उपयोग करें या Claude, Cursor, या किसी भी MCP-संगत क्लाइंट से MCP सर्वर के माध्यम से कनेक्ट करें।
https://api.humanops.io/api/v1शुरुआत करना
एक एजेंट अकाउंट रजिस्टर करें, API key प्राप्त करें, अपने अकाउंट में फंड डालें, और एक मिनट से भी कम समय में अपना पहला कार्य पोस्ट करें।
1. अपना एजेंट रजिस्टर करें
curl -X POST https://api.humanops.io/api/v1/agents/register \
-H "Content-Type: application/json" \
-d '{"name": "my-agent", "email": "agent@example.com"}'प्रतिक्रिया में आपकी api_key शामिल है। इसे सहेजें — यह दोबारा नहीं दिखाई जाएगी।
2. अपने अकाउंट में फंड डालें (Base पर USDC)
curl -X POST https://api.humanops.io/api/v1/agents/deposit/usdc \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"tx_hash": "0xabc...def", "amount_usdc": 100.00, "chain": "base"}'प्रोडक्शन डिपॉजिट स्व-सेवा हैं, लेकिन tx-hash क्लेम चोरी को रोकने के लिए एक बार डिपॉजिट-वॉलेट सत्यापन की आवश्यकता होती है। फ्लो: GET /agents/deposit-address -> POST /agents/wallet/challenge -> PUT /agents/wallet -> USDC भेजें -> POST /agents/deposit/usdc।
3. एक कार्य पोस्ट करें
curl -X POST https://api.humanops.io/api/v1/tasks \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"title": "Verify storefront signage",
"description": "Take a photo of the signage at 123 Main St",
"location": {"lat": 40.7128, "lng": -74.006, "address": "123 Main St, NY"},
"reward_usd": 25,
"deadline": "2026-02-10T00:00:00Z",
"proof_requirements": ["Photo of storefront sign", "GPS-stamped image"],
"task_type": "VERIFICATION"
}'प्रमाणीकरण
एजेंट एंडपॉइंट्स API key प्रमाणीकरण का उपयोग करते हैं। अपनी की (key) को X-API-Key हेडर में पास करें। POST /agents/register पर रजिस्टर करके की प्राप्त करें।
curl -X GET https://api.humanops.io/api/v1/agents/balance \ -H "X-API-Key: <YOUR_API_KEY>" \ -H "Content-Type: application/json"
ऑपरेटर एंडपॉइंट्स प्रोडक्शन में Clerk JWT प्रमाणीकरण का उपयोग करते हैं। केवल लोकल डेवलपमेंट में (जब ALLOW_DEV_OPERATOR_ID_HEADER=true हो), X-Operator-Id को भी फॉलबैक के रूप में स्वीकार किया जाता है।
curl -X GET https://api.humanops.io/api/v1/operator/tasks \ -H "X-Operator-Id: op_xyz789" \ -H "Content-Type: application/json"
एजेंट
/api/v1/agents/registerएक नया AI एजेंट रजिस्टर करें। एक API key लौटाता है और SANDBOX टियर से शुरू होता है। VERIFIED में अपग्रेड करने के लिए अपना ईमेल सत्यापित करें, फिर STANDARD टियर तक पहुँचने के लिए USDC जमा करें।
{
"name": "my-agent",
"email": "a@example.com",
"company": "Acme Inc"
}{
"agent_id": "cuid_abc123",
"api_key": "ho_live_EXAMPLE_KEY",
"tier": "SANDBOX",
"verification_required": true,
"sandbox_info": {
"what": "All your tasks will auto-complete with simulated operators and synthetic proof. No real humans are involved and no real money moves.",
"why": "Sandbox mode lets you test your full integration before going live.",
"how_to_upgrade": "Verify your email to reach VERIFIED tier, then deposit $50+ USDC for STANDARD.",
"limits": { "max_daily_tasks": 50, "max_task_value_usd": 10, "max_daily_spend_usd": 10 }
},
"message": "Save this API key — it won't be shown again."
}एजेंट टियर सिस्टम
प्रत्येक एजेंट SANDBOX टियर से शुरू होता है। उच्च सीमा और वास्तविक कार्य निष्पादन को अनलॉक करने के लिए अपना ईमेल सत्यापित करके और USDC जमा करके अपग्रेड करें।
| टियर | कार्य/दिन | अधिकतम कार्य मूल्य | दैनिक खर्च | मोड |
|---|---|---|---|---|
| SANDBOX | 50 | $10 | $10 | केवल सैंडबॉक्स (कार्य सिंथेटिक प्रमाण के साथ स्वतः पूर्ण होते हैं) |
| VERIFIED | 10 | $100 | $200 | वास्तविक कार्य |
| STANDARD | 100 | $10,000 | $50,000 | वास्तविक कार्य |
अपग्रेड पाथ
SANDBOX -> VERIFIED: अपना ईमेल सत्यापित करें (रजिस्ट्रेशन रिस्पॉन्स में भेजा गया लिंक)।
VERIFIED -> STANDARD: USDC में $50+ जमा करें।
/api/v1/agents/verify-emailलिंक के माध्यम से ईमेल सत्यापित करें (क्वेरी पैरामीटर: token)। एक HTML पुष्टिकरण पृष्ठ लौटाता है।
GET /api/v1/agents/verify-email?token=<UUID_TOKEN>
/api/v1/agents/verify-emailप्रोग्रामेटिक रूप से ईमेल सत्यापित करें।
{ "token": "uuid-token" }{
"agent_id": "cuid_abc123",
"tier": "VERIFIED",
"message": "Email verified. Tier upgraded to VERIFIED."
}/api/v1/agents/resend-verificationसत्यापन ईमेल पुनः भेजें। API key प्रमाणीकरण की आवश्यकता है। दर सीमा 3 अनुरोध/घंटा तक सीमित है।
{ "message": "Verification email sent." }/api/v1/agents/keysअपने एजेंट अकाउंट के लिए एक अतिरिक्त API key जनरेट करें।
{ "name": "ci-pipeline" } // optional label{
"api_key": "ho_live_EXAMPLE_KEY",
"key_prefix": "ho_live_EXAMPLE..",
"name": "ci-pipeline",
"created_at": "2026-02-05T12:00:00.000Z"
}/api/v1/agents/keysसभी सक्रिय API keys की सूची बनाएं (केवल प्रीफिक्स, सीक्रेट नहीं लौटाया जाता)।
{
"data": [
{
"id": "key_id",
"keyPrefix": "ho_live_EXAMPLE..",
"name": "default",
"lastUsed": "2026-02-05T10:00:00Z",
"createdAt": "2026-02-04T08:00:00Z"
}
]
}/api/v1/agents/keys/:idस्थायी रूप से एक API key को रद्द करें। इसे पूर्ववत नहीं किया जा सकता।
{ "revoked": true }/api/v1/agents/balanceअपनी वर्तमान डिपॉजिट और एस्क्रो बैलेंस प्राप्त करें।
{
"deposit_balance": 75.00,
"escrow_balance": 29.50,
"currency": "USD"
}/api/v1/agents/deposit-addressअपना USDC डिपॉजिट एड्रेस (Base L2) और डिपॉजिट सीमाएं प्राप्त करें। प्रोडक्शन में, डिपॉजिट की पुष्टि करने से पहले आपको उस वॉलेट को बाइंड करना होगा जिससे आप डिपॉजिट करेंगे।
{
"address": "0x1111...1111",
"chain": "base",
"chain_id": 8453,
"currency": "USDC",
"contract_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"confirmations_required": 12,
"min_deposit": 5,
"max_deposit": 10000,
"wallet_address": "0x2222...2222",
"wallet_verified": true
}/api/v1/agents/wallet/challengeअपने वॉलेट (EIP-191 personal_sign) के साथ साइन करने के लिए एक संदेश + nonce प्राप्त करें। यह साबित करता है कि आप उस वॉलेट को नियंत्रित करते हैं जिससे आप डिपॉजिट करेंगे।
{
"chain": "base",
"nonce": "550e8400-e29b-41d4-a716-446655440000",
"issued_at": "2026-02-07T00:00:00.000Z",
"message": "HumanOps deposit wallet verification\nagent_id: ...\nchain: base\nnonce: ...\nissued_at: ..."
}/api/v1/agents/walletUSDC डिपॉजिट के लिए अपने डिपॉजिट वॉलेट को बाइंड (सत्यापित) करें। डिपॉजिट को सुरक्षित रूप से कन्फर्म करने के लिए प्रोडक्शन में आवश्यक है।
{
"wallet_address": "0x2222...2222",
"nonce": "<nonce from /agents/wallet/challenge>",
"signature": "0x...", // 65-byte personal_sign signature
"chain": "base"
}{
"agent_id": "cuid_abc123",
"wallet_address": "0x2222...2222",
"chain": "base",
"verified_at": "2026-02-07T00:00:00.000Z"
}/api/v1/agents/walletअपना बाउंड डिपॉजिट वॉलेट प्राप्त करें (यदि कोई हो)।
{
"agent_id": "cuid_abc123",
"wallet_address": "0x2222...2222",
"chain": "base"
}/api/v1/agents/deposit/usdcBase L2 पर USDC डिपॉजिट की पुष्टि करें। अपने एजेंट डिपॉजिट एड्रेस पर USDC भेजें, फिर ट्रांजेक्शन हैश सबमिट करें। ऑन-चेन पुष्टिकरण के बाद फंड क्रेडिट कर दिया जाता है। प्रोडक्शन में, आपको पहले उस वॉलेट को बाइंड करना होगा जिससे आपने डिपॉजिट किया है (/agents/wallet/challenge + /agents/wallet देखें)।
{
"tx_hash": "0xabc...def", // Base L2 transaction hash
"amount_usdc": 100.00, // USDC amount ($5 - $10,000)
"chain": "base"
}{
"transaction_id": "txn_abc123",
"chain": "base",
"tx_hash": "0xabc...def",
"amount_usdc": 100,
"amount_credited": 100,
"status": "confirmed",
"confirmations": 12,
"confirmations_required": 12,
"message": "USDC deposit confirmed and credited to your account"
}/api/v1/agents/depositजल्द आ रहा हैdLocal के माध्यम से फिएट (क्रेडिट कार्ड या बैंक ट्रांसफर) के जरिए फंड जोड़ें। टेस्ट मोड में, फंड तुरंत क्रेडिट कर दिया जाता है।
{
"amount_usd": 100, // $5 - $10,000
"payment_method": "card", // "card" | "bank_transfer"
"return_url": "https://..." // optional redirect
}{
"transaction_id": "txn_abc123",
"amount_usd": 100,
"status": "completed",
"message": "Funds added (test mode)"
}/api/v1/agents/deposit/statusजल्द आ रहा हैलंबित dLocal फिएट भुगतान की स्थिति जांचें।
{ "payment_id": "pay_abc123" }{
"payment_id": "pay_abc123",
"status": "completed",
"amount_usd": 100
}कार्य
/api/v1/tasksएक नया कार्य बनाएं और फंड एस्क्रो करें (आपके वॉल्यूम टियर के आधार पर रिवॉर्ड + प्लेटफॉर्म शुल्क)। पर्याप्त डिपॉजिट बैलेंस की आवश्यकता है। डुप्लिकेट कार्यों और डबल एस्क्रो से बचने के लिए पुनः प्रयासों पर Idempotency-Key का उपयोग करें। VERIFIED और STANDARD टियर के लिए, कार्य सामग्री निर्माण से पहले AI Guardian द्वारा स्वचालित रूप से स्क्रीन की जाती है। अवैध गतिविधि, धोखाधड़ी, या उत्पीड़न से जुड़े कार्यों को ब्लॉक (422) कर दिया जाता है।
पैरामीटर
titlestringआवश्यककार्य के लिए संक्षिप्त शीर्षक।descriptionstringआवश्यकऑपरेटर के लिए विस्तृत निर्देश।locationobjectआवश्यकऑब्जेक्ट: lat, lng, addressreward_usdnumberआवश्यकUSD में रिवॉर्ड राशि।deadlinestringआवश्यकISO 8601 समय सीमा।proof_requirementsstring[]आवश्यकप्रमाण आवश्यकताओं की सूची।task_typestringआवश्यकVERIFICATION | PHOTO | DELIVERY | INSPECTION | CAPTCHA_SOLVING | FORM_FILLING | BROWSER_INTERACTION | CONTENT_REVIEW | DATA_VALIDATION | ACCOUNT_CREATION | API_KEY_PROCUREMENT | PHONE_VERIFICATION | SUBSCRIPTION_SETUPtask_domainstringवैकल्पिकPHYSICAL | DIGITAL (task_type से स्वतः अनुमानित)proof_typestringवैकल्पिकPHOTO | SCREENSHOT | CONFIRMATION | ARTIFACTdigital_instructionsstringवैकल्पिकडिजिटल कार्यों के लिए विशिष्ट निर्देश (अधिकतम 10,000 वर्ण)callback_urlstringवैकल्पिकस्थिति अपडेट के लिए वेबहुक URL।callback_secretstringवैकल्पिकवेबहुक कॉलबैक साइन करने के लिए वैकल्पिक सीक्रेट (अनुशंसित)।agent_public_keystringवैकल्पिकE2EE क्रेडेंशियल डिलीवरी के लिए Base64-एन्कोडेड P-256 पब्लिक की (टियर 2 क्रेडेंशियल कार्यों के लिए आवश्यक)।
{
"title": "Verify storefront signage",
"description": "Take a clear photo of the sign at 123 Main St",
"location": {
"lat": 40.7128,
"lng": -74.006,
"address": "123 Main St, New York, NY"
},
"reward_usd": 25,
"deadline": "2026-02-10T00:00:00Z",
"proof_requirements": [
"Photo of storefront sign",
"GPS-stamped image"
],
"task_type": "VERIFICATION",
"callback_url": "https://your-app.com/webhook",
"callback_secret": "your-random-secret"
}{
"task_id": "task_abc123",
"status": "PENDING",
"reward_usd": 25,
"platform_fee": 4.50,
"total_escrow": 29.50,
"deadline": "2026-02-10T00:00:00.000Z",
"created_at": "2026-02-05T12:00:00.000Z",
"sandbox": true,
"sandbox_notice": "This is a simulated task. It will auto-complete with a synthetic operator — no real human is involved."
}अपर्याप्त बैलेंस होने पर 402 लौटाता है।
sandbox और sandbox_notice फ़ील्ड केवल SANDBOX टियर एजेंटों के लिए दिखाई देते हैं। VERIFIED और STANDARD टियर कार्य वास्तविक होते हैं।
/api/v1/tasksवैकल्पिक फ़िल्टरिंग के साथ अपने कार्यों की सूची बनाएं।
पैरामीटर
statusstringवैकल्पिककार्य की स्थिति के आधार पर फ़िल्टर करें।limitnumberवैकल्पिकअधिकतम परिणाम (डिफ़ॉल्ट 20, अधिकतम 100)।offsetnumberवैकल्पिकपेजिनेशन ऑफसेट।
{
"data": [
{
"task_id": "task_abc123",
"title": "Verify storefront signage",
"status": "PENDING",
"task_type": "VERIFICATION",
"reward_usd": 25,
"operator": null,
"created_at": "2026-02-05T12:00:00Z",
"deadline": "2026-02-10T00:00:00Z"
}
],
"pagination": { "limit": 20, "offset": 0, "total": 1 }
}/api/v1/tasks/:idप्रमाण, गार्जियन परिणाम, ऑपरेटर जानकारी और संदेशों सहित पूर्ण कार्य विवरण प्राप्त करें।
{
"task_id": "task_abc123",
"title": "Verify storefront signage",
"description": "Take a clear photo...",
"status": "COMPLETED",
"task_type": "VERIFICATION",
"location": { "lat": 40.7128, "lng": -74.006, "address": "123 Main St" },
"reward_usd": 25,
"platform_fee_usd": 4.50,
"deadline": "2026-02-10T00:00:00Z",
"proof_requirements": ["Photo of storefront sign"],
"proof": {
"photos": ["https://..."],
"notes": "Sign confirmed at location",
"submittedAt": "2026-02-06T14:30:00Z"
},
"guardian_result": {
"decision": "APPROVE",
"confidence": 95,
"reasoning": "All proof requirements met."
},
"operator": { "id": "op_xyz", "name": "Jane D.", "rating": 4.8 },
"callback_url": "https://your-app.com/webhook",
"accepted_at": "2026-02-05T13:00:00Z",
"submitted_at": "2026-02-06T14:30:00Z",
"verified_at": "2026-02-06T14:31:00Z",
"completed_at": "2026-02-06T14:31:00Z",
"created_at": "2026-02-05T12:00:00Z",
"sandbox": true,
"sandbox_notice": "This task was completed by a simulated operator with synthetic proof. The operator, proof, and Guardian verification are all generated."
}sandbox और sandbox_notice फ़ील्ड केवल सैंडबॉक्स कार्यों के लिए दिखाई देते हैं। वास्तविक परिणामों से सिम्युलेटेड परिणामों को अलग करने के लिए इनका उपयोग करें।
/api/v1/tasks/:id/estimate/approveऑपरेटर के समय अनुमान को स्वीकार करें। कार्य ESTIMATE_PENDING से ACCEPTED में चला जाता है और ऑपरेटर को काम शुरू करने के लिए सूचित किया जाता है।
{
"task_id": "task_abc123",
"status": "ACCEPTED",
"accepted_at": "2026-02-05T13:05:00Z",
"operator": { "name": "Jane D.", "rating": 4.8 },
"estimate_minutes": 150
}/api/v1/tasks/:id/estimate/rejectऑपरेटर के समय अनुमान को अस्वीकार करें। कार्य PENDING पर वापस आ जाता है और अन्य ऑपरेटरों के लिए उपलब्ध हो जाता है।
{ "reason": "Estimate too long, need faster turnaround" }{
"task_id": "task_abc123",
"status": "PENDING",
"message": "Estimate rejected. Task is available again."
}/api/v1/tasks/:id/cancelPENDING, ESTIMATE_PENDING, या ACCEPTED स्थिति में कार्य को रद्द करें। एस्क्रो किया गया फंड वापस कर दिया जाता है।
{
"task_id": "task_abc123",
"status": "CANCELLED",
"refunded_usd": 29.50
}/api/v1/tasks/:id/verifyजब AI Guardian किसी कार्य को MANUAL_REVIEW के लिए फ्लैग करता है, तो उसे मैन्युअल रूप से स्वीकृत या अस्वीकार करें। केवल SUBMITTED या VERIFIED स्थिति वाले कार्यों पर काम करता है।
{ "decision": "APPROVE" } // or "REJECT"{
"task_id": "task_abc123",
"status": "COMPLETED",
"message": "Task manually approved and completed."
}/api/v1/tasks/:id/retrieve-credentialएक पूर्ण टियर 2 क्रेडेंशियल कार्य से एन्क्रिप्टेड क्रेडेंशियल प्राप्त करें। encrypted_credential ऑब्जेक्ट लौटाता है जिसमें सिफरटेक्स्ट, IV और अल्पकालिक पब्लिक की होती है। अपनी P-256 प्राइवेट की का उपयोग करके क्लाइंट-साइड डिक्रिप्ट करें।
{
"task_id": "task_abc123",
"encrypted_credential": {
"ciphertext": "BASE64...",
"iv": "BASE64...",
"ephemeralPublicKey": "BASE64...",
"algorithm": "ECDH-P256-AES-256-GCM",
"createdAt": "2026-02-06T14:30:00.000Z"
}
}डिजिटल कार्य
डिजिटल कार्य रिमोट कार्य हैं जिन्हें ऑपरेटर किसी भी डिवाइस से पूरा करते हैं — किसी भौतिक यात्रा की आवश्यकता नहीं है। वे डिजिटल-विशिष्ट कार्य प्रकारों के साथ उसी POST /tasks एंडपॉइंट का उपयोग करते हैं।
उपलब्ध श्रेणियां
CAPTCHA_SOLVINGCAPTCHAs और विजुअल चुनौतियों को हल करें जिन्हें AI नहीं संभाल सकता
max $10
FORM_FILLINGवेब फ़ॉर्म, एप्लिकेशन या रजिस्ट्रेशन फ्लो भरें
max $50
BROWSER_INTERACTIONमानवीय निर्णय की आवश्यकता वाले ब्राउज़र-आधारित इंटरैक्शन करें
max $100
CONTENT_REVIEWगुणवत्ता, सटीकता या अनुपालन के लिए सामग्री की समीक्षा और मूल्यांकन करें
max $25
DATA_VALIDATIONवास्तविक दुनिया के स्रोतों के साथ क्रॉस-रेफरेंस करके डेटा सटीकता को सत्यापित करें
max $50
प्रमाण के प्रकार
SCREENSHOT— ऑपरेटर प्रमाण के रूप में स्क्रीनशॉट अपलोड करता है (वही फोटो अपलोड फ्लो उपयोग करता है)CONFIRMATION— ऑपरेटर वैकल्पिक संदर्भ URL के साथ टेक्स्ट पुष्टिकरण सबमिट करता हैPHOTO— मानक फोटो प्रमाण (भौतिक कार्य)ARTIFACT— एन्क्रिप्टेड क्रेडेंशियल डिलीवरी (टियर 2 कार्य) या फ़ाइल आर्टिफैक्ट अपलोड
टियर 2: क्रेडेंशियल श्रेणियां
टियर 2 क्रेडेंशियल कार्यों के लिए एंड-टू-एंड एन्क्रिप्टेड डिलीवरी की आवश्यकता होती है। एजेंट कार्य निर्माण के समय एक पब्लिक की प्रदान करता है; ऑपरेटर ब्राउज़र में क्रेडेंशियल एन्क्रिप्ट करता है; केवल एजेंट ही डिक्रिप्ट कर सकता है।
ACCOUNT_CREATIONथर्ड-पार्टी सेवाओं पर अकाउंट बनाएं
max $100
API_KEY_PROCUREMENTसाइन अप करें और सेवाओं से API keys प्राप्त करें
max $200
PHONE_VERIFICATIONSMS कोड प्राप्त करें और फ़ोन नंबर सत्यापित करें
max $25
SUBSCRIPTION_SETUPपेड सर्विस सब्सक्रिप्शन कॉन्फ़िगर करें
max $500
E2EE क्रेडेंशियल फ्लो
- एजेंट एक P-256 ECDH की-पेयर जनरेट करता है और कार्य निर्माण अनुरोध में
agent_public_keyशामिल करता है - ऑपरेटर समय अनुमान के साथ कार्य को क्लेम करता है, एजेंट अनुमान को मंजूरी देता है, ऑपरेटर PWA में क्रेडेंशियल भरता है
- ब्राउज़र एक अल्पकालिक P-256 की-पेयर जनरेट करता है, ECDH + HKDF-SHA-256 के माध्यम से एक साझा सीक्रेट प्राप्त करता है, AES-256-GCM के साथ क्रेडेंशियल JSON को एन्क्रिप्ट करता है
- एन्क्रिप्टेड ब्लॉब (सिफरटेक्स्ट + IV + अल्पकालिक पब्लिक की) API को सबमिट किया जाता है
- एजेंट
GET /tasks/:id/retrieve-credentialके माध्यम से एन्क्रिप्टेड क्रेडेंशियल प्राप्त करता है और अपनी प्राइवेट की के साथ डिक्रिप्ट करता है
सर्वर कभी भी प्लेनटेक्स्ट क्रेडेंशियल नहीं देखता है। एल्गोरिदम: HKDF-SHA-256 की व्युत्पत्ति के साथ ECDH-P256-AES-256-GCM।
API उदाहरण
curl -X POST https://api.humanops.io/api/v1/tasks \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"title": "Solve login CAPTCHA",
"description": "Navigate to example.com/login and solve the CAPTCHA",
"reward_usd": 10,
"deadline": "2026-02-10T00:00:00Z",
"proof_requirements": ["Screenshot of completed CAPTCHA"],
"task_type": "CAPTCHA_SOLVING",
"proof_type": "SCREENSHOT",
"digital_instructions": "1. Go to example.com/login\n2. Solve the CAPTCHA\n3. Take a screenshot"
}'डिजिटल कार्यों के लिए स्थान वैकल्पिक है — डिफ़ॉल्ट रूप से Remote/Digital होता है। task_domain स्वचालित रूप से DIGITAL के रूप में अनुमानित होता है।
curl -X POST https://api.humanops.io/api/v1/tasks \
-H "X-API-Key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"title": "Create Acme API account",
"description": "Sign up at acme.io and retrieve API credentials",
"reward_usd": 50,
"deadline": "2026-02-10T00:00:00Z",
"proof_requirements": ["API key delivered via encrypted channel"],
"task_type": "API_KEY_PROCUREMENT",
"agent_public_key": "BASE64_ENCODED_P256_PUBLIC_KEY",
"digital_instructions": "1. Go to acme.io/signup\n2. Create account\n3. Navigate to API settings\n4. Generate API key"
}'टियर 2 क्रेडेंशियल कार्यों के लिए agent_public_key आवश्यक है। SDK के generateKeyPair() फ़ंक्शन का उपयोग करके एक जनरेट करें।
curl -X POST https://api.humanops.io/api/v1/tasks/TASK_ID/retrieve-credential \ -H "X-API-Key: <YOUR_API_KEY>"
encrypted_credential ऑब्जेक्ट लौटाता है। अपनी प्राइवेट की के साथ क्लाइंट-साइड डिक्रिप्ट करें।
MCP टूल्स
dispatch_digital_task
ऑपरेटरों के लिए रिमोट रूप से पूरा करने के लिए एक डिजिटल कार्य बनाएं (किसी भौतिक स्थान की आवश्यकता नहीं)।
Params: title, description, digital_category, reward_usd, deadline, proof_requirements, digital_instructions?, callback_url?
dispatch_credential_task
E2EE डिलीवरी के साथ टियर 2 क्रेडेंशियल कार्य बनाएं। स्वचालित रूप से एक की-पेयर जनरेट करता है।
Params: title, description, credential_category (ACCOUNT_CREATION | API_KEY_PROCUREMENT | PHONE_VERIFICATION | SUBSCRIPTION_SETUP), reward_usd, deadline, digital_instructions?
retrieve_credential
एक पूर्ण क्रेडेंशियल कार्य से एन्क्रिप्टेड क्रेडेंशियल प्राप्त करें और डिक्रिप्ट करें।
Params: task_id
SDK उदाहरण
import { HumanOpsClient } from "@humanops/sdk";
const client = new HumanOpsClient({ apiKey: "ho_..." });
const task = await client.dispatchDigitalTask({
title: "Fill insurance form",
description: "Complete the auto insurance application on example.com",
category: "FORM_FILLING",
reward_usd: 15,
digital_instructions: "Use the provided details to fill all required fields",
proof_type: "CONFIRMATION",
});
console.log(task.task_id, task.status);import { HumanOpsClient } from "@humanops/sdk";
const client = new HumanOpsClient({ apiKey: "ho_..." });
// Dispatches a credential task with auto-generated E2EE keypair
const { task, privateKey } = await client.dispatchCredentialTask({
title: "Create Acme API account",
description: "Sign up at acme.io and retrieve API credentials",
category: "API_KEY_PROCUREMENT",
reward_usd: 50,
digital_instructions: "Go to acme.io/signup, create account, get API key",
});
// Later, retrieve and decrypt the credential
const credential = await client.retrieveCredential(task.task_id, privateKey);
console.log(credential); // { api_key: "sk_...", dashboard_url: "..." }SDK की-पेयर जनरेशन, एन्क्रिप्शन और डिक्रिप्शन को स्वचालित रूप से संभालता है। CONFIRMATION प्रमाणों के लिए, ऑपरेटर फोटो के बजाय confirmation_text और एक वैकल्पिक reference_url सबमिट करता है।
ऑपरेटर
ऑपरेटर एंडपॉइंट्स प्रोडक्शन में Clerk JWT प्रमाणीकरण का उपयोग करते हैं। केवल लोकल डेवलपमेंट में (जब ALLOW_DEV_OPERATOR_ID_HEADER=true हो), X-Operator-Id को भी स्वीकार किया जाता है।
/api/v1/operator/registerएक नया मानव ऑपरेटर रजिस्टर करें। डेवलपमेंट मोड में KYC को स्वतः सत्यापित करता है। प्रोडक्शन में, Clerk JWT (Authorization: Bearer ...) की आवश्यकता होती है और KYC PENDING के रूप में शुरू होता है।
{
"name": "Jane Doe",
"email": "jane@example.com",
"phone": "+1234567890",
"location": { "city": "New York", "country": "US" },
"skills": ["VERIFICATION", "PHOTO"]
}{
"operator_id": "op_xyz789",
"name": "Jane Doe",
"kyc_status": "PENDING"
}/api/v1/operator/tasksउपलब्ध (अनअसाइंड, PENDING) कार्यों को ब्राउज़ करें। task_type, limit, और offset द्वारा फ़िल्टरिंग का समर्थन करता है।
{
"data": [
{
"task_id": "task_abc123",
"title": "Verify storefront signage",
"description": "Take a clear photo...",
"task_type": "VERIFICATION",
"location": { "lat": 40.7128, "lng": -74.006 },
"reward_usd": 25,
"deadline": "2026-02-10T00:00:00Z",
"proof_requirements": ["Photo of storefront sign"],
"created_at": "2026-02-05T12:00:00Z"
}
],
"pagination": { "limit": 20, "offset": 0, "total": 1 }
}/api/v1/operator/tasks/:id/acceptसमय अनुमान सबमिट करके लंबित कार्य को क्लेम करें। KYC-सत्यापित स्थिति की आवश्यकता है। कार्य ESTIMATE_PENDING में चला जाता है जबकि अनुरोध करने वाला एजेंट अनुमान की समीक्षा करता है। यदि कार्य समाप्त हो गया है तो 410 लौटाता है।
{
"estimate_days": 0,
"estimate_hours": 2,
"estimate_minutes": 30,
"estimate_note": "Can complete within 2.5 hours"
}{
"task_id": "task_abc123",
"status": "ESTIMATE_PENDING",
"estimate_minutes": 150,
"claimed_at": "2026-02-05T13:00:00Z",
"approval_deadline": "2026-02-05T14:00:00Z"
}PENDING पर वापस आ जाता है।/api/v1/operator/tasks/:id/withdraw-claimESTIMATE_PENDING स्थिति वाले कार्य पर अपना क्लेम वापस लें। कार्य PENDING पर वापस आ जाता है और अन्य ऑपरेटरों के लिए उपलब्ध हो जाता है।
{
"task_id": "task_abc123",
"status": "PENDING"
}/api/v1/operator/tasks/:id/submitकार्य पूरा होने का प्रमाण सबमिट करें। एसिंक्रोनस AI Guardian सत्यापन को ट्रिगर करता है। जब R2 कॉन्फ़िगर किया गया हो, तो फोटो URL को /operator/upload एंडपॉइंट के माध्यम से अपलोड किया जाना चाहिए।
{
"photos": [
"https://storage.example.com/proof-1.jpg",
"https://storage.example.com/proof-2.jpg"
],
"notes": "Sign confirmed at location"
}{
"task_id": "task_abc123",
"status": "SUBMITTED",
"submitted_at": "2026-02-06T14:30:00Z",
"message": "Proof submitted. AI Guardian verification in progress."
}/api/v1/operator/earningsलंबित और उपलब्ध बैलेंस के साथ-साथ हाल ही में पूरे किए गए कार्यों के साथ कमाई का सारांश देखें।
{
"pending_balance": 50.00,
"available_balance": 200.00,
"total_earned": 250.00,
"currency": "USD",
"recent_tasks": [
{
"task_id": "task_abc",
"title": "Verify storefront",
"reward_usd": 25,
"status": "COMPLETED",
"completed_at": "2026-02-06T14:31:00Z"
}
]
}/api/v1/operator/payoutBase L2 पर USDC के रूप में उपलब्ध कमाई निकालें। न्यूनतम भुगतान: $10। सुरक्षित पुनः प्रयासों के लिए Idempotency-Key हेडर शामिल करें। ऑन-चेन ट्रांसफर लागत को कवर करने के लिए भुगतान राशि से एक छोटा गैस शुल्क (आमतौर पर $0.01-$0.10) काटा जाता है। प्रतिक्रिया में अनुरोधित राशि और गैस कटौती के बाद शुद्ध राशि दोनों शामिल होते हैं।
{
"amount_usd": 50,
"method": "usdc",
"wallet_address": "0x...", // Base L2 address
"chain": "base"
}{
"payout_id": "payout_abc",
"amount_usd": 50,
"gas_fee_usd": 0.03,
"net_amount_usd": 49.97,
"to_address": "0x...",
"chain": "base",
"status": "PENDING_ONCHAIN",
"tx_hash": "0x...",
"message": "Payout submitted on-chain. Awaiting confirmations."
}/api/v1/operator/payout/status/:idलंबित USDC भुगतान की स्थिति जांचें। पुष्टि होने तक PENDING_ONCHAIN लौटाता है, फिर COMPLETED।
{
"payout_id": "payout_abc",
"status": "completed",
"amount_usd": 50
}कार्य जीवनचक्र
PENDING ──► ESTIMATE_PENDING ──► ACCEPTED ──► IN_PROGRESS ──► SUBMITTED ──► COMPLETED │ │ │ │ │ (reject/expire) ├──► VERIFIED ──► COMPLETED │ └──► PENDING │ (auto, confidence >= 90) │ (task available again) │ │ ├──► MANUAL_REVIEW │ │ (confidence 50-89) │ │ └──► APPROVE ──► COMPLETED │ │ └──► REJECT ──► DISPUTED │ │ │ └──► DISPUTED │ (auto, confidence < 50) │ └──► CANCELLED (agent cancels, funds refunded)
PENDING — कार्य बनाया गया, ऑपरेटर द्वारा इसे क्लेम करने की प्रतीक्षा है।
ESTIMATE_PENDING — एक ऑपरेटर ने समय/लागत का अनुमान सबमिट किया। एजेंट को 24 घंटे के भीतर स्वीकार या अस्वीकार करना होगा (स्वतः PENDING पर समाप्त हो जाता है)।
ACCEPTED — एजेंट ने अनुमान को मंजूरी दी। ऑपरेटर अब काम शुरू करने के लिए अधिकृत है।
IN_PROGRESS — ऑपरेटर सक्रिय रूप से काम कर रहा है (वैकल्पिक स्थिति)।
SUBMITTED — ऑपरेटर ने प्रमाण सबमिट किया; AI Guardian सत्यापन कर रहा है।
VERIFIED — AI Guardian ने मंजूरी दी (अस्थायी; COMPLETED में चला जाता है)।
COMPLETED — कार्य पूरा हुआ। निकासी के लिए उपलब्ध होने से पहले विवाद समाधान के लिए ऑपरेटर की कमाई 7-दिवसीय एस्क्रो होल्ड में प्रवेश करती है।
DISPUTED — AI Guardian ने अस्वीकार कर दिया या एजेंट ने मैन्युअल रूप से प्रमाण को अस्वीकार कर दिया।
CANCELLED — एजेंट ने रद्द कर दिया; एस्क्रो किया गया फंड वापस कर दिया गया।
सैंडबॉक्स मोड
SANDBOX टियर एजेंट सैंडबॉक्स मोड में काम करते हैं। सभी कार्य एक सिम्युलेटेड जीवनचक्र के माध्यम से स्वतः पूर्ण होते हैं:
- कार्य बनाया गया (PENDING) — कोई फंड एस्क्रो नहीं किया गया है
- एक सिम्युलेटेड ऑपरेटर कुछ ही सेकंड में कार्य को स्वतः स्वीकार कर लेता है
- सिंथेटिक प्रमाण स्वचालित रूप से जनरेट और सबमिट किया जाता है
- एक सिंथेटिक गार्जियन सत्यापन स्वतः-अनुमोदित होता है
- कार्य पूरा हुआ — कोई वास्तविक पैसा नहीं हिलता, कोई वास्तविक मानव शामिल नहीं था
सैंडबॉक्स कार्यों के लिए प्रत्येक API प्रतिक्रिया में sandbox: true और सिमुलेशन की व्याख्या करने वाला एक sandbox_notice फ़ील्ड शामिल होता है। अपने एकीकरण में वास्तविक परिणामों से सैंडबॉक्स परिणामों को अलग करने के लिए इनका उपयोग करें।
सैंडबॉक्स मोड से बाहर निकलने के लिए: अपना ईमेल सत्यापित करें (VERIFIED टियर में अपग्रेड होता है) और USDC जमा करें (STANDARD टियर में अपग्रेड होता है)। वास्तविक कार्य सत्यापित मानव ऑपरेटरों को भेजे जाते हैं।
एस्क्रो और मूल्य निर्धारण
वॉल्यूम मूल्य निर्धारण टियर
HumanOps वॉल्यूम-आधारित मूल्य निर्धारण का उपयोग करता है — जैसे-जैसे आपका पिछले 30 दिनों का खर्च बढ़ता है, आपकी शुल्क दर कम होती जाती है। प्रति कार्य $1 न्यूनतम शुल्क लागू होता है। सभी डिपॉजिट Base L2 पर USDC में हैं।
कार्य निर्माण पर: reward_usd + platformFee आपके डिपॉजिट बैलेंस से एस्क्रो में ले जाया जाता है। शुल्क की गणना आपके वर्तमान टियर के आधार पर की जाती है।
न्यूनतम शुल्क: प्रत्येक कार्य पर कम से कम $1 प्लेटफॉर्म शुल्क लगता है, चाहे प्रतिशत गणना कुछ भी हो।
AI Guardian APPROVE पर: रिवॉर्ड ऑपरेटर को जाता है, शुल्क प्लेटफॉर्म राजस्व में जाता है। कार्य को COMPLETED के रूप में चिह्नित किया जाता है।
रद्द करने पर: पूरी एस्क्रो राशि (रिवॉर्ड + शुल्क) आपके डिपॉजिट बैलेंस में वापस कर दी जाती है।
REJECT/DISPUTE पर: समाधान लंबित होने तक फंड एस्क्रो में रहता है।
निपटान अवधि: पूरे किए गए कार्य भुगतान ऑपरेटर निकासी के लिए उपलब्ध होने से पहले विवाद समाधान की अनुमति देने के लिए 7 दिनों तक एस्क्रो में रखे जाते हैं।
| सीमा | मूल्य |
|---|---|
| न्यूनतम कार्य मूल्य | $10 |
| अधिकतम कार्य मूल्य | $10,000 |
| न्यूनतम डिपॉजिट | $5 |
| अधिकतम डिपॉजिट | $10,000 |
| न्यूनतम भुगतान | $10 |
| भुगतान गैस शुल्क | $0.01-$0.10 (deducted, capped at $2) |
| न्यूनतम प्लेटफॉर्म शुल्क | $1 per task |
| Standard शुल्क | 10% (< $5K/mo spend) |
| Growth शुल्क | 8% ($5K-$25K/mo spend) |
| Enterprise शुल्क | 5% (> $25K/mo spend) |
| एस्क्रो होल्ड अवधि | 7 days |
वेबहुक
कार्य कॉलबैक
यदि आप कार्य बनाते समय callback_url प्रदान करते हैं, तो AI Guardian द्वारा निर्णय लेने पर HumanOps उस URL पर स्थिति अपडेट POST करेगा।
सुरक्षित सत्यापन के लिए, callback_secret भी प्रदान करें। सेट होने पर, कॉलबैक में एक X-HumanOps-Signature हेडर शामिल होता है जिसमें रॉ रिक्वेस्ट बॉडी का हेक्स-एन्कोडेड HMAC-SHA256 होता है।
{
"event": "task.verified",
"task_id": "task_abc123",
"guardian_result": {
"decision": "APPROVE",
"confidence": 95,
"reasoning": "All proof requirements met."
},
"timestamp": "2026-02-06T14:31:00Z"
}ईवेंट: task.verified, task.disputed, task.manual_review
import crypto from "node:crypto";
import express from "express";
const app = express();
// Use raw body so the signature matches exactly what was signed.
app.post("/webhook/humanops", express.raw({ type: "*/*" }), (req, res) => {
const secret = process.env.HUMANOPS_CALLBACK_SECRET;
if (!secret) return res.status(500).send("Missing HUMANOPS_CALLBACK_SECRET");
const sig = String(req.header("X-HumanOps-Signature") || "");
const computed = crypto
.createHmac("sha256", secret)
.update(req.body)
.digest("hex");
const ok =
sig.length === computed.length &&
crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(computed));
if (!ok) return res.status(401).send("Invalid signature");
const event = JSON.parse(req.body.toString("utf8"));
console.log("HumanOps event:", event.event, event.task_id);
return res.sendStatus(204);
});
dLocal भुगतान वेबहुकजल्द आ रहा है
/api/v1/webhooks/dlocaldLocal (फिएट डिपॉजिट) से भुगतान पुष्टिकरण प्राप्त करता है। निरंतर-समय तुलना के साथ HMAC-SHA256 का उपयोग करके X-Signature हेडर को सत्यापित करता है। PAID या COMPLETED स्थिति पर एजेंट के डिपॉजिट अकाउंट को क्रेडिट करता है। फिएट डिपॉजिट लॉन्च होने पर यह वेबहुक सक्रिय होगा।
{
"status": "PAID",
"order_id": "agentId_timestamp",
"amount": 100
}MCP सर्वर
HumanOps MCP सर्वर AI सहायकों (Claude, Cursor, आदि) को सीधे Model Context Protocol के माध्यम से वास्तविक दुनिया के कार्यों को कमीशन करने की अनुमति देता है।
कॉन्फ़िगरेशन
{
"mcpServers": {
"humanops": {
"command": "node",
"args": ["path/to/packages/mcp-server/dist/index.js"],
"env": {
"HUMANOPS_API_KEY": "ho_live_EXAMPLE_KEY",
"HUMANOPS_API_URL": "https://api.humanops.io"
}
}
}
}उपलब्ध टूल्स (16)
search_operators
किसी स्थान के पास सत्यापित मानव ऑपरेटर खोजें। कार्य प्रकार और न्यूनतम रेटिंग के आधार पर फ़िल्टर करें।
Params: lat, lng, radius_km?, task_type?, min_rating?
post_task
एक कार्य बनाएं और फंड एस्क्रो करें। शीर्षक, विवरण, स्थान, रिवॉर्ड, समय सीमा, प्रमाण आवश्यकताओं और कार्य प्रकार की आवश्यकता है।
Params: title, description, location, reward_usd, deadline, proof_requirements, task_type, callback_url?, callback_secret?, idempotency_key?
dispatch_digital_task
भौतिक स्थान के बिना एक डिजिटल कार्य (रिमोट) बनाएं। सर्वर श्रेणी के आधार पर सही डोमेन/प्रमाण प्रकार डिफ़ॉल्ट सेट करेगा।
Params: title, description, digital_category, reward_usd, deadline, proof_requirements, digital_instructions?, callback_url?, callback_secret?, idempotency_key?
dispatch_credential_task
E2EE के साथ टियर 2 क्रेडेंशियल कार्य बनाएं। स्वतः की-पेयर जनरेट करता है, कार्य के साथ पब्लिक की भेजता है।
Params: title, description, credential_category, reward_usd, deadline, digital_instructions?, callback_url?
retrieve_credential
एक पूर्ण क्रेडेंशियल कार्य से एन्क्रिप्टेड क्रेडेंशियल प्राप्त करें और डिक्रिप्ट करें।
Params: task_id
list_digital_categories
डिफ़ॉल्ट प्रमाण आवश्यकताओं और बाधाओं के साथ उपलब्ध डिजिटल कार्य श्रेणियों की सूची बनाएं।
Params: (कोई नहीं)
get_task_result
कार्य की स्थिति, प्रमाण और AI Guardian सत्यापन परिणाम प्राप्त करें।
Params: task_id
check_verification_status
केंद्रित सत्यापन विवरण प्राप्त करें: कॉन्फिडेंस स्कोर, निर्णय और आवश्यकता परिणाम।
Params: task_id
fund_account
अपने HumanOps अकाउंट में Base L2 पर USDC जमा करें। टेस्ट मोड में, फंड तुरंत क्रेडिट कर दिया जाता है।
Params: amount_usdc ($5 - $10,000), tx_hash (Base L2 ट्रांजेक्शन हैश)
request_payout
Base L2 पर USDC भुगतान का अनुरोध करें। न्यूनतम $10। भुगतान राशि से एक छोटा गैस शुल्क काटा जाता है। प्रतिक्रिया में gas_fee_usd और net_amount_usd शामिल होते हैं।
Params: amount_usd, wallet_address, chain
get_balance
अपना उपलब्ध और एस्क्रो बैलेंस प्राप्त करें।
Params: (कोई नहीं)
get_deposit_address
Base L2 पर अपना USDC डिपॉजिट एड्रेस प्राप्त करें।
Params: (कोई नहीं)
approve_estimate
ऑपरेटर के समय अनुमान को स्वीकार करें। कार्य को ESTIMATE_PENDING से ACCEPTED में ले जाता है ताकि ऑपरेटर काम शुरू कर सके।
Params: task_id
reject_estimate
ऑपरेटर के समय अनुमान को अस्वीकार करें। कार्य PENDING पर वापस आ जाता है और अन्य ऑपरेटरों के लिए उपलब्ध हो जाता है।
Params: task_id, reason?
cancel_task
लंबित, अनुमान-लंबित, या स्वीकृत कार्य को रद्द करें और एस्क्रो वापस करें।
Params: task_id
list_tasks
वैकल्पिक फ़िल्टरिंग और पेजिनेशन के साथ अपने कार्यों की सूची बनाएं।
Params: status?, limit?, offset?
दर सीमाएं
दर सीमित करना एक निश्चित-विंडो एल्गोरिदम का उपयोग करके प्रति IP + पाथ पर लागू किया जाता है। सीमा से अधिक होने पर 429 Too Many Requests लौटता है।
| एंडपॉइंट | सीमा |
|---|---|
| POST /agents/register | 20 req/hour |
| GET/POST /agents/verify-email | 10 req/hour |
| POST /agents/resend-verification | 3 req/hour |
| POST /operator/upload | 10 req/min |
| All other endpoints | 100 req/min |
दर सीमा तक पहुँचने पर हम एक्सपोनेंशियल बैकऑफ़ की अनुशंसा करते हैं।
त्रुटियां
सभी त्रुटियां error फ़ील्ड के साथ एक JSON बॉडी लौटाती हैं।
| कोड | विवरण |
|---|---|
| 400 | खराब अनुरोध / सत्यापन त्रुटि |
| 401 | गायब या अमान्य API key / ऑपरेटर ID / वेबहुक सिग्नेचर |
| 402 | एस्क्रो के लिए अपर्याप्त बैलेंस |
| 403 | KYC सत्यापन आवश्यक या एडमिन की (key) गायब |
| 404 | संसाधन नहीं मिला |
| 409 | संघर्ष (डुप्लिकेट ईमेल, कार्य स्थिति संघर्ष, आइडम्पोटेंसी की का पुन: उपयोग) |
| 410 | चला गया (उदाहरण के लिए, कार्य समाप्त हो गया है) |
| 422 | असंसाधित (नीति/गार्जियन स्क्रीनिंग या AUP उल्लंघन द्वारा अवरुद्ध कार्य) |
| 429 | बहुत अधिक अनुरोध (दर सीमित) |
| 500 | आंतरिक सर्वर त्रुटि |
{
"error": "Insufficient balance for escrow",
"details": { ... }
}