Darkintaqt APIchallenges.darkintaqt.com ↗
Search League of Legends challenges by name or description. Returns challenge thresholds, player percentiles, tags, and state across all Riot regions.
What is the Darkintaqt API?
The challenges.darkintaqt.com API exposes 1 endpoint — search_challenges — that queries the Challenge Tracker database and returns matching League of Legends challenge objects containing up to 7 response fields per challenge, including name, description, threshold tiers, player percentiles, tags, and state. You can scope results to any Riot region such as euw1, na1, or kr by passing the optional region parameter.
curl -X GET 'https://api.parse.bot/scraper/b142ff78-a72a-4604-9baa-e9d86a73bf6a/search_challenges?query=fashion®ion=euw1' \ -H 'X-API-Key: $PARSE_API_KEY'
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 challenges-darkintaqt-com-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: Challenge Tracker SDK — bounded, re-runnable; every call capped."""
from parse_apis.challenges_darkintaqt_com_api import ChallengeTracker, ParseError
client = ChallengeTracker()
# Search challenges by keyword, capped at 3 results.
for challenge in client.challenges.search(query="fashion", region="euw1", limit=3):
print(challenge.name, challenge.state, challenge.leaderboard)
# Drill-down: take the first matching challenge.
item = client.challenges.search(query="skin", limit=1).first()
if item:
print(item.name, item.description, item.thresholds)
# Typed error handling around a search call.
try:
results = client.challenges.search(query="dragon", region="kr", limit=3)
for r in results:
print(r.name, r.short_description)
except ParseError as e:
print(f"error: {e}")
print("exercised: challenges.search")
Search League of Legends challenges by matching a query against challenge names and descriptions. Returns all challenges whose name, description, or short description contain the query string (case-insensitive). Results include threshold tiers, player percentiles, and metadata. An empty result set is valid when no challenge matches the query.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search term matched case-insensitively against challenge name, description, and short description. |
| region | string | Riot region code for challenge data (e.g. euw1, na1, kr, br1, jp1, eun1, la1, la2, oc1, ru, tr1, ph2, sg2, th2, tw2, vn2). |
{
"type": "object",
"fields": {
"query": "The search query that was used",
"total": "Number of matching challenges",
"region": "The region code used",
"challenges": "Array of matching challenge objects with id, name, description, thresholds, percentiles, tags, and state"
},
"sample": {
"data": {
"query": "fashion",
"total": 3,
"region": "euw1",
"challenges": [
{
"id": 510001,
"name": "Fashion Forward",
"tags": {
"parent": "510000",
"source": "CAP_INVENTORY",
"leaderboardManuallyEnabled": true
},
"state": "ENABLED",
"parent": "510000",
"reversed": false,
"thresholds": {
"GOLD": 30,
"IRON": 1,
"BRONZE": 5,
"MASTER": 500,
"SILVER": 10,
"DIAMOND": 200,
"PLATINUM": 75
},
"description": "Obtain champion skins",
"leaderboard": false,
"percentiles": {
"GOLD": 0.192,
"IRON": 0.482,
"NONE": 1,
"BRONZE": 0.323,
"MASTER": 0.011,
"SILVER": 0.266,
"DIAMOND": 0.055,
"PLATINUM": 0.124,
"CHALLENGER": 0,
"GRANDMASTER": 0
},
"parent_category": "5",
"short_description": "Collect champion skins"
}
]
},
"status": "success"
}
}About the Darkintaqt API
What the API Returns
The search_challenges endpoint accepts a query string and matches it case-insensitively against a challenge's name, description, and short description fields. The response envelope includes the original query, a total count of matched challenges, the active region, and a challenges array. Each challenge object carries an id, human-readable name, full description, thresholds (the tier breakpoints players must hit), percentiles (showing what fraction of players have reached each tier), tags, and a state field indicating whether the challenge is currently active or retired.
Region Coverage
The optional region parameter accepts standard Riot region codes: euw1, na1, kr, br1, jp1, eun1, la1, la2, oc1, ru, tr1, ph2, sg2, and th2. When omitted, the API falls back to a default region. Because percentile data is region-specific, the same challenge can have meaningfully different percentile distributions depending on the region you query. If you are building a comparison tool, issue separate requests for each region.
Filtering and Matching Behavior
There is no server-side category or tag filter on the search endpoint — filtering on tags or state must be done client-side after receiving results. The total field in the response gives the count before any client-side filtering, so it reflects the raw match count from the query string alone. Partial strings work; for example, querying "dragon" will return any challenge whose name or description contains that substring.
The Darkintaqt API is a managed, monitored endpoint for challenges.darkintaqt.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when challenges.darkintaqt.com 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 challenges.darkintaqt.com 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a challenge discovery tool that lets players search by keyword and see threshold requirements for each tier.
- Track regional difficulty differences by comparing percentile fields across multiple region codes for the same challenge.
- Populate an autocomplete search bar in a LoL companion app using challenge names returned by the API.
- Identify retired or inactive challenges by filtering on the state field after querying.
- Generate challenge recommendation lists by querying broad terms and sorting results by percentile to surface approachable goals.
- Audit all challenges tagged with a specific category by querying a term and grouping results by their tags field.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.