Free · No Sign-up Required
A realistic fake e-commerce site built as a safe, free, and always-resettable target for developers and learners to scrape, working with API, browser automation tasks. No real money, no real data — just a fully working shop you can poke, scrape, learning API and testing without consequences.
X-Scraping-* headers, honeypots, rate limits, and hidden traps on every HTML response
A full DRF-powered REST API with Token and JWT authentication, filtering,
sorting, pagination, and an auto-generated Swagger UI.
Complete API coverage for all site features!
/api/schema/ · UI at /api/docs/
Parse server-rendered pages, handle AJAX-loaded content,
walk pagination, and extract structured data-* attributes —
with traps and bot detection built in.
Try logging in and working with sessions, cookies, and authenticated content such as user profiles, orders, and shopping carts.
/partial/ endpoint directly/json/ endpoint like an APIdata-product-id, data-price, data-categoryA fully interactive site with AJAX content and dynamic DOM updates — an ideal target for Selenium and Playwright workflows.
Practise the full OAuth 2.0 Authorization Code flow with PKCE: register an application, request permissions, and approve access with a shop account. Follow the curl and Python examples in Swagger or try its built-in authorization flow.
Authorization: Token <token>)
and Bearer JWT (Authorization: Bearer <jwt>)Get a taste of legacy XML-based integrations alongside the REST API. Practise working with a SOAP service and its WSDL contract.
The shop is fictional, but your account is a real record in its database. Register through the website to practise a complete account workflow: sign in, edit your profile, manage your cart, and place demo orders tied to your user.
POST /api/users/register/ and use its credentials to sign in on the websiteUse fictional details for practice. Accounts and their carts, orders, and OAuth access are cleared by the daily reset at midnight UTC, so be ready to register again.
Use only made-up (fake) details to create an account. No one here needs your real personal information.
Every HTML response carries X-Scraping-* headers with a live analysis of your request —
confidence level, detected signals, and a human-readable hint that explains what each trap does.
The server never blocks without explaining why.
Always active
Bot-tier (medium / high confidence)
Retry-After and X-Scraping-Block-ReasonGET /api/users/profile/ maybe help you?Educational headers on every response
X-Scraping-Confidence — clean / low / medium / highX-Scraping-Signals — what triggered detectionX-Scraping-Hint — how to fix the detected issuePlease also see the "Terms of Use and Educational Purpose" to understand the platform's purpose, educational value, and what it actually serves.
Scrape the first page of products:
import requests
from bs4 import BeautifulSoup
url = "https://apilearn.tukas.dev/catalog/all/"
soup = BeautifulSoup(requests.get(url).text, "html.parser")
for card in soup.select("[data-product-id][data-category]"):
print(
card["data-product-id"],
card["data-category"],
card["data-price"],
)
Call the JSON API (no auth required):
import requests
base = "https://apilearn.tukas.dev/api"
# Get all products, page 1
r = requests.get(f"{base}/products/")
data = r.json()
print(data["count"], "total products")
for p in data["results"]:
print(p["name"], p["sell_price"])
The Exercises & Explanations page has several quick examples, plus a link to tukas.dev — a full learning platform with structured courses that practise against this site's own API.
📚 Go to Exercises