# GetResponse

> Manage GetResponse email marketing: contact lists, contacts and their custom fields and activity, and newsletters - create drafts, send or schedule them, and read their statistics.

App · 20 actions. Web page: https://docs.lodol.com/docs/integrations/getresponse

## Actions

### Add contact

Add a contact to a list. GetResponse queues the contact and adds it within a few minutes; it returns no contact id, so find the contact afterwards with List contacts. On a double opt-in list the contact must confirm by email first.

**Inputs**

- Email (`email`, text, required): The contact's email address.
- List (`campaign_id`, text, required): The contact list. Pick one, or use a list id from an earlier step.
- Name (`name`, text): The contact's name, up to 128 characters.
- Autoresponder day (`day_of_cycle`, number): Start the contact on the list's autoresponder cycle at this day (0 is the first day). Leave empty to keep them off the cycle. From 0 to 10000.
- Custom fields (`custom_fields`, object): Values for the account's custom fields.
- Sign-up IP address (`ip_address`, text): The IPv4 or IPv6 address the contact signed up from.
- Consents to open tracking (`open_tracking_consent`, true/false): Whether the contact agreed to have email opens tracked.

**Outputs**

- `campaign_id` (text): The list it was queued for
- `email` (text): The address queued
- `queued` (true/false): Always true: GetResponse accepted it for processing
- `status_code` (number): HTTP status, 202

**Example output**

```json
{
  "campaign_id": "V",
  "email": "jane@example.com",
  "queued": true,
  "status_code": 202
}
```

### Create contact list

Create a contact list. Contacts added to it through Lodol join straight away unless you turn on email confirmation, in which case each must click a link first and stays invisible to the API until they do.

**Inputs**

- List name (`name`, text, required): 3-64 characters, unique in the account, without / \ @ [ or ].
- Language (`language_code`, text): Two-letter language code, such as en or de.
- Require email confirmation (`require_api_confirmation`, true/false): Turn on for double opt-in: contacts added through the API must confirm by email before they join. Default: `false`.

**Outputs**

- `campaign_id` (text): List id
- `confirmation` (object): Confirmation email settings
- `created_on` (text): When the list was created
- `description` (text): Same as the name; kept by GetResponse for compatibility
- `href` (text): API URL of the list
- `is_default` (true/false): Whether this is the account's default list
- `language_code` (text): Two-letter language code
- `name` (text): List name
- `optin_types` (object): Single or double opt-in, per sign-up method
- `postal` (object): Postal address added to messages
- `profile` (object): Public list profile
- `subscription_notifications` (object): Sign-up notification settings
- `tech_name` (text): Internal list name

**Example output**

```json
{
  "campaign_id": "V",
  "created_on": "2026-03-02T07:30:49+0000",
  "description": "newsletter_subscribers",
  "href": "https://api.getresponse.com/v3/campaigns/V",
  "is_default": true,
  "language_code": "EN",
  "name": "newsletter_subscribers",
  "optin_types": {
    "api": "single",
    "email": "double",
    "import": "single",
    "webform": "double"
  },
  "tech_name": "newsletter_subscribers"
}
```

### Create custom field

Create a custom field for contacts. The name is lower-cased with spaces turned into underscores; dropdown, radio and multi-select fields need at least two values.

**Inputs**

- Name (`name`, text, required): Lowercase letters, digits and underscores, unique in the account. GetResponse reserves name, email, campaign and a few other merge words.
- Data type (`field_type`, text, required): What kind of value the field holds. One of: `string` (Text), `number`, `date`, `datetime` (Date and time), `country`, `currency`, `phone`, `gender`, `ip` (IP address), `url`. Default: `string`.
- Input format (`field_format`, text, required): How the field is filled in on forms. One of: `text` (Single-line text), `textarea` (Multi-line text), `radio` (Radio buttons), `checkbox`, `single_select` (Single-select dropdown), `multi_select` (Multi-select list). Default: `text`.
- Choices (`values`, list): The values to choose from, for a radio, dropdown or multi-select field. Leave empty for the other formats. Only when Input format is Radio buttons, Single-select dropdown or Multi-select list.
- Hidden (`hidden`, true/false): Hide the field from sign-up forms. Default: `false`.

**Outputs**

- `custom_field_id` (text): Custom field id
- `format` (text): Input format, such as text or single_select
- `hidden` (true/false): Whether the field is hidden from forms
- `href` (text): API URL of the field
- `name` (text): Name
- `type` (text): Data type, such as string, number or date
- `value_type` (text): Value type
- `values` (list): Allowed values, for choice fields

**Example output**

```json
{
  "custom_field_id": "pas",
  "format": "text",
  "hidden": false,
  "href": "https://api.getresponse.com/v3/custom-fields/pas",
  "name": "favourite_colour",
  "type": "string",
  "value_type": "string",
  "values": []
}
```

### Create newsletter

Create a newsletter. Save it as a draft, or send it to one or more lists now or at a scheduled time. Sending emails real people. GetResponse allows 256 of these calls a day.

**Inputs**

- Subject (`subject`, text, required): The subject line, 2-128 characters.
- List (`campaign_id`, text, required): The list the newsletter belongs to.
- From address (`from_field_id`, text, required): The sender. Only active addresses are listed.
- HTML content (`html`, text): The HTML body. Give this, the plain text, or both.
- Plain-text content (`plain`, text): The plain-text body.
- What to do (`mode`, text): Save a draft, or send the newsletter. One of: `draft` (Save as a draft (nothing is sent)), `broadcast` (Send it (now, or at the scheduled time)). Default: `draft`.
- Send to lists (`recipient_campaign_ids`, list): The lists that receive it. Defaults to the newsletter's list. Only when What to do is Send it (now, or at the scheduled time).
- Send at (`send_at`, date and time): Schedule the send. Leave empty to send now. Only when What to do is Send it (now, or at the scheduled time).
- Schedule time zone (`time_zone_id`, text): The zone GetResponse records the schedule in; the send happens at the moment picked either way. Defaults to UTC. Only when What to do is Send it (now, or at the scheduled time).
- Internal name (`name`, text): A name only you see. Defaults to the subject.
- Reply-to address (`reply_to_id`, text): Where replies go, if not the from address.
- Track opens (`track_opens`, true/false): Track who opens it. On by default. Default: `true`.
- Track clicks (`track_clicks`, true/false): Track clicks on links. Default: `false`.
- Google Analytics tags (`google_analytics`, true/false): Add Google Analytics tags to links. Default: `false`.

**Outputs**

- `campaign` (object): The list the record belongs to
- `click_tracks` (list): Tracked links
- `content` (object): Body
- `created_on` (text): When it was created
- `editor` (text): Editor used
- `flags` (list): clicktrack, google_analytics
- `from_field` (object): Sender
- `href` (text): API URL
- `name` (text): Internal name
- `newsletter_id` (text): Newsletter id
- `reply_to` (object): Reply-to
- `send_metrics` (object): Delivery numbers
- `send_on` (text): When it is or was sent
- `send_settings` (object): Who it goes to and when
- `status` (text): enabled or disabled
- `subject` (text): Subject line
- `type` (text): draft or broadcast

**Example output**

```json
{
  "campaign": {
    "campaign_id": "V",
    "href": "https://api.getresponse.com/v3/campaigns/V",
    "name": "newsletter_subscribers"
  },
  "content": {
    "html": "<p>Hello</p>",
    "plain": "Hello"
  },
  "created_on": "2026-03-02T07:30:49+0000",
  "editor": "custom",
  "flags": [
    "clicktrack"
  ],
  "from_field": {
    "from_field_id": "V"
  },
  "href": "https://api.getresponse.com/v3/newsletters/N3s",
  "name": "March update",
  "newsletter_id": "N3s",
  "send_metrics": {
    "click_rate": 7.1,
    "delivered": 118,
    "open_rate": 42.5,
    "sent": 120,
    "status": "finished",
    "total": 120
  },
  "send_on": "2026-03-14T07:00:00+0000",
  "send_settings": {
    "selected_campaigns": [
      "V"
    ],
    "time_travel": false
  },
  "status": "enabled",
  "subject": "What's new in March",
  "type": "draft"
}
```

### Delete contact

Delete a contact. Give a message id to record it as an unsubscribe from that message instead, as if they clicked its unsubscribe link.

**Inputs**

- Contact ID (`contact_id`, text, required): The contact's id, from List contacts or an earlier step. The contact's API URL (ending in the id) also works.
- Unsubscribed from message (`message_id`, text): Optional newsletter id: records the removal as an unsubscribe from that message.
- Unsubscribe IP address (`ip_address`, text): The IP the unsubscribe came from. Needs a message id.

**Outputs**

- `contact_id` (text): Contact id
- `deleted` (true/false): Always true

**Example output**

```json
{
  "contact_id": "pV3r",
  "deleted": true
}
```

### Get account

Read the GetResponse account the API key belongs to: its login email, name, company, address, country and time zone.

**Inputs**: None.

**Outputs**

- `account_id` (text): Account id
- `city` (text): City
- `company_name` (text): Company name
- `country_code` (object): Country
- `email` (text): The account's login email
- `first_name` (text): First name
- `href` (text): API URL of the account
- `industry_tag` (object): Industry
- `last_name` (text): Last name
- `number_of_employees` (text): Company size: 50, 250, 500 or more
- `phone` (text): Phone number
- `state` (text): State or region
- `street` (text): Street address
- `time_format` (text): 12h or 24h
- `time_zone` (object): The account's time zone
- `zip_code` (text): Postal code

**Example output**

```json
{
  "account_id": "Ab3",
  "company_name": "Example Ltd",
  "email": "owner@example.com",
  "first_name": "Jane",
  "href": "https://api.getresponse.com/v3/accounts",
  "last_name": "Doe",
  "time_format": "24h",
  "time_zone": {
    "name": "Europe/Warsaw",
    "offset": "+01:00"
  }
}
```

### Get contact

Read one contact with its list, custom field values, tags and sign-up location.

**Inputs**

- Contact ID (`contact_id`, text, required): The contact's id, from List contacts or an earlier step. The contact's API URL (ending in the id) also works.

**Outputs**

- `activities` (text): API URL of the contact's activities
- `campaign` (object): The list the record belongs to
- `changed_on` (text): When the contact last changed
- `contact_id` (text): Contact id
- `created_on` (text): When the contact was added
- `custom_field_values` (list): Custom field values
- `day_of_cycle` (text): Autoresponder cycle day, if on one
- `email` (text): Email address
- `engagement_score` (number): Engagement score, 1-5
- `geolocation` (object): Where the contact signed up from
- `href` (text): API URL of the contact
- `ip_address` (text): Sign-up IP address
- `name` (text): Name
- `note` (text): Note
- `origin` (text): How the contact was added, such as api or import
- `scoring` (number): Contact score (Marketer plan and up)
- `tags` (list): Tags on the contact
- `time_zone` (text): The contact's time zone

**Example output**

```json
{
  "activities": "https://api.getresponse.com/v3/contacts/pV3r/activities",
  "campaign": {
    "campaign_id": "V",
    "href": "https://api.getresponse.com/v3/campaigns/V",
    "name": "newsletter_subscribers"
  },
  "changed_on": "2026-03-04T10:12:01+0000",
  "contact_id": "pV3r",
  "created_on": "2026-03-02T07:30:49+0000",
  "custom_field_values": [
    {
      "custom_field_id": "pas",
      "name": "favourite_colour",
      "type": "text",
      "value": [
        "blue"
      ],
      "value_type": "string",
      "values": [
        "blue"
      ]
    }
  ],
  "day_of_cycle": null,
  "email": "jane@example.com",
  "engagement_score": 3,
  "href": "https://api.getresponse.com/v3/contacts/pV3r",
  "ip_address": "1.2.3.4",
  "name": "Jane Doe",
  "note": null,
  "origin": "api",
  "tags": [],
  "time_zone": "Europe/Warsaw"
}
```

### Get contact list

Read one contact list with its opt-in settings (single or double, per sign-up method), confirmation email, postal address and public profile.

**Inputs**

- List (`campaign_id`, text, required): The contact list. Pick one, or use a list id from an earlier step.

**Outputs**

- `campaign_id` (text): List id
- `confirmation` (object): Confirmation email settings
- `created_on` (text): When the list was created
- `description` (text): Same as the name; kept by GetResponse for compatibility
- `href` (text): API URL of the list
- `is_default` (true/false): Whether this is the account's default list
- `language_code` (text): Two-letter language code
- `name` (text): List name
- `optin_types` (object): Single or double opt-in, per sign-up method
- `postal` (object): Postal address added to messages
- `profile` (object): Public list profile
- `subscription_notifications` (object): Sign-up notification settings
- `tech_name` (text): Internal list name

**Example output**

```json
{
  "campaign_id": "V",
  "created_on": "2026-03-02T07:30:49+0000",
  "description": "newsletter_subscribers",
  "href": "https://api.getresponse.com/v3/campaigns/V",
  "is_default": true,
  "language_code": "EN",
  "name": "newsletter_subscribers",
  "optin_types": {
    "api": "single",
    "email": "double",
    "import": "single",
    "webform": "double"
  },
  "tech_name": "newsletter_subscribers"
}
```

### Get newsletter

Read one newsletter with its content, sender, tracked links, send settings and delivery numbers.

**Inputs**

- Newsletter ID (`newsletter_id`, text, required): The newsletter's id, from List newsletters or an earlier step.

**Outputs**

- `campaign` (object): The list the record belongs to
- `click_tracks` (list): Tracked links
- `content` (object): Body
- `created_on` (text): When it was created
- `editor` (text): Editor used
- `flags` (list): clicktrack, google_analytics
- `from_field` (object): Sender
- `href` (text): API URL
- `name` (text): Internal name
- `newsletter_id` (text): Newsletter id
- `reply_to` (object): Reply-to
- `send_metrics` (object): Delivery numbers
- `send_on` (text): When it is or was sent
- `send_settings` (object): Who it goes to and when
- `status` (text): enabled or disabled
- `subject` (text): Subject line
- `type` (text): draft or broadcast

**Example output**

```json
{
  "campaign": {
    "campaign_id": "V",
    "href": "https://api.getresponse.com/v3/campaigns/V",
    "name": "newsletter_subscribers"
  },
  "content": {
    "html": "<p>Hello</p>",
    "plain": "Hello"
  },
  "created_on": "2026-03-02T07:30:49+0000",
  "editor": "custom",
  "flags": [
    "clicktrack"
  ],
  "from_field": {
    "from_field_id": "V"
  },
  "href": "https://api.getresponse.com/v3/newsletters/N3s",
  "name": "March update",
  "newsletter_id": "N3s",
  "send_metrics": {
    "click_rate": 7.1,
    "delivered": 118,
    "open_rate": 42.5,
    "sent": 120,
    "status": "finished",
    "total": 120
  },
  "send_on": "2026-03-14T07:00:00+0000",
  "send_settings": {
    "selected_campaigns": [
      "V"
    ],
    "time_travel": false
  },
  "status": "enabled",
  "subject": "What's new in March",
  "type": "draft"
}
```

### Get newsletter statistics

Read a newsletter's sends, opens, clicks, goals, forwards, unsubscribes, bounces and complaints, in total or by hour, day or month.

**Inputs**

- Newsletter ID (`newsletter_id`, text, required): The newsletter's id, from List newsletters or an earlier step.
- Group by (`group_by`, text): Totals, or one row per hour, day or month. One of: `total`, `hour` (By hour), `day` (By day), `month` (By month). Default: `total`.
- Created on or after (`created_from`, date): Only include records created on or after this date.
- Created on or before (`created_to`, date): Only include records created on or before this date.

**Outputs**

- `count` (number): How many rows
- `group_by` (text): Grouping used
- `newsletter_id` (text): Newsletter id
- `statistics` (list): One row per period

**Example output**

```json
{
  "count": 1,
  "group_by": "total",
  "newsletter_id": "N3s",
  "statistics": [
    {
      "bounced": 2,
      "complaints": 0,
      "sent": 120,
      "time_interval": "2026-03-14T00:00:00+0000/P0Y0M1DT0H0M0S",
      "total_clicked": 9,
      "total_opened": 61,
      "unique_clicked": 8,
      "unique_opened": 51,
      "unsubscribed": 1
    }
  ]
}
```

### List contact activities

List a contact's sends, opens and clicks, newest first. Without dates, GetResponse returns the last 14 days.

**Inputs**

- Contact ID (`contact_id`, text, required): The contact's id, from List contacts or an earlier step. The contact's API URL (ending in the id) also works.
- Created on or after (`created_from`, date): Only include records created on or after this date.
- Created on or before (`created_to`, date): Only include records created on or before this date.
- Results per page (`per_page`, number): How many records to return, 1-1000. Defaults to 100. From 1 to 1000. Default: `100`.
- Page (`page`, number): Which page to read, starting at 1. Use 'next_page' from a run. From 1 to 100000. Default: `1`.

**Outputs**

- `activities` (list): Activities
- `contact_id` (text): Contact id
- `count` (number): Records on this page
- `has_more` (true/false): Whether a page follows
- `next_page` (number): The 'page' that reads the next page
- `page` (number): The page returned
- `per_page` (number): Page size used
- `total_count` (number): Records matching, across every page
- `total_pages` (number): How many pages there are

**Example output**

```json
{
  "activities": [
    {
      "activity": "open",
      "created_on": "2026-03-14T08:01:12+0000",
      "resource": {
        "resource_id": "N3s",
        "resource_type": "newsletters"
      },
      "subject": "What's new in March"
    }
  ],
  "contact_id": "pV3r",
  "count": 1,
  "has_more": false,
  "next_page": null,
  "page": 1,
  "per_page": 100,
  "total_count": 1,
  "total_pages": 1
}
```

### List contact lists

List the account's contact lists (GetResponse's API calls them campaigns), with each list's id, name, language and whether it is the default.

**Inputs**

- Name contains (`name`, text): Only include lists whose name contains this text.
- Sort by (`sort_by`, text): Order the lists by this field. One of: `name`, `createdOn` (Date created).
- Sort direction (`sort_direction`, text): Ascending or descending. Defaults to descending. One of: `ASC` (Ascending), `DESC` (Descending).
- Results per page (`per_page`, number): How many records to return, 1-1000. Defaults to 100. From 1 to 1000. Default: `100`.
- Page (`page`, number): Which page to read, starting at 1. Use 'next_page' from a run. From 1 to 100000. Default: `1`.

**Outputs**

- `campaigns` (list): Contact lists
- `count` (number): Records on this page
- `has_more` (true/false): Whether a page follows
- `next_page` (number): The 'page' that reads the next page
- `page` (number): The page returned
- `per_page` (number): Page size used
- `total_count` (number): Records matching, across every page
- `total_pages` (number): How many pages there are

**Example output**

```json
{
  "campaigns": [
    {
      "campaign_id": "V",
      "created_on": "2026-03-02T07:30:49+0000",
      "description": "newsletter_subscribers",
      "href": "https://api.getresponse.com/v3/campaigns/V",
      "is_default": true,
      "language_code": "EN",
      "name": "newsletter_subscribers",
      "tech_name": "newsletter_subscribers"
    }
  ],
  "count": 1,
  "has_more": false,
  "next_page": null,
  "page": 1,
  "per_page": 100,
  "total_count": 1,
  "total_pages": 1
}
```

### List contacts

Search contacts by email, name, list, origin or date added. A contact who has not yet confirmed a double opt-in email is not returned.

**Inputs**

- Email (`email`, text): Email address, or part of one.
- Name (`name`, text): Contact name, or part of one.
- List (`campaign_id`, text): Only include records on this contact list.
- Origin (`origin`, text): Only include contacts added this way. One of: `api`, `import`, `email`, `www` (Web form), `panel` (Added in the app), `leads`, `sale`, `survey`, `iphone` (iPhone app), `copy` (Copied from another list), and 6 more.
- Created on or after (`created_from`, date): Only include records created on or after this date.
- Created on or before (`created_to`, date): Only include records created on or before this date.
- Exact match (`exact_match`, true/false): Match the email and name exactly instead of matching any contact that contains them. Default: `false`.
- Sort by (`sort_by`, text): Order the contacts by this field. One of: `createdOn` (Date added), `changedOn` (Date last changed), `email`, `name`, `campaignId` (List).
- Sort direction (`sort_direction`, text): Ascending or descending. Defaults to descending. One of: `ASC` (Ascending), `DESC` (Descending).
- Results per page (`per_page`, number): How many records to return, 1-1000. Defaults to 100. From 1 to 1000. Default: `100`.
- Page (`page`, number): Which page to read, starting at 1. Use 'next_page' from a run. From 1 to 100000. Default: `1`.

**Outputs**

- `contacts` (list): Contacts
- `count` (number): Records on this page
- `has_more` (true/false): Whether a page follows
- `next_page` (number): The 'page' that reads the next page
- `page` (number): The page returned
- `per_page` (number): Page size used
- `total_count` (number): Records matching, across every page
- `total_pages` (number): How many pages there are

**Example output**

```json
{
  "contacts": [
    {
      "activities": "https://api.getresponse.com/v3/contacts/pV3r/activities",
      "campaign": {
        "campaign_id": "V",
        "href": "https://api.getresponse.com/v3/campaigns/V",
        "name": "newsletter_subscribers"
      },
      "changed_on": "2026-03-04T10:12:01+0000",
      "contact_id": "pV3r",
      "created_on": "2026-03-02T07:30:49+0000",
      "day_of_cycle": null,
      "email": "jane@example.com",
      "engagement_score": 3,
      "href": "https://api.getresponse.com/v3/contacts/pV3r",
      "ip_address": "1.2.3.4",
      "name": "Jane Doe",
      "note": null,
      "origin": "api",
      "time_zone": "Europe/Warsaw"
    }
  ],
  "count": 1,
  "has_more": false,
  "next_page": null,
  "page": 1,
  "per_page": 100,
  "total_count": 1,
  "total_pages": 1
}
```

### List custom fields

List the account's custom fields with each one's type, format and, for choice fields, the values it allows.

**Inputs**

- Name contains (`name`, text): Only include fields whose name contains this.
- Results per page (`per_page`, number): How many records to return, 1-1000. Defaults to 100. From 1 to 1000. Default: `100`.
- Page (`page`, number): Which page to read, starting at 1. Use 'next_page' from a run. From 1 to 100000. Default: `1`.

**Outputs**

- `count` (number): Records on this page
- `custom_fields` (list): Custom fields
- `has_more` (true/false): Whether a page follows
- `next_page` (number): The 'page' that reads the next page
- `page` (number): The page returned
- `per_page` (number): Page size used
- `total_count` (number): Records matching, across every page
- `total_pages` (number): How many pages there are

**Example output**

```json
{
  "count": 1,
  "custom_fields": [
    {
      "custom_field_id": "pas",
      "format": "text",
      "hidden": false,
      "href": "https://api.getresponse.com/v3/custom-fields/pas",
      "name": "favourite_colour",
      "type": "string",
      "value_type": "string",
      "values": []
    }
  ],
  "has_more": false,
  "next_page": null,
  "page": 1,
  "per_page": 100,
  "total_count": 1,
  "total_pages": 1
}
```

### List from addresses

List the sender addresses newsletters can be sent from, with whether each is active and its domain's authentication status.

**Inputs**

- Email contains (`email`, text): Only include addresses containing this.
- Active only (`active_only`, true/false): Only include addresses that can be sent from. Default: `false`.
- Results per page (`per_page`, number): How many records to return, 1-1000. Defaults to 100. From 1 to 1000. Default: `100`.
- Page (`page`, number): Which page to read, starting at 1. Use 'next_page' from a run. From 1 to 100000. Default: `1`.

**Outputs**

- `count` (number): Records on this page
- `from_fields` (list): From addresses
- `has_more` (true/false): Whether a page follows
- `next_page` (number): The 'page' that reads the next page
- `page` (number): The page returned
- `per_page` (number): Page size used
- `total_count` (number): Records matching, across every page
- `total_pages` (number): How many pages there are

**Example output**

```json
{
  "count": 1,
  "from_fields": [
    {
      "created_on": "2026-03-02T07:30:49+0000",
      "domain": {
        "has_dmarc_warning": false,
        "status": "confirmed"
      },
      "email": "news@example.com",
      "from_field_id": "V",
      "href": "https://api.getresponse.com/v3/from-fields/V",
      "is_active": true,
      "is_default": true,
      "name": "Example News",
      "rewritten_email": null
    }
  ],
  "has_more": false,
  "next_page": null,
  "page": 1,
  "per_page": 100,
  "total_count": 1,
  "total_pages": 1
}
```

### List newsletters

List newsletters and drafts with their subject, list, send date and delivery numbers.

**Inputs**

- List (`campaign_id`, text): Only include records on this contact list.
- Type (`newsletter_type`, text): Only include this kind of message. One of: `draft`, `broadcast`, `splittest` (A/B test), `automation`.
- Status (`status`, text): Only include enabled or disabled messages. One of: `enabled`, `disabled`.
- Subject contains (`subject`, text): Only include messages whose subject contains this.
- Created on or after (`created_from`, date): Only include records created on or after this date.
- Created on or before (`created_to`, date): Only include records created on or before this date.
- Sort by (`sort_by`, text): Order the messages by this field. One of: `createdOn` (Date created), `sendOn` (Send date).
- Sort direction (`sort_direction`, text): Ascending or descending. Defaults to descending. One of: `ASC` (Ascending), `DESC` (Descending).
- Results per page (`per_page`, number): How many records to return, 1-1000. Defaults to 100. From 1 to 1000. Default: `100`.
- Page (`page`, number): Which page to read, starting at 1. Use 'next_page' from a run. From 1 to 100000. Default: `1`.

**Outputs**

- `count` (number): Records on this page
- `has_more` (true/false): Whether a page follows
- `newsletters` (list): Newsletters
- `next_page` (number): The 'page' that reads the next page
- `page` (number): The page returned
- `per_page` (number): Page size used
- `total_count` (number): Records matching, across every page
- `total_pages` (number): How many pages there are

**Example output**

```json
{
  "count": 1,
  "has_more": false,
  "newsletters": [
    {
      "campaign": {
        "campaign_id": "V",
        "href": "https://api.getresponse.com/v3/campaigns/V",
        "name": "newsletter_subscribers"
      },
      "created_on": "2026-03-02T07:30:49+0000",
      "editor": "custom",
      "flags": [
        "clicktrack"
      ],
      "href": "https://api.getresponse.com/v3/newsletters/N3s",
      "name": "March update",
      "newsletter_id": "N3s",
      "send_metrics": {
        "click_rate": 7.1,
        "delivered": 118,
        "open_rate": 42.5,
        "sent": 120,
        "status": "finished",
        "total": 120
      },
      "send_on": "2026-03-14T07:00:00+0000",
      "status": "enabled",
      "subject": "What's new in March",
      "type": "draft"
    }
  ],
  "next_page": null,
  "page": 1,
  "per_page": 100,
  "total_count": 1,
  "total_pages": 1
}
```

### List time zones

List the time zones GetResponse can schedule a newsletter in, each with the GetResponse time-zone id, IANA name, UTC offset and country.

**Inputs**

- Search (`search`, text): Only include zones whose name or country contains this.

**Outputs**

- `count` (number): How many
- `timezones` (list): Time zones

**Example output**

```json
{
  "count": 1,
  "timezones": [
    {
      "country": "Poland",
      "name": "Europe/Warsaw",
      "offset": "+01:00",
      "timezone_id": 282
    }
  ]
}
```

### Send newsletter draft

Send a draft newsletter now, or schedule it. It goes to the draft's own list unless you choose others. This emails real people.

**Inputs**

- Newsletter ID (`newsletter_id`, text, required): The newsletter's id, from List newsletters or an earlier step.
- Send to lists (`recipient_campaign_ids`, list): The lists that receive the message. Defaults to the newsletter's own list.
- Send at (`send_at`, date and time): Schedule the send for this date and time. Leave empty to send now.
- Schedule time zone (`time_zone_id`, text): The time zone GetResponse records the schedule in. The send happens at the moment picked either way; defaults to UTC.

**Outputs**

- `campaign` (object): The list the record belongs to
- `click_tracks` (list): Tracked links
- `content` (object): Body
- `created_on` (text): When it was created
- `editor` (text): Editor used
- `flags` (list): clicktrack, google_analytics
- `from_field` (object): Sender
- `href` (text): API URL
- `name` (text): Internal name
- `newsletter_id` (text): Newsletter id
- `reply_to` (object): Reply-to
- `send_metrics` (object): Delivery numbers
- `send_on` (text): When it is or was sent
- `send_settings` (object): Who it goes to and when
- `status` (text): enabled or disabled
- `subject` (text): Subject line
- `type` (text): draft or broadcast

**Example output**

```json
{
  "campaign": {
    "campaign_id": "V",
    "href": "https://api.getresponse.com/v3/campaigns/V",
    "name": "newsletter_subscribers"
  },
  "content": {
    "html": "<p>Hello</p>",
    "plain": "Hello"
  },
  "created_on": "2026-03-02T07:30:49+0000",
  "editor": "custom",
  "flags": [
    "clicktrack"
  ],
  "from_field": {
    "from_field_id": "V"
  },
  "href": "https://api.getresponse.com/v3/newsletters/N3s",
  "name": "March update",
  "newsletter_id": "N3s",
  "send_metrics": {
    "click_rate": 7.1,
    "delivered": 118,
    "open_rate": 42.5,
    "sent": 120,
    "status": "finished",
    "total": 120
  },
  "send_on": "2026-03-14T07:00:00+0000",
  "send_settings": {
    "selected_campaigns": [
      "V"
    ],
    "time_travel": false
  },
  "status": "enabled",
  "subject": "What's new in March",
  "type": "broadcast"
}
```

### Set contact custom field

Add or change one custom field's value on a contact. The contact's other custom fields are kept.

**Inputs**

- Contact ID (`contact_id`, text, required): The contact's id, from List contacts or an earlier step. The contact's API URL (ending in the id) also works.
- Custom field (`custom_field_id`, text, required): The custom field to set.
- Values (`values`, list, required): The value to store. A multi-select field takes several; a dropdown or radio field only takes one of its own values.

**Outputs**

- `contact_id` (text): Contact id
- `count` (number): How many fields
- `custom_fields` (list): The contact's custom fields now

**Example output**

```json
{
  "contact_id": "pV3r",
  "count": 1,
  "custom_fields": [
    {
      "custom_field_id": "pas",
      "values": [
        "blue"
      ]
    }
  ]
}
```

### Update contact

Change a contact's name, email, note or autoresponder day, or move them to another list. Custom fields and tags are left untouched; use Set contact custom field to change a field.

**Inputs**

- Contact ID (`contact_id`, text, required): The contact's id, from List contacts or an earlier step. The contact's API URL (ending in the id) also works.
- Name (`name`, text): New name. Leave empty to keep the current one.
- Email (`email`, text): New email address. Leave empty to keep it.
- Move to list (`campaign_id`, text): Move the contact to this list.
- Autoresponder day (`day_of_cycle`, number): Start the contact on the list's autoresponder cycle at this day (0 is the first day). Leave empty to keep them off the cycle. From 0 to 10000.
- Note (`note`, text): A note on the contact, up to 255 characters.
- Consents to open tracking (`open_tracking_consent`, true/false): Whether the contact agreed to have email opens tracked.

**Outputs**

- `activities` (text): API URL of the contact's activities
- `campaign` (object): The list the record belongs to
- `changed_on` (text): When the contact last changed
- `contact_id` (text): Contact id
- `created_on` (text): When the contact was added
- `custom_field_values` (list): Custom field values
- `day_of_cycle` (text): Autoresponder cycle day, if on one
- `email` (text): Email address
- `engagement_score` (number): Engagement score, 1-5
- `geolocation` (object): Where the contact signed up from
- `href` (text): API URL of the contact
- `ip_address` (text): Sign-up IP address
- `name` (text): Name
- `note` (text): Note
- `origin` (text): How the contact was added, such as api or import
- `scoring` (number): Contact score (Marketer plan and up)
- `tags` (list): Tags on the contact
- `time_zone` (text): The contact's time zone

**Example output**

```json
{
  "activities": "https://api.getresponse.com/v3/contacts/pV3r/activities",
  "campaign": {
    "campaign_id": "V",
    "href": "https://api.getresponse.com/v3/campaigns/V",
    "name": "newsletter_subscribers"
  },
  "changed_on": "2026-03-04T10:12:01+0000",
  "contact_id": "pV3r",
  "created_on": "2026-03-02T07:30:49+0000",
  "custom_field_values": [
    {
      "custom_field_id": "pas",
      "name": "favourite_colour",
      "type": "text",
      "value": [
        "blue"
      ],
      "value_type": "string",
      "values": [
        "blue"
      ]
    }
  ],
  "day_of_cycle": null,
  "email": "jane@example.com",
  "engagement_score": 3,
  "href": "https://api.getresponse.com/v3/contacts/pV3r",
  "ip_address": "1.2.3.4",
  "name": "Jane Doe",
  "note": null,
  "origin": "api",
  "tags": [],
  "time_zone": "Europe/Warsaw"
}
```
