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

# Create a team

> Create a new team. The caller is auto-added as an accepted admin member.

Create a new team. The caller is auto-added as an accepted admin member. Team scoring requires the Business plan or higher.

```bash theme={null}
curl -X POST https://app.dacard.ai/api/teams \
  -H "Authorization: Bearer $DACARD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Acme Product" }'
```

| Property          | Value                                 |
| ----------------- | ------------------------------------- |
| **Auth**          | Required                              |
| **Required plan** | Business or Enterprise                |
| **Idempotent**    | No (creates a new team on every call) |

## Body

| Field  | Type   | Required | Notes                            |
| ------ | ------ | -------- | -------------------------------- |
| `name` | string | yes      | Trimmed. Empty strings rejected. |

## Response

`201 Created`

```json theme={null}
{
  "team": {
    "id": "tm_2x1B3y...",
    "name": "Acme Product",
    "accountId": "acc_...",
    "createdBy": "user_...",
    "createdAt": "2026-05-06T18:11:43Z"
  }
}
```

## Errors

| Status | Code               | When                                           |
| ------ | ------------------ | ---------------------------------------------- |
| 400    | `name is required` | Body missing or empty `name`.                  |
| 401    | `AUTH_REQUIRED`    | No session.                                    |
| 403    | `FEATURE_GATED`    | Caller is on Free or Pro. Move up to Business. |
| 500    | `INTERNAL_ERROR`   | Write failed.                                  |

## Side effects

* Audit log entry: `team_created`.
* PQL event: `team_invite_sent` with `action: team_created`.
* Caller's membership row inserted with `role: admin`, `status: accepted`.
