---
title: "Create a new coach"
method: POST
path: "/coaches"
tags: ["Coaches"]
---

# Create a new coach

`POST /coaches`

## Request

- Base URL: `https://api.production.yourmedley.com`
- URL: `https://api.production.yourmedley.com/coaches`
- Auth: HTTP bearer

Create a new coach (creates user + persona + coach_profile)

## Request body

- object
  - `first_name` string, required
  - `last_name` string, required
  - `email` string, email, required
  - `phone` string
  - `bio` string
  - `expertise_areas` string[]
  - `coaching_specializations` string, required
  - `location` string, required
  - `home_base_timezone` string, required

## Response `201`

Coach created successfully

- object
  - `success` boolean
  - `data` Coach
    - `id` string, uuid
    - `user_id` string, uuid
    - `first_name` string
    - `last_name` string
    - `email` string
    - `phone` string
    - `bio` string
    - `expertise_areas` string[]
    - `coach_type` 'medley' | 'partner': Whether coach is a Medley coach or partner coach
    - `partner_id` string, uuid, nullable: Organization ID for partner coaches
    - `partner_name` string, nullable: Organization name (computed from partner_id)
    - `status` 'active' | 'inactive': Derived status (Active when has approved modalities AND not manually inactive)
    - `location` string
    - `home_base_timezone` string
    - `coaching_specializations` string
    - `hourly_rate_cents` integer
    - `modality_proficiencies` string[]: Modalities the coach is proficient in
    - `modality_approvals` string[]: Modalities the coach is Medley Approved for (admin-only, not visible to coaches)
    - `zoom_link` string, nullable: Coach's Zoom personal meeting link
    - `zoom_passcode` string, nullable: Passcode of the Zoom link. Shown in invites of cohorts that turn on show_zoom_dial_in (MED-1411)
    - `teams_link` string, nullable: Coach's Microsoft Teams meeting link
    - `google_meet_link` string, nullable: Coach's Google Meet link
    - `created_at` string, date-time

## Other responses

- `401`: Unauthorized
- `409`: Email already exists
- `422`: Validation error

---

[API](https://skmtc.dev/withmedley/apis/medley-api.md) - [All operations](https://skmtc.dev/withmedley/apis/medley-api/llms.txt) - [OpenAPI document](https://skmtc.dev/withmedley/apis/medley-api/revisions/40aaac5ca6bd?raw)
