---
title: "Create a keep-in-touch cadence (v2)"
method: POST
path: "/v2/keep-in-touch/cadences"
tags: ["keep-in-touch"]
---

# Create a keep-in-touch cadence (v2)

`POST /v2/keep-in-touch/cadences`

## Request

- Base URL: `https://api.prod.getdex.com`
- URL: `https://api.prod.getdex.com/v2/keep-in-touch/cadences`
- Auth: HTTP bearer

Add a contact's Team cadence (`kind: 'team'`; owners, admins and standard members) or the caller's own My cadence (`kind: 'my'`; every member, viewers included) on one of the workspace's frequencies. The due date is computed by the server. 404 `contact_not_found`, 400 `frequency_not_found`, 409 `cadence_exists` when the contact already has one of that kind. Workspace-only: send the `X-Dex-Workspace` header (400 `workspace_context_required` without it). **Requires an `Idempotency-Key` header**. Returns `{ data: { cadence: {...} } }` with status 201.

## Headers

- `Idempotency-Key` string, required

## Request body

- object
  - `contact_id` string, uuid, required
  - `kind` 'team' | 'my', required
  - `frequency_id` string, uuid, required

## Response `201`

Created

- object
  - `data` object, required
    - `cadence` object, required
      - `id` string, uuid, required
      - `kind` 'team' | 'my', required
      - `contact_id` string, uuid, required
      - `frequency_id` string, uuid, required
      - `days` integer, required
      - `next_due_at` union, required
        - string, date-time
        - unknown
      - `snoozed_until` union, required
        - string, date-time
        - unknown
      - `created_at` union, required
        - string, date-time
        - unknown
      - `updated_at` union, required
        - string, date-time
        - unknown
      - `contact` object, required
        - `id` string, uuid, required
        - `first_name` string, nullable, required
        - `last_name` string, nullable, required
        - `image_url` string, nullable, required
        - `job_title` string, nullable

## Other responses

- `400`: Request body failed validation.
- `401`: Missing or invalid API key.
- `403`: Valid key, insufficient permission.
- `404`: Resource does not exist.
- `409`: Request conflicts with the current state of the resource.
- `429`: Rate limit exceeded.
- `500`: Unexpected server error.

## Changes

- **2026-10-20** `1d88d52d821d`: 1 info
  - added the optional property `data/cadence/contact/job_title` to the response with the `201` status
- **2026-10-13** `4ad34c189dc7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getdex/apis/dex-public-api/changes/v2/keep-in-touch/cadences/post.md)

---

[API](https://skmtc.dev/getdex/apis/dex-public-api.md) · [All operations](https://skmtc.dev/getdex/apis/dex-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getdex/apis/dex-public-api/revisions/657247ddcf7c?raw)
