API Reference
This guide outlines all public and developer APIs provided by the ChanomHub platform for querying, integrating, and managing articles, mods, and developer features.
Overview
Section titled “Overview”ChanomHub APIs are accessible via multiple endpoints:
- Base URL (REST):
https://api.chanomhub.com/api(orhttp://localhost:3000/apifor local development) - GraphQL Endpoint:
https://api.chanomhub.com/api/graphql - Interactive Swagger Docs: https://api.chanomhub.com/api-docs
1. Authentication
Section titled “1. Authentication”Public endpoints (listing articles, searching mods, reading public profiles) do not require authentication. For write operations or accessing personal user resources, include a Bearer token in your HTTP request headers:
Authorization: Bearer <YOUR_ACCESS_TOKEN>Auth Endpoints
Section titled “Auth Endpoints”| Endpoint | Method | Description |
|---|---|---|
/api/auth/sign-in/email | POST | Sign in with Email and Password |
/api/auth/sign-up/email | POST | Register a new user account |
/api/auth/sign-out | POST | Sign out / Invalidate current session |
/api/auth/sign-in/social | GET | Initiate OAuth login (google, discord, github) |
2. Articles API
Section titled “2. Articles API”Search, fetch, create, and manage game articles and publications.
2.1 Fetch Articles List
Section titled “2.1 Fetch Articles List”GET /api/articles
Query Parameters:
page(number): Target page number ( Default:1)limit(number): Number of items per page ( Default:20)category(string): Filter by Category Slugtag(string): Filter by Tag Slugsearch(string): Search query string for title/contentsortBy(string): Sorting criteria (latest,popular,trending)
curl -X GET "https://api.chanomhub.com/api/articles?page=1&limit=10&sortBy=latest"const res = await fetch('https://api.chanomhub.com/api/articles?page=1&limit=10');const data = await res.json();console.log(data.articles, data.articlesCount);2.2 Latest & Popular Articles
Section titled “2.2 Latest & Popular Articles”GET /api/articles/latest— Get newly published articlesGET /api/articles/popular— Get top trending articles
2.3 Article Details
Section titled “2.3 Article Details”GET /api/articles/:slug
Response Example:
{ "article": { "id": 102, "title": "Example Game Mod Article", "slug": "example-game-mod", "description": "Short description of the article...", "body": "Article body in Markdown format...", "ver": "1.2.0", "engine": "RENPY", "views": 1540, "ratings": 4.8, "tags": ["Visual Novel", "Mod"], "createdAt": "2026-08-19T10:00:00.000Z" }}2.4 Track Article Views
Section titled “2.4 Track Article Views”POST /api/articles/:slug/view
- Increments view count when a user views the article page.
2.5 Article Management (Authenticated)
Section titled “2.5 Article Management (Authenticated)”POST /api/articles— Create a new article draft/submissionPUT /api/articles/:slug— Update an existing articlePOST /api/articles/:slug/transfer-request— Request ownership transfer of an article to another userPOST /api/articles/:slug/favorite— Bookmark an articleDELETE /api/articles/:slug/favorite— Remove an article from bookmarks
3. Comments API
Section titled “3. Comments API”| Endpoint | Method | Auth | Description |
|---|---|---|---|
/api/articles/:slug/comments | GET | ❌ | Retrieve comment tree for an article |
/api/articles/:slug/comments | POST | ✅ | Post a new comment or reply |
/api/articles/:slug/comments/:id | DELETE | ✅ | Delete your comment |
4. Mods & Engines API
Section titled “4. Mods & Engines API”Query game mods, categories, and game engines.
GET /api/mods— Search and filter game modsGET /api/mods/:id— Retrieve specific mod details by IDGET /api/mod-categories— Fetch list of mod categoriesGET /api/engines— Fetch list of supported game engines (e.g. Ren’Py, Unity, RPG Maker)
5. Downloads API
Section titled “5. Downloads API”| Endpoint | Method | Description |
|---|---|---|
/api/downloads/:documentId | GET | Generate secure download token and links |
/api/downloads/redirect | GET | Handle ad/redirect download links |
6. Taxonomy APIs (Tags, Categories & Platforms)
Section titled “6. Taxonomy APIs (Tags, Categories & Platforms)”GET /api/tags— List all article tags with usage countsGET /api/categories— List available categoriesGET /api/platforms— List game platforms (PC, Mobile, Android, Switch, etc.)
7. Developer Portal & API Verification
Section titled “7. Developer Portal & API Verification”Manage developer status and verification tokens.
Endpoints
Section titled “Endpoints”GET /api/developer/list— List all verified developersGET /api/developer/profile(Auth) — Retrieve authenticated user’s developer profilePOST /api/developer/apply(Auth) — Submit developer profile applicationPOST /api/developer/generate-token(Auth) — Generate a 1-time verification tokenPOST /api/developer/verify/:token(Auth) — Verify tokenPATCH /api/developer/profile(Auth) — Update developer profile details
8. AI Utilities API
Section titled “8. AI Utilities API”Helper endpoints for content creators and developer integrations:
POST /api/ai/suggest-tags— Automatically suggest relevant tags for contentPOST /api/ai/validate-tag— Validate tag syntax and relevance
9. RSS Feeds
Section titled “9. RSS Feeds”ChanomHub provides RSS feeds to subscribe to news and content updates:
- Platform RSS Feed:
/platforms/:slug/rss- Example:
https://chanomhub.com/en/platforms/pc/rss
- Example:
- Tag RSS Feed:
/tag/:slug/rss- Example:
https://chanomhub.com/en/tag/visual-novel/rss
- Example:
10. GraphQL API
Section titled “10. GraphQL API”The GraphQL endpoint allows client applications to query flexible data schemas.
- Endpoint:
/api/graphql - Supported HTTP Methods:
POST,QUERY
Explore the full schema via the interactive GraphQL Schema Browser.
HTTP Status Codes
Section titled “HTTP Status Codes”| Status Code | Meaning | Description |
|---|---|---|
200 OK | Success | Request succeeded |
201 Created | Created | Resource successfully created |
400 Bad Request | Bad Request | Invalid inputs or malformed body |
401 Unauthorized | Unauthorized | Bearer token required in HTTP Header |
403 Forbidden | Forbidden | Insufficient permissions for operation |
404 Not Found | Not Found | Requested slug or resource not found |
500 Internal Error | Internal Server Error | Server-side exception |