TokenSniped
HomeDashboardDocs
HomeDashboardDocs
TokenSniped
    • Introduction
    • Quick Start
    • Frequently Asked Questions
    • Code Examples
    • Error Handling
    • Best Practices
    • Captcha Solving
      • Solve Geetest v4
        POST
      • Solve Cloudflare Turnstile
        POST
      • Solve WAF/Interstitial Challenge
        POST
    • Status & History
      • Get solve request status
        GET
      • Get solve history
        GET
    • Real-Time (SSE)
      • Stream solve status
        GET
      • Stream dashboard updates
        GET
      • Stream live solves
        GET
    • API Keys
      • List API keys
        GET
      • Create API key
        POST
      • Update API key
        PATCH
      • Delete API key
        DELETE
    • Billing
      • Get credit balance
        GET
      • Claim daily free credits
        POST
      • Get transaction history
        GET
      • Create Stripe checkout
        POST
      • Create crypto payment
        POST
      • List crypto currencies
        GET
    • Health check
      GET
    • Schemas
      • Schemas
        • GeetestRequest
        • TurnstileRequest
        • InterstitialRequest
        • CreateApiKeyRequest
        • UpdateApiKeyRequest
        • GeetestSuccessResponse
        • TurnstileSuccessResponse
        • InterstitialSuccessResponse
        • SolveErrorResponse
        • SolveStatusResponse
        • SolveHistoryItem
        • ApiKey
        • ApiKeyCreatedResponse
        • BalanceResponse
        • Transaction
        • StripeCheckoutResponse
        • CryptoCheckoutResponse
        • ErrorResponse
      • Response
        • ValidationError
        • Unauthorized
        • Forbidden
        • NotFound
        • InsufficientCredits
        • RateLimited
        • SolverError
    HomeDashboardDocs
    HomeDashboardDocs
    TokenSniped

    Best Practices

    Optimize your integration for maximum success rates and minimal costs.

    API Key Security#

    Never Expose Keys in Client-Side Code#

    Use Environment Variables#

    Create Separate Keys for Different Environments#

    EnvironmentKey NameRate Limits
    Developmentdev-localLow (10 RPM)
    StagingstagingMedium (30 RPM)
    Productionprod-server-1High (100 RPM)
    This way, if a key is compromised, you only need to rotate that specific key.

    Proxy Usage#

    When to Use Proxies#

    Captcha TypeProxy Needed?Recommendation
    GeetestOptionalUse if target site is geo-restricted
    TurnstileRecommendedResidential proxies improve success
    InterstitialRequiredMust use same proxy for solve AND subsequent requests

    Proxy Format#

    http://username:password@host:port
    https://username:password@host:port
    socks5://username:password@host:port

    Interstitial Proxy Matching#

    For WAF interstitials, always use the same proxy for:
    1.
    Solving the challenge
    2.
    Making subsequent requests

    Error Handling#

    Implement Retries with Backoff#

    Handle Rate Limits Gracefully#

    Performance Optimization#

    Use SSE for Real-Time Updates#

    Instead of polling, use Server-Sent Events for instant notifications:

    Batch Similar Requests#

    If solving multiple captchas of the same type, process them concurrently:

    Set Appropriate Timeouts#

    Captcha TypeRecommended Timeout
    Geetest30-45 seconds
    Turnstile60-90 seconds
    Interstitial120-180 seconds

    Cost Optimization#

    Monitor Your Usage#

    Check the dashboard regularly or use the API:

    Claim Free Daily Credits#

    Don't forget your free 100 credits every day:

    Cache Solutions When Possible#

    Some tokens can be reused briefly:

    Debugging#

    Log Request IDs#

    Always log the request_id for debugging:

    Check Solve Status#

    Use the status endpoint to debug failed solves:
    Modified at 2025-12-02 02:27:07
    Previous
    Error Handling
    Next
    Solve Geetest v4
    Built with