================================================================================ JOYFULKIDS — GAMES API DOCUMENTATION ================================================================================ Base URL : https://questionscms.df3.club Method : GET Endpoint : /api/games ================================================================================ HEADERS (required on every request) ================================================================================ Content-Type : application/vnd.api+json Accept : application/vnd.api+json X-Drupal-Api-Key : k9QmP2vLxR7nW4jH8fT0sY3bN6cZ1dE5gU ================================================================================ ENUM / FILTER VALUES (JoyfulKids) ================================================================================ Portal joyfulkids Category (encode spaces as + in the URL) Game+Galaxy Reading+Corner interactive+learning+videos Multiple categories (comma-separated, OR logic): category=Game+Galaxy,Reading+Corner Status (game field_status) active inactive Random random=1 → ON (shuffled order) random=0 → OFF (default sort — newest first) Pagination page=1 (default: 1) limit=10 (default: 10, max: 100) meta.has_more = true → more pages available Language (optional) lang=en | lang=hi,en ================================================================================ META OBJECT (included in every response) ================================================================================ { "game_uuid": "", // set when filtering by a single game UUID "portal_uuid": "", // resolved portal UUID "portal_name": "", // e.g. "joyfulkids" "category_uuid": [], // resolved category UUIDs "category_names": [], // e.g. ["Game Galaxy", "Reading Corner"] "status": "", // applied status filter: active | inactive "language_filter": [], "page": 1, "limit": 10, "total_matching": 26, // total games matching filters "has_more": true, // true = more pages exist "random": false, "seed": "", // present when random=1 (if seed is set) "drupal_uid": 0, "gos_user_id": "" // logged-in / mapped user id } ================================================================================ GAME OBJECT — data[] (each item) ================================================================================ { "game_uuid": "211063ea-01d4-4635-80e9-f116ea486f3d", "title": "Classic Snake", "name": "", // display name override (may be empty) "thumbnail_url": "http://questionscms.df3.club/sites/default/files/.../thumb.webp", "banner_image_url": "", // empty string if not set "status": "active", // active | inactive "file_url": "http://game.moobig.com/Contents/Games/P8ICZ9/Game/", "field_title": "", // short description "file_upload_url": "", // optional download file "body": "" // plain text description } ================================================================================ API EXAMPLES ================================================================================ ------------------------------------------------------------------------------ 1) FETCH ALL GAMES ------------------------------------------------------------------------------ GET https://questionscms.df3.club/api/games Headers: Content-Type: application/vnd.api+json Accept: application/vnd.api+json X-Drupal-Api-Key: k9QmP2vLxR7nW4jH8fT0sY3bN6cZ1dE5gU Sample response: { "meta": { "game_uuid": "", "portal_uuid": "", "portal_name": "", "category_uuid": [], "category_names": [], "status": "", "language_filter": [], "page": 1, "limit": 10, "total_matching": 26, "has_more": true, "random": false, "seed": "", "drupal_uid": 0, "gos_user_id": "" }, "data": [ { "game_uuid": "8cdf3105-eb77-432b-ad44-27e5ca834085", "title": "Zombie Hunter", "name": "", "thumbnail_url": "http://questionscms.df3.club/sites/default/files/2026-05/thumb.1710850252_-2r6El62N.webp", "banner_image_url": "", "status": "active", "file_url": "http://game.moobig.com/Contents/Games/THWVG8/Game/", "field_title": "", "file_upload_url": "", "body": "" }, { "game_uuid": "fb728b9a-7b0a-481a-831c-4820d4e76543", "title": " Brick Block Classic", "name": "", "thumbnail_url": "http://questionscms.df3.club/sites/default/files/2026-05/thumb.1710850240_916WrrVoC.webp", "banner_image_url": "", "status": "active", "file_url": "http://game.moobig.com/Contents/Games/PGZ96L/Game/", "field_title": "", "file_upload_url": "", "body": "" } ] } ------------------------------------------------------------------------------ 2) PORTAL + CATEGORY + STATUS FILTER ------------------------------------------------------------------------------ GET https://questionscms.df3.club/api/games?portals=joyfulkids&category=Game+Galaxy&status=active Sample meta (resolved filters): { "meta": { "portal_uuid": "59f1fe97-2c21-4075-92b1-7fd767e277c9", "portal_name": "joyfulkids", "category_uuid": ["ea48aec2-6b8e-4638-90f9-5efd6e9ebabf"], "category_names": ["Game Galaxy"], "status": "active", "page": 1, "limit": 10, "total_matching": 26, "has_more": true, "random": false, "drupal_uid": 0, "gos_user_id": "" }, "data": [ ...games... ] } ------------------------------------------------------------------------------ 3) MULTIPLE CATEGORIES (OR) ------------------------------------------------------------------------------ GET https://questionscms.df3.club/api/games?category=Game+Galaxy,Reading+Corner response: { "meta": { "game_uuid": "", "portal_uuid": "", "portal_name": "", "category_uuid": [ "ef835d94-7e67-443f-bce3-023e1602ac5a", "ea48aec2-6b8e-4638-90f9-5efd6e9ebabf" ], "category_names": [ "Reading Corner", "Game Galaxy" ], "status": "", "language_filter": [], "page": 1, "limit": 10, "total_matching": 26, "has_more": true, "random": false, "seed": "", "drupal_uid": 0, "gos_user_id": "" }, "data": [ { "game_uuid": "8cdf3105-eb77-432b-ad44-27e5ca834085", "title": "Zombie Hunter", "name": "", "thumbnail_url": "http://questionscms.df3.club/sites/default/files/2026-05/thumb.1710850252_-2r6El62N.webp", "banner_image_url": "", "status": "active", "file_url": "http://game.moobig.com/Contents/Games/THWVG8/Game/", "field_title": "", "file_upload_url": "", "body": "" } ------------------------------------------------------------------------------ 4) PORTAL + MULTIPLE CATEGORIES + STATUS ------------------------------------------------------------------------------ GET https://questionscms.df3.club/api/games?portals=joyfulkids&category=Game+Galaxy,Reading+Corner&status=active rsponse: { "meta": { "game_uuid": "", "portal_uuid": "59f1fe97-2c21-4075-92b1-7fd767e277c9", "portal_name": "joyfulkids", "category_uuid": [ "ef835d94-7e67-443f-bce3-023e1602ac5a", "ea48aec2-6b8e-4638-90f9-5efd6e9ebabf" ], "category_names": [ "Reading Corner", "Game Galaxy" ], "status": "active", "language_filter": [], "page": 1, "limit": 10, "total_matching": 26, "has_more": true, "random": false, "seed": "", "drupal_uid": 0, "gos_user_id": "" }, "data": [ { "game_uuid": "8cdf3105-eb77-432b-ad44-27e5ca834085", "title": "Zombie Hunter", "name": "", "thumbnail_url": "http://questionscms.df3.club/sites/default/files/2026-05/thumb.1710850252_-2r6El62N.webp", "banner_image_url": "", "status": "active", "file_url": "http://game.moobig.com/Contents/Games/THWVG8/Game/", "field_title": "", "file_upload_url": "", "body": "" } ================================================================================ 6) FILTER WITH GAME UUID ================================================================================ GET https://questionscms.df3.club/api/games?game_uuid=d9583650-aa35-459f-97fa-4190874968fe response:- { "meta": { "game_uuid": "d9583650-aa35-459f-97fa-4190874968fe", "portal_uuid": "", "portal_name": "", "category_uuid": [], "category_names": [], "status": "", "language_filter": [], "page": 1, "limit": 10, "total_matching": 1, "has_more": false, "random": false, "seed": "", "drupal_uid": 0, "gos_user_id": "" }, "data": [ { "game_uuid": "d9583650-aa35-459f-97fa-4190874968fe", "title": "Princess Goldblade And The Dan", "name": "", "thumbnail_url": "http://questionscms.df3.club/sites/default/files/2026-05/thumb.1710847376_OlQLKSrle.webp", "banner_image_url": "", "status": "active", "file_url": "https://game.moobig.com/Contents/Games/1PS0F2/Game/", "field_title": "", "file_upload_url": "", "body": "" } ] } ------------------------------------------------------------------------------ 5) PAGINATION ------------------------------------------------------------------------------ GET https://questionscms.df3.club/api/games?portals=joyfulkids&category=Game+Galaxy,Reading+Corner&status=active&page=1&limit=10 page=1&limit=10 → first 10 games page=2&limit=10 → next 10 (when meta.has_more = true) ------------------------------------------------------------------------------ 6) RANDOM ORDER ------------------------------------------------------------------------------ GET https://questionscms.df3.club/api/games?portals=joyfulkids&category=Game+Galaxy,Reading+Corner&status=active&random=1 random=1 → games returned in shuffled order random=0 → normal order (default) Optional stable shuffle (same order per session): &random=1&seed=my-session-id ------------------------------------------------------------------------------ 7) INTERACTIVE LEARNING VIDEOS CATEGORY ------------------------------------------------------------------------------ GET https://questionscms.df3.club/api/games?portals=joyfulkids&category=interactive+learning+videos&status=active ================================================================================ QUERY PARAMETERS — QUICK REFERENCE ================================================================================ | Parameter | Example | Description | |-----------------|--------------------------------------|--------------------| | portals, portal | joyfulkids | Portal name | | category | Game+Galaxy,Reading+Corner | Category (OR) | | status | active / inactive | Game status | | page | 1 | Page number | | limit | 10 | Items per page | | random | 1 / 0 | Shuffle on/off | | lang | en / hi | Language filter | | game_uuid | uuid | Single game | ================================================================================ ERRORS & NOTES ================================================================================ HTTP 401 → API key missing or invalid data: [] → no games match the filters has_more:false → last page file_url "" → set game URL in CMS thumbnail "" → show placeholder image in app Drupal: content management + API + filters ✅ Joyful: UI, API integration, WebView play ☐