NopeCHA
Site: https://nopecha.com/
Aucun plan tarifaire detaille n'est encore disponible pour cet outil.
AI for AutomaticCAPTCHA RecognitionAvailable as Chrome extension and Firefox add-onGo browserless with Token APILet's get started|Say Hello to Your Automated SolutionBest value per CAPTCHA. Guaranteed.Compare with our competitorsFree to useFor personal or hobby projects that aren't business-critical.Up to 100 recognitions every 24 hours.Super stealthUndetectable browser extension and verified tokens.Bypass human verifications on most sites.Fast resultsGuaranteed fastest recognitions 24/7.Our service is fully automated via AI, and our network is never congested.Fair pricingFor increased quota, zero usage restrictions, and 24/7 customer support.Starting at 90,000 recognitions per $1 USD.View pricingGet started in secondsSwift setup with our browser extension.Compatible with browser automation tools including Selenium, Puppeteer, and Playwright.Use your favorite languageWe've created libraries so you don't have to.Python (pypi) · Node.js (npm)user@nopecha: ~$npm i nopecha|Don't see your preferred language?Open an issue or consider contributing!Insights at the level you needSurvey the traffic from your apps.Estimate costs and plan ahead.Activity monitorSupported CAPTCHAsWe are continuously adding support for more.Learn moreRecognition APIArkose FunCAPTCHAAWS WAF CAPTCHAGoogle reCAPTCHAhCaptchaText-based CAPTCHAHuman (PerimeterX)GeeTest CAPTCHALemin CAPTCHAToken APICloudflare TurnstileGoogle reCAPTCHA V2Google reCAPTCHA V3Google reCAPTCHA EnterpriseJoin our global network of 1M+ users7,275,603Total Users73,883Online UsersDownloadsChrome Web StoreFirefox Add-onsGitHub ReleaseLinksHomeDocsAPI ReferencePricingCAPTCHA ExamplesMy SubscriptionsManage BillingActivity MonitorGuidesSupported CAPTCHAsInstallationGetting StartedRecognition APIToken APIExtracting CAPTCHAsUsing ProxiesProjectsBrowser ExtensionPython LibraryNode.js LibraryCommunityIssuesDiscussionsDiscordPrivacy PolicyTerms of ServiceNopeCHA, LLC. © 2022-2026 All rights reserved.Supported secure payments --- Unleash the power of AIUpgrade your subscription to unlock faster and better features, with 24x7 support.MonthlyEvery 3 MonthsStarter Plan2,000 solves / day$4.99 / monthSolve 60K+ CAPTCHAsUpload 540K+ images or audioUse 2+ concurrent connectionsPayPalStripeCryptoBasic Plan20,000 solves / day$19.99 / monthSolve 600K+ CAPTCHAsUpload 5.4M+ images or audioUse 8+ concurrent connectionsFast solve speedPayPalStripeCryptoProfessional Plan80,000 solves / day$49.99 / monthSolve 2.4M+ CAPTCHAsUpload 21M+ images or audioUse 16+ concurrent connectionsFaster solve speedPayPalStripeCryptoEnterprise Plan200,000 solves / day$99.99 / monthSolve 6M+ CAPTCHAsUpload 54M+ images or audioUse 64+ concurrent connectionsPrioritized solving24x7 email/ticket supportPayPalStripeCryptoStarter Plan2,000 solves / day$9.99 / quarterSolve 180K+ CAPTCHAsUpload 1.6M+ images or audioUse 2+ concurrent connectionsPayPalStripeCryptoBasic Plan20,000 solves / day$39.99 / quarterSolve 1.8M+ CAPTCHAsUpload 16M+ images or audioUse 8+ concurrent connectionsFast solve speedPayPalStripeCryptoProfessional Plan80,000 solves / day$99.99 / quarterSolve 7.2M+ CAPTCHAsUpload 65M+ images or audioUse 16+ concurrent connectionsFaster solve speedPayPalStripeCryptoEnterprise Plan200,000 solves / day$199.99 / quarterSolve 18M+ CAPTCHAsUpload 162M+ images or audioUse 64+ concurrent connectionsPrioritized solving24x7 email/ticket supportPayPalStripeCryptoHave a question for us?support@nopecha.comCredits refill every 23 hours.One credit processes up to 16 images, which is used to solve one CAPTCHA challenge.For more information, please refer to our API documentation.DownloadsChrome Web StoreFirefox Add-onsGitHub ReleaseLinksHomeDocsAPI ReferencePricingCAPTCHA ExamplesMy SubscriptionsManage BillingActivity MonitorGuidesSupported CAPTCHAsInstallationGetting StartedRecognition APIToken APIExtracting CAPTCHAsUsing ProxiesProjectsBrowser ExtensionPython LibraryNode.js LibraryCommunityIssuesDiscussionsDiscordPrivacy PolicyTerms of ServiceNopeCHA, LLC. © 2022-2026 All rights reserved.Supported secure payments --- Powered by # Welcome # NopeCHA: AI for automatic CAPTCHA recognition NopeCHA applies deep learning to solve CAPTCHAs for humans. # API Reference View the API documentation for the NopeCHA API, including endpoints, request/response formats, and examples. API Reference https://nopecha.com/api-reference # Is it FREE? It's free to use, for up to 100 solves per day, excluding non-residential IP addresses to prevent abuse and ensure availability for everyone. Chrome Extension https://nopecha.com/chrome Firefox Add-on https://nopecha.com/firefox If you cannot access the free service using your home internet, please contact us on Discord or open an issue on GitHub and we will whitelist your IP address. Our automated abuse detection system can make mistakes and we apologize if you were incorrectly blocked. # How we've taken CAPTCHA recognition by storm If you need to solve large volumes of CAPTCHAs, you've come to the right place. Our pricing is on average 27 times cheaper than other CAPTCHA recognition services. Every component in our service is automated by state-of-the-art AI, paving the way for unrivaled rates. Here's an authentic breakdown of our service vs competitors. # Cost and speed breakdown NopeCHA Recognition* NopeCHA Token* 2captcha capmonster reCAPTCHA Cost 90,000/$1 4,500/$1 333/$1 250/$1 Speed 1.5s 60s 26s 11s hCaptcha Cost 90,000/$1 18,000/$1 333/$1 1,250/$1 Speed 1.5s 15s 22s 11s Text CAPTCHA Cost 90,000/$1 Not Applicable 1,000/$1 3,333/$1 Speed 2s Not Applicable 5s 13s FunCAPTCHA Cost 90,000/$1 Coming soon 333/$1 Not Supported Speed 1.5s Coming soon 15s Not Supported Turnstile Cost Not Applicable 90,000/$1 Not Supported Not Supported Speed Not Applicable 5s Not Supported Not Supported AWS CAPTCHA Cost 9,000/$1 Coming soon Not Supported Not Supported Speed 1s Coming soon Not Supported Not Supported * Based on quarterly enterprise plan Cost table was last updated on Jan 2025 For information on the difference between Recognition and Token API, refer to our getting started guide. # Credit system for subscriptions When you purchase a Subscription Plan, you receive credits each day that can be used to solve CAPTCHAs. If you are unfamiliar with how credits work, you can try our free service which provides 100 free credits per day. The type of plan you purchase determines: The number of credits you receive each day The rate at which you can request our API Please refer to the table below to calculate how many credits you may need. The discrepancy among the number of credits consumed by each CAPTCHA is related to how computationally difficult it is to solve. Information on the benefits of each subscription plan can be found on our pricing page. # Credit usage by CAPTCHA 1 credit AWS CAPTCHA recognition 1 credit FunCAPTCHA recognition 1 credit GeeTest recognition 1 credit hCaptcha recognition 1 credit Lemin CAPTCHA recognition 1 credit reCAPTCHA recognition 1 credit Text CAPTCHA recognition 1 credit Turnstile token 10 credits hCaptcha token 20 credits reCAPTCHA v2 token 20 credits reCAPTCHA v3 token All free and paid credits are received every 23 hours. View Subscription Plans https://nopecha.com/pricing # Disclaimer If you are solving from reputable IP addresses, 1-2 credits is typically enough to fully solve 1 reCAPTCHA or FunCAPTCHA challenge. On high risk IP addresses, fully solving a reCAPTCHA challenge may take 2-6 credits, and FunCAPTCHA from 2-10 credits. Note that reCAPTCHA blocks you from solving if you're being rate limited; however, FunCAPTCHA allows you to solve and rejects when you submit. The NopeCHA browser extensions and the Token API spoof human activity to always generate authentic tokens. This means that an account you generate with NopeCHA does not require email or phone verification. --- NopeCHAPlatformDocsAPI ReferenceLightDarkAutoDocsAPI ReferenceLightDarkAutoStatusRetrieve API key statusRetrieve API key eventsRetrieve system metricsRecognitionAWS CAPTCHASubmit AWS CAPTCHARetrieve AWS CAPTCHAFunCAPTCHASubmit FunCAPTCHA TileRetrieve FunCAPTCHA TileSubmit FunCAPTCHA MatchRetrieve FunCAPTCHA MatchGeeTestSubmit GeeTestRetrieve GeeTesthCaptchaSubmit hCaptchaRetrieve hCaptchaLemin CAPTCHASubmit Lemin CAPTCHARetrieve Lemin CAPTCHAreCAPTCHASubmit reCAPTCHARetrieve reCAPTCHAText CAPTCHASubmit Text CAPTCHARetrieve Text CAPTCHATokenhCaptchaSubmit hCaptchaRetrieve hCaptchareCAPTCHA v2Submit reCAPTCHA v2Retrieve reCAPTCHA v2reCAPTCHA v3Submit reCAPTCHA v3Retrieve reCAPTCHA v3TurnstileSubmit TurnstileRetrieve TurnstileErrorsInvalid RequestUpdate RequiredInvalid API KeyUnavailable FeatureOut of CreditFree Tier IneligibleIncomplete JobRate LimitedInternal Server ErrorIssuesHelpGet started with our quick start guideLearn moreRetrieve API key statusGEThttps://api.nopecha.com/v1/statusFetch information about remaining credit balance, seconds left until next reset, and subscription information. If no API key is provided in the query, the status of the default API key (the user's IP address) will be returned.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.Returns200API key status retrieved successfully.Response bodyobjectAPI key status information.Show propertiesHide propertiesplanstringName of a subscription plan.statusstringActivation status.creditintegerNumber of remaining requests before the key resets its credit or expires.quotaintegerMaximum number of requests allowed for a key per reset interval.durationintegerInterval in seconds to reset a key credit by quota; negative value means no reset and key expires after the magnitude of this value in seconds passes.lastresetintegerTimestamp of when the key's credit was last reset.ttlintegerTime to live in seconds before the key resets its credit or expires, depending on the sign of the duration.subscribedintegerSubscription status.current_period_startintegerTimestamp of when the key's latest payment was made.current_period_endintegerTimestamp of when the key's expires without renewal. Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/status \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 123456import requests url = "https://api.nopecha.com/v1/status" params = { "key": "YOUR_API_KEY" } response = requests.get(url, params=params) print(response.json()) 123fetch("https://api.nopecha.com/v1/status?key=YOUR_API") .then(response => response.json()) .then(console.log) Response json Select library json 123456789101112{ "plan": "Enterprise", "status": "Active", "credit": 200000, "quota": 200000, "duration": 86400, "lastreset": 1719842747, "ttl": 744, "subscribed": 1, "current_period_start": 1, "current_period_end": 1 } Retrieve API key eventsGEThttps://api.nopecha.com/v1/timelinesRetrieve API key events for jobs submitted by the API key, including the job submission time, job completion time, and job collection time.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.nintegerOptionalDefaults to 100The maximum number of events to retrieve.Returns200API key timelines data retrieved successfully.Response bodyobjectLatest jobs and events information for an API key.Show propertiesHide propertiesjobsarrayA chronological list of jobs and their events.Show propertiesHide propertiesobjectShow propertiesHide propertiesjobobjectJob data.Show propertiesHide propertiestimelinearrayA chronological list of events for the job.Show propertiesHide propertiesobjectShow propertiesHide propertieseventstringEvent name.timeintegerTimestamp of the event. Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/timelines?n=10 \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 123456789import requests url = "https://api.nopecha.com/v1/timelines" params = { "key": "YOUR_API_KEY", "n": 10 } response = requests.get(url, params=params) print(response.json()) 123fetch("https://api.nopecha.com/v1/timelines?key=YOUR_API&n=10") .then(response => response.json()) .then(console.log) Response json Select library json 1234567891011121314151617181920212223242526272829{ "5l79r9zhslbnei67ymmvz8f1pxt7q25nausyr87jamy68721agaoxc26dryhxj3w": { "job": { "key": "YOUR_API_KEY", "type": "hcaptcha", "ip": "1.1.1.1", "task": "Please click on all entities similar to the following pattern.", "sitekey": "93b08d40-d46c-400a-ba07-6f91cda815b9" }, "timelines": [ { "event": "collected", "time": 1719886572.084 }, { "event": "solved", "time": 1719886571.186 }, { "event": "worked", "time": 1719886569.28 }, { "event": "posted", "time": 1719886569.243 } ] } } Retrieve system metricsGEThttps://api.nopecha.com/v1/metricsRetrieve system metrics data, including the number of total users, the number of online users, and the average inference time.Returns200API key metrics data retrieved successfully.Response bodyobjectAPI key metrics information.Show propertiesHide propertiesnusersintegerNumber of total users registered.nonlineintegerNumber of currently online users.captcha.recog.solvedurationnumberAverage duration of a recognition job in seconds.captcha.recog.hcaptcha.solvedurationnumberAverage duration of a hCaptcha recognition job in seconds.captcha.recog.recaptcha.solvedurationnumberAverage duration of a reCAPTCHA recognition job in seconds. Example request Shell Select library ShellPythonNode 12curl https://api.nopecha.com/v1/metrics \ -H "Content-Type: application/json" 123456import requests url = "https://api.nopecha.com/v1/metrics" params = { "key": "YOUR_API_KEY" } response = requests.get(url, params=params) print(response.json()) 123fetch("https://api.nopecha.com/v1/metrics?key=YOUR_API") .then(response => response.json()) .then(console.log) Response json Select library json 12345{ "nusers": 4048943, "nonline": 140087, "captcha.recog.solveduration": 1.016 } Submit AWS CAPTCHAPOSThttps://api.nopecha.com/v1/recognition/awscaptchaSubmit AWS WAF CAPTCHA recognition jobs to the AI inference engine.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredAWS WAF CAPTCHA recognition job data.Show propertiesHide propertieskeystringOptionalUser API key.audio_dataarrayRequiredArray of Base64-encoded audio data.Show propertiesHide propertiesstringBase64-encoded audio data.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 1234curl https://api.nopecha.com/v1/recognition/awscaptcha \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d '{"audio_data": ["data:audio/aac;base64,..."]}' 1234567import requests url = "https://api.nopecha.com/v1/recognition/awscaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "audio_data": ["data:audio/aac;base64,..."] } response = requests.post(url, headers=headers, json=data) print(response.json()) 12345678910fetch("https://api.nopecha.com/v1/recognition/awscaptcha", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ audio_data: ["data:audio/aac;base64,..."] }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve AWS CAPTCHAGEThttps://api.nopecha.com/v1/recognition/awscaptchaRetrieve the results of submitted AWS WAF CAPTCHA recognition jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Speech-to-text inference result of a multimodal model.Response bodyobjectShow propertiesHide propertiesdatastringSubmit the string value of the response data. Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/recognition/awscaptcha?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/recognition/awscaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/recognition/awscaptcha?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": ["conundrum"] } Submit FunCAPTCHA TilePOSThttps://api.nopecha.com/v1/recognition/funcaptchaSubmit FunCAPTCHA Tile recognition jobs to the AI inference engine.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredFunCAPTCHA Tile recognition job data.Show propertiesHide propertieskeystringOptionalUser API key.taskstringRequiredThe CAPTCHA challenge instruction in English.image_dataarrayRequiredArray of Base64-encoded image data or image URLs.Show propertiesHide propertiesstringBase64-encoded image data or image URL.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 123456789curl https://api.nopecha.com/v1/recognition/funcaptcha \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "task": "Pick the dice pair whose top sides add up to 14", "image_data": ["data:image/jpeg;base64,..."] } EOF 12345678910import requests url = "https://api.nopecha.com/v1/recognition/funcaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "task": "Pick the dice pair whose top sides add up to 14", "image_data": ["data:image/jpeg;base64,..."] } response = requests.post(url, headers=headers, json=data) print(response.json()) 12345678910111213fetch("https://api.nopecha.com/v1/recognition/funcaptcha", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ task: "Pick the dice pair whose top sides add up to 14", image_data: ["data:image/jpeg;base64,..."] }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve FunCAPTCHA TileGEThttps://api.nopecha.com/v1/recognition/funcaptchaRetrieve the results of submitted FunCAPTCHA Tile recognition jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Image recognition inference result of a multimodal model.Response bodyobjectShow propertiesHide propertiesdataarrayClick on the image tiles corresponding to the indices where the boolean values are true.Show propertiesHide propertiesboolean Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/recognition/funcaptcha?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/recognition/funcaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/recognition/funcaptcha?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": [false, false, true, false, false, false] } Submit FunCAPTCHA MatchPOSThttps://api.nopecha.com/v1/recognition/funcaptcha_matchSubmit FunCAPTCHA Match recognition jobs to the AI inference engine.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredFunCAPTCHA Match recognition job data.Show propertiesHide propertieskeystringOptionalUser API key.taskstringRequiredThe CAPTCHA challenge instruction in English.image_dataarrayRequiredArray of Base64-encoded image data or image URLs.Show propertiesHide propertiesstringBase64-encoded image data or image URL.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 123456789curl https://api.nopecha.com/v1/recognition/funcaptcha_match \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "task": "Find the tile that matches the sample image", "image_data": ["data:image/png;base64,..."] } EOF 12345678910import requests url = "https://api.nopecha.com/v1/recognition/funcaptcha_match" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "task": "Find the tile that matches the sample image", "image_data": ["data:image/png;base64,..."] } response = requests.post(url, headers=headers, json=data) print(response.json()) 12345678910111213fetch("https://api.nopecha.com/v1/recognition/funcaptcha_match", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ task: "Find the tile that matches the sample image", image_data: ["data:image/png;base64,..."] }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve FunCAPTCHA MatchGEThttps://api.nopecha.com/v1/recognition/funcaptcha_matchRetrieve the results of submitted FunCAPTCHA Match recognition jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Image recognition inference result of a multimodal model.Response bodyobjectShow propertiesHide propertiesdataarrayClick on the image tiles corresponding to the indices where the boolean values are true.Show propertiesHide propertiesboolean Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/recognition/funcaptcha_match?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/recognition/funcaptcha_match" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/recognition/funcaptcha_match?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": [false, true, false, false, false, false, false, false, false] } Submit GeeTestPOSThttps://api.nopecha.com/v1/recognition/geetestSubmit GeeTest recognition jobs to the AI inference engine.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredGeeTest recognition job data.Show propertiesHide propertieskeystringOptionalUser API key.taskstringRequiredThe CAPTCHA challenge instruction in English.image_dataarrayRequiredArray of Base64-encoded image data or image URLs.Show propertiesHide propertiesstringBase64-encoded image data or image URL.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 123456789curl https://api.nopecha.com/v1/recognition/geetest \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "task": "Drag the slider to complete the puzzle", "image_data": ["data:image/png;base64,..."] } EOF 12345678910import requests url = "https://api.nopecha.com/v1/recognition/geetest" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "task": "Drag the slider to complete the puzzle", "image_data": ["data:image/png;base64,..."] } response = requests.post(url, headers=headers, json=data) print(response.json()) 12345678910111213fetch("https://api.nopecha.com/v1/recognition/geetest", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ task: "Drag the slider to complete the puzzle", image_data: ["data:image/png;base64,..."] }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve GeeTestGEThttps://api.nopecha.com/v1/recognition/geetestRetrieve the results of submitted GeeTest recognition jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Image recognition inference result of a multimodal model.Response bodyobjectShow propertiesHide propertiesdataobjectDrag the slider horizontally to the x-percentile of the image width.Show propertiesHide propertiesxnumberHorizontal slider percentage of the image width. Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/recognition/geetest?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/recognition/geetest" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/recognition/geetest?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 12345{ "data": { "x": 58 } } Submit hCaptchaPOSThttps://api.nopecha.com/v1/recognition/hcaptchaSubmit hCaptcha recognition jobs to the AI inference engine.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredhCaptcha recognition job data.Show propertiesHide propertieskeystringOptionalUser API key.dataobjectRequiredhCaptcha recognition challenge data. This is the JSON object that is sent to the client when the hCaptcha challenge is rendered. It must include the request_type, requester_question, and tasklist fields.Show propertiesHide propertiesrequest_typestringRequiredThe type of hCaptcha challenge. Must be one of image_drag_drop, image_label_area_select, or image_label_binary.requester_questionobjectRequiredInstruction object that must include English text under the en key.Show propertiesHide propertiesenstringRequiredInstruction in Englishrequester_question_examplearrayOptionalArray of Base64-encoded image data or image URLs for example images, if applicable.Show propertiesHide propertiesstringBase64-encoded image data or image URL for the example image.tasklistarrayRequiredThe list of tasks for the hCaptcha challenge.Show propertiesHide propertiesobjectShow propertiesHide propertiestask_keystringRequiredThe unique identifier for the task.datapoint_uristringRequiredThe Base64-encoded image data or image URL for the task.entitiesarrayOptionalThe entities for the task, applicable for image_drag_drop type.Show propertiesHide propertiesobjectShow propertiesHide propertiesentity_idstringRequiredThe unique identifier for the entity.entity_uristringRequiredThe Base64-encoded image data or image URL for the entity.coordsarrayRequiredThe initial coordinates for the entity (x and y).Show propertiesHide propertiesintegerCoordinate value in pixels.sizearrayRequiredThe initial size of the entity (width and height).Show propertiesHide propertiesintegerSize value in pixels.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 123456789101112131415161718192021222324252627curl https://api.nopecha.com/v1/recognition/hcaptcha \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "data": { "request_type": "image_drag_drop", "requester_question": { "en": "Drag the object on the right to the pattern that matches it" }, "tasklist": [ { "datapoint_uri": "data:image/jpeg;base64,...", "task_key": "eabd4355-89ce-44bd-87e1-10ed1506b343", "entities": [ { "entity_id": "d37bb4a2-5416-4413-8aeb-92e44a80a92b", "entity_uri": "data:image/png;base64,...", "coords": [412,82], "size": [85,85] } ] } ] } } EOF 12345678910111213141516171819202122232425262728import requests url = "https://api.nopecha.com/v1/recognition/hcaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "data": { "request_type": "image_drag_drop", "requester_question": { "en": "Drag the object on the right to the pattern that matches it" }, "tasklist": [ { "datapoint_uri": "data:image/jpeg;base64,...", "task_key": "eabd4355-89ce-44bd-87e1-10ed1506b343", "entities": [ { "entity_id": "d37bb4a2-5416-4413-8aeb-92e44a80a92b", "entity_uri": "data:image/png;base64,...", "coords": [412,82], "size": [85,85] } ] } ] } } response = requests.post(url, headers=headers) print(response.json()) 123456789101112131415161718192021222324252627282930fetch("https://api.nopecha.com/v1/recognition/hcaptcha", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ "data": { "request_type": "image_drag_drop", "requester_question": { "en": "Drag the object on the right to the pattern that matches it" }, "tasklist": [ { "datapoint_uri": "data:image/jpeg;base64,...", "task_key": "eabd4355-89ce-44bd-87e1-10ed1506b343", "entities": [ { "entity_id": "d37bb4a2-5416-4413-8aeb-92e44a80a92b", "entity_uri": "data:image/png;base64,...", "coords": [412,82], "size": [85,85] } ] } ] } }) .then(response => response.json()) .then(console.log); Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve hCaptchaGEThttps://api.nopecha.com/v1/recognition/hcaptchaRetrieve the results of submitted hCaptcha recognition jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Image recognition inference result of a multimodal model.Response bodyobjectShow propertiesHide propertiesdataRecognition result for the specified hCaptcha request_type.Show propertiesHide propertiesDragDropResultSetarraySet of entity placements for each task in the tasklist for hCaptcha image_drag_drop challenges.Show propertiesHide propertiesDragDropResultobjectEntity placements for a single image_drag_drop challenge. Coordinates are expressed as percentages.Show propertiesHide propertiesentity_idstringEntity identifier defined in the hCaptcha task.xnumberHorizontal position percentage.ynumberVertical position percentage.wnumberBox width percentage.hnumberBox height percentage.AreaSelectResultSetarraySet of bounding boxes for each task in the tasklist for hCaptcha image_label_area_select challenges.Show propertiesHide propertiesAreaSelectResultobjectBounding box for a single image_label_area_select challenge. Coordinates are expressed as percentages.Show propertiesHide propertiesxnumberHorizontal position percentage.ynumberVertical position percentage.wnumberBox width percentage.hnumberBox height percentage.BinaryResultSetarraySet of boolean selection grids for each set of 9 tasks in the tasklist for hCaptcha image_label_binary challenges.Show propertiesHide propertiesBinaryResultarrayBoolean selection grid for a single image_label_binary challenge.Show propertiesHide propertiesboolean Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/recognition/hcaptcha?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/recognition/hcaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/recognition/hcaptcha?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 12345678910111213{ "data": [ [ { "entity_id": "d37bb4a2-5416-4413-8aeb-92e44a80a92b", "x": 45, "y": 27.89, "w": 17.71, "h": 26.56 } ] ] } Submit Lemin CAPTCHAPOSThttps://api.nopecha.com/v1/recognition/lemincaptchaSubmit Lemin CAPTCHA recognition jobs to the AI inference engine.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredLemin CAPTCHA recognition job data.Show propertiesHide propertieskeystringOptionalUser API key.taskstringRequiredThe CAPTCHA challenge instruction in English.image_dataarrayRequiredArray of Base64-encoded image data or image URLs.Show propertiesHide propertiesstringBase64-encoded image data or image URL.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 123456789curl https://api.nopecha.com/v1/recognition/lemincaptcha \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "task": "Drag the badge onto the matching silhouette", "image_data": ["data:image/png;base64,..."] } EOF 12345678910import requests url = "https://api.nopecha.com/v1/recognition/lemincaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "task": "Drag the badge onto the matching silhouette", "image_data": ["data:image/png;base64,..."] } response = requests.post(url, headers=headers, json=data) print(response.json()) 12345678910111213fetch("https://api.nopecha.com/v1/recognition/lemincaptcha", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ task: "Drag the badge onto the matching silhouette", image_data: ["data:image/png;base64,..."] }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve Lemin CAPTCHAGEThttps://api.nopecha.com/v1/recognition/lemincaptchaRetrieve the results of submitted Lemin CAPTCHA recognition jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Image recognition inference result of a multimodal model.Response bodyobjectShow propertiesHide propertiesdataobjectDrag the object to the x and y percentages of the image width and height.Show propertiesHide propertiesxnumberHorizontal drop percentage of the image width.ynumberVertical drop percentage of the image height. Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/recognition/lemincaptcha?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/recognition/lemincaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/recognition/lemincaptcha?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123456{ "data": { "x": 72.5, "y": 34.1 } } Submit reCAPTCHAPOSThttps://api.nopecha.com/v1/recognition/recaptchaSubmit reCAPTCHA recognition jobs to the AI inference engine.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredreCAPTCHA recognition job data.Show propertiesHide propertieskeystringOptionalUser API key.taskstringRequiredThe CAPTCHA challenge instruction in English.gridstring or nullRequiredSize of the puzzle grid. Use 3x3 for a 9 tile challenge, 4x4 for a 16 tile challenge, and 1x1 when individual images are shown sequentially. Set to null only when the grid is unknown.image_dataarrayRequiredArray of Base64-encoded image data or image URLs.Show propertiesHide propertiesstringBase64-encoded image data or image URL.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 12345678910curl https://api.nopecha.com/v1/recognition/recaptcha \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "task": "Select all images with traffic lights", "grid": "3x3", "image_data": ["data:image/jpeg;base64,..."] } EOF 1234567891011import requests url = "https://api.nopecha.com/v1/recognition/recaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "task": "Select all images with traffic lights", "grid": "3x3", "image_data": ["data:image/jpeg;base64,..."] } response = requests.post(url, headers=headers, json=data) print(response.json()) 1234567891011121314fetch("https://api.nopecha.com/v1/recognition/recaptcha", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ task: "Select all images with traffic lights", grid: "3x3", image_data: ["data:image/jpeg;base64,..."] }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve reCAPTCHAGEThttps://api.nopecha.com/v1/recognition/recaptchaRetrieve the results of submitted reCAPTCHA recognition jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Image recognition inference result of a multimodal model.Response bodyobjectShow propertiesHide propertiesdataarrayClick on the image tiles corresponding to the indices where the boolean values are true.Show propertiesHide propertiesboolean Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/recognition/recaptcha?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/recognition/recaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/recognition/recaptcha?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": [true, false, true, false, true, false, false, false, true] } Submit Text CAPTCHAPOSThttps://api.nopecha.com/v1/recognition/textcaptchaSubmit Text CAPTCHA recognition jobs to the AI inference engine.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredText CAPTCHA recognition job data.Show propertiesHide propertieskeystringOptionalUser API key.image_dataarrayRequiredArray of Base64-encoded image data or image URLs.Show propertiesHide propertiesstringBase64-encoded image data or image URL.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 12345678curl https://api.nopecha.com/v1/recognition/textcaptcha \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "image_data": ["data:image/png;base64,..."] } EOF 123456789import requests url = "https://api.nopecha.com/v1/recognition/textcaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "image_data": ["data:image/png;base64,..."] } response = requests.post(url, headers=headers, json=data) print(response.json()) 123456789101112fetch("https://api.nopecha.com/v1/recognition/textcaptcha", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ image_data: ["data:image/png;base64,..."] }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve Text CAPTCHAGEThttps://api.nopecha.com/v1/recognition/textcaptchaRetrieve the results of submitted Text CAPTCHA recognition jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Image-to-text inference result of a multimodal model.Response bodyobjectShow propertiesHide propertiesdataarraySubmit the string value of the response data.Show propertiesHide propertiesstring Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/recognition/textcaptcha?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/recognition/textcaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/recognition/textcaptcha?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": ["STATION"] } Submit hCaptchaPOSThttps://api.nopecha.com/v1/token/hcaptchaSubmit hCaptcha token jobs to token generators.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredhCaptcha token job data.Show propertiesHide propertieskeystringOptionalUser API key.sitekeystringRequiredPublic sitekey provided by the CAPTCHA vendor for the target domain.urlstringRequiredURL of the webpage where the CAPTCHA is located.proxyobjectOptionalProxy to use when solving the CAPTCHA.Show propertiesHide propertiesschemestringRequiredProxy scheme.hoststringRequiredProxy host or IP address.portintegerRequiredProxy port.usernamestringOptionalUsername for proxy authentication.passwordstringOptionalPassword for proxy authentication.cookiearrayOptionalCookie to use when solving the CAPTCHA.Show propertiesHide propertiesobjectCookie data.Show propertiesHide propertiesnamestringRequiredCookie name.valuestringRequiredCookie value.domainstringRequiredCookie domain (e.g. www.google.com, example.com).pathstringRequiredCookie path.hostOnlybooleanRequiredCookie is a host-only cookie (i.e. a request's host must exactly match the domain of the cookie).httpOnlybooleanRequiredCookie is marked as HttpOnly (i.e. the cookie is inaccessible to client-side scripts).securebooleanRequiredCookie is marked as Secure (i.e. its scope is limited to secure channels, typically HTTPS).sessionbooleanRequiredCookie is a session cookie, as opposed to a persistent cookie with an expiration date.expirationDateintegerOptionalThe expiration date of the cookie as the number of seconds since the UNIX epoch. Not provided for session cookies.useragentstringOptionalUser-Agent to use when solving the CAPTCHA.dataobjectOptionalhCaptcha metadata.Show propertiesHide propertiesrqdatastringOptionalThe rqdata metadata value.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 123456789101112curl https://api.nopecha.com/v1/token/hcaptcha \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "sitekey": "58366d97-3e8c-4b57-a679-4a41c8423be3", "url": "https://nopecha.com/captcha/hcaptcha", "data": { "rqdata": "rq_1vwJRRRVSkhKVE1DQ29CRU1qdldDRFB6enE2..." } } EOF 12345678910111213import requests url = "https://api.nopecha.com/v1/token/hcaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "sitekey": "58366d97-3e8c-4b57-a679-4a41c8423be3", "url": "https://nopecha.com/captcha/hcaptcha", "data": { "rqdata": "rq_1vwJRRRVSkhKVE1DQ29CRU1qdldDRFB6enE2..." } } response = requests.post(url, headers=headers, json=data) print(response.json()) 12345678910111213141516fetch("https://api.nopecha.com/v1/token/hcaptcha", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ sitekey: "58366d97-3e8c-4b57-a679-4a41c8423be3", url: "https://nopecha.com/captcha/hcaptcha", data: { rqdata: "rq_1vwJRRRVSkhKVE1DQ29CRU1qdldDRFB6enE2..." } }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve hCaptchaGEThttps://api.nopecha.com/v1/token/hcaptchaRetrieve the results of submitted hCaptcha token jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Token job results retrieved successfully.Response bodyobjectShow propertiesHide propertiesdatastringSolved CAPTCHA token. Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/token/hcaptcha?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/token/hcaptcha" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/token/hcaptcha?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "P0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." } Submit reCAPTCHA v2POSThttps://api.nopecha.com/v1/token/recaptcha2Submit reCAPTCHA v2 token jobs to token generators.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredreCAPTCHA v2 token job data.Show propertiesHide propertieskeystringOptionalUser API key.sitekeystringRequiredPublic sitekey provided by the CAPTCHA vendor for the target domain.urlstringRequiredURL of the webpage where the CAPTCHA is located.proxyobjectOptionalProxy to use when solving the CAPTCHA.Show propertiesHide propertiesschemestringRequiredProxy scheme.hoststringRequiredProxy host or IP address.portintegerRequiredProxy port.usernamestringOptionalUsername for proxy authentication.passwordstringOptionalPassword for proxy authentication.cookiearrayOptionalCookie to use when solving the CAPTCHA.Show propertiesHide propertiesobjectCookie data.Show propertiesHide propertiesnamestringRequiredCookie name.valuestringRequiredCookie value.domainstringRequiredCookie domain (e.g. www.google.com, example.com).pathstringRequiredCookie path.hostOnlybooleanRequiredCookie is a host-only cookie (i.e. a request's host must exactly match the domain of the cookie).httpOnlybooleanRequiredCookie is marked as HttpOnly (i.e. the cookie is inaccessible to client-side scripts).securebooleanRequiredCookie is marked as Secure (i.e. its scope is limited to secure channels, typically HTTPS).sessionbooleanRequiredCookie is a session cookie, as opposed to a persistent cookie with an expiration date.expirationDateintegerOptionalThe expiration date of the cookie as the number of seconds since the UNIX epoch. Not provided for session cookies.useragentstringOptionalUser-Agent to use when solving the CAPTCHA.dataobjectOptionalreCAPTCHA v2 metadata.Show propertiesHide propertiesthemestringOptionalLight/dark theme.sstringOptionalThe s metadata value.enterprisebooleanOptionalEnterprise reCAPTCHA.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 1234567891011121314curl https://api.nopecha.com/v1/token/recaptcha2 \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "sitekey": "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI", "url": "https://example.com/login", "data": { "theme": "dark", "s": "DATA_S_VALUE" }, "enterprise": false } EOF 123456789101112131415import requests url = "https://api.nopecha.com/v1/token/recaptcha2" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "sitekey": "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI", "url": "https://example.com/login", "data": { "theme": "dark", "s": "DATA_S_VALUE" }, "enterprise": False } response = requests.post(url, headers=headers, json=data) print(response.json()) 123456789101112131415161718fetch("https://api.nopecha.com/v1/token/recaptcha2", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ sitekey: "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI", url: "https://example.com/login", data: { theme: "dark", s: "DATA_S_VALUE" }, enterprise: false }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "3bxl7gjj59u40ewhye8oyw8lxmlok4lk" } Retrieve reCAPTCHA v2GEThttps://api.nopecha.com/v1/token/recaptcha2Retrieve the results of submitted reCAPTCHA v2 token jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Token job results retrieved successfully.Response bodyobjectShow propertiesHide propertiesdatastringSolved CAPTCHA token. Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/token/recaptcha2?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/token/recaptcha2" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/token/recaptcha2?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "03AFcWeA5wNq2g9M6YIB-uK3seGQ19izQvQnOe_l-sample" } Submit reCAPTCHA v3POSThttps://api.nopecha.com/v1/token/recaptcha3Submit reCAPTCHA v3 token jobs to token generators.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredreCAPTCHA v3 token job data.Show propertiesHide propertieskeystringOptionalUser API key.sitekeystringRequiredPublic sitekey provided by the CAPTCHA vendor for the target domain.urlstringRequiredURL of the webpage where the CAPTCHA is located.proxyobjectOptionalProxy to use when solving the CAPTCHA.Show propertiesHide propertiesschemestringRequiredProxy scheme.hoststringRequiredProxy host or IP address.portintegerRequiredProxy port.usernamestringOptionalUsername for proxy authentication.passwordstringOptionalPassword for proxy authentication.cookiearrayOptionalCookie to use when solving the CAPTCHA.Show propertiesHide propertiesobjectCookie data.Show propertiesHide propertiesnamestringRequiredCookie name.valuestringRequiredCookie value.domainstringRequiredCookie domain (e.g. www.google.com, example.com).pathstringRequiredCookie path.hostOnlybooleanRequiredCookie is a host-only cookie (i.e. a request's host must exactly match the domain of the cookie).httpOnlybooleanRequiredCookie is marked as HttpOnly (i.e. the cookie is inaccessible to client-side scripts).securebooleanRequiredCookie is marked as Secure (i.e. its scope is limited to secure channels, typically HTTPS).sessionbooleanRequiredCookie is a session cookie, as opposed to a persistent cookie with an expiration date.expirationDateintegerOptionalThe expiration date of the cookie as the number of seconds since the UNIX epoch. Not provided for session cookies.useragentstringOptionalUser-Agent to use when solving the CAPTCHA.dataobjectOptionalreCAPTCHA v3 metadata.Show propertiesHide propertiesactionstringOptionalThe data-action attribute value.themestringOptionalLight/dark theme.sstringOptionalThe s metadata value.enterprisebooleanOptionalEnterprise reCAPTCHA.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 123456789101112131415curl https://api.nopecha.com/v1/token/recaptcha3 \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "sitekey": "6Lc_aX0UAAAAAB1c2DEFghiJKLmNoPQRStuVwxYz", "url": "https://example.com/login", "data": { "action": "login", "theme": "light", "s": "DATA_S_VALUE" }, "enterprise": true } EOF 12345678910111213141516import requests url = "https://api.nopecha.com/v1/token/recaptcha3" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "sitekey": "6Lc_aX0UAAAAAB1c2DEFghiJKLmNoPQRStuVwxYz", "url": "https://example.com/login", "data": { "action": "login", "theme": "light", "s": "DATA_S_VALUE" }, "enterprise": True } response = requests.post(url, headers=headers, json=data) print(response.json()) 12345678910111213141516171819fetch("https://api.nopecha.com/v1/token/recaptcha3", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ sitekey: "6Lc_aX0UAAAAAB1c2DEFghiJKLmNoPQRStuVwxYz", url: "https://example.com/login", data: { action: "login", theme: "light", s: "DATA_S_VALUE" }, enterprise: true }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve reCAPTCHA v3GEThttps://api.nopecha.com/v1/token/recaptcha3Retrieve the results of submitted reCAPTCHA v3 token jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Token job results retrieved successfully.Response bodyobjectShow propertiesHide propertiesdatastringSolved CAPTCHA token. Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/token/recaptcha3?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/token/recaptcha3" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/token/recaptcha3?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "1.ABCDEFGHIJKLMNOPQRSTUVWX_sample_token" } Submit Cloudflare TurnstilePOSThttps://api.nopecha.com/v1/token/turnstileSubmit Cloudflare Turnstile token jobs to token generators.Request headersAuthorizationstringOptionalUser API key.Request bodyobjectRequiredCloudflare Turnstile token job data.Show propertiesHide propertieskeystringOptionalUser API key.sitekeystringRequiredPublic sitekey provided by the CAPTCHA vendor for the target domain.urlstringRequiredURL of the webpage where the CAPTCHA is located.proxyobjectRequiredProxy to use when solving the CAPTCHA. Important: In most cases, the IP address of the Turnstile solver must match that of the client submitting it, otherwise the token will be invalidated by Cloudflare and the IP addresses involved will be soft-blocked. As such, a proxy is required for Turnstile token jobs. To avoid issues, ensure that the same proxy is used when submitting the token.Show propertiesHide propertiesschemestringRequiredProxy scheme.hoststringRequiredProxy host or IP address.portintegerRequiredProxy port.usernamestringOptionalUsername for proxy authentication.passwordstringOptionalPassword for proxy authentication.cookiearrayOptionalCookie to use when solving the CAPTCHA.Show propertiesHide propertiesobjectCookie data.Show propertiesHide propertiesnamestringRequiredCookie name.valuestringRequiredCookie value.domainstringRequiredCookie domain (e.g. www.google.com, example.com).pathstringRequiredCookie path.hostOnlybooleanRequiredCookie is a host-only cookie (i.e. a request's host must exactly match the domain of the cookie).httpOnlybooleanRequiredCookie is marked as HttpOnly (i.e. the cookie is inaccessible to client-side scripts).securebooleanRequiredCookie is marked as Secure (i.e. its scope is limited to secure channels, typically HTTPS).sessionbooleanRequiredCookie is a session cookie, as opposed to a persistent cookie with an expiration date.expirationDateintegerOptionalThe expiration date of the cookie as the number of seconds since the UNIX epoch. Not provided for session cookies.useragentstringOptionalUser-Agent to use when solving the CAPTCHA.dataobjectOptionalCloudflare Turnstile metadata.Show propertiesHide propertiesactionstringOptionalThe data-action attribute value.cdatastringOptionalThe cdata metadata value.Returns200Job submitted successfully. Use the job ID from this response to retrieve the results.Response bodyobjectShow propertiesHide propertiesdatastringA unique ID of the submitted job used to retrieve the results when the job is complete. Example request Shell Select library ShellPythonNode 1234567891011121314151617181920curl https://api.nopecha.com/v1/token/turnstile \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" \ -d @- << EOF { "sitekey": "0x4AAAAAAABBBBCCCCDDDDEEEEFFFGGGHH", "url": "https://example.com/login", "proxy": { "scheme": "http", "host": "proxy.example.com", "port": 8080, "username": "proxyuser", "password": "proxypass" }, "data": { "action": "login", "cdata": "customer-metadata" } } EOF 123456789101112131415161718192021import requests url = "https://api.nopecha.com/v1/token/turnstile" headers = { "Authorization": "Basic YOUR_API_KEY" } data = { "sitekey": "0x4AAAAAAABBBBCCCCDDDDEEEEFFFGGGHH", "url": "https://example.com/login", "proxy": { "scheme": "http", "host": "proxy.example.com", # IP address or hostname "port": 8080, "username": "proxyuser", "password": "proxypass" }, "data": { "action": "login", "cdata": "customer-metadata" } } response = requests.post(url, headers=headers, json=data) print(response.json()) 123456789101112131415161718192021222324fetch("https://api.nopecha.com/v1/token/turnstile", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": "Basic YOUR_API_KEY" }, body: JSON.stringify({ sitekey: "0x4AAAAAAABBBBCCCCDDDDEEEEFFFGGGHH", url: "https://example.com/login", proxy: { scheme: "http", host: "proxy.example.com", // IP address or hostname port: 8080, username: "proxyuser", password: "proxypass" }, data: { action: "login", cdata: "customer-metadata" } }) }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "2xuttwekei7birwsfhh3lr97oqovzm0r9u23yz03uhr2u560l2rocrmanb7etf9k" } Retrieve Cloudflare TurnstileGEThttps://api.nopecha.com/v1/token/turnstileRetrieve the results of submitted Cloudflare Turnstile token jobs.Request headersAuthorizationstringOptionalUser API key.Query parameterskeystringOptionalUser API key.idstringRequiredA unique job ID of the submitted job.Returns200Token job results retrieved successfully.Response bodyobjectShow propertiesHide propertiesdatastringSolved CAPTCHA token. Example request Shell Select library ShellPythonNode 123curl https://api.nopecha.com/v1/token/turnstile?id=JOB_ID \ -H "Content-Type: application/json" \ -H "Authorization: Basic $YOUR_API_KEY" 1234567import requests url = "https://api.nopecha.com/v1/token/turnstile" headers = { "Authorization": "Basic YOUR_API_KEY" } params = { "id": "JOB_ID" } response = requests.get(url, headers=headers, params=params) print(response.json()) 12345fetch("https://api.nopecha.com/v1/token/turnstile?id=JOB_ID", { headers: { "Authorization": "Basic YOUR_API_KEY" } }) .then(response => response.json()) .then(console.log) Response json Select library json 123{ "data": "0.zLH9XGqT34J7GO1PEPKgHeYwO38CvXgGVZ6tVfl9eyZg5GvV7mTZGbBl" } Invalid RequestHTTP 400App code 10Request is invalid. Check the request body and query parameters for errors. If the type field is present in this error response, it will describe the nature of the error.Error bodyResponse bodyobjectShow propertiesHide propertiesmessagestringDefaults to Invalid requestcodeintegerDefaults to 10typestring or nullDescription of the errorUpdate RequiredHTTP 400App code 17The client must update to the latest version to continue using the service. This can be due to a breaking change or a security update. Although this error has never been used, it is reserved for future use.Error bodyResponse bodyobjectShow propertiesHide propertiesmessagestringDefaults to Update requiredcodeintegerDefaults to 17typestring or nullDescription of the errorInvalid API KeyHTTP 401App code 15The provided API key is invalid. If you believe this is an error, please contact support.Error bodyResponse bodyobjectShow propertiesHide propertiesmessagestringDefaults to Invalid keycodeintegerDefaults to 15typestring or nullDescription of the errorUnavailable FeatureHTTP 402App code 18The feature is unavailable for the current plan. An upgraded plan is required to use this feature.Error bodyResponse bodyobjectShow propertiesHide propertiesmessagestringDefaults to Feature unavailable for current plancodeintegerDefaults to 18typestring or nullDescription of the errorOut of CreditHTTP 403App code 16The API key has run out of credit. If you believe this is an error, please contact support.Error bodyResponse bodyobjectShow propertiesHide propertiesmessagestringDefaults to Out of creditcodeintegerDefaults to 16typestring or nullDescription of the errorFree Tier IneligibleHTTP 403App code 12IP address is ineligible to use the Free plan. Switch to a trusted IP to use the Free plan or subscribe to a paid plan to continue using the service on this IP address.Error bodyResponse bodyobjectShow propertiesHide propertiesmessagestringDefaults to Banned IPcodeintegerDefaults to 12typestring or nullDescription of the errorIncomplete JobHTTP 409App code 14Job is incomplete. Recommended wait time before retrying the request is 500ms.Error bodyResponse bodyobjectShow propertiesHide propertiesmessagestringDefaults to Incomplete jobcodeintegerDefaults to 14typestring or nullDescription of the errorRate LimitedHTTP 429App code 11Rate limit for this endpoint has been reached for the API key. Slow down the request rate to avoid this error.Error bodyResponse bodyobjectShow propertiesHide propertiesmessagestringDefaults to Rate limit reachedcodeintegerDefaults to 11typestring or nullDescription of the errorInternal Server ErrorHTTP 500App code 9An unknown error occurred. Check the request and try again. If the error persists, please contact support.Error bodyResponse bodyobjectShow propertiesHide propertiesmessagestringDefaults to Unknown errorcodeintegerDefaults to 9typestring or nullDescription of the errorWas this page useful?