{"id":37039005,"url":"https://github.com/imagetyperz-api/imagetyperz-api-csharp","last_synced_at":"2026-01-14T04:37:53.684Z","repository":{"id":29332929,"uuid":"133348838","full_name":"imagetyperz-api/imagetyperz-api-csharp","owner":"imagetyperz-api","description":"imagetyperz-api-csharp - is a super easy to use bypass captcha API wrapper for imagetyperz.com captcha service","archived":false,"fork":false,"pushed_at":"2023-04-18T10:58:28.000Z","size":1126,"stargazers_count":8,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T07:39:02.527Z","etag":null,"topics":["2captcha","anticaptcha","bypass-invisible-recaptcha","bypass-no-captcha-recaptcha","bypass-recaptcha-v2","bypasscaptcha","captcha","captcha-services-for-recaptcha-v2","deathbycaptcha","decaptcha","decaptcher","google-recaptcha-solver","recaptcha-bypass-script","recaptcha-solver-csharp","recaptcha-v2-captcha-solver"],"latest_commit_sha":null,"homepage":"http://imagetyperz.com","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imagetyperz-api.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-14T11:11:52.000Z","updated_at":"2023-12-13T18:09:10.000Z","dependencies_parsed_at":"2023-01-14T14:41:34.858Z","dependency_job_id":null,"html_url":"https://github.com/imagetyperz-api/imagetyperz-api-csharp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/imagetyperz-api/imagetyperz-api-csharp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagetyperz-api%2Fimagetyperz-api-csharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagetyperz-api%2Fimagetyperz-api-csharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagetyperz-api%2Fimagetyperz-api-csharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagetyperz-api%2Fimagetyperz-api-csharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imagetyperz-api","download_url":"https://codeload.github.com/imagetyperz-api/imagetyperz-api-csharp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imagetyperz-api%2Fimagetyperz-api-csharp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28409619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2captcha","anticaptcha","bypass-invisible-recaptcha","bypass-no-captcha-recaptcha","bypass-recaptcha-v2","bypasscaptcha","captcha","captcha-services-for-recaptcha-v2","deathbycaptcha","decaptcha","decaptcher","google-recaptcha-solver","recaptcha-bypass-script","recaptcha-solver-csharp","recaptcha-v2-captcha-solver"],"created_at":"2026-01-14T04:37:53.147Z","updated_at":"2026-01-14T04:37:53.676Z","avatar_url":"https://github.com/imagetyperz-api.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"imagetyperz-api-csharp - Imagetyperz API wrapper\n=========================================\n\nimagetyperzapi is a super easy to use bypass captcha API wrapper for imagetyperz.com captcha service\n\n## Installation\n    git clone https://github.com/imagetyperz-api/imagetyperz-api-csharp\n\n## Usage\n\nSimply require the module, set the auth details and start using the captcha service:\n\n``` csharp\nusing ImageTypers;\n```\nSet access_token for authentication:\n\n``` csharp\nImageTypersAPI i = new ImageTypersAPI('your_access_token');\n```\n\nOnce you've set your authentication details, you can start using the API.\n\n**Get balance**\n\n``` csharp\nstring balance = i.account_balance();\nConsole.WriteLine(string.Format(\"Balance: {0}\", balance));\n```\n\n## Solving\nFor solving a captcha, it's a two step process:\n- **submit captcha** details - returns an ID\n- use ID to check it's progress - and **get solution** when solved.\n\nEach captcha type has it's own submission method.\n\nFor getting the response, same method is used for all types.\n\n\n### Image captcha\n\n``` csharp\nDictionary\u003cstring, string\u003e image_params = new Dictionary\u003cstring, string\u003e();\n// image_params.Add(\"iscase\", \"true\");         // case sensitive captcha\n// image_params.Add(\"isphrase\", \"true\");       // text contains at least one space (phrase)\n// image_params.Add(\"ismath\", \"true\");         // instructs worker that a math captcha has to be solved\n// image_params.Add(\"alphanumeric\", \"1\");      // 1 - digits only, 2 - letters only\n// image_params.Add(\"minlength\", \"2\");         // captcha text length (minimum)\n// image_params.Add(\"maxlength\", \"5\");         // captcha text length (maximum)\nstring captcha_id = i.submit_image(\"captcha.jpg\", image_params);\n```\nID received is used to retrieve solution when solved.\n\n**Observation**\nIt works with URL instead of image file too, but authentication has to be done using token.\n\n### reCAPTCHA\n\nFor recaptcha submission there are two things that are required.\n- page_url (**required**)\n- site_key (**required**)\n- type (optional, defaults to 1 if not given)\n  - `1` - v2\n  - `2` - invisible\n  - `3` - v3\n  - `4` - enterprise v2\n  - `5` - enterprise v3\n- domain - used in loading of reCAPTCHA interface, default: `www.google.com` (alternative: `recaptcha.net`) - `optional`\n- v3_min_score - minimum score to target for v3 recaptcha `- optional`\n- v3_action - action parameter to use for v3 recaptcha `- optional`\n- proxy - proxy to use when solving recaptcha, eg. `12.34.56.78:1234` or `12.34.56.78:1234:user:password` `- optional`\n- user_agent - useragent to use when solve recaptcha `- optional` \n- data-s - extra parameter used in solving recaptcha `- optional`\n- cookie_input - cookies used in solving reCAPTCHA - `- optional`\n\n``` csharp\nDictionary\u003cstring, string\u003e d = new Dictionary\u003cstring, string\u003e();\nd.Add(\"page_url\", \"https://your-site.com\");\nd.Add(\"sitekey\", \"7LrGJmcUABBAALFtIb_FxC0LXm_GwOLyJAfbbUCL\");\n// d.Add(\"type\", \"1\");                 // optional\n// d.Add(\"domain\", \"www.google.com\");  // used in loading reCAPTCHA interface, default: www.google.com (alternative: recaptcha.net) - optional\n// d.Add(\"v3_min_score\", \"0.1\");       // optional\n// d.Add(\"v3_action\", \"homepage\");     // optional\n// d.Add(\"proxy\", \"126.45.34.53:123\"); // or with auth 126.45.34.53:123:user:pass - optional\n// d.Add(\"user_agent\", \"Your user agent\"); // optional\n// d.Add(\"data-s\", \"recaptcha data-s value\"); // optional\n// d.Add(\"cookie_input\", \"a=b;c=d\"); // optional\nstring captcha_id = i.submit_recaptcha(d);\n```\nID will be used to retrieve the g-response, once workers have \ncompleted the captcha. This takes somewhere between 10-80 seconds. \n\nCheck **Retrieve response** \n\n### GeeTest\n\nGeeTest is a captcha that requires 3 parameters to be solved:\n- domain\n- challenge\n- gt\n- api_server (optional)\n\nThe response of this captcha after completion are 3 codes:\n- challenge\n- validate\n- seccode\n\n**Important**\nThis captcha requires a **unique** challenge to be sent along with each captcha.\n\n```csharp\nDictionary\u003cstring, string\u003e d = new Dictionary\u003cstring, string\u003e();\nd.Add(\"domain\", \"https://your-site.com\");\nd.Add(\"challenge\", \"eea8d7d1bd1a933d72a9eda8af6d15d3\");\nd.Add(\"gt\", \"1a761081b1114c388092c8e2fd7f58bc\");\n// d.Add(\"api_server\", \"api.geetest.com\"); // optional\n// d.Add(\"proxy\", \"126.45.34.53:123\"); // or with auth 126.45.34.53:123:user:pass - optional\n// d.Add(\"user_agent\", \"Your user agent\"); // optional\nstring captcha_id = i.submit_geetest(d);\n```\n\nOptionally, you can send proxy and user_agent along.\n\n\n### GeeTestV4\n\nGeeTesV4 is a new version of captcha from geetest that requires 2 parameters to be solved:\n\n- domain\n- geetestid (captchaID) - gather this from HTML source of page with captcha, inside the `\u003cscript\u003e` tag you'll find a link that looks like this: https://i.imgur.com/XcZd47y.png\n\nThe response of this captcha after completion are 5 parameters:\n\n- captcha_id\n- lot_number\n- pass_token\n- gen_time\n- captcha_output\n\n```csharp\nDictionary\u003cstring, string\u003e d = new Dictionary\u003cstring, string\u003e();\nd.Add(\"domain\", \"https://example.com\");\nd.Add(\"geetestid\", \"647f5ed2ed8acb4be36784e01556bb71\");\n//d.Add(\"proxy\", \"126.45.34.53:123\"); // or with auth 126.45.34.53:123:user:pass - optional\n//d.Add(\"user_agent\", \"Your user agent\"); // optional\n\nstring captcha_id = i.submit_geetest_v4(d);\n```\n\nOptionally, you can send proxy and user_agent along.\n\n\n### hCaptcha\n\nRequires page_url and sitekey\n\n```csharp\nDictionary\u003cstring, string\u003e d = new Dictionary\u003cstring, string\u003e();\nd.Add(\"page_url\", \"https://your-site.com\");\nd.Add(\"sitekey\", \"8c7062c7-cae6-4e12-96fb-303fbec7fe4f\");\n\n// d.Add(\"invisible\", \"1\");              // if captcha is invisible - optional\n\n// domain used in loading of hcaptcha interface, default: hcaptcha.com - optional\n// d.Add(\"domain\", \"hcaptcha.com\");\n\n// extra parameters, useful for enterprise\n// submit userAgent from requests too, when this is used\n// d.Add(\"HcaptchaEnterprise\", \"{\\\"rqdata\\\": \\\"value taken from web requests\\\"}\");\n\n// d.Add(\"proxy\", \"126.45.34.53:123\"); // or with auth 126.45.34.53:123:user:pass - optional\n// d.Add(\"user_agent\", \"Your user agent\"); // optional\nstring captcha_id = i.submit_hcaptcha(d);\n```\n\n### Capy\n\nRequires page_url and sitekey\n\n```csharp\nDictionary\u003cstring, string\u003e d = new Dictionary\u003cstring, string\u003e();\nd.Add(\"page_url\", \"https://your-site.com\");\nd.Add(\"sitekey\", \"Fme6hZLjuCRMMC3uh15F52D3uNms5c\");\n// d.Add(\"proxy\", \"126.45.34.53:123\"); // or with auth 126.45.34.53:123:user:pass - optional\n// d.Add(\"user_agent\", \"Your user agent\"); // optional\nstring captcha_id = i.submit_capy(d);\n```\n\n### Tiktok\n\nRequires page_url cookie_input\n\n```csharp\nDictionary\u003cstring, string\u003e d = new Dictionary\u003cstring, string\u003e();\nd.Add(\"page_url\", \"https://tiktok.com\");\n// make sure `s_v_web_id` cookie is present\nd.Add(\"cookie_input\", \"s_v_web_id:verify_kd6243o_fd449FX_FDGG_1x8E_8NiQ_fgrg9FEIJ3f;tt_webid:612465623570154;tt_webid_v2:7679206562717014313;SLARDAR_WEB_ID:d0314f-ce16-5e16-a066-71f19df1545f;\");\n// d.Add(\"proxy\", \"126.45.34.53:123\"); // or with auth 126.45.34.53:123:user:pass - optional\n// d.Add(\"user_agent\", \"Your user agent\"); // optional\nstring captcha_id = i.submit_tiktok(d);\n```\n\n### FunCaptcha\n\nRequires page_url, sitekey and s_url\n\n```csharp\nDictionary\u003cstring, string\u003e d = new Dictionary\u003cstring, string\u003e();\nd.Add(\"page_url\", \"https://your-site.com\");\nd.Add(\"sitekey\", \"11111111-1111-1111-1111-111111111111\");\nd.Add(\"s_url\", \"https://api.arkoselabs.com\");\n//d.Add(\"data\", \"{\\\"a\\\": \\\"b\\\"}\");   // optional, extra funcaptcha data in JSON format\n//d.Add(\"proxy\", \"126.45.34.53:123\"); // or with auth 126.45.34.53:123:user:pass - optional\n//d.Add(\"user_agent\", \"Your user agent\"); // optional\nstring captcha_id = i.submit_funcaptcha(d);\n```\n\n### Turnstile (Cloudflare)\n\nRequires page_url, sitekey\n\n```csharp\nDictionary\u003cstring, string\u003e d = new Dictionary\u003cstring, string\u003e();\nd.Add(\"page_url\", \"https://your-site.com\");\nd.Add(\"sitekey\", \"0x4ABBBBAABrfvW5vKbx11FZ\");\n//d.Add(\"domain\", \"challenges.cloudflare.com\"); // domain used in loading turnstile interface, default: challenges.cloudflare.com - optional\n//d.Add(\"action\", \"homepage\");                  // used in loading turnstile interface, similar to reCAPTCHA - optional\n//d.Add(\"cdata\", \"your cdata\");                 // used in loading turnstile interface - optional\n//d.Add(\"proxy\", \"126.45.34.53:123\"); // or with auth 126.45.34.53:123:user:pass - optional\n//d.Add(\"user_agent\", \"Your user agent\"); // optional\n\nstring captcha_id = i.submit_turnstile(d);\n```\n\n### Task\n\nRequires template_name, page_url and usually variables\n\n```csharp\nDictionary\u003cstring, string\u003e d = new Dictionary\u003cstring, string\u003e();\nd.Add(\"template_name\", \"Login test page\");\nd.Add(\"page_url\", \"https://imagetyperz.net/automation/login\");\nd.Add(\"variables\", \"{\\\"username\\\": \\\"abc\\\", \\\"password\\\": \\\"paZZW0rd\\\"}\");\n//d.Add(\"proxy\", \"126.45.34.53:123\"); // or with auth 126.45.34.53:123:user:pass - optional\n//d.Add(\"user_agent\", \"Your user agent\"); // optional\nstring captcha_id = i.submit_task(d);\n```\n\n#### Task pushVariable\nUpdate a variable value while task is running. Useful when dealing with 2FA authentication.\n\nWhen template reaches an action that uses a variable which wasn't provided with the submission of the task,\ntask (while running on worker machine) will wait for variable to be updated through push.\n\nYou can use the pushVariables method as many times as you need, even overwriting previously set variables.\n```java\nString code = \"24323\";\ni.task_push_variables(captcha_id, \"{\\\"twofactor_code\\\": \\\"\" + code + \"\\\"}\");\n```\n\n## Retrieve response\n\nRegardless of the captcha type (and method) used in submission of the captcha, this method is used\nright after to check for it's solving status and also get the response once solved.\n\nIt requires one parameter, that's the **captcha ID** gathered from first step.\n\n```python\nresponse = i.retrieve_response(captcha_id);\n```\n\n```csharp\nstring captcha_id = i.submit_recaptcha(d); // works with any captcha type submitted\nConsole.WriteLine(\"Waiting for captcha to be solved...\");\nDictionary\u003cstring, string\u003e response = null;\nwhile (response == null)\n{\n    System.Threading.Thread.Sleep(10000);       // sleep for 10 secons before checking for response\n    response = i.retrieve_response(captcha_id);\n}\nImageTypers.Utils.print_response(response);\n```\nThe response is a JSON object that looks like this:\n```json\n{\n  \"CaptchaId\": 176707908, \n  \"Response\": \"03AGdBq24PBCbwiDRaS_MJ7Z...mYXMPiDwWUyEOsYpo97CZ3tVmWzrB\", \n  \"Cookie_OutPut\": \"\", \n  \"Proxy_reason\": \"\",\n  \"Status\": \"Solved\"\n}\n```\n\n## Other methods/variables\n\n**Affiliate id**\n\nThe constructor accepts a 2nd parameter, as the affiliate id. \n``` csharp\nImagetypersAPI i = new ImagetypersAPI(username, password, 123);     // init with affiliate id\n```\n\n**Requests timeout**\n\nSpecify timeout for requests made to API\n``` csharp\ni.set_timeout(10);    // set timeout to 10 seconds\n```\n\n**Set captcha bad**\n\nWhen a captcha was solved wrong by our workers, you can notify the server with it's ID,\nso we know something went wrong.\n\n``` python\ni.set_captcha_bad(captcha_id);\n```\n\n## Examples\nCheck `example/captcha` folder for examples, for each type of captcha.\n\n## License\nAPI library is licensed under the MIT License\n\n## More information\nMore details about the server-side API can be found [here](http://imagetyperz.com)\n\n\u003csup\u003e\u003csub\u003ecaptcha, bypasscaptcha, decaptcher, decaptcha, 2captcha, deathbycaptcha, anticaptcha, \nbypassrecaptchav2, bypassnocaptcharecaptcha, bypassinvisiblerecaptcha, captchaservicesforrecaptchav2, \nrecaptchav2captchasolver, googlerecaptchasolver, recaptchasolver-csharp, recaptchabypassscript\u003c/sup\u003e\u003c/sub\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimagetyperz-api%2Fimagetyperz-api-csharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimagetyperz-api%2Fimagetyperz-api-csharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimagetyperz-api%2Fimagetyperz-api-csharp/lists"}