---
title: "Ask for access to the private beta, for yourself or for the person you work for"
method: POST
path: "/api/access-requests"
tags: ["Public"]
---

# Ask for access to the private beta, for yourself or for the person you work for

`POST /api/access-requests`

## Request

- Base URL: `https://tre-app.com`
- URL: `https://tre-app.com/api/access-requests`
- Auth: none required

Public: no session and no bearer. Body: `email` (required), `agents` (which of claude-code, codex, cursor, openclaw, chatgpt, other the person runs), `note` (up to 280 characters). Always answers `202 { status: "received" }` for a valid body, whether or not the address was already known — the endpoint never reveals membership. Five requests an hour per network address; a 429 carries Retry-After. Answers `404` on an installation that is not running a beta (`PUBLIC_ACCESS` other than `beta`).

## Request body

- AccessRequestInput
  - `email` string, email, required
  - `agents` string[]: Which agents the person runs, any of: claude-code, codex, cursor, openclaw, chatgpt, other.
  - `note` string: Up to 280 characters: what the person would use Tre for.
  - `website` string

## Response `202`

Success

- AccessRequestReceipt
  - `status` 'received', required

## Other responses

- `400`: Invalid request
- `401`: Unauthenticated
- `403`: Forbidden: insufficient role or token scope; scope denials name the held scope and the operation
- `404`: Not found
- `409`: Conflict
- `429`: Rate limited
- `500`: Internal server error
- `503`: Temporarily unavailable

---

[API](https://skmtc.dev/tre-app/apis/tre-rest-api.md) · [All operations](https://skmtc.dev/tre-app/apis/tre-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tre-app/apis/tre-rest-api/revisions/26a7187a05fc?raw)
