{"id":37076425,"url":"https://github.com/justscrapeme/tiktok-captcha-solver","last_synced_at":"2026-01-14T08:59:18.778Z","repository":{"id":317298815,"uuid":"1043822140","full_name":"justscrapeme/tiktok-captcha-solver","owner":"justscrapeme","description":"TikTok Captcha Solver API (puzzle, whirl, 3d, end-to-end verification)","archived":false,"fork":false,"pushed_at":"2025-08-27T23:11:55.000Z","size":126,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-28T06:30:33.076Z","etag":null,"topics":["3d","captcha","captcha-api","captcha-bypass","captcha-solver","end-to-end-verification","puzzle","rotate","same-object","slide","tiktok","whirl"],"latest_commit_sha":null,"homepage":"","language":"Python","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/justscrapeme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-24T17:33:29.000Z","updated_at":"2025-11-24T09:58:30.000Z","dependencies_parsed_at":"2025-09-30T04:18:23.095Z","dependency_job_id":"5eda9d09-0c26-43b8-9a62-691fdd774be4","html_url":"https://github.com/justscrapeme/tiktok-captcha-solver","commit_stats":null,"previous_names":["justscrapeme/tiktok-captcha-solver"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/justscrapeme/tiktok-captcha-solver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justscrapeme%2Ftiktok-captcha-solver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justscrapeme%2Ftiktok-captcha-solver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justscrapeme%2Ftiktok-captcha-solver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justscrapeme%2Ftiktok-captcha-solver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/justscrapeme","download_url":"https://codeload.github.com/justscrapeme/tiktok-captcha-solver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/justscrapeme%2Ftiktok-captcha-solver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414731,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["3d","captcha","captcha-api","captcha-bypass","captcha-solver","end-to-end-verification","puzzle","rotate","same-object","slide","tiktok","whirl"],"created_at":"2026-01-14T08:59:18.242Z","updated_at":"2026-01-14T08:59:18.773Z","avatar_url":"https://github.com/justscrapeme.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TikTok Captcha Solver\n\nPython client for [TikTok Captcha Solving RapidAPI service](https://rapidapi.com/JustScrape/api/tiktok-captcha-solver12).\n\n**Solve any TikTok CAPTCHA in milliseconds — for pennies.**\n\n![Example](https://i.ibb.co/nsQxC6kt/image-25-1.png)\n\n## Table of Contents\n\n1. [🧑‍💻 What we do?](#what-we-do)\n2. [💡 Why choose us?](#why-choose-us)\n3. [🤝 Need more?](#need-more)\n4. [🔗 Links](#links)\n5. [⚙️ Installation](#installation)\n6. [📄 Usage examples](#usage-examples)  \n  6.1. [Slide (puzzle)](#slide-example)  \n  6.2. [Whirl (rotate)](#whirl-example)  \n  6.3. [3D (same object)](#3d-example)  \n  6.4. [End-to-end verification](#end-to-end-verification-example)\n\n## 🧑‍💻 What we do?\u003ca id=\"what-we-do\"\u003e\u003c/a\u003e\n\n| CAPTCHA type            | Accuracy | Avg. solve time |\n|-------------------------|:--------:|:---------------:|\n| Puzzle (slider)       | **99.7%** | **\u0026lt; 8 ms** |\n| Whirl (rotate)        | **99.5%** | **\u0026lt; 10 ms** |\n| 3D (same object)    | **99.7%** | **10 – 100 ms** |\n| ⭐ **End-to-End Verification**   | **99.5+%** | **4 – 5 sec** |\n\n**10+ million CAPTCHAs solved every day.** Join the traffic you can trust.\n\nAnd don't forget to check out our [TikTok reverse engineering project](https://github.com/justscrapeme/tiktok-web-reverse-engineering).\n\n## 💡 Why choose us?\u003ca id=\"why-choose-us\"\u003e\u003c/a\u003e\n\n- Blazing-fast — sub-10 ms latency for slide \u0026 rotate puzzles.\n- Battle-tested — production accuracy \u0026gt; 99.5% across all puzzle types.\n- Budget-friendly — starts at 0.001$ and goes to as low as 0.0002$ per solve; custom volume discounts available.\n- One call, done — optional end-to-end verification functionality to automatically validate verifyFp.\n\n## 🤝 Need more?\u003ca id=\"need-more\"\u003e\u003c/a\u003e\n\n- Direct API access\n- 1M+ solves / month\n- Dedicated instances or on-prem\n- SLA \u0026 priority support\n\nWe've got you covered, ping us — we’ll tailor a plan.\n\n## 🔗 Links\u003ca id=\"links\"\u003e\u003c/a\u003e\n\n| Source  | Details |\n|----------|---------|\n| Telegram | **[@justscrape](https://t.me/justscrape)** |\n| Email    | **[just.scrape.dev@gmail.com](mailto:just.scrape.dev@gmail.com)** |\n| RapidAPI    | **[JustScrape/api/tiktok-captcha-solver12](https://rapidapi.com/JustScrape/api/tiktok-captcha-solver12)** |\n| PyPI    | **[tiktok-captcha](https://pypi.org/project/tiktok-captcha/)** |\n| TikTok Reverse Engineering    | **[tiktok-web-reverse-engineering](https://github.com/justscrapeme/tiktok-web-reverse-engineering)** |\n\n## ⚙️ Installation\u003ca id=\"installation\"\u003e\u003c/a\u003e\n\n```shell\n# With uv\nuv add tiktok-captcha\n\n# With poetry\npoetry add tiktok-captcha\n\n# With pip\npip install tiktok-captcha\n```\n\n## 📄 Usage examples\u003ca id=\"usage-examples\"\u003e\u003c/a\u003e\n\n### Instantiate the service\n\n```python\nfrom tiktok_captcha import TikTokCaptchaSolver\n\ncaptcha_solver = TikTokCaptchaSolver(rapid_api_key=\"\u003cyour RapidAPI key\u003e\")\n```\n\n### Slide (puzzle)\u003ca id=\"slide-example\"\u003e\u003c/a\u003e\n\n```python\nsolution = await captcha_solver.solve_puzzle(\n    raw_puzzle=puzzle, # byte-like puzzle image\n    raw_background=background, # byte-like background image\n    drag_width=348, # Width of the draggable element in pixels\n)\nprint(solution.drag_distance)\n```\n\n### Whirl (rotate)\u003ca id=\"whirl-example\"\u003e\u003c/a\u003e\n\n```python\nsolution = await captcha_solver.solve_whirl(\n    raw_inner=inner, # byte-like inner image\n    raw_outer=outer, # byte-like outer image\n    drag_width=348, # Width of the draggable element in pixels\n)\nprint(solution.drag_distance)\n```\n\n### 3D (same object)\u003ca id=\"3d-example\"\u003e\u003c/a\u003e\n\n```python\nsolution = await captcha_solver.solve_3d(\n    raw_image=image, # byte-like image\n    modified_img_width=348, # Width of the modified image in pixels\n)\nprint(solution.x1, solution.y1, solution.x2, solution.y2)\n```\n\n### End-to-end verification\u003ca id=\"end-to-end-verification-example\"\u003e\u003c/a\u003e\n\n❗ NOTE:\n\n1. Example values are for demonstration purposes only. Use your own values when making real requests.\n2. This request intentionally succeeds a couple seconds longer to closely emulate the real user verification process.\n\n```python\nawait captcha_solver.verify(\n    subtype=\"slide\",\n    device_id=\"7541149000466466326\",\n    iid=\"0\",\n    verify_fp=\"verify_melwajzm_OnirqqA7_URpG_4L5b_8cWP_sQJNrIwZwAiX\",\n    region=\"no1a\",\n    detail=\"l2uF9tjRXulja4sQC05*D8yBqyrp*eRr*-uqAgt7z8xlrsXKqIVLLiWZwGV64jmslIvcOPAU4JKNbZMsUJRIaUnijEggW8mTVlXY2RwTdjOCBr4za7YfTv*DiCcwGQtFKCOyQSOzy-76U346Dio0dGMkR7xOMRh325M8HaBjrD70HvJYyMVBBVFvmqK6ZtyuYIvcVRmSTgILRAKfcz9rNC1l9Q1AgN20VxbvCnWfP-dosVsIKCZh4CdKsiMAzWKvxYu0rSyCljqeVVjJ1*Z1285q3UO3xGsXJFR6l9kA4XPo*wUrO0SvRBiHhDF*7jCH*JlJe*4W0qKpTzKnHQRFeHZP3M6Pd-87ENAMmBWRbrJ*RcSoSXCtPBHivJHpHa2OTR5uQhTbQV9gGOwUwPGQHKq2ZzCVM-hL4gslyrjwlvIMoCJD4xs.\",\n    server_sdk_env='{\"idc\":\"my\",\"region\":\"ALISG\",\"server_type\":\"passport\"}',\n    ms_token=\"PGvFJUZMmE1v3MQ_WMpH-0K7bBTXeL0-irnmjjS8gBC7mea5HnotpBefv0Nb_WlII8XQMRG6plihRpdodDU5mq4RN7q4FQ5XnR3d2MDKHW_sZfIp7-utleWMnMKu2q9zrQBwEkFrYRlBOMBDb7Zu_lU=\",\n    proxy=\"username:password@host:port\",\n)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustscrapeme%2Ftiktok-captcha-solver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjustscrapeme%2Ftiktok-captcha-solver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjustscrapeme%2Ftiktok-captcha-solver/lists"}