---
title: "Trigger a manual sending preset with a CSV of recipients"
method: POST
path: "/api/v1.0/presets/{id}/send"
tags: ["Manual Sending Presets"]
---

# Trigger a manual sending preset with a CSV of recipients

`POST /api/v1.0/presets/{id}/send`

Dispatches a survey or campaign to the recipients listed in the uploaded CSV, using
the preset's saved sendings + reminders configuration.

**Authentication** — `api-key` header with a key that has the `send_manual` scope
and is bound to an organization membership.

**CSV format (Survey preset)** — required headers `email` and `phone`; optional
`patient_id`, `language`. Any other header must match an org-level metafield key.
At least one of `email` / `phone` must be filled per row.

**CSV format (Communication preset)** — single required header `phone`. No other
headers accepted.

**sending_methods** — comma-separated priority list of `email`, `sms` controlling
which contact column wins when both are filled. Defaults to `email,sms` for Survey
presets and `sms` for Communication presets.

**Validation** — every row is validated; if any row has issues the full list of
per-row errors is returned with HTTP 422 and no rows are dispatched.

## Path parameters

- `id` integer, required

## Response `200`

Recipients dispatched

- object
  - `sending_batch_id` integer, required
  - `batch_number` integer, required
  - `recipient_count` integer, required

## Other responses

- `401` — Unauthorized — missing or invalid api-key
- `403` — Forbidden — api-key is missing the send_manual scope
- `404` — Preset not found
- `422` — CSV contains invalid rows

---

[API](https://skmtc.dev/lime/apis/api-v1.md) · [All operations](https://skmtc.dev/lime/apis/api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lime/api-v1/revisions/0527672f15cb/schema)
