productivity
Sendy CLI for AI Agents
Use the Sendy CLI from KosmoKrator to call Sendy tools headlessly, return JSON, inspect schemas, and automate workflows from coding agents, scripts, and CI.Sendy CLI Setup
Sendy can be configured headlessly with `kosmokrator integrations:configure sendy`.
# Install KosmoKrator first if it is not available on PATH.
curl -fsSL https://raw.githubusercontent.com/OpenCompanyApp/kosmokrator/main/install.sh | bash
# Configure and verify this integration.
kosmokrator integrations:configure sendy --set api_key="$SENDY_API_KEY" --set hostname="$SENDY_HOSTNAME" --enable --read allow --write ask --json
kosmokrator integrations:doctor sendy --json
kosmokrator integrations:status --json Credentials
Authentication type: API key api_key. Configure credentials once, then reuse the same stored profile from scripts, coding CLIs, Lua, and MCP.
| Key | Env var | Type | Required | Label |
|---|---|---|---|---|
api_key | SENDY_API_KEY | Secret secret | yes | API Key |
hostname | SENDY_HOSTNAME | URL url | yes | Sendy Hostname |
Command Patterns
The generic command is stable across every integration. The provider shortcut is shorter for humans.
kosmo integrations:call sendy.sendy_subscribe '{"list":"example_list","email":"example_email","name":"example_name","country":"example_country","ipaddress":"example_ipaddress","referrer":"example_referrer","gdpr":"example_gdpr","silent":"example_silent"}' --json kosmo integrations:sendy sendy_subscribe '{"list":"example_list","email":"example_email","name":"example_name","country":"example_country","ipaddress":"example_ipaddress","referrer":"example_referrer","gdpr":"example_gdpr","silent":"example_silent"}' --json Discovery
These commands return structured output for coding agents that need to inspect capabilities before choosing a function.
kosmo integrations:docs sendy --json
kosmo integrations:docs sendy.sendy_subscribe --json
kosmo integrations:schema sendy.sendy_subscribe --json
kosmo integrations:search "Sendy" --json
kosmo integrations:list --json Automation Contexts
The same configured command surface works in these environments. The command does not change unless the host wrapper, credentials, or permissions change.
CLI Functions
Every function below can be called headlessly. Commands are highlighted, copyable, and scroll horizontally when payloads are long.
sendy.sendy_subscribe
Subscribe an email address to a Sendy mailing list. Optionally provide a name and custom fields.
write - Parameters
- list, email, name, country, ipaddress, referrer, gdpr, silent, custom_fields
kosmo integrations:call sendy.sendy_subscribe '{"list":"example_list","email":"example_email","name":"example_name","country":"example_country","ipaddress":"example_ipaddress","referrer":"example_referrer","gdpr":"example_gdpr","silent":"example_silent"}' --json kosmo integrations:sendy sendy_subscribe '{"list":"example_list","email":"example_email","name":"example_name","country":"example_country","ipaddress":"example_ipaddress","referrer":"example_referrer","gdpr":"example_gdpr","silent":"example_silent"}' --json sendy.sendy_unsubscribe
Unsubscribe an email address from a Sendy mailing list.
write - Parameters
- list, email
kosmo integrations:call sendy.sendy_unsubscribe '{"list":"example_list","email":"example_email"}' --json kosmo integrations:sendy sendy_unsubscribe '{"list":"example_list","email":"example_email"}' --json sendy.sendy_delete_subscriber
Delete a subscriber from a Sendy list by email address.
write - Parameters
- list_id, email
kosmo integrations:call sendy.sendy_delete_subscriber '{"list_id":"example_list_id","email":"example_email"}' --json kosmo integrations:sendy sendy_delete_subscriber '{"list_id":"example_list_id","email":"example_email"}' --json sendy.sendy_subscription_status
Get the current subscription status for an email address in a Sendy list.
read - Parameters
- list_id, email
kosmo integrations:call sendy.sendy_subscription_status '{"list_id":"example_list_id","email":"example_email"}' --json kosmo integrations:sendy sendy_subscription_status '{"list_id":"example_list_id","email":"example_email"}' --json sendy.sendy_list_subscribers
Get the active subscriber count for a Sendy mailing list.
read - Parameters
- list_id
kosmo integrations:call sendy.sendy_list_subscribers '{"list_id":"example_list_id"}' --json kosmo integrations:sendy sendy_list_subscribers '{"list_id":"example_list_id"}' --json sendy.sendy_get_lists
Get all lists for a Sendy brand, optionally including hidden lists.
read - Parameters
- brand_id, include_hidden
kosmo integrations:call sendy.sendy_get_lists '{"brand_id":"example_brand_id","include_hidden":true}' --json kosmo integrations:sendy sendy_get_lists '{"brand_id":"example_brand_id","include_hidden":true}' --json sendy.sendy_get_brands
Get all brands available in the Sendy installation.
read - Parameters
- none
kosmo integrations:call sendy.sendy_get_brands '{}' --json kosmo integrations:sendy sendy_get_brands '{}' --json sendy.sendy_create_campaign
Create a new email campaign in Sendy. You can create a draft or send immediately. Requires a list ID, subject, HTML content, and sender details.
write - Parameters
- from_name, from_email, reply_to, title, subject, html_text, list_ids, plain_text, segment_ids, exclude_list_ids, exclude_segments_ids, send_campaign, brand_id, query_string, track_opens, track_clicks, schedule_date_time, schedule_timezone
kosmo integrations:call sendy.sendy_create_campaign '{"from_name":"example_from_name","from_email":"example_from_email","reply_to":"example_reply_to","title":"example_title","subject":"example_subject","html_text":"example_html_text","list_ids":"example_list_ids","plain_text":"example_plain_text"}' --json kosmo integrations:sendy sendy_create_campaign '{"from_name":"example_from_name","from_email":"example_from_email","reply_to":"example_reply_to","title":"example_title","subject":"example_subject","html_text":"example_html_text","list_ids":"example_list_ids","plain_text":"example_plain_text"}' --json sendy.sendy_get_current_user
Get Sendy brands for the configured API key. This keeps the historical get_current_user tool slug for compatibility.
read - Parameters
- none
kosmo integrations:call sendy.sendy_get_current_user '{}' --json kosmo integrations:sendy sendy_get_current_user '{}' --json Function Schemas
Use these parameter tables when building CLI payloads without calling integrations:schema first.
sendy.sendy_subscribe 9 parameters
kosmo integrations:schema sendy.sendy_subscribe --json | Parameter | Type | Required | Description |
|---|---|---|---|
list | string | yes | The list ID to subscribe to. |
email | string | yes | The subscriber's email address. |
name | string | no | The subscriber's name (optional). |
country | string | no | Optional two-letter country code. |
ipaddress | string | no | Optional signup IP address. |
referrer | string | no | Optional signup referrer URL. |
gdpr | string | no | Set to "true" for GDPR-compliant signups. |
silent | string | no | Set to "true" to bypass double opt-in where appropriate. |
custom_fields | object | no | Additional custom field tag values, keyed by the Sendy personalization tag name. |
sendy.sendy_unsubscribe 2 parameters
kosmo integrations:schema sendy.sendy_unsubscribe --json | Parameter | Type | Required | Description |
|---|---|---|---|
list | string | yes | The list ID to unsubscribe from. |
email | string | yes | The subscriber's email address. |
sendy.sendy_delete_subscriber 2 parameters
kosmo integrations:schema sendy.sendy_delete_subscriber --json | Parameter | Type | Required | Description |
|---|---|---|---|
list_id | string | yes | Encrypted list ID. |
email | string | yes | Subscriber email address to delete. |
sendy.sendy_subscription_status 2 parameters
kosmo integrations:schema sendy.sendy_subscription_status --json | Parameter | Type | Required | Description |
|---|---|---|---|
list_id | string | yes | Encrypted list ID. |
email | string | yes | Subscriber email address to check. |
sendy.sendy_list_subscribers 1 parameters
kosmo integrations:schema sendy.sendy_list_subscribers --json | Parameter | Type | Required | Description |
|---|---|---|---|
list_id | string | yes | The list ID to query subscriber count for. |
sendy.sendy_get_lists 2 parameters
kosmo integrations:schema sendy.sendy_get_lists --json | Parameter | Type | Required | Description |
|---|---|---|---|
brand_id | string | yes | Sendy brand ID. |
include_hidden | boolean | no | Include hidden lists when true. Defaults to false. |
sendy.sendy_get_brands 0 parameters
kosmo integrations:schema sendy.sendy_get_brands --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
sendy.sendy_create_campaign 18 parameters
kosmo integrations:schema sendy.sendy_create_campaign --json | Parameter | Type | Required | Description |
|---|---|---|---|
from_name | string | yes | Sender name (e.g., "Acme Corp"). |
from_email | string | yes | Sender email address (e.g., "hello@acme.com"). |
reply_to | string | yes | Reply-to email address. |
title | string | yes | Internal campaign title (for your reference). |
subject | string | yes | Email subject line. |
html_text | string | yes | HTML content of the email. |
list_ids | string | no | Comma-separated list IDs. Required when sending without segment_ids. |
plain_text | string | no | Plain text version of the email. Auto-generated if omitted. |
segment_ids | string | no | Comma-separated segment IDs to send to. Required when sending without list_ids. |
exclude_list_ids | string | no | Comma-separated list IDs to exclude. |
exclude_segments_ids | string | no | Comma-separated segment IDs to exclude. |
send_campaign | integer | no | Set to 1 to send immediately, 0 or omit to save as draft. |
brand_id | string | no | Brand ID (required for multi-brand setups). |
query_string | string | no | UTM query string appended to links (e.g., "utm_source=sendy&utm_medium=email"). |
track_opens | integer | no | 0 disables, 1 enables, 2 enables anonymous open tracking. |
track_clicks | integer | no | 0 disables, 1 enables, 2 enables anonymous click tracking. |
schedule_date_time | string | no | Schedule time such as "June 15, 2026 6:05pm". Minutes must be increments of 5. |
schedule_timezone | string | no | PHP timezone name for scheduled campaigns, such as America/New_York. |
sendy.sendy_get_current_user 0 parameters
kosmo integrations:schema sendy.sendy_get_current_user --json | Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
Permissions
Headless calls still follow the integration read/write permission policy. Configure read/write defaults with
integrations:configure. Add --force only for trusted automation that should bypass that policy.