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

# Requests, versions, and limits

> Understand API versions, headers, rate limits, and safe request behavior.

## Base URL

Send production requests to:

```text theme={null}
https://api.onlyform.com
```

Resource endpoints use the `/v1` path prefix.

## Contract version

The current API contract version is `2026-07-31`. Responses include:

```text theme={null}
Onlyform-Version: 2026-07-31
```

The `v1` URL prefix identifies the major API surface. The date identifies the deployed contract revision. Clients do not need to send a version header.

## Content types

Send JSON request bodies with:

```text theme={null}
Content-Type: application/json
```

The API returns JSON except for `204 No Content` responses and the downloadable OpenAPI document.

## Rate limits

Each API key may make 100 requests per minute. When a key exceeds the limit, the API returns `429 RATE_LIMIT_EXCEEDED`.

Rate-limited responses include `Retry-After` and standard rate-limit headers. Wait until the window resets before retrying.

<Tip>
  Cache stable resources, use the maximum practical page size, and avoid polling when a webhook can notify your application.
</Tip>

## Resource identifiers

API resource IDs are 24-character hexadecimal strings. Treat IDs as opaque strings even when their current format is recognizable.

Many resources also include a `public_id`. Use the `id` field for public API paths unless an endpoint explicitly says otherwise.

## Timestamps

Timestamps use ISO 8601 date-time strings in UTC:

```text theme={null}
2026-07-31T09:00:00.000Z
```

## OpenAPI document

Download the canonical OpenAPI 3.1 contract without authentication:

```bash theme={null}
curl https://api.onlyform.com/v1/openapi.json
```

You can use the document to generate typed clients, validate requests, or import the API into development tools.
