# API overview

_Last updated October 16, 2026_

> Make squidmaps maps from your own code. Write a map in the map spec, send it to the API, and get back a link to open it in squidmaps.

> **Beta:** squidmaps is in beta. Features, the map spec and these docs may change without notice, and things may occasionally break. Export a copy of any map that matters to you, and tell us when something isn't right: use Beta feedback, or email support@squidmaps.io.

## What it's for

- **AI assistants.** A model writes a map from a prompt, sends it, and hands
  the person a link to the finished map.
- **Data pipelines.** The last step of a pipeline turns its output into a
  styled map, ready for someone to review, edit and publish.
- **Custom workflows.** A script, a spreadsheet export or an internal tool
  turns its records into a map someone can keep working on.

## Requests

The API is at `https://squidmaps.io/api`. Requests and responses are JSON:
send `Content-Type: application/json`.

The endpoints on these pages need no account or key. Call them from a server,
a script or an assistant's tools. Browsers can't call them from other
websites.

## Errors

A request that fails gets a status code, and a JSON body whose `message`
says what went wrong:

```json
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "✖ Invalid input: expected array, received undefined\n  → at features"
}
```

| Status | Meaning |
| --- | --- |
| `400` | The request isn't valid, like a map that doesn't match the spec. |
| `404` | What you asked for doesn't exist, or has expired. |
| `413` | The request is too large. |
| `429` | Too many requests. Wait the number of seconds in the `Retry-After` header. |

## Rate limits

Each endpoint has its own limit, per IP address, listed on its page. Every
address can also make up to 600 requests a minute to the API as a whole.

> **Tip:** squidmaps is in beta, and the API may change. Tell us what you're building: email support@squidmaps.io.

## Endpoints

- [Ephemeral maps](https://squidmaps.io/docs/api/ephemeral-maps): Send a map without an account, and get a link to open it.
