Skip to main content

TikTok Captcha Solver

Python client for TikTok Captcha Solving service.

Allowed usage methods:

Solve any TikTok CAPTCHA in milliseconds — for pennies.

Example

Table of Contents

  1. 🧑‍💻 What we do?
  2. 💡 Why choose us?
  3. 🤝 Need more?
  4. 🔗 Links
  5. ⚙️ Installation
  6. 📄 Usage examples
    6.1. Slide (puzzle)
    6.2. Whirl (rotate)
    6.3. 3D (same object)
    6.4. Hashcash
    6.5. End-to-end verification

🧑‍💻 What we do?

CAPTCHA type Accuracy Avg. solve time
Puzzle (slider) 99.7% < 8 ms
Whirl (rotate) 99.5% < 10 ms
3D (same object) 99.7% 10 – 100 ms
Hashcash 100% < 50 ms
⭐ End-to-End Verification 99.5+% 4 – 5 sec

10+ million CAPTCHAs solved every day. Join the traffic you can trust.

And don't forget to check out our TikTok reverse engineering project.

💡 Why choose us?

  • Blazing-fast — sub-10 ms latency for slide & rotate puzzles.
  • Battle-tested — production accuracy > 99.5% across all puzzle types.
  • Budget-friendly — starts at 0.001$ and goes to as low as 0.0002$ per solve; custom volume discounts available.
  • One call, done — optional end-to-end verification functionality to automatically validate verifyFp.

🤝 Need more?

  • Direct API access
  • 1M+ solves / month
  • Dedicated instances or on-prem
  • SLA & priority support

We've got you covered, ping us — we’ll tailor a plan.

🔗 Links

Source Details
Telegram @justscrape
Email just.scrape.dev@gmail.com
RapidAPI JustScrape/api/tiktok-captcha-solver12
PyPI tiktok-captcha
TikTok Reverse Engineering tiktok-web-reverse-engineering

⚙️ Installation

# With uv
uv add tiktok-captcha

# With poetry
poetry add tiktok-captcha

# With pip
pip install tiktok-captcha

📄 Usage examples

Instantiate the service

from tiktok_captcha import TikTokCaptchaSolver, PrivateAPIServiceLocation

captcha_solver = TikTokCaptchaSolver(
    service_location=PrivateAPIServiceLocation(
        url="<private API URL>",
        api_key="<your private API key>"
    )
)

Slide (puzzle)

solution = await captcha_solver.solve_puzzle(
    raw_puzzle=puzzle, # byte-like puzzle image
    raw_background=background, # byte-like background image
    drag_width=348, # Width of the draggable element in pixels
)
print(solution.drag_distance)

Whirl (rotate)

solution = await captcha_solver.solve_whirl(
    raw_inner=inner, # byte-like inner image
    raw_outer=outer, # byte-like outer image
    drag_width=348, # Width of the draggable element in pixels
)
print(solution.drag_distance)

3D (same object)

solution = await captcha_solver.solve_3d(
    raw_image=image, # byte-like image
    modified_img_width=348, # Width of the modified image in pixels
)
print(solution.x1, solution.y1, solution.x2, solution.y2)

Hashcash

solution = await captcha_solver.solve_hashcash(
    prefix="1777662666", # hashcash question prefix returned by TikTok
    required_bits=8, # number of leading bits that must match
    stamp=3471963987, # hashcash question stamp returned by TikTok
)
print(solution.answer)

End-to-end verification

❗ NOTE:

  1. Example values are for demonstration purposes only. Use your own values when making real requests.
  2. This request intentionally succeeds a couple seconds longer to closely emulate the real user verification process.
await captcha_solver.verify(
    subtype="slide",
    device_id="7541149000466466326",
    iid="0",
    verify_fp="verify_melwajzm_OnirqqA7_URpG_4L5b_8cWP_sQJNrIwZwAiX",
    region="no1a",
    detail="l2uF9tjRXulja4sQC05*D8yBqyrp*eRr*-uqAgt7z8xlrsXKqIVLLiWZwGV64jmslIvcOPAU4JKNbZMsUJRIaUnijEggW8mTVlXY2RwTdjOCBr4za7YfTv*DiCcwGQtFKCOyQSOzy-76U346Dio0dGMkR7xOMRh325M8HaBjrD70HvJYyMVBBVFvmqK6ZtyuYIvcVRmSTgILRAKfcz9rNC1l9Q1AgN20VxbvCnWfP-dosVsIKCZh4CdKsiMAzWKvxYu0rSyCljqeVVjJ1*Z1285q3UO3xGsXJFR6l9kA4XPo*wUrO0SvRBiHhDF*7jCH*JlJe*4W0qKpTzKnHQRFeHZP3M6Pd-87ENAMmBWRbrJ*RcSoSXCtPBHivJHpHa2OTR5uQhTbQV9gGOwUwPGQHKq2ZzCVM-hL4gslyrjwlvIMoCJD4xs.",
    server_sdk_env='{"idc":"my","region":"ALISG","server_type":"passport"}',
    ms_token="PGvFJUZMmE1v3MQ_WMpH-0K7bBTXeL0-irnmjjS8gBC7mea5HnotpBefv0Nb_WlII8XQMRG6plihRpdodDU5mq4RN7q4FQ5XnR3d2MDKHW_sZfIp7-utleWMnMKu2q9zrQBwEkFrYRlBOMBDb7Zu_lU=",
    proxy="username:password@host:port",
)

Metadata

Release files for tiktok-captcha 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tiktok-captcha 0.3.0
File Size Uploaded
tiktok_captcha-0.3.0.tar.gz 11.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tiktok-captcha 0.3.0
File Interpreter ABI Platform
tiktok_captcha-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 19.1 kB

Release files / tiktok_captcha-0.3.0.tar.gz

Download URL tiktok_captcha-0.3.0.tar.gz
Size 11.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0f8fd017ea70ab34dc160d3229563152170234eaaa589586df499fa66b1878e7
BLAKE2b-256 checksum
How to use checksums
86754dbfca143a38ac0b40138a5ef19d8856061c0d0678c21647f82437f8555e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release files / tiktok_captcha-0.3.0-py3-none-any.whl

Download URL tiktok_captcha-0.3.0-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d1cd668e7b29438c952e44184b08c384bb63549f51c98968a173e6afa42ed860
BLAKE2b-256 checksum
How to use checksums
d51cebba19307450d20b0c8f3de1d50671d8958778dd1bb54edb0d0e0bfef06d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page