---
last_updated: 2026-08-24
canonical: https://latitude.so/rate-limits.md
---

# Latitude rate limits

> Request-rate conventions for [latitude.so](https://latitude.so) — the public Latitude site, its
> content endpoints, and its machine-readable discovery files. Written for crawlers and agents
> reading this site.

Scope note: this document covers `latitude.so` only. The Latitude API is a separate host
(`api.latitude.so`) with its own limits — the policy below does not apply there. See
[Latitude developer resources](https://latitude.so/developers.md) for the API.

## The advisory quota

The public site is statically rendered and served from a CDN. Requests are **not** metered per
client, and no per-client counters are returned, because there are none to report.

To give agents a concrete self-throttling target anyway, the site's content endpoints declare a
quota policy using the `RateLimit-Policy` field from the IETF RateLimit header fields
specification ([draft-ietf-httpapi-ratelimit-headers](https://datatracker.ietf.org/doc/draft-ietf-httpapi-ratelimit-headers/),
an active Internet-Draft, not yet an RFC), in Structured Fields syntax (RFC 9651):

```http
RateLimit-Policy: "content";q=600;w=60
```

That reads as: 600 requests per 60-second window, under a policy named `content`. This is an
**advisory ceiling** — a request rate the site asks clients to stay under, not an enforced counter.
A well-behaved crawler or agent should treat it as a hard limit. The companion `RateLimit` field is
deliberately not sent: it must carry live remaining quota, and a CDN-cached static response has no
live counter to report.

## Endpoints that declare the policy

| Endpoint | Content type |
| --- | --- |
| `/api/changelog.json` | `application/json` |
| `/api/changelog/{page}.json` | `application/json` |
| `/.well-known/api-catalog` | `application/linkset+json` |
| `/.well-known/mcp/server-card.json` | `application/json` |
| `/.well-known/oauth-protected-resource` | `application/json` |
| `/.well-known/oauth-authorization-server` | `application/json` |
| `/.well-known/openid-configuration` | `application/json` |

`RateLimit-Policy` is listed in `Access-Control-Expose-Headers` on these endpoints so
browser-based agents can read it.

## Expected client behavior

1. Stay under the declared policy: 600 requests per minute, across all endpoints on this host.
2. Respect `Cache-Control`. Every content endpoint sets an `s-maxage`; re-fetching unchanged JSON
   is the most common way an agent burns through a quota for nothing. Use conditional requests.
3. Send a descriptive `User-Agent` identifying your client or agent.
4. Prefer the machine-readable files over crawling HTML. `/llms.txt` indexes the site,
   `/developers.md`, `/product.md`, `/pricing.md`, and `/quickstart.md` mirror whole pages, and
   `/sitemap-index.xml` lists every indexable URL — all of them far cheaper than fetching pages.
5. Page routes also serve `text/markdown` when the request sends `Accept: text/markdown`.
   Responses carry `x-markdown-tokens` and `x-original-tokens` so you can compare payload sizes.
   Markdown is typically an order of magnitude smaller than the HTML.
6. Do not retry a `404`. The site returns a real `404` for paths that do not exist, with a body
   listing the indexes above — re-read an index instead of guessing more URLs.

## Reporting a problem

If the advisory quota blocks a legitimate integration, email `hello@latitude.so` with the
endpoints you need and your request pattern.

## See also

- [Latitude developer resources](https://latitude.so/developers.md)
- [Site index for LLMs](https://latitude.so/llms.txt)
- [Latitude API catalog](https://latitude.so/.well-known/api-catalog)
