4 min read
Ghost Land

🎮 NLib API v3.0.0 : Nintendo 3DS Support with /citra Endpoints

NLib API v3.0.0 adds full Nintendo 3DS coverage. Discover the new /citra endpoints, comprehensive stats, and media access for 5,841 titles.

We’re excited to announce NLib API v3.0.0, a major update that adds full Nintendo 3DS support to our already powerful Nintendo Switch API.
👉 https://api.nlib.cc

This release marks an important milestone in our mission to preserve and provide unified access to Nintendo game data across different platforms.


🎮 Nintendo 3DS Support with /citra Endpoints

NLib API v3.0.0 introduces a complete suite of endpoints dedicated to Nintendo 3DS under the /citra prefix, providing structured and performant access to 3DS game data.

Comprehensive 3DS Database

Access complete Nintendo 3DS game information:

  • Detailed metadata including name, description, release date, genres, and features
  • Direct access to icons, banners, and screenshots
  • Support for multiple content categories (base games, DSiWare, updates, Virtual Console, videos)
  • Rating system information (CERO, ESRB, etc.)

The database currently includes 5,841 titles:

  • 3,512 base games
  • 1,202 DSiWare titles
  • 477 updates
  • 623 Virtual Console titles
  • 27 videos

📊 Statistics and Category Access

Get Statistics

Access global 3DS database statistics:

GET /citra/stats

Returns:

  • Total number of indexed titles
  • Breakdown by category (base, DLC, DSiWare, updates, videos, Virtual Console)
  • Overview of the collection

Get Titles by Category

Retrieve lists of titles organized by category:

GET /citra/category/:category

Available categories: base, dlc, dsiware, extras, themes, updates, videos, virtual-console


🎮 Get Game Information

Retrieve all information for a specific 3DS game:

GET /citra/:tid?fields=name,description

Parameters:

  • tid (required) - 16-character hexadecimal Title ID
  • fields (optional) - Comma-separated list of fields to include

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": "Japan",
  "genres": ["アクション", "シューティング"],
  "features": ["インターネット対応", "3D映像対応"],
  "languages": ["日本語"],
  "rating_system": {"name": "CERO", "age": "12"},
  "version": "v0.2.0",
  "media": {
    "banner": "https://api.nlib.cc/citra/0004000000030000/banner",
    "icon": "https://api.nlib.cc/citra/0004000000030000/icon",
    "screenshots": {
      "compiled": ["https://api.nlib.cc/citra/0004000000030000/screen/1"],
      "uncompiled": {
        "upper": ["https://api.nlib.cc/citra/0004000000030000/screen_u/1/u"],
        "lower": ["https://api.nlib.cc/citra/0004000000030000/screen_u/1/l"]
      }
    },
    "thumbnails": ["https://api.nlib.cc/citra/0004000000030000/thumb/1"]
  }
}

Notes:

  • Use the fields parameter to request only specific data and reduce response size
  • Media URLs are only included if the corresponding media files are available
  • SQL queries are optimized to select only requested fields

🖼️ Media Assets Access

All media assets are accessible via dedicated endpoints:

GET /citra/:tid/icon           # Game icon
GET /citra/:tid/banner         # Game banner
GET /citra/:tid/screens        # List compiled screenshots
GET /citra/:tid/screen/:num    # Specific compiled screenshot
GET /citra/:tid/screen_u       # List uncompiled screenshots
GET /citra/:tid/screen_u/:num/:screen  # Uncompiled screenshot (u/l)
GET /citra/:tid/thumbs         # List thumbnails
GET /citra/:tid/thumb/:num     # Specific thumbnail

Special Features:

  • Compiled screenshots: Combined images ready to use
  • Uncompiled screenshots: Separate access to upper (u) and lower (l) screens
  • Thumbnails: Optimized versions of screenshots

All images are served in JPEG format with optimized delivery.


🔄 Unified Experience

NLib API v3.0.0 maintains the same API philosophy for both platforms:

  • fields parameter: Filter returned data to optimize performance
  • Consistent JSON format: Similar structure between Switch and 3DS
  • Media management: Uniform access to visual assets
  • Standardized HTTP codes: 200, 404, 500 for predictable integration

Example optimization:

# Only what you need (optimized)
GET /citra/0004000000030000?fields=name,description

# Full response
GET /citra/0004000000030000

🚀 Performance and Reliability

Like Switch endpoints, 3DS endpoints benefit from:

  • Optimized SQL queries: Select only requested fields
  • Conditional media checks: File checks are skipped if not needed
  • Smart caching: Responses cached for frequent queries
  • Hono architecture: High performance maintained for all endpoints

The same fast, efficient infrastructure that powers Switch endpoints now extends to 3DS.


💡 Why This Update Matters

NLib API v3.0.0 represents a major step toward our goal of creating a unified API for all Nintendo platforms. By adding 3DS support:

  • Unification: One API for Switch and 3DS
  • Preservation: Structured access to 3DS game data
  • Development: Easier tools for developers
  • Performance: Optimized architecture maintained for all platforms

This update brings together two major Nintendo platforms under a single, performant API.


🔮 Future Developments

With this solid foundation, we plan to add:

  • Advanced filtering by genre, region, or features
  • Enhanced search endpoints
  • Support for additional categories

💬 Thank You

A sincere thank you to everyone who supports our preservation and development efforts.
Your engagement helps us continue improving Ghost Land services and deliver quality tools for all users.

NLib API v3.0.0 is now live - with full Nintendo 3DS support, ready for what’s next.