Public API
A typed, documented read API. The desktop app, CLI/MCP, and third parties all consume it. All reads are cacheable at the edge. Authed writes require a bearer token.
Endpoints
/api/mods?q=&category=&loader_types=&side=&platforms=&game_version=&tags=&dedicated_server_only=&include_nsfw=&sort=&page=&page_size=Search mods with faceted filters. Returns { mods, total, page, page_size, facets }.
/api/mods/{idOrSlug}Mod detail: metadata, compatibility, author.
/api/mods/{idOrSlug}/files?include_old=1List a mod's files grouped by category with scan + analysis status.
/api/mods/{idOrSlug}/compatibility?game_version=&platform=Compatibility verdict for a mod against a game version + platform. The headline feature.
/api/mods/{idOrSlug}/reviews?page=Paginated star ratings + written reviews.
/api/mods/{idOrSlug}/bugs?page=Paginated bug reports.
/api/categoriesAll categories.
/api/game-versionsThe current Palworld game version. Production currently exposes only 1.0.
/api/authors/{handle}Author profile + their mods.
/api/collections/{idOrSlug}Collection detail with pinned versions + load order.
/api/landing?section=trending|hot|newest|recently_updated|most_endorsed|editors_picksCurated landing sections.
/feed?category=&game_version=RSS feed of latest and updated mods.
/api/download/{fileId}Record a download, redirect to signed R2 URL. Only clean files.
Compatibility verdict
The compatibility endpoint returns one of four verdicts:
compatible- explicitly supports your game version + platform.likely_broken- its newest supported version predates yours.unknown- no game versions declared.incompatible- platform or side mismatch.
TypeScript client
Use @palmods/api-client for typed access:
import { PalModsClient } from '@palmods/api-client';
const client = new PalModsClient({ baseUrl: 'https://palmods.gg/api' });
const result = await client.checkCompatibility('stack-size-x50', {
game_version: '1.0',
platform: 'steam',
});
console.log(result.verdict); // 'compatible' | 'likely_broken' | ...