Captcha Entry: Typing Job work icon

Captcha Entry data API: captcha points and payouts

Akash Vaghani · Jobs & Careers 4.8 ★

Captcha Entry: Typing Job work is Akash Vaghani's Android microtask client for people who solve on-device captcha challenges to earn points, rather than browsing a vacancy board. After Google Sign-In or email sign-in, workers pick a task type — the Play listing names number, text, slider-image and puzzle captchas, and the client also ships maths and copywriter tiles — tap a hint on the solve screen when stuck, and watch a home fire chip for consecutive days with a correct solve. They cash out from a payout screen that shows Paytm, PhonePe, BHIM UPI, Google Pay, Amazon Pay and PayPal marks plus rupee, rupiah, dong and riyal currency icons, then check those requests on a History screen. The listing is rated 4.8 from about 170 thousand reviews, shows 1 million-plus downloads, contains ads, and was last updated 2 October 2026 (client 2.6.4). It sits with Indian earn-and-withdraw crowd apps rather than Naukri or apna.

Home tiles publish a captchaType (NUMBER, TEXT, SLIDER, PUZZLE, MATHS, COPYWRITER) with pointsPerCaptcha, batchSize (10 for number and text) and isEnabled. A served challenge carries captchaId, imageUrl, sliderTarget or puzzlePieces, and expiresAt; a correct submit returns isCorrect, pointsAwarded, the running points total, solvedCount and batchRemaining. Hint calls spend pointsCost against hintsRemaining for a hintText. The worker row also holds currencyCode, currencySymbol and isPayoutEnabled, while the fire chip tracks currentStreak, longestStreak, streakBonusPoints and isTodayComplete.

Cash-out config lists each railId (PAYTM, PHONEPE, UPI, GOOGLEPAY, AMAZONPAY, PAYPAL) with a minimumPayout for that countryCode. Submitted rows carry payoutAmount, the destination in paymentDetails (UPI VPA, wallet MSISDN or PayPal email) and status PENDING / COMPLETED / REJECTED until an operator adminNote and processedAt close them, leaving pointsAfter on the worker. Treasury bots match those destinations to wallet advice; workforce analytics group throughput by tile; compliance hides a rail when isPayoutEnabled is off; ops dashboards net pointsCost against pointsAwarded. openData Studio turns the same fields into callable open data.

Screenshots

  • Captcha Entry: Typing Job work screenshot 1
  • Captcha Entry: Typing Job work screenshot 2
  • Captcha Entry: Typing Job work screenshot 3
  • Captcha Entry: Typing Job work screenshot 4
  • Captcha Entry: Typing Job work screenshot 5

API surface

Request/response examples are illustrative, reconstructed from the app's interface — not a live capture.

  • Sign in with Google

    POST /v1/auth/google osint

    Mints the worker session after the Google button: uid, email and displayName, plus the idToken used on point-balance and payout calls.

    Auth: None on this call. The response idToken is sent as Authorization: Bearer on later worker, captcha and payout calls. Email/password sign-in is the other packaged path (Firebase Auth).

    • uid
    • email
    • displayName
    • idToken
    • refreshToken
    • expiresIn
    POST /v1/auth/google HTTP/1.1
    Content-Type: application/json
    
    {
      "idToken": "<google-id-token>",
      "requestId": "req-8f21"
    }
    {
      "uid": "k7Qm2nX0abCdefGhIjkL",
      "email": "[email protected]",
      "displayName": "Ravi K",
      "idToken": "<firebase-id-token>",
      "refreshToken": "<refresh-token>",
      "expiresIn": 3600
    }
  • Load worker profile and point balance

    GET /v1/workers/me openfinance

    Hydrates the home point chip and the payout screen balance: points, local currencySymbol and whether isPayoutEnabled is on.

    Auth: Bearer Firebase ID token from /v1/auth/google (or email/password). The uid in the token selects the worker row.

    • uid
    • email
    • displayName
    • points
    • currencyCode
    • currencySymbol
    • countryCode
    • isPayoutEnabled
    • createdAt
    GET /v1/workers/me HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Accept: application/json
    {
      "uid": "k7Qm2nX0abCdefGhIjkL",
      "email": "[email protected]",
      "displayName": "Ravi K",
      "points": 18450,
      "currencyCode": "INR",
      "currencySymbol": "₹",
      "countryCode": "IN",
      "isPayoutEnabled": true,
      "createdAt": "2026-09-12T08:11:00Z"
    }
  • List captcha task catalog

    GET /v1/captchas/catalog opendata

    Fills the home task grid: captchaType, batchSize (10 for number/text per the listing), pointsPerCaptcha and isEnabled per tile.

    Auth: Optional Bearer Firebase ID token. Anonymous browse of the task tiles still works; signed-in responses add that worker's pointsPerCaptcha overrides.

    • tasks
    • captchaType
    • label
    • batchSize
    • pointsPerCaptcha
    • isEnabled
    • difficulty
    GET /v1/captchas/catalog HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Accept: application/json
    {
      "tasks": [
        {"captchaType": "NUMBER", "label": "Number Captcha", "batchSize": 10, "pointsPerCaptcha": 80, "isEnabled": true},
        {"captchaType": "TEXT", "label": "Text Captcha", "batchSize": 10, "pointsPerCaptcha": 100, "isEnabled": true},
        {"captchaType": "SLIDER", "label": "Slider Image Captcha", "pointsPerCaptcha": 70, "isEnabled": true},
        {"captchaType": "PUZZLE", "label": "Puzzle Captcha", "difficulty": "NORMAL", "pointsPerCaptcha": 110, "isEnabled": true},
        {"captchaType": "MATHS", "label": "Maths Captcha", "pointsPerCaptcha": 90, "isEnabled": true},
        {"captchaType": "COPYWRITER", "label": "Copywriter Captcha", "pointsPerCaptcha": 150, "isEnabled": true}
      ]
    }
  • Fetch the next captcha challenge

    GET /v1/captchas/next opendata

    Serves one challenge for the tapped tile: imageUrl for text/number, sliderTarget for the slider-image task, puzzlePieces for the jigsaw.

    Auth: Bearer Firebase ID token. captchaType selects the tile the worker tapped (NUMBER, TEXT, SLIDER, PUZZLE, MATHS, COPYWRITER).

    • captchaId
    • captchaType
    • prompt
    • imageUrl
    • sliderTarget
    • puzzlePieces
    • difficulty
    • pointsPerCaptcha
    • expiresAt
    GET /v1/captchas/next?captchaType=TEXT&difficulty=NORMAL HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Accept: application/json
    {
      "captchaId": "cap-9f2a01",
      "captchaType": "TEXT",
      "prompt": "Type the characters you see",
      "imageUrl": "https://storage.example/captchaImages/text/img_1042.jpg",
      "sliderTarget": null,
      "puzzlePieces": 0,
      "difficulty": "NORMAL",
      "pointsPerCaptcha": 100,
      "expiresAt": "2026-10-11T06:12:00Z"
    }
  • Submit a solved captcha

    POST /v1/captchas/{captchaId}/submit opendata

    Credits pointsAwarded after a correct text, number, maths, slider, copywriter or puzzle answer and returns the running points total plus batchRemaining in the 10-captcha number/text sets.

    Auth: Bearer Firebase ID token. A wrong answer returns isCorrect=false and does not increment points.

    • captchaId
    • isCorrect
    • pointsAwarded
    • points
    • solvedCount
    • batchRemaining
    POST /v1/captchas/cap-9f2a01/submit HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Content-Type: application/json
    
    {
      "captchaType": "TEXT",
      "answerText": "K7mP2",
      "sliderValue": null,
      "elapsedMs": 4200
    }
    {
      "captchaId": "cap-9f2a01",
      "isCorrect": true,
      "pointsAwarded": 100,
      "points": 18550,
      "solvedCount": 186,
      "batchRemaining": 7
    }
  • Request a captcha hint

    POST /v1/captchas/{captchaId}/hint opendata

    Returns hintText for the current challenge, decrements hintsRemaining and optionally deducts pointsCost from the worker balance.

    Auth: Bearer Firebase ID token. Rejected when hintsRemaining is 0.

    • captchaId
    • hintText
    • hintsRemaining
    • pointsCost
    • points
    POST /v1/captchas/cap-9f2a01/hint HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Content-Type: application/json
    
    {
      "captchaType": "TEXT"
    }
    {
      "captchaId": "cap-9f2a01",
      "hintText": "Starts with K",
      "hintsRemaining": 2,
      "pointsCost": 10,
      "points": 18440
    }
  • Fetch payout rail config

    GET /v1/config/payouts opendata

    Turns payout tiles on or off per countryCode and publishes each rail's minimumPayout (Paytm, PhonePe, BHIM UPI, Google Pay, Amazon Pay, PayPal).

    Auth: Bearer Firebase ID token. Remote Config (firebase_remote_config plugin) can override which rails and minima the payout screen shows for that countryCode.

    • countryCode
    • currencyCode
    • isPayoutEnabled
    • rails
    • railId
    • minimumPayout
    • label
    GET /v1/config/payouts?countryCode=IN HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Accept: application/json
    {
      "countryCode": "IN",
      "currencyCode": "INR",
      "isPayoutEnabled": true,
      "rails": [
        {"railId": "PAYTM", "minimumPayout": 100, "currencyCode": "INR"},
        {"railId": "PHONEPE", "minimumPayout": 100, "currencyCode": "INR"},
        {"railId": "UPI", "minimumPayout": 100, "currencyCode": "INR", "label": "BHIM UPI"},
        {"railId": "GOOGLEPAY", "minimumPayout": 100, "currencyCode": "INR"},
        {"railId": "AMAZONPAY", "minimumPayout": 100, "currencyCode": "INR"},
        {"railId": "PAYPAL", "minimumPayout": 5, "currencyCode": "USD"}
      ]
    }
  • Submit a payout request

    POST /v1/workers/me/cashouts openbanking

    Creates the cashout row from the payout screen: railId (PAYTM / PHONEPE / UPI / GOOGLEPAY / AMAZONPAY / PAYPAL) plus the UPI VPA, wallet MSISDN or PayPal email in paymentDetails.

    Auth: Bearer Firebase ID token. Rejected when points are below that rail's minimumPayout or isPayoutEnabled is false.

    • payoutId
    • uid
    • railId
    • payoutAmount
    • currencyCode
    • paymentDetails
    • status
    • pointsAfter
    • createdAt
    POST /v1/workers/me/cashouts HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Content-Type: application/json
    
    {
      "railId": "UPI",
      "payoutAmount": 200,
      "currencyCode": "INR",
      "paymentDetails": "ravi@okaxis"
    }
    {
      "payoutId": "po-88021",
      "uid": "k7Qm2nX0abCdefGhIjkL",
      "railId": "UPI",
      "payoutAmount": 200,
      "currencyCode": "INR",
      "paymentDetails": "ravi@okaxis",
      "status": "PENDING",
      "pointsAfter": 18350,
      "createdAt": "2026-10-11T06:20:00Z"
    }
  • List payout history

    GET /v1/payouts openfinance

    Fills the History screen: cashout rows with status PENDING / COMPLETED / REJECTED, the destination in paymentDetails, and an operator adminNote.

    Auth: Bearer Firebase ID token. Empty list is the History screen with no rows.

    • payouts
    • payoutId
    • railId
    • payoutAmount
    • currencyCode
    • paymentDetails
    • status
    • adminNote
    • createdAt
    • processedAt
    GET /v1/payouts?limit=20 HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Accept: application/json
    {
      "payouts": [
        {
          "payoutId": "po-88021",
          "railId": "UPI",
          "payoutAmount": 200,
          "currencyCode": "INR",
          "paymentDetails": "ravi@okaxis",
          "status": "COMPLETED",
          "adminNote": "Paid via UPI",
          "createdAt": "2026-10-08T11:00:00Z",
          "processedAt": "2026-10-09T04:15:00Z"
        },
        {
          "payoutId": "po-87990",
          "railId": "PAYTM",
          "payoutAmount": 150,
          "currencyCode": "INR",
          "paymentDetails": "9999999999",
          "status": "REJECTED",
          "adminNote": "Name mismatch",
          "createdAt": "2026-10-07T09:40:00Z",
          "processedAt": "2026-10-07T10:02:00Z"
        }
      ]
    }
  • List captcha image objects

    GET /v1/captchas/images opendata

    Supplies the photo set for slider-image and puzzle captchas when the catalog points at Storage rather than a bundled asset.

    Auth: Optional Bearer Firebase ID token. Slider and puzzle screens also fall back to bundled placeholders (default_puzzle.jpg, placeholder-img.jpg).

    • bucket
    • captchaType
    • difficulty
    • items
    • objectName
    • contentType
    • mediaUrl
    GET /v1/captchas/images?captchaType=PUZZLE&difficulty=NORMAL HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Accept: application/json
    {
      "bucket": "captchajob3-e4f42.firebasestorage.app",
      "captchaType": "PUZZLE",
      "difficulty": "NORMAL",
      "items": [
        {
          "objectName": "captchaImages/puzzle/normal/img_1042.jpg",
          "contentType": "image/jpeg",
          "mediaUrl": "https://firebasestorage.googleapis.com/v0/b/captchajob3-e4f42.firebasestorage.app/o/captchaImages%2Fpuzzle%2Fnormal%2Fimg_1042.jpg?alt=media"
        }
      ]
    }
  • Read daily solve streak

    GET /v1/workers/me/streak opendata

    Drives the home fire chip: currentStreak days in a row with at least one correct submit, longestStreak, and streakBonusPoints waiting once isTodayComplete flips.

    Auth: Bearer Firebase ID token. The uid in the token selects the worker row.

    • uid
    • currentStreak
    • longestStreak
    • streakBonusPoints
    • lastSolveDate
    • isTodayComplete
    GET /v1/workers/me/streak HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Accept: application/json
    {
      "uid": "k7Qm2nX0abCdefGhIjkL",
      "currentStreak": 4,
      "longestStreak": 12,
      "streakBonusPoints": 40,
      "lastSolveDate": "2026-10-10",
      "isTodayComplete": false
    }
  • Register device push token

    PUT /v1/workers/me/device opendata

    Binds the FCM device token so payout-status and streak-reminder pushes can reach the signed-in worker.

    Auth: Bearer Firebase ID token. The FCM token is minted by firebase_messaging after notification permission.

    • uid
    • deviceId
    • fcmToken
    • platform
    • notificationsEnabled
    • updatedAt
    PUT /v1/workers/me/device HTTP/1.1
    Authorization: Bearer <firebase-id-token>
    Content-Type: application/json
    
    {
      "fcmToken": "<fcm-device-token>",
      "platform": "android",
      "packageName": "typingbot.captchasolver.jobWorkOnline"
    }
    {
      "uid": "k7Qm2nX0abCdefGhIjkL",
      "deviceId": "dev-44102",
      "fcmToken": "<fcm-device-token>",
      "platform": "android",
      "notificationsEnabled": true,
      "updatedAt": "2026-10-11T06:22:00Z"
    }

Data categories

  • worker profiles
  • point balances
  • captcha task catalog
  • captcha submissions
  • captcha hints
  • solve streaks
  • device push tokens
  • payout rails
  • payout requests
  • payout history

Where teams use this data

  • Reconcile Paytm and UPI cashouts

    Treasury bots pull pending payout rows and per-worker history, match paymentDetails (Paytm MSISDN or UPI VPA) against wallet advice, and close items whose status flipped to COMPLETED with an adminNote.

  • Score captcha throughput by type

    Workforce analytics join solvedCount and pointsPerCaptcha with the home tiles (number, text, slider, puzzle, maths, copywriter) to see which tasks actually move points.

  • Gate payouts by country rail

    Compliance stacks read countryCode and hide PayPal or INR rails when that corridor's minimumPayout or isPayoutEnabled says it is closed.

  • Meter hint spend against solves

    Ops dashboards subtract pointsCost on hint calls from pointsAwarded on submits so a worker's net points still match the home chip.

Frequently asked questions

How does Captcha Entry authenticate workers?

Google Sign-In or email/password mints a Firebase ID token (uid on the worker row). Later reads and writes to the point balance, captcha submissions and payouts send that token as Authorization: Bearer.

Which payout rails appear on the cashout screen?

Paytm, PhonePe, BHIM UPI, Google Pay, Amazon Pay and PayPal. Each rail carries a railId, minimumPayout and currencyCode; the worker types a UPI VPA, wallet MSISDN or PayPal email into paymentDetails. History rows then show status PENDING, COMPLETED or REJECTED plus an operator adminNote.

What does a correct captcha submit return?

A correct answer sets isCorrect and credits pointsAwarded against the worker's running points, with solvedCount and batchRemaining for the 10-captcha number and text sets. Hint calls can deduct pointsCost while hintsRemaining is above zero; the fire chip separately tracks currentStreak and streakBonusPoints.

Is this a public developer API?

No. The objects above — task tiles, point balances, hint spend and payout rows — are the data the signed-in client already shows, modelled so integrators can call the same fields. They are not a published developer program.

Apps similar to Captcha Entry: Typing Job work

  • Clickworker — Clickworker is clickworker GmbH's Android and web workplace where freelancers complete paid digital microtasks such as surveys, writing, research, recordings and data categorizing on their own schedule.
  • 2Captcha — 2Captcha is a captcha typing job where workers register, open a simple image-entry interface, type the text shown, and earn funds for each correctly entered captcha.
  • Kolotibablo — Kolotibablo is an online captcha-entry job, running since 2007, where workers receive image tasks in a web interface, solve them manually, and withdraw once a small balance is reached.
  • Google Opinion Rewards — Google Opinion Rewards is Google's survey app that sends short questionnaires and pays Android users in Google Play credit (PayPal on iOS) instead of captcha-entry points.
  • Microworkers — Microworkers is a crowdsourcing site where employers post micro jobs—including text-captcha campaigns—and a worldwide worker pool completes them for pay.
  • Fiverr - Freelance Service — Fiverr is an online marketplace for packaged freelance services, a longer-form gig alternative to solving on-device captcha tiles for points.
  • Upwork — Upwork is a freelance platform where clients post jobs and workers submit proposals and manage contracts, unlike Captcha Entry's short on-device captcha batches.

Topics

  • Captcha Entry API
  • typing job points
  • Paytm captcha payout
  • UPI withdrawal
  • pointsPerCaptcha
  • railId
  • streakBonusPoints
  • Akash Vaghani captcha app

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote