---
title: "Create team"
method: POST
path: "/v2/teams"
tags: ["Teams"]
---

# Create team

`POST /v2/teams`

## Request

- Base URL: `https://api.streak.com/api`
- URL: `https://api.streak.com/api/v2/teams`
- Auth: HTTP bearer

Creates a team with an initial member roster.

## Request body

- TeamCreateBody: A new team and its initial members.
  - `name` string, required: Display name for the new team.
  - `members` TeamMemberCreate[], required: Initial team members. The authenticated creator must be included.
    - `userKey` string, nullable: Existing user key. Supply either this property or email.
    - `email` string, nullable: Email address used to find or create the user when userKey is omitted.

## Response `200`

OK

- Team: A Streak team and its membership, sharing, billing, and directory settings.
  - `key` string, required: Key for this team.
  - `creationDate` integer, required: Timestamp when the team was created, in epoch milliseconds.
  - `creator` string, required: Key for the user who created the team.
  - `members` TeamMember[], required: Members of the team and their team roles.
    - `userKey` string, required: Key for the member's user account.
    - `role` 'Member' | 'Owner' | 'PayerOnly' | 'ArchiveOnly', required
    - `inviteDate` integer, required: Timestamp when the member was invited, in epoch milliseconds.
    - `inviteStatus` 'Pending' | 'Accepted', required
    - `displayName` string, nullable: Display name for the member.
    - `email` string, nullable: Email address for the member.
    - `fullName` string, nullable: Full name for the member.
    - `givenName` string, nullable: Given name for the member.
    - `image` string, nullable: Profile-image URL for the member.
    - `userType` 'HUMAN' | 'AGENT', nullable: Type of the member's Streak user account.
    - `emailSharing` 'None' | 'Existence', required
  - `name` string, required: Display name for the team.
  - `sharingRestrictedToTeam` boolean: Whether sharing outside the team is restricted.
  - `automaticallyApproveJoinRequests` boolean: Whether requests to join the team are approved automatically.
  - `automaticallySendInvoiceEmails` boolean: Whether invoice emails are sent automatically for this team.
  - `emailsToSendInvoiceTo` string[], required: Additional email addresses that receive team invoices.
  - `billingAdmin` string, nullable: Key for the user who administers billing for this team.
  - `lastSavedTimestamp` integer, required: Timestamp when the team was last persisted, in epoch milliseconds.
  - `contactOrgListPermissions` object, required: Permissions for the team's system contact and organization lists.
  - `contactSettings` TeamFieldSettings, required: Custom field definitions for a team's contacts or organizations.
    - `fields` object, required: Custom fields keyed by their stable field key.
  - `organizationSettings` TeamFieldSettings, required: Custom field definitions for a team's contacts or organizations.
    - `fields` object, required: Custom fields keyed by their stable field key.

## Changes

- **2026-10-16** `1c3a5ef8b9ea`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/streakyc/apis/streak/changes/v2/teams/post.md)

---

[API](https://skmtc.dev/streakyc/apis/streak.md) - [All operations](https://skmtc.dev/streakyc/apis/streak/llms.txt) - [OpenAPI document](https://skmtc.dev/streakyc/apis/streak/revisions/3648671fd1cf?raw)
