# Textures — 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.

> Search and browse millions of textures by category or keyword to find high-resolution texture maps with detailed pricing and specifications. Discover the latest content additions, explore free samples, and access complete metadata including available resolutions and texture maps for your projects.

**Category:** Developer Tools | **Website:** [textures.com/](https://textures.com/) | **Docs:** [parse.bot/marketplace/deed284a-4cf5-4b02-b314-fa8d897b393a/textures-com-api](https://parse.bot/marketplace/deed284a-4cf5-4b02-b314-fa8d897b393a/textures-com-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/textures/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Browse category

Browse textures within a specific category or subcategory by its ID. Returns paginated texture listings with category title metadata. Use leaf-level category IDs (from get_categories or get_subcategories contents items) for texture results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | Yes | Category or subcategory ID (numeric string). Obtainable from get_categories or get_subcategories results. |
| `page` | integer | No | Page number for pagination (1-based). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/textures/browse-category \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>","page":"<integer>"}'
```

### Get categories

Returns the full category tree for the texture library including all top-level categories, their subcategories, photo set counts, and content groupings. The tree is hierarchical: each category may contain subcategory items organized by content type (3d_materials, 3d_assets, etc.). Use category IDs from this response to browse textures or fetch subcategory details.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/textures/get-categories \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Get free content

Returns all free content available without a paid subscription. Results are paginated with up to 200 items per page. Includes tutorials, free 3D models, and sample textures marked with hasFreeSample in their defaultPhotoSet.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-based). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/textures/get-free-content \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### Get latest textures

Returns the most recently added textures across the entire library, ordered by recency. Results are paginated with up to 200 textures per page. Useful for discovering new additions without a specific search query.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-based). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/textures/get-latest-textures \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### Get subcategories

Returns subcategories and details for a given parent category ID. Includes the category name, photo set count, content groupings with nested subcategory items, and their browse links. Use leaf-level IDs from the items to browse textures in that subcategory.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_id` | string | Yes | Parent category ID (numeric string). Obtainable from get_categories results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/textures/get-subcategories \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category_id":"<string>"}'
```

### Get texture detail

Retrieve full details for a single texture by its photoSetId. Includes available maps organized in sections, each containing photos with multiple resolution options and credit costs. Also provides header images, license information, category placement, and physical size data. The photoSetId is found in defaultPhotoSet.id from search_textures or browse_category results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `photo_set_id` | string | Yes | Texture photoSetId (numeric string). Obtainable from defaultPhotoSet.id in search_textures or browse_category results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/textures/get-texture-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"photo_set_id":"<string>"}'
```

### Search textures

Full-text search over the texture library by keyword. Returns paginated results with texture metadata including name, resolution, dimensions, and photo set details. Each result contains a defaultPhotoSet with an ID usable for get_texture_detail. Up to 200 results per page.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination (1-based). |
| `query` | string | Yes | Search keyword (e.g. "wood", "concrete", "brick", "metal"). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/textures/search-textures \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","query":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://paywithlocus.com/agent/index.md): every Locus agent page.