{"enrichment":{"faq":[{"a":"Cloudflare Turnstile provides CAPTCHA-alternative bot protection for modern web applications. To add Turnstile, first create a site in the Cloudflare dashboard to obtain your Site Key and Secret Key. Then embed the Turnstile widget on your frontend by including the Cloudflare script and rendering the widget container. On form submission, retrieve the token and validate it server-side using the Siteverify API with your Secret Key. Choose between managed (interactive), non-interactive, or invisible modes based on your security and UX needs.","q":"How do I add Turnstile to my website?"},{"a":"Cloudflare Turnstile error 300030 typically indicates a token validation failure on the server side. This occurs when the Siteverify API rejects the token, often due to an expired token (valid for 5 minutes), an incorrect Secret Key, or a mismatch between the Site Key used on the frontend and the one configured in your Cloudflare dashboard. Verify your keys match, ensure tokens are validated immediately after submission, and check that your server is sending the correct token and Secret Key to the Siteverify endpoint.","q":"What does Turnstile error 300030 mean and how do I fix it?"},{"a":"Cloudflare Turnstile tokens are validated using the Siteverify API. After the user completes the challenge and your frontend receives a token, send a POST request from your server to the Siteverify endpoint with your Secret Key and the token. The API returns a success boolean and metadata. Never expose your Secret Key on the frontend; always validate server-side. Store your Secret Key as an environment variable and use it only in your backend code to prevent unauthorized token validation.","q":"How do I validate Turnstile tokens securely on the server side?"},{"a":"Cloudflare Turnstile integrates with React and Next.js by including the Turnstile script in your HTML head and rendering the widget container in your component. For React, use the useEffect hook to initialize the widget after the script loads. For Next.js, add the script in your _document.js or layout file and render the widget in your form component. On form submission, retrieve the token from the widget's callback and send it to your backend for validation via the Siteverify API.","q":"How do I integrate Turnstile with React or Next.js?"},{"a":"Cloudflare Turnstile CSP error 200500 occurs when your Content Security Policy (CSP) headers block the Turnstile widget script or resources. To fix this, add Cloudflare's Turnstile domain to your CSP directives: allow `https://challenges.cloudflare.com` in script-src and frame-src. If using a strict CSP, also allow the Turnstile API endpoint. Update your CSP headers in your web server or application configuration to permit Cloudflare's resources.","q":"What is the Cloudflare Turnstile CSP error 200500?"},{"a":"Cloudflare Turnstile is a modern CAPTCHA alternative designed as a replacement for reCAPTCHA and hCaptcha. Migration involves obtaining your Turnstile Site Key and Secret Key from the Cloudflare dashboard, replacing your existing CAPTCHA script and widget with Turnstile's, and updating your server-side token validation to use the Siteverify API instead of your previous provider's endpoint. The integration process is similar, making migration straightforward for most applications.","q":"Can I migrate from reCAPTCHA or hCaptcha to Cloudflare Turnstile?"}],"shadow_tags":["bot-mitigation","form-security","serverless-validation","captcha-alternative","token-lifecycle","csp-configuration","framework-integration","error-prevention"],"summary_rewrite":"Cloudflare Turnstile provides CAPTCHA-alternative bot protection for modern web applications. Set up the widget on your frontend, validate tokens server-side via the Siteverify API, and choose between managed, non-interactive, or invisible modes based on your security and UX needs."},"files":[{"bytes":19510,"path":"plugins/cloudflare-turnstile/skills/cloudflare-turnstile/SKILL.md","sha256":"3d850638afbf0287400c7e04781f561d8200c69fc6fba7a89adcd98ec57095a8","url":"https://skillfed.io/files/secondsky/claude-skills/cloudflare-turnstile/1aedeef0/SKILL.md"}],"id":"secondsky/claude-skills/cloudflare-turnstile","links":{"html":"https://skillfed.io/secondsky/claude-skills/cloudflare-turnstile","md":"https://skillfed.io/secondsky/claude-skills/cloudflare-turnstile.md","repo":"https://github.com/secondsky/claude-skills"},"meta":{"agents_supported":[],"first_seen":"2026-07-28","forks":29,"language":"TypeScript","last_updated":"2026-07-25","license":"MIT","name":"cloudflare-turnstile","publisher":"secondsky","stars":196},"relations":{"similar":[{"id":"cloudflare/skills/turnstile-spin"},{"id":"organvm/a-i--skills/turnstile-spin"},{"id":"finsilabs/awesome-ecommerce-skills/bot-protection"},{"id":"pedronauck/skills/cloudflare"},{"id":"cloudflare/skills/cloudflare"},{"id":"connorads/dotfiles/cloudflare"},{"id":"fcakyon/claude-codex-settings/cloudflare-deploy"},{"id":"testdriverai/testdriverai/testdriver-captcha"},{"id":"AceDataCloud/Skills/turnstile"},{"id":"ulpi-io/skills/browse-stealth"}]},"slug":{"owner":"secondsky","repo":"claude-skills","skill":"cloudflare-turnstile"},"version":"1aedeef0"}
