Nintendo 3DS API
API Documentation
📊 Statistics
/ctr/stats
Retrieve statistics about titles in each category.
Response
{
"total": 8769,
"categories": {
"base": 5339,
"digital-demos": 120,
"kiosk-demos": 45,
"region-free": 12,
"unknown-other": 8,
"dlc": 351,
"dsiware": 1599,
"extras": 0,
"extras/custom-dsiware": 0,
"extras/devapps-misc": 5,
"extras/hb": 41,
"extras/rom-hacks": 10,
"extras/translated-games": 3,
"updates": 556,
"videos": 234,
"virtual-console": 690,
"themes": 0
},
"catalog": {
"titles": 3449,
"linked_tids": 8440,
"multi_region_titles": 1802
}
}
Counts are illustrative. Nested extras use keys like extras/hb. Legacy themes may appear if present in the database. catalog comes from 3dsdb title_catalog.json.
📁 Categories
/ctr/category/:category
List all Title IDs in a specific category. Use extras to include every nested extras subfolder.
Parameters
categorypath required - Category name. Top-level:base,digital-demos,kiosk-demos,region-free,unknown-other,dlc,dsiware,extras,updates,videos,virtual-console,themes. Nested extras:extras/hb,extras/rom-hacks,extras/devapps-misc,extras/custom-dsiware,extras/translated-games
Example Requests
GET /ctr/category/base GET /ctr/category/kiosk-demos GET /ctr/category/extras GET /ctr/category/extras/hb
Response
{
"category": "base",
"count": 5339,
"titles": [
"0004000000030000",
"0004000000030100",
"0004000000030200"
]
}
🔗 Title Catalog
/ctr/catalog/:kind/:platformSerial
Title family from 3dsdb title_catalog.json: same game across regions, with linked update / DLC / demos / extras. Id form is kind/platform:serial (e.g. game/CTR:KPF).
Example Requests
GET /ctr/catalog/game/CTR:KPF GET /ctr/catalog/dsiware/TWL:KVM GET /ctr/catalog/virtual-console/CTR:AAA
Response
{
"id": "game/CTR:KPF",
"kind": "game",
"platform": "CTR",
"serial": "KPF",
"name": "50 Pinch Barrage!!",
"regions": ["JP", "US"],
"markets": ["JP", "US"],
"counts": { "skus": 2, "regions": 2, "updates": 1, "dlc": 0, "demos": 1, "extras": 0 },
"releases": {
"JP": [{
"base": { "tid": "000400000014BA00", "region": "JP", "market": "JP" },
"update": { "tid": "0004000E0014BA00", "version": "v4.4.0" },
"dlc": [],
"demos": [{ "tid": "000400020014BA01" }],
"extras": []
}],
"US": [{
"base": { "tid": "0004000000164400", "region": "US", "market": "US" },
"update": null,
"dlc": [],
"demos": [],
"extras": []
}]
}
}
/ctr/:tid/related
Resolve catalog links for one Title ID: regional SKUs, update, DLC, demos, extras.
Example Request
GET /ctr/000400000014BA00/related
🎮 Game Data
/ctr/:tid
Get detailed information about a title by its Title ID, including all available media URLs and catalog related tree (regions / update / DLC / demos).
Parameters
tidpath required - 16-character hexadecimal Title IDfieldsquery optional - Comma-separated list of fields to include in response. Example:name,description,publisher,region,category,relatedrelatedquery optional - Set to0/falseto omit the catalog related tree
Example Requests
# Full response GET /ctr/0004000000030000 # Only specific fields GET /ctr/0004000000030000?fields=name,description,publisher,region
Example Response
{
"tid": "0004000000030000",
"uid": "50010000009504",
"name": "新・光神話 パルテナの鏡",
"formal_name": "新・光神話 パルテナの鏡",
"description": "冥府軍と、飛べない天使ピットの壮大な戦いを描いたシングルプレイ。",
"release_date_on_eshop": "2013-10-31",
"product_code": "CTR-N-AKDJ",
"platform_name": "3DSカード/ダウンロードソフト",
"region": "JP",
"genres": ["アクション", "シューティング"],
"features": ["インターネット対応", "3D映像対応"],
"languages": ["ja"],
"rating_system": {"name": "CERO", "age": "12"},
"version": "v0.2.0",
"disclaimer": "パッケージ版に付属している...",
"descriptors": [],
"publisher": "Nintendo",
"smdh": {"flags": ["Allow3D", "SaveData"]},
"category": "base",
"media": {
"banner": "http://api.nlib.cc/ctr/0004000000030000/banner",
"icon": "http://api.nlib.cc/ctr/0004000000030000/icon",
"screenshots": {
"compiled": [
"http://api.nlib.cc/ctr/0004000000030000/screen/1",
"http://api.nlib.cc/ctr/0004000000030000/screen/2"
],
"uncompiled": {
"upper": [
"http://api.nlib.cc/ctr/0004000000030000/screen_u/1/u"
],
"lower": [
"http://api.nlib.cc/ctr/0004000000030000/screen_u/1/l"
]
}
},
"thumbnails": [
"http://api.nlib.cc/ctr/0004000000030000/thumb/1"
]
}
}
region uses uppercase ISO / market codes (JP, US, EU, FR, DE, GB, FREE, …). Languages use ISO-639 codes (ja, en, …).
/ctr/:tid/meta/:meta
Retrieve a specific metadata field for a title.
Parameters
tidpath required - 16-character hexadecimal Title IDmetapath required - Field name:name,formal_name,description,publisher,region,category,genres,languages,rating_system,smdh,release_date_on_eshop, …
Example Requests
GET /ctr/0004000000030000/meta/name GET /ctr/0004000000030000/meta/publisher GET /ctr/0004000000030000/meta/region GET /ctr/0004000000030000/meta/smdh
Response
Returns the single metadata value (string, number, object, or array depending on the field).
🖼️ Media Assets
/ctr/:tid/media
Get a comprehensive list of all available media for a title.
Response
{
"metadata": "http://api.nlib.cc/ctr/0004000000030000",
"banner": "http://api.nlib.cc/ctr/0004000000030000/banner",
"icon": "http://api.nlib.cc/ctr/0004000000030000/icon",
"screenshots": {
"compiled": [
"http://api.nlib.cc/ctr/0004000000030000/screen/1",
"http://api.nlib.cc/ctr/0004000000030000/screen/2"
],
"uncompiled": {
"upper": [
"http://api.nlib.cc/ctr/0004000000030000/screen_u/1/u"
],
"lower": [
"http://api.nlib.cc/ctr/0004000000030000/screen_u/1/l"
]
}
},
"thumbnails": [
"http://api.nlib.cc/ctr/0004000000030000/thumb/1"
]
}
/ctr/:tid/icon
Get the title's icon image (JPEG format).
Response
Returns raw JPEG image data with Content-Type: image/jpeg.
/ctr/:tid/banner
Get the title's banner image (JPEG format).
Response
Returns raw JPEG image data with Content-Type: image/jpeg.
📸 Screenshots
/ctr/:tid/screens
Get a list of all available compiled screenshots.
Response
{
"count": 3,
"screenshots": [
"http://api.nlib.cc/ctr/0004000000030000/screen/1",
"http://api.nlib.cc/ctr/0004000000030000/screen/2",
"http://api.nlib.cc/ctr/0004000000030000/screen/3"
]
}
/ctr/:tid/screen/:num
Get a specific compiled screenshot (JPEG format).
Parameters
tidpath required - 16-character hexadecimal Title IDnumpath required - Screenshot number
Example Request
GET /ctr/0004000000030000/screen/1
Response
Returns raw JPEG image data with Content-Type: image/jpeg.
/ctr/:tid/screen_u
Get a list of all available uncompiled screenshots (upper and lower screens).
Response
{
"count": {
"upper": 3,
"lower": 3,
"total": 6
},
"screenshots": {
"upper": [
{"number": 1, "url": "http://api.nlib.cc/ctr/0004000000030000/screen_u/1/u"},
{"number": 2, "url": "http://api.nlib.cc/ctr/0004000000030000/screen_u/2/u"}
],
"lower": [
{"number": 1, "url": "http://api.nlib.cc/ctr/0004000000030000/screen_u/1/l"},
{"number": 2, "url": "http://api.nlib.cc/ctr/0004000000030000/screen_u/2/l"}
]
}
}
/ctr/:tid/screen_u/:num/:screen
Get an uncompiled screenshot (upper or lower screen) (JPEG format).
Parameters
tidpath required - 16-character hexadecimal Title IDnumpath required - Screenshot numberscreenpath required - Screen type:ufor upper,lfor lower
Example Requests
GET /ctr/0004000000030000/screen_u/1/u # Upper screen GET /ctr/0004000000030000/screen_u/1/l # Lower screen
Response
Returns raw JPEG image data with Content-Type: image/jpeg.
🖼️ Thumbnails
/ctr/:tid/thumbs
Get a list of all available thumbnails.
Response
{
"count": 1,
"thumbnails": [
"http://api.nlib.cc/ctr/0004000000030000/thumb/1"
]
}
/ctr/:tid/thumb/:num
Get a specific thumbnail (JPEG format).
Parameters
tidpath required - 16-character hexadecimal Title IDnumpath required - Thumbnail number
Example Request
GET /ctr/0004000000030000/thumb/1
Response
Returns raw JPEG image data with Content-Type: image/jpeg.
ℹ️ Information
📝 Important Notes
- All Title IDs are automatically converted to uppercase
- Endpoints can be called with or without a trailing slash
- All images are served in JPEG format
- Metadata is refreshed automatically (new / changed titles every 12 hours)
- Regions use uppercase ISO / market codes (
JP,US,EU,FREE, …) - Categories:
base,digital-demos,kiosk-demos,region-free,unknown-other,dlc,dsiware,extras(+ nestedextras/*),updates,videos,virtual-console,themes - Response fields include
publisher,smdh, andcategory - Uncompiled screenshots are separated by upper (
u) and lower (l) screens - API responses use standard HTTP status codes (200, 404, 500)