---
ref: tool:customer-io/create-one-time-send
name: Create a one-time send
company: company:customer-io
workflows: []
access: [mcp, api]
tags: [capability:send-email, category:email, has:api, has:mcp]
docs: https://docs.customer.io/integrations/api/app/tag/newsletters/createNewsletter/
updated: 2026-09-27
---

# Create a one-time send

Creates a one-time send (a newsletter) for a filter over segments and attributes or a CSV of recipients, as a draft, scheduled, or sent right away.

Set the audience with `recipients` or `recipient_file_url`, never both. Set
`send_now` to `true` to send at once, or `scheduled_at` to a future Unix
timestamp; with neither it stays a draft. The name and audience can't change
after creation. If the workspace has a subscription center,
`subscription_topic_id` is required. On the MCP server, find the endpoint with
`cio_schema` and call it with `cio_write_api`.

## Set up

Use the first option your agent supports.

### MCP (official, remote)

Add this server to your agent's MCP settings, then sign in when asked.

```json
{ "mcpServers": { "customer-io": { "url": "https://mcp.customer.io/mcp" } } }
```

Call the MCP tool `cio_write_api`.

Server URL: https://mcp.customer.io/mcp

### API (official)

- Base URL: https://api.customer.io
- Endpoint: `POST /v1/newsletters`
- Auth: send the header `Authorization: Bearer $CUSTOMERIO_API_KEY`
- Get a key: https://fly.customer.io/settings/api_credentials?keyType=app
- Docs: https://docs.customer.io/integrations/api/app/

Before doing anything else, make one read-only call to confirm access.

## Rules

- Ask the user before anything that sends messages, costs money, or changes data.
- Never print API keys.
