---
title: "Join Labs"
method: POST
path: "/v0/organizations/labs"
tags: ["organizations"]
---

# Join Labs

`POST /v0/organizations/labs`

## Request

- Base URL: `https://api.agentmail.to`
- URL: `https://api.agentmail.to/v0/organizations/labs`
- Auth: HTTP bearer

Joins AgentMail Labs for the whole organization, which turns on every feature in Labs for every inbox. Joining again has no effect. There is no leave on the API; an organization admin can leave in the console under [Settings, then Labs](https://console.agentmail.to/dashboard/settings/labs).

Join only when your organization has decided to. Get Labs reads the same for an organization that never joined and one whose admin left Labs on purpose, so don't join just because `enabled` is `false`.

Requires an organization-scoped API key with no permissions restriction, and a verified organization. API keys see the change within five minutes. Where Labs isn't offered (`available` is `false` on Get Labs), joining returns `403`.

**CLI:**
```bash
agentmail organizations join-labs
```

## Response `200`

Response with status 200

- OrganizationsOrganizationLabs: Whether the organization is in AgentMail Labs, and whether Labs is offered in this deployment.
  - `enabled` boolean, required: Whether the organization is in AgentMail Labs.
  - `enabled_at` string, date-time, nullable, required: Time at which the organization joined Labs. `null` when it is not in Labs.
  - `available` boolean, required: Whether Labs is offered in this deployment. Labs is available in US production (`api.agentmail.to`), not yet in EU production (`api.agentmail.eu`).

## Other responses

- `400`: Error response with status 400
- `403`: The credential can't do this. For Get Labs, `code` is `missing_permission` when the API key is inbox- or pod-scoped. For Join Labs, `code` is `unrestricted_key_required` when the credential isn't an organization-scoped API key with no permissions restriction. Other Join Labs refusals (an unverified or suspended organization, a deployment without Labs, or an organization whose content access policy keeps API keys from joining) have `code` `forbidden` or `account_suspended`. Every refusal except a deployment without Labs has a `fix` that says what to do.
- `409`: Error response with status 409

## Changes

- **2026-10-16** `3f5c7830c952`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentmail-to/apis/api/changes/v0/organizations/labs/post.md)

---

[API](https://skmtc.dev/agentmail-to/apis/api.md) - [All operations](https://skmtc.dev/agentmail-to/apis/api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentmail-to/apis/api/revisions/a9792efe7bdf?raw)
