> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to ClickSend

The ClickSend connector lets your AI agent act in each user's ClickSend account. Each user connects their own ClickSend API key once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 84 tools.

**Authentication:** API Username + API Key
**Categories:** Communication, Marketing
**Tools:** 84: 38 read, 40 write, 6 destructive
**Users sign in with:** API key
**Built by:** Scalekit connector
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=CLICKSEND)

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the ClickSend connection

   In **AgentKit > Connections**, create a ClickSend connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'clicksend_account_get',
  toolInput: {},
  connector: 'clicksend',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="clicksend_account_get",
    tool_input={},
    connection_name="clicksend",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `clicksend_account_get`

Get Account · Read-only

Get the authenticated ClickSend account's details.
Returns user_id, username, name, email, country, currency, balance and account settings.
Use clicksend_account_get to check credit balance or confirm the connection works. Use clicksend_account_usage_get for monthly usage.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `clicksend_account_usage_get`

Get Account Usage · Read-only

Get the account's message usage for one month, broken down by subaccount.
Returns counts and costs per channel for that month.
Use clicksend_account_usage_get for monthly reporting. Use clicksend_sms_statistics_get for recent SMS totals.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `month` (`string`, required): Month number to report on, 1-12. Example: "4".
- `year` (`string`, required): Four-digit year to report on. Example: "2026".

Example input: `{"month":"4","year":"2026"}`

### `clicksend_contact_get`

Get Contact · Read-only

Get one contact in a contact list.
Returns the contact's phone_number, email, fax_number, names, address and custom fields.
Use clicksend_contact_get when you have both IDs. Use clicksend_contacts_lists_search to find a contact by name or number.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`integer`, required): ID of the contact. Get it from the contact_id field of clicksend_list_contacts_list or clicksend_contacts_lists_search. Example: 1503921.
- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.

Example input: `{"contact_id":1503921,"list_id":428}`

### `clicksend_contacts_lists_search`

Search Contacts and Lists · Read-only

Search contacts and contact lists by keyword, such as a name, phone number or list name.
Returns matching contacts and lists with their IDs.
Use clicksend_contacts_lists_search to find a contact or list when you don't know its ID. Use clicksend_list_contacts_list to page through one list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `q` (`string`, required): Keyword to search for in contact names, numbers, emails and list names. Example: "Smith".
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{"q":"Smith"}`

### `clicksend_countries_list`

List Countries · Read-only

List the countries ClickSend supports, with their codes.
Returns each country's name and two-letter code.
Use clicksend_countries_list to look up country codes for country fields.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `clicksend_email_address_get`

Get Allowed Email Address · Read-only

Get one allowed sender email address by ID.
Returns email_address_id, email_address and verified status.
Use clicksend_email_address_get to check whether an address is verified.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `email_address_id` (`integer`, required): ID of the allowed email address, from clicksend_email_addresses_list. Example: 1.

Example input: `{"email_address_id":1}`

### `clicksend_email_addresses_list`

List Allowed Email Addresses · Read-only

List the sender email addresses allowed on the account and whether each is verified.
Returns a paginated list with email_address_id, email_address and verified status.
Use clicksend_email_addresses_list to get the from_email_address_id for clicksend_email_send.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_email_history_list`

List Email History · Read-only

List transactional emails previously sent from the account, optionally within a date range.
Returns a paginated list with message_id, recipients, subject, status and price.
Use clicksend_email_history_list to review sent emails.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `date_from` (`integer`, optional): Only return emails on or after this time, as a Unix timestamp in seconds. Example: 1735689600 (2025-01-01 00:00 UTC).
- `date_to` (`integer`, optional): Only return emails on or before this time, as a Unix timestamp in seconds. Example: 1738367999 (2025-01-31 23:59 UTC).
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_fax_history_list`

List Fax History · Read-only

List faxes previously sent from the account, optionally filtered by date range or query.
Returns a paginated list with message_id, to, status, pages and price.
Use clicksend_fax_history_list to review sent faxes. Use clicksend_fax_receipt_get for one fax's delivery result.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `date_from` (`integer`, optional): Only return faxes on or after this time, as a Unix timestamp in seconds. Example: 1735689600 (2025-01-01 00:00 UTC).
- `date_to` (`integer`, optional): Only return faxes on or before this time, as a Unix timestamp in seconds. Example: 1738367999 (2025-01-31 23:59 UTC).
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `order` (`string`, optional): Sort as comma-separated field:direction pairs. Example: "date_added:desc".
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.
- `q` (`string`, optional): Filter as comma-separated field:value pairs. Example: "status:Sent,status_code:201".

Example input: `{}`

### `clicksend_fax_receipt_get`

Get Fax Delivery Receipt · Read-only

Get the delivery receipt for one sent fax.
Returns status, status_code, status_text and timestamps.
Use clicksend_fax_receipt_get for one fax. Use clicksend_fax_receipts_list to poll all receipts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `message_id` (`string`, required): message_id of the sent fax, as returned by clicksend_fax_send or clicksend_fax_history_list. Example: "BF7AD270-0DE2-418B-B606-71D527D9C1AE".

Example input: `{"message_id":"BF7AD270-0DE2-418B-B606-71D527D9C1AE"}`

### `clicksend_fax_receipts_list`

List Fax Delivery Receipts · Read-only

List fax delivery receipts collected by a Poll delivery-report rule.
Returns a paginated list with message_id, status and status_code.
Use clicksend_fax_receipts_list to poll fax outcomes. Use clicksend_fax_receipt_get for one fax.
Requires a fax delivery report rule with the Poll action in the ClickSend dashboard.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_letter_history_list`

List Letter History · Read-only

List letters previously sent or scheduled from the account.
Returns a paginated list with message_id, recipient address, status and price.
Use clicksend_letter_history_list to review sent letters.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_list_contacts_list`

List Contacts in a List · Read-only

List the contacts in a contact list, optionally only those updated after a given time.
Returns a paginated list of contacts with contact_id, phone_number, email, names, address and custom fields.
Use clicksend_list_contacts_list to browse one list. Use clicksend_contacts_lists_search to find a contact across lists by keyword.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.
- `updated_after` (`integer`, optional): Only return contacts updated after this Unix timestamp (seconds). Example: 1735689600.

Example input: `{"list_id":428}`

### `clicksend_list_get`

Get Contact List · Read-only

Get one contact list by ID.
Returns list_id, list_name and contact count.
Use clicksend_list_get for list details. Use clicksend_list_contacts_list for the contacts in it.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.

Example input: `{"list_id":428}`

### `clicksend_lists_list`

List Contact Lists · Read-only

List the account's contact lists.
Returns a paginated list with list_id, list_name and contact count.
Use clicksend_lists_list to find a list_id. Use clicksend_contacts_lists_search to search lists and contacts by keyword.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_mms_history_list`

List MMS History · Read-only

List MMS messages previously sent from the account, optionally within a date range.
Returns a paginated list with message_id, to, from, subject, status and price.
Use clicksend_mms_history_list to review sent MMS. Use clicksend_sms_history_list for SMS.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `date_from` (`integer`, optional): Only return MMS on or after this time, as a Unix timestamp in seconds. Example: 1735689600 (2025-01-01 00:00 UTC).
- `date_to` (`integer`, optional): Only return MMS on or before this time, as a Unix timestamp in seconds. Example: 1738367999 (2025-01-31 23:59 UTC).
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_numbers_available_search`

Search Available Numbers · Read-only

Search dedicated numbers available to buy in a country, optionally matching a digit pattern.
Returns a paginated list of available numbers with their type and price.
Use clicksend_numbers_available_search to find a number to buy. Use clicksend_numbers_list for numbers you already own.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `country` (`string`, required): Two-letter ISO country code to search in. Example: "AU".
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.
- `search` (`string`, optional): Digits the number should contain. Example: "555".
- `search_type` (`integer`, optional): Where the search digits must appear: 0 = starts with, 1 = anywhere, 2 = ends with. Example: 1. One of: `0`, `1`, `2`.

Example input: `{"country":"AU"}`

### `clicksend_numbers_list`

List Dedicated Numbers · Read-only

List the dedicated numbers the account owns, optionally filtered by type or country.
Returns a paginated list with dedicated_number, country, type and capabilities.
Use clicksend_numbers_list to pick a sender number. Use clicksend_numbers_available_search to find numbers available to buy.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `exclude_10dlc_campaign` (`boolean`, optional): Set to true to leave out numbers linked to a 10DLC campaign. Example: true.
- `excluding_number_type` (`string`, optional): Leave out numbers of this type: shortcode, tollfree or 10DLC. Example: "10DLC". One of: `shortcode`, `tollfree`, `10DLC`.
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.
- `q` (`string`, optional): Filter as comma-separated key:value pairs. Keys: type (message type such as sms or mms), number_type (such as longcode, shortcode or tollfree) and country. Example: "type:sms,number_type:longcode,country:AU".

Example input: `{}`

### `clicksend_postcard_history_list`

List Postcard History · Read-only

List postcards previously sent or scheduled from the account.
Returns a paginated list with message_id, recipient address, status and price.
Use clicksend_postcard_history_list to review sent postcards.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_return_address_get`

Get Return Address · Read-only

Get one saved return address by ID.
Returns the address fields.
Use clicksend_return_address_get when you have the ID. Use clicksend_return_addresses_list to browse.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `return_address_id` (`integer`, required): ID of the return address, from clicksend_return_addresses_list. Example: 1.

Example input: `{"return_address_id":1}`

### `clicksend_return_addresses_list`

List Return Addresses · Read-only

List the return addresses saved for letters and postcards.
Returns a paginated list with return_address_id and address fields.
Use clicksend_return_addresses_list to get a return_address_id for clicksend_letter_send or clicksend_postcard_send.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_sms_campaign_get`

Get SMS Campaign · Read-only

Get one SMS campaign by ID.
Returns the campaign's name, list_id, from, body, status, schedule and cost.
Use clicksend_sms_campaign_get to check a campaign's status.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `sms_campaign_id` (`integer`, required): ID of the SMS campaign, from clicksend_sms_campaigns_list or clicksend_sms_campaign_send. Example: 1001.

Example input: `{"sms_campaign_id":1001}`

### `clicksend_sms_campaigns_list`

List SMS Campaigns · Read-only

List SMS campaigns, optionally filtered, sorted or limited to a date range.
Returns a paginated list with sms_campaign_id, name, list_id, status, schedule and cost.
Use clicksend_sms_campaigns_list to find a campaign. Use clicksend_sms_campaign_get when you have its ID.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `date_from` (`integer`, optional): Only return campaigns on or after this time, as a Unix timestamp in seconds. Example: 1735689600 (2025-01-01 00:00 UTC).
- `date_to` (`integer`, optional): Only return campaigns on or before this time, as a Unix timestamp in seconds. Example: 1738367999 (2025-01-31 23:59 UTC).
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `order_by` (`string`, optional): Sort as field:direction, where field is name, status, schedule, from or date_added. ClickSend defaults to date_added:asc. Example: "date_added:desc".
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.
- `q` (`string`, optional): Filter in the form field_name:value. Fields include sms_campaign_id, name, list_id, from, body, schedule, status and date_added. Example: "status:Scheduled".

Example input: `{}`

### `clicksend_sms_history_list`

List SMS History · Read-only

List SMS messages previously sent from the account, optionally filtered by date range, status, recipient or sender.
Returns a paginated list with each message's message_id, to, from, body, status, cost and send date.
Use clicksend_sms_history_list to review sent messages. Use clicksend_sms_receipts_list for delivery receipts and clicksend_sms_inbound_list for replies.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `date_from` (`integer`, optional): Only return messages on or after this time, as a Unix timestamp in seconds. Example: 1735689600 (2025-01-01 00:00 UTC).
- `date_to` (`integer`, optional): Only return messages on or before this time, as a Unix timestamp in seconds. Example: 1738367999 (2025-01-31 23:59 UTC).
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `order_by` (`string`, optional): Sort as field:direction, where field is date, username, from, to, status or body and direction is asc or desc. ClickSend defaults to date:asc. Example: "date:desc".
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.
- `q` (`string`, optional): Filter in the form field_name:value. Fields: status (Queued, Completed, Scheduled, WaitApproval, Failed, Cancelled, CancelledAfterReview, Received, Sent), to, from, subaccount_id, message_id. Example: "status:Scheduled".

Example input: `{}`

### `clicksend_sms_inbound_get`

Get Inbound SMS Reply · Read-only

Get the first inbound reply to a message you sent, including replies already marked as read.
Returns the inbound SMS with from, body, timestamp and its own message_id.
Use clicksend_sms_inbound_get when you know which outbound message was replied to. Use clicksend_sms_inbound_list to browse all unread inbound messages.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `original_message_id` (`string`, required): message_id of the outbound SMS you sent, as returned by clicksend_sms_send. ClickSend returns the first reply to that message. Example: "BF7AD270-0DE2-418B-B606-71D527D9C1AE".

Example input: `{"original_message_id":"BF7AD270-0DE2-418B-B606-71D527D9C1AE"}`

### `clicksend_sms_inbound_list`

List Inbound SMS · Read-only

List unread inbound SMS (replies and messages sent to your numbers) collected by a Poll inbound rule.
Returns a paginated list with message_id, from, to, body, original_message_id and timestamp.
Use clicksend_sms_inbound_list to read new replies. Use clicksend_sms_inbound_get for the reply to one sent message, and clicksend_sms_inbound_mark_read to clear it.
Requires an inbound SMS rule with the Poll action in the ClickSend dashboard.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_sms_receipt_get`

Get SMS Delivery Receipt · Read-only

Get the delivery receipt for one sent SMS, including receipts already marked as read.
Returns the receipt with status, status_code, status_text and delivery timestamp.
Use clicksend_sms_receipt_get for one message. Use clicksend_sms_receipts_list to poll all unread receipts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `message_id` (`string`, required): message_id of the sent SMS, as returned by clicksend_sms_send or clicksend_sms_history_list. Example: "BF7AD270-0DE2-418B-B606-71D527D9C1AE".

Example input: `{"message_id":"BF7AD270-0DE2-418B-B606-71D527D9C1AE"}`

### `clicksend_sms_receipts_list`

List SMS Delivery Receipts · Read-only

List unread SMS delivery receipts collected by a Poll delivery-report rule.
Returns a paginated list of receipts with message_id, status, status_code and timestamps.
Use clicksend_sms_receipts_list to poll delivery status. Use clicksend_sms_receipt_get for one message, including receipts already marked as read.
Requires a delivery report rule with the Poll action in the ClickSend dashboard.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_sms_statistics_get`

Get SMS Statistics · Read-only

Get SMS statistics for the account.
Returns totals of sent, delivered, failed and inbound SMS and their cost over recent periods.
Use clicksend_sms_statistics_get for an SMS activity summary. Use clicksend_voice_statistics_get for voice calls.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `clicksend_sms_template_get`

Get SMS Template · Read-only

Get one SMS template by ID.
Returns template_id, template_name and body.
Use clicksend_sms_template_get when you have the ID. Use clicksend_sms_templates_list to search by name.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `template_id` (`string`, required): ID of the SMS template, from clicksend_sms_templates_list. Example: "1234".

Example input: `{"template_id":"1234"}`

### `clicksend_sms_templates_list`

List SMS Templates · Read-only

List saved SMS templates, optionally filtered and sorted.
Returns a paginated list with template_id, template_name and body.
Use clicksend_sms_templates_list to find a template. Use clicksend_sms_template_get when you already have the template_id.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `order_by` (`string`, optional): Sort as field:direction, where field is template_id, template_name or body. ClickSend defaults to template_id:asc. Example: "template_name:asc".
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.
- `q` (`string`, optional): Filter in the form field_name:value, where field is template_id, template_name or body. Example: "template_name:Reminder".

Example input: `{}`

### `clicksend_timezones_list`

List Timezones · Read-only

List the timezones ClickSend supports.
Returns a paginated list of timezone names.
Use clicksend_timezones_list to pick a valid timezone value.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_transaction_get`

Get Transaction · Read-only

Get one credit purchase transaction by ID.
Returns the transaction's amount, currency, date and invoice details.
Use clicksend_transaction_get when you have the ID from clicksend_transactions_list.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `transaction_id` (`string`, required): ID of the transaction, from clicksend_transactions_list. Example: "12345".

Example input: `{"transaction_id":"12345"}`

### `clicksend_transactions_list`

List Transactions · Read-only

List the account's credit purchase transactions.
Returns a paginated list with transaction_id, amount, currency and date.
Use clicksend_transactions_list for billing history. Use clicksend_transaction_get for one transaction.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_voice_history_list`

List Voice Call History · Read-only

List text-to-speech voice calls previously sent from the account, optionally within a date range.
Returns a paginated list with message_id, to, body, status and price.
Use clicksend_voice_history_list to review sent calls. Use clicksend_voice_receipts_list for delivery results.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `date_from` (`integer`, optional): Only return calls on or after this time, as a Unix timestamp in seconds. Example: 1735689600 (2025-01-01 00:00 UTC).
- `date_to` (`integer`, optional): Only return calls on or before this time, as a Unix timestamp in seconds. Example: 1738367999 (2025-01-31 23:59 UTC).
- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_voice_languages_list`

List Voice Languages · Read-only

List the languages and voices available for text-to-speech calls.
Returns each language code with its country and available voice genders.
Use clicksend_voice_languages_list to pick lang and voice values for clicksend_voice_send.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `clicksend_voice_receipts_list`

List Voice Delivery Receipts · Read-only

List voice call delivery receipts collected by a Poll delivery-report rule.
Returns a paginated list with message_id, status, status_code and any digits the recipient pressed.
Use clicksend_voice_receipts_list to check call outcomes.
Requires a voice delivery report rule with the Poll action in the ClickSend dashboard.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `limit` (`integer`, optional): Number of records per page. ClickSend defaults to 15 and allows up to 100. Example: 50.
- `page` (`integer`, optional): Page number of results to return, starting at 1. ClickSend defaults to 1. Example: 2.

Example input: `{}`

### `clicksend_voice_statistics_get`

Get Voice Statistics · Read-only

Get text-to-speech voice call statistics for the account.
Returns totals of calls sent and delivered and their cost over recent periods.
Use clicksend_voice_statistics_get for a voice activity summary. Use clicksend_sms_statistics_get for SMS.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `clicksend_contact_copy`

Copy Contact to List · Write

Copy a contact into another contact list, keeping it in the original list.
Returns the new copy of the contact.
Use clicksend_contact_copy to have the contact in both lists. Use clicksend_contact_transfer to move it instead.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `contact_id` (`integer`, required): ID of the contact. Get it from the contact_id field of clicksend_list_contacts_list or clicksend_contacts_lists_search. Example: 1503921.
- `from_list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. This is the list that currently holds the contact. Example: 428.
- `to_list_id` (`integer`, required): ID of the contact list to copy the contact into, from clicksend_lists_list. Example: 429.

Example input: `{"contact_id":1503921,"from_list_id":428,"to_list_id":429}`

### `clicksend_contact_create`

Create Contact · Write

Add a contact to a contact list. Provide at least a phone number, email or fax number.
Returns the new contact with its contact_id.
Use clicksend_contact_create for one contact. Use clicksend_list_contacts_import to load many contacts from a CSV file.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.
- `address_city` (`string`, optional): Contact's city. Example: "Perth".
- `address_country` (`string`, optional): Contact's two-letter ISO country code. Example: "AU".
- `address_line_1` (`string`, optional): First line of the contact's street address. Example: "1 Test Street".
- `address_line_2` (`string`, optional): Second line of the contact's street address. Example: "Unit 4".
- `address_postal_code` (`string`, optional): Contact's postal or ZIP code. Example: "6000".
- `address_state` (`string`, optional): Contact's state or region. Example: "WA".
- `custom_1` (`string`, optional): Custom field 1, usable as a merge field in messages. Example: "VIP".
- `custom_2` (`string`, optional): Custom field 2, usable as a merge field in messages. Example: "Gold tier".
- `custom_3` (`string`, optional): Custom field 3, usable as a merge field in messages. Example: "Renewal 2026-03".
- `custom_4` (`string`, optional): Custom field 4, usable as a merge field in messages. Example: "Account 88231".
- `email` (`string`, optional): Contact's email address. At least one of phone_number, email or fax_number is needed. Example: "jane@example.com".
- `fax_number` (`string`, optional): Contact's fax number in E.164 format. Example: "+61261111111".
- `first_name` (`string`, optional): Contact's first name. Example: "Jane".
- `last_name` (`string`, optional): Contact's last name. Example: "Doe".
- `organization_name` (`string`, optional): Contact's organization or company name. Example: "Acme Pty Ltd".
- `phone_number` (`string`, optional): Contact's phone number in E.164 format. At least one of phone_number, email or fax_number is needed. Example: "+61411111111".

Example input: `{"list_id":428}`

### `clicksend_contact_transfer`

Move Contact to List · Write

Move a contact from one contact list to another.
Returns the moved contact.
Use clicksend_contact_transfer to move a contact. Use clicksend_contact_copy to keep it in both lists.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`integer`, required): ID of the contact. Get it from the contact_id field of clicksend_list_contacts_list or clicksend_contacts_lists_search. Example: 1503921.
- `from_list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. This is the list that currently holds the contact. Example: 428.
- `to_list_id` (`integer`, required): ID of the contact list to move the contact into, from clicksend_lists_list. Example: 429.

Example input: `{"contact_id":1503921,"from_list_id":428,"to_list_id":429}`

### `clicksend_contact_update`

Update Contact · Write

Update a contact's details in a contact list. Only the fields you provide are sent.
Returns the updated contact.
Use clicksend_contact_update to edit a contact. Use clicksend_contact_transfer to move it to another list.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`integer`, required): ID of the contact. Get it from the contact_id field of clicksend_list_contacts_list or clicksend_contacts_lists_search. Example: 1503921.
- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.
- `address_city` (`string`, optional): Contact's city. Example: "Perth".
- `address_country` (`string`, optional): Contact's two-letter ISO country code. Example: "AU".
- `address_line_1` (`string`, optional): First line of the contact's street address. Example: "1 Test Street".
- `address_line_2` (`string`, optional): Second line of the contact's street address. Example: "Unit 4".
- `address_postal_code` (`string`, optional): Contact's postal or ZIP code. Example: "6000".
- `address_state` (`string`, optional): Contact's state or region. Example: "WA".
- `custom_1` (`string`, optional): Custom field 1, usable as a merge field in messages. Example: "VIP".
- `custom_2` (`string`, optional): Custom field 2, usable as a merge field in messages. Example: "Gold tier".
- `custom_3` (`string`, optional): Custom field 3, usable as a merge field in messages. Example: "Renewal 2026-03".
- `custom_4` (`string`, optional): Custom field 4, usable as a merge field in messages. Example: "Account 88231".
- `email` (`string`, optional): Contact's email address. At least one of phone_number, email or fax_number is needed. Example: "jane@example.com".
- `fax_number` (`string`, optional): Contact's fax number in E.164 format. Example: "+61261111111".
- `first_name` (`string`, optional): Contact's first name. Example: "Jane".
- `last_name` (`string`, optional): Contact's last name. Example: "Doe".
- `organization_name` (`string`, optional): Contact's organization or company name. Example: "Acme Pty Ltd".
- `phone_number` (`string`, optional): Contact's phone number in E.164 format. At least one of phone_number, email or fax_number is needed. Example: "+61411111111".

Example input: `{"contact_id":1503921,"list_id":428}`

### `clicksend_email_address_create`

Add Allowed Email Address · Write

Add a sender email address to the account. It must be verified before it can send.
Returns the new address with its email_address_id and verified status.
Use clicksend_email_address_create, then clicksend_email_address_verification_send and clicksend_email_address_verify, to set up a new sender.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `email_address` (`string`, required): Email address to allow as a sender. Example: "support@example.com".

Example input: `{"email_address":"support@example.com"}`

### `clicksend_email_address_verification_send`

Send Email Address Verification · Write

Email a verification token to an allowed sender address.
Returns a confirmation that the token was sent.
Use clicksend_email_address_verification_send after clicksend_email_address_create; then pass the token from that email to clicksend_email_address_verify.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `email_address_id` (`integer`, required): ID of the allowed email address to verify, from clicksend_email_address_create or clicksend_email_addresses_list. Example: 1.

Example input: `{"email_address_id":1}`

### `clicksend_email_address_verify`

Verify Allowed Email Address · Write

Verify an allowed sender address with the token emailed to it.
Returns the address with its updated verified status.
Use clicksend_email_address_verify after clicksend_email_address_verification_send.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `activation_token` (`string`, required): Verification token from the email ClickSend sent to the address. Example: "a1b2c3d4e5".
- `email_address_id` (`integer`, required): ID of the allowed email address, from clicksend_email_addresses_list. Example: 1.

Example input: `{"activation_token":"a1b2c3d4e5","email_address_id":1}`

### `clicksend_email_price_calculate`

Calculate Email Price · Write

Calculate what a transactional email would cost without sending it.
Returns the price and recipient count.
Use clicksend_email_price_calculate before clicksend_email_send to check cost.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Body of the email. HTML is allowed. Example: "Thanks for your order.
".
- `from_email_address_id` (`integer`, required): ID of the verified sender email address to send from. Get it from the email_address_id field of clicksend_email_addresses_list. Example: 1.
- `to` (`array`, required): Recipients of the email. Each item is an object with an email and an optional name. Example: [{"email": "jane@example.com", "name": "Jane Doe"}].
- `bcc` (`array`, optional): BCC recipients. Each item is an object with an email and an optional name. Example: [{"email": "audit@example.com"}].
- `cc` (`array`, optional): CC recipients. Each item is an object with an email and an optional name. Example: [{"email": "manager@example.com"}].
- `from_name` (`string`, optional): Display name shown as the sender. Example: "Acme Support".
- `subject` (`string`, optional): Subject line of the email. Example: "Your invoice".

Example input: `{"body":"<p>Thanks for your order.</p>","from_email_address_id":1,"to":[{"email":"jane@example.com","name":"Jane Doe"}]}`

### `clicksend_email_send`

Send Email · Write

Send a transactional email from a verified sender address, with optional CC, BCC and attachments.
Returns the queued email with its message_id, status and price.
Use clicksend_email_send for one-off emails. Use clicksend_email_price_calculate to quote the cost first.
The sender must be a verified address; get its ID from clicksend_email_addresses_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Body of the email. HTML is allowed. Example: "Thanks for your order.
".
- `from_email_address_id` (`integer`, required): ID of the verified sender email address to send from. Get it from the email_address_id field of clicksend_email_addresses_list. Example: 1.
- `to` (`array`, required): Recipients of the email. Each item is an object with an email and an optional name. Example: [{"email": "jane@example.com", "name": "Jane Doe"}].
- `attachments` (`array`, optional): Files to attach. Each item needs the base64-encoded file content, its MIME type, a filename, a disposition (attachment, or inline for content shown in the body) and a content_id. Example: [{"content": "ZmlsZSBjb250ZW50cw==", "type": "text/plain", "filename": "notes.txt", "disposition": "attachment", "content_id": "notes"}].
- `bcc` (`array`, optional): BCC recipients. Each item is an object with an email and an optional name. Example: [{"email": "audit@example.com"}].
- `cc` (`array`, optional): CC recipients. Each item is an object with an email and an optional name. Example: [{"email": "manager@example.com"}].
- `from_name` (`string`, optional): Display name shown as the sender. Example: "Acme Support".
- `schedule` (`integer`, optional): When to send the email, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `subject` (`string`, optional): Subject line of the email. Example: "Your invoice".

Example input: `{"body":"<p>Thanks for your order.</p>","from_email_address_id":1,"to":[{"email":"jane@example.com","name":"Jane Doe"}]}`

### `clicksend_fax_price_calculate`

Calculate Fax Price · Write

Calculate what a fax would cost without sending it.
Returns the total price and page count.
Use clicksend_fax_price_calculate before clicksend_fax_send.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `file_url` (`string`, required): Public URL of the PDF to fax. Convert docx, doc or rtf first with clicksend_upload_create (convert fax). Example: "https://example.com/document.pdf".
- `country` (`string`, optional): Two-letter ISO country code of the recipient. ClickSend uses it to format a phone number that is not in international E.164 format. Example: "US".
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `from` (`string`, optional): Your sender fax number (a dedicated fax number) in E.164 format. Example: "+61261111122".
- `from_email` (`string`, optional): Email address to send fax replies to. Example: "office@example.com".
- `list_id` (`integer`, optional): ID of a contact list to fax every contact with a fax number, instead of a single number. Get it from clicksend_lists_list. Example: 428.
- `schedule` (`integer`, optional): When to send the fax, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `to` (`string`, optional): Recipient fax number in E.164 format. Required unless list_id is set. Example: "+61261111111".

Example input: `{"file_url":"https://example.com/document.pdf"}`

### `clicksend_fax_send`

Send Fax · Write

Send a PDF document as a fax to one fax number or a contact list.
Returns the queued fax with its message_id, status and price.
Use clicksend_fax_send to fax a document. Use clicksend_fax_price_calculate to quote the cost first.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `file_url` (`string`, required): Public URL of the PDF to fax. Convert docx, doc or rtf first with clicksend_upload_create (convert fax). Example: "https://example.com/document.pdf".
- `country` (`string`, optional): Two-letter ISO country code of the recipient. ClickSend uses it to format a phone number that is not in international E.164 format. Example: "US".
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `from` (`string`, optional): Your sender fax number (a dedicated fax number) in E.164 format. Example: "+61261111122".
- `from_email` (`string`, optional): Email address to send fax replies to. Example: "office@example.com".
- `list_id` (`integer`, optional): ID of a contact list to fax every contact with a fax number, instead of a single number. Get it from clicksend_lists_list. Example: 428.
- `schedule` (`integer`, optional): When to send the fax, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `to` (`string`, optional): Recipient fax number in E.164 format. Required unless list_id is set. Example: "+61261111111".

Example input: `{"file_url":"https://example.com/document.pdf"}`

### `clicksend_letter_cancel`

Cancel Scheduled Letter · Write

Cancel a scheduled letter before it is printed.
Returns the cancelled letter.
Use clicksend_letter_cancel for a letter scheduled with clicksend_letter_send.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `message_id` (`string`, required): message_id of the scheduled letter, as returned by clicksend_letter_send or clicksend_letter_history_list. Example: "BF7AD270-0DE2-418B-B606-71D527D9C1AE".

Example input: `{"message_id":"BF7AD270-0DE2-418B-B606-71D527D9C1AE"}`

### `clicksend_letter_price_calculate`

Calculate Letter Price · Write

Calculate what posting a letter would cost without sending it.
Returns the total price.
Use clicksend_letter_price_calculate before clicksend_letter_send.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `address_city` (`string`, required): City of the recipient address. Example: "Perth".
- `address_country` (`string`, required): Two-letter ISO country code of the recipient address. Example: "AU".
- `address_line_1` (`string`, required): First line of the recipient street address. Example: "1 Test Street".
- `address_name` (`string`, required): Name on the recipient address, such as a person or company. Example: "John Smith".
- `address_postal_code` (`string`, required): Postal or ZIP code of the recipient address. Example: "6000".
- `file_url` (`string`, required): Public URL of the PDF letter to print and post. Convert docx or doc first with clicksend_upload_create (convert post). Example: "https://example.com/letter.pdf".
- `return_address_id` (`integer`, required): ID of the return address printed on the item, from clicksend_return_addresses_list or clicksend_return_address_create. Example: 1.
- `address_line_2` (`string`, optional): Second line of the recipient street address, such as a unit or suite. Example: "Unit 4".
- `address_state` (`string`, optional): State, province or region of the recipient address. Example: "WA".
- `colour` (`integer`, optional): Set to 1 to print in colour or 0 for black and white. Example: 0. One of: `0`, `1`.
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `duplex` (`integer`, optional): Set to 1 to print double-sided or 0 for single-sided. Example: 1. One of: `0`, `1`.
- `priority_post` (`integer`, optional): Set to 1 for priority post or 0 for standard. Example: 0. One of: `0`, `1`.
- `schedule` (`integer`, optional): When to send the item, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `template_used` (`integer`, optional): Set to 1 if the PDF uses ClickSend's letter template (address window layout), otherwise 0. Example: 1. One of: `0`, `1`.

Example input: `{"address_city":"Perth","address_country":"AU","address_line_1":"1 Test Street","address_name":"John Smith","address_postal_code":"6000","file_url":"https://example.com/letter.pdf","return_address_id":1}`

### `clicksend_letter_send`

Send Letter · Write

Print a PDF letter and post it to one postal address, now or at a scheduled time.
Returns the queued letter with its message_id, status and price.
Use clicksend_letter_send to mail a letter. Use clicksend_letter_price_calculate to quote the cost and clicksend_postcard_send for postcards.
Needs a return address from clicksend_return_addresses_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `address_city` (`string`, required): City of the recipient address. Example: "Perth".
- `address_country` (`string`, required): Two-letter ISO country code of the recipient address. Example: "AU".
- `address_line_1` (`string`, required): First line of the recipient street address. Example: "1 Test Street".
- `address_name` (`string`, required): Name on the recipient address, such as a person or company. Example: "John Smith".
- `address_postal_code` (`string`, required): Postal or ZIP code of the recipient address. Example: "6000".
- `file_url` (`string`, required): Public URL of the PDF letter to print and post. Convert docx or doc first with clicksend_upload_create (convert post). Example: "https://example.com/letter.pdf".
- `return_address_id` (`integer`, required): ID of the return address printed on the item, from clicksend_return_addresses_list or clicksend_return_address_create. Example: 1.
- `address_line_2` (`string`, optional): Second line of the recipient street address, such as a unit or suite. Example: "Unit 4".
- `address_state` (`string`, optional): State, province or region of the recipient address. Example: "WA".
- `colour` (`integer`, optional): Set to 1 to print in colour or 0 for black and white. Example: 0. One of: `0`, `1`.
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `duplex` (`integer`, optional): Set to 1 to print double-sided or 0 for single-sided. Example: 1. One of: `0`, `1`.
- `priority_post` (`integer`, optional): Set to 1 for priority post or 0 for standard. Example: 0. One of: `0`, `1`.
- `schedule` (`integer`, optional): When to send the item, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `template_used` (`integer`, optional): Set to 1 if the PDF uses ClickSend's letter template (address window layout), otherwise 0. Example: 1. One of: `0`, `1`.

Example input: `{"address_city":"Perth","address_country":"AU","address_line_1":"1 Test Street","address_name":"John Smith","address_postal_code":"6000","file_url":"https://example.com/letter.pdf","return_address_id":1}`

### `clicksend_list_contacts_import`

Import Contacts to List · Write

Import contacts into a list from a CSV file at a public URL.
Returns a confirmation that the import was queued.
Use clicksend_list_contacts_import for bulk loads. Use clicksend_contact_create for a single contact.
Upload a local file first with clicksend_upload_create (convert csv) to get a URL.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `field_order` (`array`, required): Column order of the CSV file, as ClickSend field names. Allowed names include phone, first_name, last_name, custom1, custom2, custom3, custom4, fax_number, organization_name, email, address_line_1, address_line_2, address_city, address_state, address_postal_code and address_country. Example: ["phone", "first_name", "last_name", "email"].
- `file_url` (`string`, required): Publicly reachable URL of the CSV file to import. Example: "https://example.com/contacts.csv".
- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.

Example input: `{"field_order":["phone","first_name","last_name","email"],"file_url":"https://example.com/contacts.csv","list_id":428}`

### `clicksend_list_create`

Create Contact List · Write

Create a new, empty contact list.
Returns the new list with its list_id.
Use clicksend_list_create before adding contacts with clicksend_contact_create or clicksend_list_contacts_import.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `list_name` (`string`, required): Name of the new contact list. Example: "Newsletter subscribers".

Example input: `{"list_name":"Newsletter subscribers"}`

### `clicksend_list_update`

Update Contact List · Write

Rename a contact list.
Returns the updated list.
Use clicksend_list_update to change a list name.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.
- `list_name` (`string`, required): New name for the contact list. Example: "VIP customers".

Example input: `{"list_id":428,"list_name":"VIP customers"}`

### `clicksend_mms_price_calculate`

Calculate MMS Price · Write

Calculate what an MMS would cost without sending it.
Returns the total price and message count.
Use clicksend_mms_price_calculate before clicksend_mms_send to check cost.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Text of the MMS, up to 1500 GSM characters (500 Unicode). Example: "Here is your 20% off coupon."
- `media_file` (`string`, required): Public URL of the image to send. jpg and gif are sent as-is; convert jpeg, png or bmp first with clicksend_upload_create (convert mms). Up to 250 kB. Example: "https://example.com/promo.gif".
- `subject` (`string`, required): Subject line of the MMS, up to 20 characters. Example: "Spring sale".
- `country` (`string`, optional): Two-letter ISO country code of the recipient. ClickSend uses it to format a phone number that is not in international E.164 format. Example: "US".
- `from` (`string`, optional): Sender ID to send from: a dedicated MMS-capable number in E.164 format. Leave empty to use the account default. Example: "+18885550123".
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `to` (`string`, optional): Recipient phone number in international E.164 format. Required unless list_id (or list_id plus contact_id) is set. Example: "+61411111111".

Example input: `{"body":"Here is your 20% off coupon.","media_file":"https://example.com/promo.gif","subject":"Spring sale"}`

### `clicksend_mms_send`

Send MMS · Write

Send an MMS (image plus text) to one phone number or a contact list, now or at a scheduled time.
Returns the queued message with its message_id, status and price.
Use clicksend_mms_send to send a picture message. Use clicksend_sms_send for text only and clicksend_mms_price_calculate to quote the cost.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Text of the MMS, up to 1500 GSM characters (500 Unicode). Example: "Here is your 20% off coupon."
- `media_file` (`string`, required): Public URL of the image to send. jpg and gif are sent as-is; convert jpeg, png or bmp first with clicksend_upload_create (convert mms). Up to 250 kB. Example: "https://example.com/promo.gif".
- `subject` (`string`, required): Subject line of the MMS, up to 20 characters. Example: "Spring sale".
- `country` (`string`, optional): Two-letter ISO country code of the recipient. ClickSend uses it to format a phone number that is not in international E.164 format. Example: "US".
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `from` (`string`, optional): Sender ID to send from: a dedicated MMS-capable number in E.164 format. Leave empty to use the account default. Example: "+18885550123".
- `list_id` (`integer`, optional): ID of a contact list to send to every contact in it, instead of a single phone number. Get it from clicksend_lists_list. Example: 428.
- `schedule` (`integer`, optional): When to send the MMS, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `to` (`string`, optional): Recipient phone number in international E.164 format. Required unless list_id (or list_id plus contact_id) is set. Example: "+61411111111".

Example input: `{"body":"Here is your 20% off coupon.","media_file":"https://example.com/promo.gif","subject":"Spring sale"}`

### `clicksend_postcard_cancel`

Cancel Scheduled Postcard · Write

Cancel a scheduled postcard before it is printed.
Returns the cancelled postcard.
Use clicksend_postcard_cancel for a postcard scheduled with clicksend_postcard_send.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `message_id` (`string`, required): message_id of the scheduled postcard, as returned by clicksend_postcard_send or clicksend_postcard_history_list. Example: "BF7AD270-0DE2-418B-B606-71D527D9C1AE".

Example input: `{"message_id":"BF7AD270-0DE2-418B-B606-71D527D9C1AE"}`

### `clicksend_postcard_price_calculate`

Calculate Postcard Price · Write

Calculate what posting a postcard would cost without sending it.
Returns the total price.
Use clicksend_postcard_price_calculate before clicksend_postcard_send.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `address_city` (`string`, required): City of the recipient address. Example: "Perth".
- `address_country` (`string`, required): Two-letter ISO country code of the recipient address. Example: "AU".
- `address_line_1` (`string`, required): First line of the recipient street address. Example: "1 Test Street".
- `address_name` (`string`, required): Name on the recipient address, such as a person or company. Example: "John Smith".
- `address_postal_code` (`string`, required): Postal or ZIP code of the recipient address. Example: "6000".
- `file_urls` (`array`, required): Public URLs of the postcard artwork: either one 2-page PDF (front and back) or two single-page PDFs. Convert other formats first with clicksend_upload_create (convert postcard). Example: ["https://example.com/front.pdf", "https://example.com/back.pdf"].
- `return_address_id` (`integer`, required): ID of the return address printed on the item, from clicksend_return_addresses_list or clicksend_return_address_create. Example: 1.
- `address_line_2` (`string`, optional): Second line of the recipient street address, such as a unit or suite. Example: "Unit 4".
- `address_state` (`string`, optional): State, province or region of the recipient address. Example: "WA".
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `schedule` (`integer`, optional): When to send the item, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.

Example input: `{"address_city":"Perth","address_country":"AU","address_line_1":"1 Test Street","address_name":"John Smith","address_postal_code":"6000","file_urls":["https://example.com/front.pdf","https://example.com/back.pdf"],"return_address_id":1}`

### `clicksend_postcard_send`

Send Postcard · Write

Print a postcard from PDF artwork and post it to one postal address, now or at a scheduled time.
Returns the queued postcard with its message_id, status and price.
Use clicksend_postcard_send to mail a postcard. Use clicksend_letter_send for letters and clicksend_postcard_price_calculate to quote the cost.
Needs a return address from clicksend_return_addresses_list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `address_city` (`string`, required): City of the recipient address. Example: "Perth".
- `address_country` (`string`, required): Two-letter ISO country code of the recipient address. Example: "AU".
- `address_line_1` (`string`, required): First line of the recipient street address. Example: "1 Test Street".
- `address_name` (`string`, required): Name on the recipient address, such as a person or company. Example: "John Smith".
- `address_postal_code` (`string`, required): Postal or ZIP code of the recipient address. Example: "6000".
- `file_urls` (`array`, required): Public URLs of the postcard artwork: either one 2-page PDF (front and back) or two single-page PDFs. Convert other formats first with clicksend_upload_create (convert postcard). Example: ["https://example.com/front.pdf", "https://example.com/back.pdf"].
- `return_address_id` (`integer`, required): ID of the return address printed on the item, from clicksend_return_addresses_list or clicksend_return_address_create. Example: 1.
- `address_line_2` (`string`, optional): Second line of the recipient street address, such as a unit or suite. Example: "Unit 4".
- `address_state` (`string`, optional): State, province or region of the recipient address. Example: "WA".
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `schedule` (`integer`, optional): When to send the item, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.

Example input: `{"address_city":"Perth","address_country":"AU","address_line_1":"1 Test Street","address_name":"John Smith","address_postal_code":"6000","file_urls":["https://example.com/front.pdf","https://example.com/back.pdf"],"return_address_id":1}`

### `clicksend_return_address_create`

Create Return Address · Write

Save a new return address for letters and postcards.
Returns the new address with its return_address_id.
Use clicksend_return_address_create before sending post if no suitable return address exists.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `address_city` (`string`, required): City of the return address. Example: "Perth".
- `address_country` (`string`, required): Two-letter ISO country code of the return address. Example: "AU".
- `address_line_1` (`string`, required): First line of the return street address. Example: "1 Test Street".
- `address_name` (`string`, required): Name on the return address, such as a person or company. Example: "John Smith".
- `address_postal_code` (`string`, required): Postal or ZIP code of the return address. Example: "6000".
- `address_line_2` (`string`, optional): Second line of the return street address, such as a unit or suite. Example: "Unit 4".
- `address_state` (`string`, optional): State, province or region of the return address. Example: "WA".

Example input: `{"address_city":"Perth","address_country":"AU","address_line_1":"1 Test Street","address_name":"John Smith","address_postal_code":"6000"}`

### `clicksend_return_address_update`

Update Return Address · Write

Replace the details of a saved return address.
Returns the updated address.
Use clicksend_return_address_update to correct a return address. All required address fields must be sent again.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `address_city` (`string`, required): City of the return address. Example: "Perth".
- `address_country` (`string`, required): Two-letter ISO country code of the return address. Example: "AU".
- `address_line_1` (`string`, required): First line of the return street address. Example: "1 Test Street".
- `address_name` (`string`, required): Name on the return address, such as a person or company. Example: "John Smith".
- `address_postal_code` (`string`, required): Postal or ZIP code of the return address. Example: "6000".
- `return_address_id` (`integer`, required): ID of the return address, from clicksend_return_addresses_list. Example: 1.
- `address_line_2` (`string`, optional): Second line of the return street address, such as a unit or suite. Example: "Unit 4".
- `address_state` (`string`, optional): State, province or region of the return address. Example: "WA".

Example input: `{"address_city":"Perth","address_country":"AU","address_line_1":"1 Test Street","address_name":"John Smith","address_postal_code":"6000","return_address_id":1}`

### `clicksend_sms_campaign_cancel`

Cancel SMS Campaign · Write

Cancel a scheduled SMS campaign before it sends.
Returns the cancelled campaign.
Use clicksend_sms_campaign_cancel to stop a scheduled campaign. Use clicksend_sms_campaign_update to change it instead.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `sms_campaign_id` (`integer`, required): ID of the SMS campaign to cancel, from clicksend_sms_campaigns_list. Example: 1001.

Example input: `{"sms_campaign_id":1001}`

### `clicksend_sms_campaign_price_calculate`

Calculate SMS Campaign Price · Write

Calculate what an SMS campaign to a list would cost without sending it.
Returns the total price and recipient count.
Use clicksend_sms_campaign_price_calculate before clicksend_sms_campaign_send.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Campaign message text. Example: "Spring sale: 20% off this weekend. Reply STOP to opt out."
- `from` (`string`, required): Sender ID: a dedicated number in E.164 format or an approved alpha tag. Example: "+18885550123".
- `list_id` (`integer`, required): ID of the contact list the campaign would go to, from clicksend_lists_list. Example: 428.
- `name` (`string`, required): Name of the campaign. Example: "Spring sale 2026".
- `schedule` (`integer`, optional): When to send the campaign, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.

Example input: `{"body":"Spring sale: 20% off this weekend. Reply STOP to opt out.","from":"+18885550123","list_id":428,"name":"Spring sale 2026"}`

### `clicksend_sms_campaign_send`

Send SMS Campaign · Write

Send or schedule an SMS marketing campaign to every contact in one list (up to 20,000 recipients).
Returns the campaign with its sms_campaign_id, status and total cost.
Use clicksend_sms_campaign_send for bulk marketing to a list. Use clicksend_sms_send for transactional messages and clicksend_sms_campaign_price_calculate to quote the cost.
Marketing messages must include an opt-out, such as "Reply STOP to opt out".

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Campaign message text. Include an opt-out instruction for marketing. Example: "Spring sale: 20% off this weekend. Reply STOP to opt out."
- `from` (`string`, required): Sender ID: a dedicated number in E.164 format or an approved alpha tag. Example: "+18885550123".
- `list_id` (`integer`, required): ID of the contact list to send the campaign to, from clicksend_lists_list. Example: 428.
- `name` (`string`, required): Name of the campaign, for your reference. Example: "Spring sale 2026".
- `schedule` (`integer`, optional): When to send the campaign, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `senders` (`array`, optional): Per-country sender overrides. Each item needs recipient_country_code and either a sender_id (dedicated number, alpha tag or own number) or sender_type "shared_longcode" (optionally with sender_country_code). Leave empty to use the default sender configured for each country in the account. Example: [{"recipient_country_code": "US", "sender_id": "+18885550123"}].
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `url_to_shorten` (`string`, optional): A URL to shorten; the short link is appended to the end of the message body. Example: "https://example.com/sale".

Example input: `{"body":"Spring sale: 20% off this weekend. Reply STOP to opt out.","from":"+18885550123","list_id":428,"name":"Spring sale 2026"}`

### `clicksend_sms_campaign_update`

Update SMS Campaign · Write

Update a scheduled SMS campaign's list, name, message, sender or send time.
Returns the updated campaign.
Use clicksend_sms_campaign_update to change a campaign before it sends. Use clicksend_sms_campaign_cancel to stop it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `body` (`string`, required): Campaign message text. Example: "Spring sale: 25% off this weekend. Reply STOP to opt out."
- `from` (`string`, required): Sender ID: a dedicated number in E.164 format or an approved alpha tag. Example: "+18885550123".
- `list_id` (`integer`, required): ID of the contact list to send to, from clicksend_lists_list. Example: 428.
- `name` (`string`, required): Campaign name. Example: "Spring sale 2026".
- `sms_campaign_id` (`integer`, required): ID of the SMS campaign to update, from clicksend_sms_campaigns_list. Example: 1001.
- `schedule` (`integer`, optional): When to send the campaign, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.

Example input: `{"body":"Spring sale: 25% off this weekend. Reply STOP to opt out.","from":"+18885550123","list_id":428,"name":"Spring sale 2026","sms_campaign_id":1001}`

### `clicksend_sms_cancel`

Cancel Scheduled SMS · Write

Cancel one scheduled SMS before it is sent.
Returns the cancelled message details.
Use clicksend_sms_cancel for a single scheduled message found with clicksend_sms_history_list (q status:Scheduled).

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `message_id` (`string`, required): message_id of the scheduled SMS to cancel, from clicksend_sms_send or clicksend_sms_history_list. Example: "BF7AD270-0DE2-418B-B606-71D527D9C1AE".

Example input: `{"message_id":"BF7AD270-0DE2-418B-B606-71D527D9C1AE"}`

### `clicksend_sms_inbound_mark_all_read`

Mark All Inbound SMS As Read · Write

Mark all inbound SMS as read, optionally only those received before a cutoff time.
Returns a confirmation.
Use clicksend_sms_inbound_mark_all_read to clear the inbound queue. Use clicksend_sms_inbound_mark_read for a single message.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `date_before` (`integer`, optional): Only mark inbound SMS received before this Unix timestamp (seconds) as read. Leave empty to mark all. Example: 1735689600.

Example input: `{}`

### `clicksend_sms_inbound_mark_read`

Mark Inbound SMS As Read · Write

Mark one inbound SMS as read so it no longer appears in clicksend_sms_inbound_list.
Returns a confirmation.
Use clicksend_sms_inbound_mark_read for one message. Use clicksend_sms_inbound_mark_all_read to clear all inbound messages at once.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `message_id` (`string`, required): message_id of the inbound SMS (not the outbound message it replied to), from clicksend_sms_inbound_list. Example: "5C9F3D2A-7B1E-4C8A-9F0D-2E6B4A1C3D5E".

Example input: `{"message_id":"5C9F3D2A-7B1E-4C8A-9F0D-2E6B4A1C3D5E"}`

### `clicksend_sms_price_calculate`

Calculate SMS Price · Write

Calculate what an SMS would cost without sending it.
Returns the total price, message count and parts per recipient in the account currency.
Use clicksend_sms_price_calculate before clicksend_sms_send to check cost or credit.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Text of the SMS. Up to 160 GSM characters (70 for Unicode) per message part; longer text is sent as a multi-part message billed per part. Example: "Your order #1042 has shipped."
- `contact_id` (`integer`, optional): ID of one contact to send to. Use together with list_id (the contact's list). Get it from clicksend_list_contacts_list. Example: 1503921.
- `country` (`string`, optional): Two-letter ISO country code of the recipient. ClickSend uses it to format a phone number that is not in international E.164 format. Example: "US".
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `from` (`string`, optional): Sender ID to send from: a dedicated number in E.164 format, an approved alpha tag (3-11 letters or digits, e.g. a business name), or your verified own number. Leave empty to use a shared number or the account's default sender. Recipients cannot reply to an alpha tag. Example: "+18885550123".
- `list_id` (`integer`, optional): ID of a contact list to send to every contact in it, instead of a single phone number. Get it from clicksend_lists_list. Example: 428.
- `schedule` (`integer`, optional): When to send the message, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `senders` (`array`, optional): Per-country sender overrides. Each item needs recipient_country_code and either a sender_id (dedicated number, alpha tag or own number) or sender_type "shared_longcode" (optionally with sender_country_code). Leave empty to use the default sender configured for each country in the account. Example: [{"recipient_country_code": "US", "sender_id": "+18885550123"}].
- `shorten_urls` (`boolean`, optional): Set to true to automatically shorten URLs in the message body, or false to leave them as they are. Leave empty to use the account setting. Example: true.
- `show_summary` (`boolean`, optional): Set to true to include a per-country cost summary in the response. Example: true.
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `to` (`string`, optional): Recipient phone number in international E.164 format. Required unless list_id (or list_id plus contact_id) is set. Example: "+61411111111".

Example input: `{"body":"Your order #1042 has shipped."}`

### `clicksend_sms_receipts_mark_read`

Mark SMS Receipts As Read · Write

Mark all SMS delivery receipts as read, optionally only those before a cutoff time.
Returns a confirmation.
Use clicksend_sms_receipts_mark_read after processing clicksend_sms_receipts_list so the next poll returns only new receipts.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `date_before` (`integer`, optional): Only mark receipts for messages sent before this Unix timestamp (seconds) as read. Leave empty to mark all. Example: 1735689600.

Example input: `{}`

### `clicksend_sms_send`

Send SMS · Write

Send an SMS to one phone number, one contact, or every contact in a contact list, now or at a scheduled time.
Returns the queued message with its message_id, status, parts and price, plus the total price for the request.
Use clicksend_sms_send for one-off or transactional texts. Use clicksend_sms_price_calculate to quote the cost first and clicksend_sms_campaign_send for marketing sends to a large list.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Text of the SMS. Up to 160 GSM characters (70 for Unicode) per message part; longer text is sent as a multi-part message billed per part. Example: "Your order #1042 has shipped."
- `contact_id` (`integer`, optional): ID of one contact to send to. Use together with list_id (the contact's list). Get it from clicksend_list_contacts_list. Example: 1503921.
- `country` (`string`, optional): Two-letter ISO country code of the recipient. ClickSend uses it to format a phone number that is not in international E.164 format. Example: "US".
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `from` (`string`, optional): Sender ID to send from: a dedicated number in E.164 format, an approved alpha tag (3-11 letters or digits, e.g. a business name), or your verified own number. Leave empty to use a shared number or the account's default sender. Recipients cannot reply to an alpha tag. Example: "+18885550123".
- `from_email` (`string`, optional): Email address that replies to this SMS are forwarded to. If empty, replies go to the user who sent the message. Example: "support@example.com".
- `list_id` (`integer`, optional): ID of a contact list to send to every contact in it, instead of a single phone number. Get it from clicksend_lists_list. Example: 428.
- `schedule` (`integer`, optional): When to send the message, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `senders` (`array`, optional): Per-country sender overrides. Each item needs recipient_country_code and either a sender_id (dedicated number, alpha tag or own number) or sender_type "shared_longcode" (optionally with sender_country_code). Leave empty to use the default sender configured for each country in the account. Example: [{"recipient_country_code": "US", "sender_id": "+18885550123"}].
- `shorten_urls` (`boolean`, optional): Set to true to automatically shorten URLs in the message body, or false to leave them as they are. Leave empty to use the account setting. Example: true.
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `to` (`string`, optional): Recipient phone number in international E.164 format. Required unless list_id (or list_id plus contact_id) is set. Example: "+61411111111".

Example input: `{"body":"Your order #1042 has shipped."}`

### `clicksend_sms_template_create`

Create SMS Template · Write

Create a reusable SMS template.
Returns the new template with its template_id.
Use clicksend_sms_template_create to save message text for reuse. Use clicksend_sms_template_update to change an existing one.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Message text of the template. Example: "Hi, this is a reminder of your appointment tomorrow at 10am."
- `template_name` (`string`, required): Name of the template. Example: "Appointment reminder".

Example input: `{"body":"Hi, this is a reminder of your appointment tomorrow at 10am.","template_name":"Appointment reminder"}`

### `clicksend_sms_template_update`

Update SMS Template · Write

Update the name or text of an SMS template.
Returns the updated template.
Use clicksend_sms_template_update to edit a template. Use clicksend_sms_template_create to add a new one.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `template_id` (`string`, required): ID of the SMS template to update, from clicksend_sms_templates_list. Example: "1234".
- `body` (`string`, optional): New message text for the template. Example: "Reminder: your appointment is tomorrow at 10am."
- `template_name` (`string`, optional): New name for the template. Example: "Appointment reminder v2".

Example input: `{"template_id":"1234"}`

### `clicksend_upload_create`

Upload File · Write

Upload a base64-encoded file and convert it for use with fax, MMS, CSV import, letters or postcards.
Returns a temporary URL to the converted file (it expires 10 minutes after upload).
Use clicksend_upload_create when a file is not already at a public URL in a supported format, then pass the URL to clicksend_fax_send, clicksend_mms_send, clicksend_list_contacts_import, clicksend_letter_send or clicksend_postcard_send.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `content` (`string`, required): The file contents, base64-encoded. Example: "JVBERi0xLjQKJ..." (a base64-encoded PDF).
- `convert` (`string`, required): What the file should be converted for: fax, mms, csv, post (letters) or postcard. Example: "post". One of: `fax`, `mms`, `csv`, `post`, `postcard`.

Example input: `{"content":"JVBERi0xLjQKJ...","convert":"post"}`

### `clicksend_voice_cancel`

Cancel Scheduled Voice Call · Write

Cancel one scheduled text-to-speech voice call before it is placed.
Returns the cancelled call details.
Use clicksend_voice_cancel for a call scheduled with clicksend_voice_send.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `message_id` (`string`, required): message_id of the scheduled voice call, as returned by clicksend_voice_send or clicksend_voice_history_list. Example: "BF7AD270-0DE2-418B-B606-71D527D9C1AE".

Example input: `{"message_id":"BF7AD270-0DE2-418B-B606-71D527D9C1AE"}`

### `clicksend_voice_price_calculate`

Calculate Voice Price · Write

Calculate what a text-to-speech voice call would cost without placing it.
Returns the total price and message count.
Use clicksend_voice_price_calculate before clicksend_voice_send.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Text that is read out to the recipient by text-to-speech. Commas add short pauses. Up to 1200 GSM characters (600 Unicode), billed per 300 (or 150) characters. Example: "Your verification code is 9, 0, 9, 0."
- `voice` (`string`, required): Voice gender to use: female or male. Some languages only offer female; see clicksend_voice_languages_list. Example: "female". One of: `female`, `male`.
- `country` (`string`, optional): Two-letter ISO country code of the recipient. ClickSend uses it to format a phone number that is not in international E.164 format. Example: "US".
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `lang` (`string`, optional): Language and accent code for the voice, such as en-us, en-au, en-gb, de-de, es-es, fr-fr or pt-br. Get the full list from clicksend_voice_languages_list. Example: "en-us".
- `list_id` (`integer`, optional): ID of a contact list to send to every contact in it, instead of a single phone number. Get it from clicksend_lists_list. Example: 428.
- `machine_detection` (`integer`, optional): Set to 1 to detect an answering machine or voicemail and leave the message there, or 0 to turn detection off. Example: 1. One of: `0`, `1`.
- `require_input` (`integer`, optional): Set to 1 to record a keypad press from the recipient (returned as digits in the receipt), or 0 for no input. Example: 1. One of: `0`, `1`.
- `schedule` (`integer`, optional): When to send the call, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `to` (`string`, optional): Recipient phone number in international E.164 format. Required unless list_id (or list_id plus contact_id) is set. Example: "+61411111111".

Example input: `{"body":"Your verification code is 9, 0, 9, 0.","voice":"female"}`

### `clicksend_voice_send`

Send Voice Call · Write

Place a text-to-speech voice call that reads a message to one phone number or a contact list, now or at a scheduled time.
Returns the queued call with its message_id, status and price.
Use clicksend_voice_send for spoken alerts or codes. Use clicksend_voice_price_calculate to quote the cost and clicksend_voice_languages_list for language codes.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `body` (`string`, required): Text that is read out to the recipient by text-to-speech. Commas add short pauses. Up to 1200 GSM characters (600 Unicode), billed per 300 (or 150) characters. Example: "Your verification code is 9, 0, 9, 0."
- `voice` (`string`, required): Voice gender to use: female or male. Some languages only offer female; see clicksend_voice_languages_list. Example: "female". One of: `female`, `male`.
- `country` (`string`, optional): Two-letter ISO country code of the recipient. ClickSend uses it to format a phone number that is not in international E.164 format. Example: "US".
- `custom_string` (`string`, optional): Your own reference for this message. ClickSend returns it with delivery receipts and replies so you can match them up. Example: "order-1042".
- `lang` (`string`, optional): Language and accent code for the voice, such as en-us, en-au, en-gb, de-de, es-es, fr-fr or pt-br. Get the full list from clicksend_voice_languages_list. Example: "en-us".
- `list_id` (`integer`, optional): ID of a contact list to send to every contact in it, instead of a single phone number. Get it from clicksend_lists_list. Example: 428.
- `machine_detection` (`integer`, optional): Set to 1 to detect an answering machine or voicemail and leave the message there, or 0 to turn detection off. Example: 1. One of: `0`, `1`.
- `require_input` (`integer`, optional): Set to 1 to record a keypad press from the recipient (returned as digits in the receipt), or 0 for no input. Example: 1. One of: `0`, `1`.
- `schedule` (`integer`, optional): When to send the call, as a Unix timestamp in seconds. Leave empty to send immediately. Example: 1767225600.
- `source` (`string`, optional): Free-text label for the application sending the request, used by ClickSend to tag where messages came from. Example: "scalekit-agent".
- `to` (`string`, optional): Recipient phone number in international E.164 format. Required unless list_id (or list_id plus contact_id) is set. Example: "+61411111111".

Example input: `{"body":"Your verification code is 9, 0, 9, 0.","voice":"female"}`

### `clicksend_contact_delete`

Delete Contact · Destructive

Delete one contact from a contact list permanently.
Returns a confirmation.
Use clicksend_contact_delete to remove a contact. Use clicksend_list_delete to remove a whole list.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `contact_id` (`integer`, required): ID of the contact. Get it from the contact_id field of clicksend_list_contacts_list or clicksend_contacts_lists_search. Example: 1503921.
- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.

Example input: `{"contact_id":1503921,"list_id":428}`

### `clicksend_email_address_delete`

Delete Allowed Email Address · Destructive

Remove an allowed sender email address from the account.
Returns a confirmation.
Use clicksend_email_address_delete to stop an address being used as a sender.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `email_address_id` (`integer`, required): ID of the allowed email address to delete, from clicksend_email_addresses_list. Example: 1.

Example input: `{"email_address_id":1}`

### `clicksend_list_delete`

Delete Contact List · Destructive

Delete a contact list and the contacts in it permanently.
Returns a confirmation.
Use clicksend_list_delete to remove a whole list. Use clicksend_contact_delete to remove one contact.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.

Example input: `{"list_id":428}`

### `clicksend_list_opted_out_remove`

Remove Opted-Out Contacts · Destructive

Remove every contact from a list whose number also appears in an opt-out list.
Returns a summary of the removal.
Use clicksend_list_opted_out_remove before a campaign so unsubscribed contacts are not messaged.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `list_id` (`integer`, required): ID of the contact list. Get it from the list_id field of clicksend_lists_list or clicksend_contacts_lists_search. Example: 428.
- `opt_out_list_id` (`integer`, required): ID of the opt-out (unsubscribe) contact list to check against, from clicksend_lists_list. Example: 430.

Example input: `{"list_id":428,"opt_out_list_id":430}`

### `clicksend_return_address_delete`

Delete Return Address · Destructive

Delete a saved return address.
Returns a confirmation.
Use clicksend_return_address_delete to remove an address you no longer post from.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `return_address_id` (`integer`, required): ID of the return address, from clicksend_return_addresses_list. Example: 1.

Example input: `{"return_address_id":1}`

### `clicksend_sms_template_delete`

Delete SMS Template · Destructive

Delete an SMS template permanently.
Returns a confirmation.
Use clicksend_sms_template_delete to remove a template you no longer need.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `template_id` (`string`, required): ID of the SMS template to delete, from clicksend_sms_templates_list. Example: "1234".

Example input: `{"template_id":"1234"}`

## Related

Other Communication connectors ([all 73](/agentkit/connectors/?category=communication)):

- [Crisp](/agentkit/connectors/crisp/): Scalekit connector, API key, 50 tools
- [Gmail](/agentkit/connectors/gmail/): Scalekit connector, OAuth, 48 tools
- [Google Calendar](/agentkit/connectors/googlecalendar/): Scalekit connector, OAuth, 30 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
