The Station APIthestation.ru ↗
Access video posts from thestation.ru — a Russian-language tabletop wargaming platform. Search, list, and retrieve Warhammer, AoS, Malifaux, and Infinity videos.
What is the The Station API?
The thestation.ru API exposes 3 endpoints for querying the site's tabletop wargaming video library, covering titles like Warhammer 40000, Age of Sigmar, Malifaux, and Infinity. The search_videos endpoint performs full-text search across all video posts and returns up to 9 results per page with fields including title, date, likes, comments, tags, and image URL. Use get_video to retrieve the embed URL and full description for any individual post by its slug.
curl -X GET 'https://api.parse.bot/scraper/54702240-45ad-4ba3-8ca5-f94ddf972f6a/search_videos?page=1&query=Warhammer' \ -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 thestation-ru-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: TheStation SDK — browse and search tabletop wargaming videos."""
from parse_apis.thestation_ru_api import TheStation, Taxonomy, VideoNotFound
client = TheStation()
# Search videos by keyword, capped at 5 results total.
for video in client.videos.search(query="Warhammer", limit=5):
print(video.title, f"| likes: {video.likes}, comments: {video.comments}")
# List videos from a specific game system taxonomy using the enum.
for video in client.videos.list(taxonomy=Taxonomy.GAMES, term="warhammer-40000", limit=3):
print(video.title, video.date, video.url)
# Drill into one video for details.
video = client.videos.search(query="Horus Heresy", limit=1).first()
if video:
detail = client.videos.get(slug=video.slug)
print(detail.title, detail.date, detail.likes)
for tag in detail.tags:
print(f" tag: {tag.name}")
# Handle a not-found error when requesting a non-existent slug.
try:
client.videos.get(slug="non-existent-video-slug-12345")
except VideoNotFound as exc:
print(f"Video not found: {exc}")
print("exercised: videos.search / videos.list / videos.get / VideoNotFound")
Full-text search across all video posts on the site. Returns paginated results ordered by recency. Each page contains up to 9 videos. The total_results field on page 1 indicates the total number of matching posts.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| queryrequired | string | Search query text to match against video titles and content. |
{
"type": "object",
"fields": {
"posts": "array of video objects with id, title, url, slug, date, image_url, likes, comments, tags, type",
"query": "string",
"total_pages": "integer",
"current_page": "integer",
"total_results": "integer (present on page 1)"
},
"sample": {
"posts": [
{
"id": "158944",
"url": "https://thestation.ru/post-video/minka-lesk-hell-s-last-bylinnyy-skaz-chast-7-warhammer-40000/",
"date": "23.06.2026",
"slug": "minka-lesk-hell-s-last-bylinnyy-skaz-chast-7-warhammer-40000",
"tags": [
{
"url": "https://thestation.ru/category/background",
"name": "Бэкграунд"
},
{
"url": "https://thestation.ru/games/warhammer-40000",
"name": "Warhammer 40000"
}
],
"type": "video",
"likes": 13,
"title": "Minka Lesk: Hell’s Last | Былинный сказ | Часть 7 | Warhammer 40000",
"comments": 2,
"image_url": "https://i0.wp.com/thestation.ru/wp-content/uploads/oblozhka-946.jpg?fit=768%2C432&ssl=1"
}
],
"query": "Warhammer",
"total_pages": 1,
"current_page": 1,
"total_results": 3331
}
}About the The Station API
What the API Returns
All three endpoints return video post objects drawn from thestation.ru's Russian-language wargaming video catalog. Each post object includes id, title, url, slug, date, image_url, likes, comments, tags, and type. The get_video endpoint additionally returns a video_url (embed URL when available) and a description field not present in list or search responses.
Searching and Listing Videos
search_videos accepts a required query string and an optional page integer (1-based). Page 1 responses include a total_results count so you can determine how many matching posts exist before paginating further. Results are ordered by recency, with up to 9 posts per page. list_videos filters by taxonomy instead of text: pass a term slug such as warhammer-40000, background, or andrey_tyler, an optional taxonomy type, and an optional category slug to narrow within a taxonomy page. Omitting term returns unfiltered recent videos.
Retrieving a Specific Video
get_video takes a slug — obtainable from any post object returned by the other two endpoints — and returns the full record for that post, including the video_url embed field and description text. Tags come back as objects with both name and url properties, making it straightforward to build tag-based navigation or cross-reference with list_videos taxonomy terms.
Coverage and Language
All content on thestation.ru is in Russian. The platform focuses exclusively on tabletop miniature wargaming — game systems represented include Warhammer 40000, Age of Sigmar, Malifaux, Infinity, and others. The API reflects the site's video posts section; other content types the site may host (forums, articles, hobby guides) are not covered by these endpoints.
The The Station API is a managed, monitored endpoint for thestation.ru — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when thestation.ru 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 thestation.ru 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?+
- Index thestation.ru's wargaming video library by game system using list_videos with taxonomy term slugs like 'warhammer-40000'
- Build a search tool for Russian-language Warhammer 40000 video content using search_videos with the game title as the query
- Track engagement trends by monitoring likes and comments fields across recent video posts
- Retrieve embed URLs for specific videos via get_video to display wargaming content in a third-party site or app
- Aggregate tag data from video posts to map which topics and game systems are most frequently covered
- Filter videos by show host using list_videos with an 'andrey_tyler' or similar presenter term slug
- Monitor new Malifaux or Infinity video releases by polling list_videos filtered by the relevant taxonomy term
| 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.