# Thunderstore — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Browse and search thousands of mods across Thunderstore gaming communities. Retrieve mod metadata, version history, dependencies, download URLs, and decompiled source code files for any listed mod.

**Category:** Developer Tools | **Website:** [thunderstore.io/](https://thunderstore.io/) | **Docs:** [parse.bot/marketplace/258bad95-b2ba-43b6-a18f-ad9b3c338fd0/thunderstore-io-api](https://parse.bot/marketplace/258bad95-b2ba-43b6-a18f-ad9b3c338fd0/thunderstore-io-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-thunderstore-io-api-258bad95/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_mod_details

Get detailed information about a specific mod including latest version, dependencies, community listings, and download URLs. Returns the full mod record for a single package identified by namespace and name.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | Yes | Mod name slug (e.g. 'BepInExPack'). Available from search_mods results as the name field. |
| `namespace` | string | Yes | Mod owner namespace (e.g. 'bbepis'). Available from search_mods results as the namespace field. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-thunderstore-io-api-258bad95/get_mod_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"<string>","namespace":"<string>"}'
```

### get_mod_source

Extract decompiled source code files from a mod's source tab on Thunderstore. Returns filenames and their decompiled C# content (truncated to 10000 chars per file), along with any GitHub source links. Not all mods have source available.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `name` | string | Yes | Mod name slug (e.g. 'BepInExPack'). Available from search_mods or get_mod_details results. |
| `namespace` | string | Yes | Mod owner namespace (e.g. 'bbepis'). Available from search_mods or get_mod_details results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-thunderstore-io-api-258bad95/get_mod_source \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"<string>","namespace":"<string>"}'
```

### list_communities

Retrieve all communities on Thunderstore. Each community represents a game or project with its own mod ecosystem. Paginated internally; the limit parameter caps the total returned. Communities are identified by a slug used in other endpoints.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Maximum number of communities to return. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-thunderstore-io-api-258bad95/list_communities \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>"}'
```

### list_mods

Bulk list all mods in a specific community using the v1 package API. Returns full mod details including all version history. Very large communities (e.g. riskofrain2, lethal-company) may exceed response size limits; use search_mods for those.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `community` | string | Yes | The community identifier slug (e.g. 'windrose', 'riskofrain2', 'lethal-company'). Use identifier values from list_communities. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-thunderstore-io-api-258bad95/list_mods \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"community":"<string>"}'
```

### search_mods

Search for mods across Thunderstore with filters and ordering. Returns paginated results up to the specified limit. Supports searching across all communities or filtering to a specific one. Each result includes latest version details and community listings.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `community` | string | No | Community slug to filter results. Use hyphenated form (e.g. 'risk-of-rain-2', 'lethal-company'). |
| `limit` | integer | No | Maximum number of results to return. |
| `ordering` | string | No | Ordering field. Prefix with '-' to reverse. |
| `query` | string | No | Search keyword to filter mods by name or description. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-thunderstore-io-api-258bad95/search_mods \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"community":"<string>","limit":"<integer>","ordering":"<string>","query":"<string>"}'
```
