Discover/peet API
live

peet APIpeet.ws

Solve Cloudflare Turnstile challenges on the peet.ws demo site and retrieve a fresh verification token via a single API endpoint.

This API takes change requests — .
Endpoint health
verified 7h ago
solve_challenge
1/1 passing latest checkself-healing
Endpoints
1
Updated
8h ago

What is the peet API?

The peet.ws Turnstile API exposes 1 endpoint — solve_challenge — that returns a freshly generated Cloudflare Turnstile verification token along with 4 response fields: the token string, a success boolean, the challenge page URL, and the resolved challenge variant. Each call targets the peet.ws managed Turnstile demo and produces a token ready for submission to any form or service gating on Turnstile verification.

This call costs1 credit / call— charged only on success
Try it
The Turnstile challenge variant to solve.
api.parse.bot/scraper/f0279b98-bb71-422c-b654-d8732441e206/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/f0279b98-bb71-422c-b654-d8732441e206/solve_challenge?challenge_type=managed' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace peet-ws-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: solve Cloudflare Turnstile challenges via the peet.ws demo API."""
from parse_apis.peet_ws_api import Turnstile, ChallengeType, InvalidInput

client = Turnstile()

# Solve the default managed challenge and inspect the result.
challenge = client.challenges.solve()
print(challenge.challenge_type, challenge.solved, challenge.token[:40])

# Solve a specific variant by passing the enum.
invisible = client.challenges.solve(challenge_type=ChallengeType.INVISIBLE)
print(invisible.page_url, invisible.token[:40])

# Handle an invalid challenge type gracefully.
try:
    client.challenges.solve(challenge_type="bad_type")  # type: ignore
except InvalidInput as e:
    print("Expected error:", e.message)

print("exercised: challenges.solve (managed / invisible / error handling)")
All endpoints · 1 totalmissing one? ·

Solves a Cloudflare Turnstile challenge on the peet.ws demo site. Returns the solved token for the specified challenge type. The token is freshly generated on each call.

Input
ParamTypeDescription
challenge_typestringThe Turnstile challenge variant to solve.
Response
{
  "type": "object",
  "fields": {
    "token": "string — the solved Turnstile verification token",
    "solved": "boolean — always true on success",
    "page_url": "string — the URL of the challenge page",
    "challenge_type": "string — the challenge variant that was solved"
  },
  "sample": {
    "data": {
      "token": "1.Epk3xF9R9upceM67-RJWbXD1V2OaUAFtNXFPmpARBxXQIRwJIShNhR1JyULkYpm2...",
      "solved": true,
      "page_url": "https://peet.ws/turnstile-test/managed.html",
      "challenge_type": "managed"
    },
    "status": "success"
  }
}

About the peet API

What the API Returns

The solve_challenge endpoint returns a JSON object with four fields. token is the Cloudflare Turnstile verification string generated for the current session. solved is a boolean that is always true on a successful response — if solving fails, no token is returned. page_url confirms the challenge origin as https://peet.ws/turnstile-test/managed.html. challenge_type echoes back the variant that was solved, which mirrors the value you passed in.

Inputs and Challenge Variants

The single optional input is challenge_type, a string identifying the Turnstile challenge variant to target. Omitting it resolves the default managed challenge presented by the peet.ws demo page. Passing a specific variant string selects a different challenge configuration. Each request produces a distinct token — tokens are not cached or reused across calls.

Scope and Intended Use

This API is scoped to the peet.ws Turnstile demo page only. The returned token is suitable for testing Turnstile integration flows, verifying that your own application correctly accepts and validates Turnstile tokens, or automating form submissions in testing pipelines that require a valid token as a precondition.

Reliability & maintenanceVerified

The peet API is a managed, monitored endpoint for peet.ws — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when peet.ws changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official peet.ws API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Automated testing of forms that require a valid Cloudflare Turnstile token before submission
  • Verifying that a downstream service correctly accepts and validates Turnstile tokens
  • Integration testing for applications that gate access behind Turnstile challenges
  • Generating fresh Turnstile tokens in CI/CD pipelines to test authentication flows end-to-end
  • Prototyping and demonstrating Turnstile-aware client code without managing challenge resolution manually
  • QA workflows that need a real token to exercise Turnstile-protected API endpoints in staging environments
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Cloudflare provide an official developer API for Turnstile?+
Cloudflare offers a Turnstile siteverify API for server-side token validation at https://developers.cloudflare.com/turnstile/get-started/server-side-validation/. That endpoint verifies tokens but does not generate or solve them. This API handles the solving side, returning a token you can then pass to your own siteverify call.
What does the solve_challenge endpoint actually return on success?+
It returns a JSON object with four fields: token (the Turnstile verification string), solved (boolean, always true on success), page_url (the URL of the challenge page), and challenge_type (the variant that was resolved). There are no additional metadata fields or session identifiers in the response.
Are tokens from this API reusable across multiple requests?+
No. Each call to solve_challenge produces a fresh, single-use token. Cloudflare Turnstile tokens are valid for a limited time window and are invalidated after first use. You should call the endpoint immediately before the token is needed rather than storing tokens in advance.
Can this API solve Turnstile challenges on sites other than peet.ws?+
Not currently. The API is scoped to the peet.ws managed Turnstile demo page, and page_url will always reflect that origin. You can fork the API on Parse and revise it to target a different Turnstile-protected page URL.
Does the API support non-managed Turnstile challenge types, such as invisible or interaction-required variants?+
The challenge_type parameter accepts a variant string, but coverage depends on what the peet.ws demo page exposes. Not all Turnstile widget modes may be available through this endpoint. You can fork the API on Parse and revise it to point to a page that hosts the specific variant you need.
Page content last updated . Spec covers 1 endpoint from peet.ws.
Related APIs in Developer ToolsSee all →
parsepad.com API
Access data from parsepad.com.
codechef.com API
Access competitive programming data from CodeChef by retrieving problem lists, contest information with details, user profiles, and recent submission history. Explore coding challenges across multiple contests and browse problems by difficulty rating.
cses.fi API
Explore the CSES Problem Set by browsing problems across different categories, viewing detailed problem information, and discovering available courses and contests. Access comprehensive problem lists organized by topic to find coding challenges tailored to your learning goals.
chatgpt.com API
Access data from chatgpt.com.
takeuforward.org API
Access Striver's complete A2Z and SDE DSA sheets along with detailed problem information and TUF+ subscription pricing directly from takeuforward.org. Streamline your interview preparation by retrieving curated coding problems, their solutions, and course pricing all in one place.
hackerrank.com API
Retrieve challenge scores, difficulty ratings, success ratios, and track-level ranking data from HackerRank's public practice platform. Browse challenges by track, view submission statistics, and access ranking metrics across all available tracks.
challenges.darkintaqt.com API
Search for League of Legends challenges by name or description to quickly find specific in-game objectives and track your progress toward completing them. Browse detailed information about each challenge to plan your gameplay strategy and discover new goals to pursue.
propfirmstats.com API
Explore and compare prop trading firm challenges across futures and forex markets, reviewing payout policies and trading rules to find the best opportunity for your trading goals. Get detailed challenge specifications from PropFirmStats to make informed decisions about which firms align with your trading strategy.