REST API v1

Read the public Cyberpunk Hub archive with ordinary HTTP requests. The API covers watch, play, and read records and returns UTF-8 JSON.

No account or API key is required. Cross-origin requests are allowed. Start with a small page and follow the pagination link when one is returned.

Base URL
https://cyberpunkhub.com/api/v1

01Quick start

This request returns up to 20 films released in 1987. Replace watch with play or read to query another section.

curl "https://cyberpunkhub.com/api/v1/watch?category=films&year=1987&limit=20"

A successful collection request returns a JSON array. No matches is also successful and returns an empty array: [].

02Endpoints

GET /latest
Up to 25 recently updated records from each section, grouped under watch, read, and play. It accepts no query parameters.
GET /watch
Films, series, animation, documentaries, and short films.
GET /play
Games, including genre, platform, developer, and publisher data.
GET /read
Books, comics, stories, publications, and audiobooks.

Open the latest response

03Filtering and pagination

All filters are optional. Multiple filters are joined with AND. Text filters are partial matches, fixed-value filters are exact matches, and rating is a minimum. Query values must be URL encoded.

Available on watch, play, and read

name
Partial title, 2 to 200 characters.
year
Whole number from 1870 to 2100.
rating
Minimum rating from 1 to 10. Decimals such as 7.5 are valid.
limit
Records per page, from 1 to 100. A value such as 25 is recommended.
offset
Records to skip, from 0 to 1,000,000. It can only be used with limit.

Omitting limit preserves the original v1 behaviour and returns every matching record. That can produce a large response; new integrations should paginate.

Moving to the next page

GET /api/v1/watch?genre=science_fiction&limit=25

Link: </api/v1/watch?genre=science_fiction&limit=25&offset=25>; rel="next"
X-Result-Count: 25

A paginated response includes X-Result-Count. When another page exists, the standard Link response header supplies its URL with rel="next". The absence of that link means the current page is the last one.

04/watch

Search screen media by title details, people, category, or genre.

Section filters

category
Exact category value.
genre
Exact genre value contained in the record.
imdb_id
IMDb title ID in the form tt1234567 or tt12345678.
cast
Partial cast text, 2 to 255 characters.
director
Partial director name, 2 to 100 characters.
studio
Partial studio name, 2 to 100 characters.
country
Partial country name, 2 to 100 characters.

Examples

GET /api/v1/watch?name=blade%20runner&limit=20
GET /api/v1/watch?category=films&director=verhoeven&limit=20
GET /api/v1/watch?genre=science_fiction&rating=7.5&limit=20
GET /api/v1/watch?imdb_id=tt0093870

Open an example watch response

Category values
  • films — Films
  • series — Series
  • documentaries — Documentaries
  • short_films — Short Films
  • animation_anime — Animation & Anime
Genre values
  • action — Action
  • adventure — Adventure
  • biography — Biography
  • comedy — Comedy
  • crime — Crime
  • drama — Drama
  • family — Family
  • fantasy — Fantasy
  • film_noir — Film Noir
  • game_show — Game Show
  • history — History
  • horror — Horror
  • music — Music
  • musical — Musical
  • mystery — Mystery
  • news — News
  • reality_tv — Reality TV
  • romance — Romance
  • science_fiction — Science Fiction
  • sport — Sport
  • talk_show — Talk Show
  • thriller — Thriller
  • war — War
  • western — Western

05/play

Search games by title details, genre, platform, or publisher data.

Section filters

genre
Exact genre value contained in the record.
platform
Exact platform value associated with the game.
igdb_slug
Partial IGDB slug, 2 to 200 characters.
steam_id
Positive whole-number Steam application ID.
developer
Partial developer name, 2 to 100 characters.
publisher
Partial publisher name, 2 to 100 characters.

Examples

GET /api/v1/play?name=cyberpunk&rating=8&limit=20
GET /api/v1/play?genre=role_playing&platform=windows&limit=20
GET /api/v1/play?igdb_slug=cyberpunk-2077
GET /api/v1/play?steam_id=1091500

Open an example play response

Genre values
  • point_and_click — Point and Click
  • fighting — Fighting
  • shooter — Shooter
  • music — Music
  • platform — Platformer
  • puzzle — Puzzle
  • racing — Racing
  • real_time_strategy — Real-time Strategy
  • role_playing — RPG
  • simulator — Simulation
  • sport — Sports
  • strategy — Strategy
  • turn_based_strategy — Turn-based Strategy
  • tactical — Tactical
  • hack_and_slash — Hack and Slash
  • quiz_trivia — Trivia
  • pinball — Pinball
  • adventure — Adventure
  • indie — Indie
  • arcade — Arcade
  • card_and_board_game — Card and Board
  • moba — MOBA
  • visual_novel — Visual Novel
  • action — Action
  • fantasy — Fantasy
  • science_fiction — Science Fiction
  • horror — Horror
  • thriller — Thriller
  • survival — Survival
  • historical — Historical
  • stealth — Stealth
  • comedy — Comedy
  • business — Business
  • drama — Drama
  • non_fiction — Non-fiction
  • sandbox — Sandbox
  • educational — Educational
  • kids — Kids
  • open_world — Open World
  • warfare — Warfare
  • party — Party
  • four_x — 4X
  • erotic — Erotic
  • mystery — Mystery
  • romance — Romance
Platform values
  • windows — Windows
  • mac — Mac
  • linux — Linux
  • dos — DOS
  • web_browser — Web Browser
  • playstation — PlayStation
  • playstation_2 — PS2
  • playstation_3 — PS3
  • playstation_4 — PS4
  • playstation_5 — PS5
  • psp — PSP
  • playstation_vita — PS Vita
  • playstation_vr — PS VR
  • playstation_vr_2 — PS VR2
  • xbox — Xbox
  • xbox_360 — Xbox 360
  • xbox_one — Xbox One
  • xbox_series — Xbox Series
  • nintendo_switch — Switch
  • nintendo_switch_2 — Switch 2
  • nes — NES
  • snes — SNES
  • nintendo_64 — Nintendo 64
  • gamecube — GameCube
  • wii — Wii
  • wii_u — Wii U
  • nintendo_ds — Nintendo DS
  • nintendo_dsi — Nintendo DSi
  • nintendo_3ds — Nintendo 3DS
  • new_nintendo_3ds — New Nintendo 3DS
  • game_boy — Game Boy
  • game_boy_color — Game Boy Color
  • game_boy_advance — Game Boy Advance
  • famicom — Famicom
  • famicom_disk_system — Famicom Disk System
  • super_famicom — Super Famicom
  • dreamcast — Dreamcast
  • sega_master_system — Sega Master System
  • sega_genesis — Sega Genesis
  • sega_cd — Sega CD
  • sega_32x — Sega 32X
  • sega_saturn — Sega Saturn
  • sega_game_gear — Sega Game Gear
  • sg_1000 — SG-1000
  • android — Android
  • ios — iOS
  • n_gage — N-Gage
  • blackberry — BlackBerry
  • windows_phone — Windows Phone
  • windows_mobile — Windows Mobile
  • palm_os — Palm OS
  • tapwave_zodiac — Tapwave Zodiac
  • amazon_fire_tv — Amazon Fire TV
  • zeebo — Zeebo
  • legacy_mobile — Legacy Mobile
  • steamvr — SteamVR
  • oculus_vr — Oculus VR
  • oculus_rift — Oculus Rift
  • oculus_quest — Oculus Quest
  • oculus_go — Oculus Go
  • meta_quest_2 — Meta Quest 2
  • meta_quest_3 — Meta Quest 3
  • windows_mixed_reality — Windows Mixed Reality
  • daydream — Daydream
  • gear_vr — Gear VR
  • visionos — visionOS
  • arcade — Arcade
  • neo_geo_mvs — Neo Geo MVS
  • neo_geo_aes — Neo Geo AES
  • neo_geo_cd — Neo Geo CD
  • hyper_neo_geo_64 — Hyper Neo Geo 64
  • amiga — Amiga
  • amiga_cd32 — Amiga CD32
  • amstrad_cpc — Amstrad CPC
  • amstrad_pcw — Amstrad PCW
  • apple_ii — Apple II
  • apple_iigs — Apple IIGS
  • atari_2600 — Atari 2600
  • atari_5200 — Atari 5200
  • atari_7800 — Atari 7800
  • atari_8_bit — Atari 8-bit
  • atari_st — Atari ST
  • atari_lynx — Atari Lynx
  • atari_jaguar — Atari Jaguar
  • atari_jaguar_cd — Atari Jaguar CD
  • bbc_micro — BBC Micro
  • c64 — C64
  • commodore_16 — Commodore 16
  • commodore_plus_4 — Commodore Plus/4
  • commodore_vic_20 — Commodore VIC-20
  • acorn_archimedes — Acorn Archimedes
  • acorn_electron — Acorn Electron
  • dragon_32_64 — Dragon 32/64
  • fm_7 — FM-7
  • fm_towns — FM Towns
  • msx — MSX
  • msx2 — MSX2
  • pc_8800 — PC-8800
  • pc_9800 — PC-9800
  • sharp_x1 — Sharp X1
  • sharp_x68000 — Sharp X68000
  • sinclair_ql — Sinclair QL
  • sinclair_zx81 — ZX81
  • zx_spectrum — ZX Spectrum
  • tatung_einstein — Tatung Einstein
  • thomson_mo5 — Thomson MO5
  • ti_99 — TI-99
  • trs_80 — TRS-80
  • trs_80_color_computer — TRS-80 Color Computer
  • pc_engine — PC Engine
  • pc_engine_cd — PC Engine CD
  • pc_engine_supergrafx — PC Engine SuperGrafx
  • pc_fx — PC-FX
  • 3do — 3DO
  • colecovision — ColecoVision
  • intellivision — Intellivision
  • intellivision_amico — Intellivision Amico
  • odyssey_2 — Odyssey 2
  • ouya — Ouya
  • philips_cd_i — Philips CD-i
  • vectrex — Vectrex
  • virtual_boy — Virtual Boy
  • wonderswan — WonderSwan
  • wonderswan_color — WonderSwan Color
  • neo_geo_pocket — Neo Geo Pocket
  • neo_geo_pocket_color — Neo Geo Pocket Color
  • game_com — Game.com
  • gizmondo — Gizmondo
  • evercade — Evercade
  • playdate — Playdate
  • tabletop — Tabletop
  • other — Other

06/read

Search written and spoken works by title details, author, or category.

Section filters

category
Exact category value.
author
Partial author name, 2 to 100 characters.
isbn
ISBN-10 or ISBN-13 without spaces or hyphens.

Examples

GET /api/v1/read?author=william%20gibson&limit=20
GET /api/v1/read?category=books&rating=7&limit=20
GET /api/v1/read?isbn=9780871355744

Open an example read response

Category values
  • books — Books
  • comics — Comics
  • publications — Publications
  • stories — Stories
  • audiobooks — Audio books

07Response data

Collection endpoints return arrays of records. /latest returns an object whose watch, read, and play properties each contain an array. Records are ordered with the most recently updated first.

Common fields

name, slug
The display title and stable site slug.
year, rating
Numbers when known; otherwise null.
collections
An array of collection identifiers when assigned; otherwise null.
category_title, collections_title
Human-readable labels for category and collection identifiers where applicable.
description, synopsis, quote
Descriptive text when available; otherwise null.
reference_url
An external reference URL when available.
created_at, updated_at
Unix timestamps in seconds.
poster_url, poster_thumbnail_url, url
Site-relative paths. Missing poster paths are null.

Clients should ignore response fields they do not use. New fields may be added to v1; an incompatible response change would use a new versioned path.

Section-specific fields

  • Watch: category, runtime, genres, cast, director, studio, country, imdb_id, media_url, and trailer_url.
  • Play: platforms, genres, developer, publisher, steam_id, igdb_slug, and trailer_url.
  • Read: category, author, and isbn.
Shortened example watch record
[
  {
    "name": "RoboCop",
    "slug": "robocop-1987",
    "year": 1987,
    "rating": 7.3,
    "category": "films",
    "genres": ["action", "science_fiction", "thriller"],
    "collections": ["recommended", "classic"],
    "runtime": 102,
    "director": "Paul Verhoeven",
    "imdb_id": "tt0093870",
    "created_at": 1739567109,
    "updated_at": 1740945687,
    "poster_url": "/content/media/e6/e6af68f8877c.jpg",
    "url": "/watch/robocop-1987"
  }
]

08Errors and HTTP behaviour

Invalid values, unknown query parameters, and unsupported parameter combinations return 400 Bad Request with field-level errors.

GET /api/v1/watch?year=2022.5

HTTP/1.1 400 Bad Request
Content-Type: application/json; charset=utf-8

{
  "success": false,
  "errors": {
    "year": "Please enter an integer"
  }
}

GET and HEAD are supported. OPTIONS returns the cross-origin capabilities. Other methods return 405 Method Not Allowed with an Allow: GET, HEAD, OPTIONS header.

A server-side failure returns 500 Internal Server Error. Clients should use the HTTP status code first and should not depend on the wording of an error message.