Thestation APIthestation.ru ↗
Search and discover videos from The Station, a Russian-language platform dedicated to tabletop wargaming content including Warhammer 40000, Age of Sigmar, Malifaux, Infinity, and other miniature games. Browse their video library by title or retrieve detailed information about specific gaming videos to stay updated on the latest wargaming community content.
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 Thestation API
The Thestation API on Parse exposes 3 endpoints for the publicly available data on thestation.ru. Calls return JSON over HTTPS and are billed per successful response.
Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.