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

# REST API

> Base URL, conventions, pagination, and errors

The REST face of the Open API. Same capabilities, same auth, same rate
limits as the [MCP server](/mcp/overview) — pick whichever fits your stack.

## Base URL

```
https://api.seesaw.fun/open/v1
```

All endpoints require `Authorization: Bearer sspat_YOUR_KEY` — see
[Authentication](/authentication).

## Conventions

* Fields are `snake_case`; enums are lowercase strings.
* **Decimals are strings** (`"0.5476"`, `"1287.4500"`) — parse with a
  decimal type, never float arithmetic on money.
* Timestamps are RFC 3339 UTC: `2026-07-10T15:59:00Z`.
* Users are identified by `handle`; every resource carries a
  human-visitable `url`.
* Single resources return bare objects; errors use
  `{"error": {code, message, details}}` — see [Errors](/errors).

## Pagination

List endpoints return a uniform envelope:

```json theme={null}
{
  "data": [ … ],
  "next_cursor": "bzoy",
  "has_more": true
}
```

Pass `next_cursor` back as `?cursor=` to get the next page; `next_cursor` is
`null` on the last page. Cursors are **opaque** — don't parse or construct
them. `limit` defaults to 20, max 100.

Reusing a cursor with *different* query params doesn't guarantee continuity.
A few endpoints don't paginate by design (zones, global leaderboard,
`type=all` search preview) — each notes that in its reference page.

## Endpoints

The pages in this section are generated from the
[OpenAPI 3.1 spec](https://github.com/SeesawTech/seesaw-developer-docs/blob/main/api-reference/openapi.yaml)
— it's the source of truth for shapes shown here, and you can feed it to
codegen or your agent directly.
