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

# Create team

`POST /teams`

Create a new team in your organization

## Request body

- TeamInput
  - `name` string, required — Team name (required)
  - `key` string — Client-defined reference identifier
  - `users` ResourceReferenceInput[] — Users to add to this team
    - union — Reference to another resource by either ID or client key (used in create/update requests)
      - object
        - `id` string, uuid, required — Resource UUID
        - `key` string — Client-defined reference ID
      - object
        - `id` string, uuid — Resource UUID
        - `key` string, required — Client-defined reference ID

## Response `201`

Team created successfully

- Team
  - `object` 'TEAM' — Object type identifier
  - `id` string, uuid, required — Unique team identifier
  - `name` string, required — Team name
  - `key` string, nullable — Client-defined reference identifier for this team
  - `users` UsersUserReference[] — Users who are members of this team
    - `object` 'USER' — Object type identifier
    - `id` string, uuid, required — Unique user identifier
    - `email` string, email, required — User's email address
    - `name` string, nullable — User's full name
    - `phone` string, nullable — User's phone number
    - `phoneExt` string, nullable — Phone extension
    - `status` 'PENDING' | 'ACTIVE' | 'INACTIVE', required — User account status: - `PENDING`: User invited but has not completed onboarding - `ACTIVE`: User account is active and can access the system - `INACTIVE`: User account is deactivated
    - `roles` UserRole[], required — User's roles within the organization
    - `key` string, nullable — Client-defined reference identifier for this user
    - `datUsername` string, nullable — DAT (Load Board) integration username
    - `mcpUsername` string, nullable — MyCarrierPortal integration username
    - `avatarId` string, uuid, nullable — Profile avatar document ID
    - `createdAt` string, date-time, required — Timestamp when user was created
    - `updatedAt` string, date-time, required — Timestamp when user was last updated
    - `deletedAt` string, date-time, nullable — Timestamp when user was soft-deleted (null if active)
  - `createdAt` string, date-time, required — Timestamp when team was created
  - `updatedAt` string, date-time, required — Timestamp when team was last updated
  - `deletedAt` string, date-time, nullable — Timestamp when team was soft-deleted (null if active)

## Other responses

- `400` — Bad request - invalid input
- `401` — Unauthorized - invalid or missing access token
- `422` — Validation error - invalid field values
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/mvmnt/apis/mvmnt-api.md) · [All operations](https://skmtc.net/mvmnt/apis/mvmnt-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mvmnt/mvmnt-api/revisions/c44e5e7a4256/schema)
