> ## Documentation Index
> Fetch the complete documentation index at: https://docs.splat-3d.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Build with AI agents

> Give a coding agent the docs as text, the Splat3D API skill, or a short prompt.

# Build with AI agents

Coding agents such as Claude Code, Cursor and Codex can write a Splat3D
integration. Give yours one of the three below.

## The docs as text

| URL | Holds |
| - | - |
| [`docs.splat-3d.com/llms.txt`](https://docs.splat-3d.com/llms.txt) | An index of every page, one line each |
| [`docs.splat-3d.com/llms-full.txt`](https://docs.splat-3d.com/llms-full.txt) | Every page in one file |
| [`api.splat-3d.com/openapi.json`](https://api.splat-3d.com/openapi.json) | The OpenAPI spec |

Every page also has a markdown copy: add `.md` to its URL, e.g.
`https://docs.splat-3d.com/quickstart.md`.

## The skill

The `splat3d-api` skill holds the integration loop and the mistakes agents
make without it, and links to these docs for the rest:
[splat3d/examples/skills/splat3d-api](https://github.com/splat3d/examples/tree/main/skills/splat3d-api).

For Claude Code, copy the `splat3d-api` folder into your project's
`.claude/skills/`, or into `~/.claude/skills/` for every project. Agents
that load `SKILL.md` files can use it the same way.

## A prompt

For an agent without skill support, paste this:

```text theme={null}
Build against the Splat3D API (https://api.splat-3d.com). Read
https://docs.splat-3d.com/llms-full.txt first.

- Auth: Authorization: Bearer s3d_..., read from an env var on the server.
  Never put the key in a browser, app bundle or repo.
- Loop: POST /v1/scenes {content_type, file_size} -> PUT the file to
  data.uploadUrl with the same Content-Type -> POST /v1/scenes/{id}/process
  -> poll GET /v1/scenes/{id} every 5-10 s until status is complete, failed
  or cancelled -> GET /v1/scenes/{id}/download?format=sog|ply|spz.
- /process charges once per scene. Repeat it only with the same body (a
  different one is 409). Never create a new scene to retry.
- Errors: {error: {code, message, details?}, meta: {request_id}}. On 429
  queue_full, wait Retry-After seconds and call /process again. On 429
  rate_limited (300 requests or 30 launches a minute per account), wait
  Retry-After seconds and repeat the request. Retry a 503 only when it
  carries Retry-After.
- Inputs: a video of 30+ seconds, a zip of 20+ JPEG/PNG photos taken all
  around the subject, a COLMAP workspace zip, or a SplatKing export zip as
  exported: https://docs.splat-3d.com/guides/supported-inputs
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.