Install any skill in seconds. Free to start, no credit card required.
Get Started Free →GetResponse API integration with managed OAuth. Manage email marketing campaigns, contacts, newsletters, autoresponders, and segments. Use this skill when users want to manage email lists, send newsletters, create campaigns, or work with contacts in GetResponse. For other third party apps, use the api-gateway skill (https://clawhub.ai/byungkyu/api-gateway).
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 213% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 323% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 257% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 205% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 152% | 0% |
Access the GetResponse API with managed OAuth authentication. Manage email marketing campaigns, contacts, newsletters, autoresponders, segments, and forms.
bash# List campaigns python <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://gateway.maton.ai/getresponse/v3/campaigns') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF
https://gateway.maton.ai/getresponse/{native-api-path}Replace {native-api-path} with the actual GetResponse API endpoint path. The gateway proxies requests to api.getresponse.com and automatically injects your OAuth token.
All requests require the Maton API key in the Authorization header:
Authorization: Bearer $MATON_API_KEYEnvironment Variable: Set your API key as MATON_API_KEY:
bashexport MATON_API_KEY="YOUR_API_KEY"
Manage your GetResponse OAuth connections at https://ctrl.maton.ai.
bashpython <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections?app=getresponse&status=ACTIVE') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF
bashpython <<'EOF' import urllib.request, os, json data = json.dumps({'app': 'getresponse'}).encode() req = urllib.request.Request('https://ctrl.maton.ai/connections', data=data, method='POST') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') req.add_header('Content-Type', 'application/json') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF
bashpython <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF
Response:
json{ "connection": { "connection_id": "21fd90f9-5935-43cd-b6c8-bde9d915ca80", "status": "ACTIVE", "creation_time": "2025-12-08T07:20:53.488460Z", "last_updated_time": "2026-01-31T20:03:32.593153Z", "url": "https://connect.maton.ai/?session_token=...", "app": "getresponse", "metadata": {} } }
Open the returned url in a browser to complete OAuth authorization.
bashpython <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections/{connection_id}', method='DELETE') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF
If you have multiple GetResponse connections, specify which one to use with the Maton-Connection header:
bashpython <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://gateway.maton.ai/getresponse/v3/campaigns') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') req.add_header('Maton-Connection', '21fd90f9-5935-43cd-b6c8-bde9d915ca80') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF
If omitted, the gateway uses the default (oldest) active connection.
bashGET /getresponse/v3/accounts
bashGET /getresponse/v3/accounts/billing
Campaigns in GetResponse are equivalent to email lists/audiences.
bashGET /getresponse/v3/campaigns
With pagination:
bashGET /getresponse/v3/campaigns?page=1&perPage=100
bashGET /getresponse/v3/campaigns/{campaignId}
bashPOST /getresponse/v3/campaigns Content-Type: application/json { "name": "My Campaign" }
bashGET /getresponse/v3/contacts
With campaign filter:
bashGET /getresponse/v3/contacts?query[campaignId]={campaignId}
With pagination:
bashGET /getresponse/v3/contacts?page=1&perPage=100
With sorting:
bashGET /getresponse/v3/contacts?sort[createdOn]=desc
bashGET /getresponse/v3/contacts/{contactId}
bashPOST /getresponse/v3/contacts Content-Type: application/json { "email": "john@example.com", "name": "John Doe", "campaign": { "campaignId": "abc123" }, "customFieldValues": [ { "customFieldId": "xyz789", "value": ["Custom Value"] } ] }
bashPOST /getresponse/v3/contacts/{contactId} Content-Type: application/json { "name": "John Smith", "customFieldValues": [ { "customFieldId": "xyz789", "value": ["Updated Value"] } ] }
bashDELETE /getresponse/v3/contacts/{contactId}
bashGET /getresponse/v3/contacts/{contactId}/activities
bashGET /getresponse/v3/custom-fields
bashGET /getresponse/v3/custom-fields/{customFieldId}
bashPOST /getresponse/v3/custom-fields Content-Type: application/json { "name": "company", "type": "text", "hidden": false, "values": [] }
bashGET /getresponse/v3/newsletters
bashPOST /getresponse/v3/newsletters Content-Type: application/json { "subject": "Newsletter Subject", "name": "Internal Newsletter Name", "campaign": { "campaignId": "abc123" }, "content": { "html": "<html><body>Newsletter content</body></html>", "plain": "Newsletter content" }, "sendOn": "2026-02-15T10:00:00Z" }
bashPOST /getresponse/v3/newsletters/send-draft Content-Type: application/json { "messageId": "newsletter123", "sendOn": "2026-02-15T10:00:00Z" }
bashGET /getresponse/v3/rss-newsletters
bashGET /getresponse/v3/tags
bashGET /getresponse/v3/tags/{tagId}
bashPOST /getresponse/v3/tags Content-Type: application/json { "name": "VIP Customer" }
bashPOST /getresponse/v3/tags/{tagId} Content-Type: application/json { "name": "Premium Customer" }
bashDELETE /getresponse/v3/tags/{tagId}
bashPOST /getresponse/v3/contacts/{contactId}/tags Content-Type: application/json { "tags": [ {"tagId": "abc123"}, {"tagId": "xyz789"} ] }
bashGET /getresponse/v3/autoresponders
bashGET /getresponse/v3/autoresponders/{autoresponderId}
bashPOST /getresponse/v3/autoresponders Content-Type: application/json { "name": "Welcome Email", "subject": "Welcome to our list!", "campaign": { "campaignId": "abc123" }, "triggerSettings": { "dayOfCycle": 0 }, "content": { "html": "<html><body>Welcome!</body></html>", "plain": "Welcome!" } }
bashPOST /getresponse/v3/autoresponders/{autoresponderId} Content-Type: application/json { "subject": "Updated Welcome Email" }
bashDELETE /getresponse/v3/autoresponders/{autoresponderId}
bashGET /getresponse/v3/autoresponders/{autoresponderId}/statistics
bashGET /getresponse/v3/autoresponders/statistics
bashGET /getresponse/v3/from-fields
bashGET /getresponse/v3/from-fields/{fromFieldId}
Note: Transactional email endpoints may require additional OAuth scopes that are not included in the default authorization.
bashGET /getresponse/v3/transactional-emails
bashPOST /getresponse/v3/transactional-emails Content-Type: application/json { "fromField": { "fromFieldId": "abc123" }, "subject": "Your Order Confirmation", "recipients": { "to": "customer@example.com" }, "content": { "html": "<html><body>Order confirmed!</body></html>", "plain": "Order confirmed!" } }
bashGET /getresponse/v3/transactional-emails/{transactionalEmailId}
bashGET /getresponse/v3/transactional-emails/statistics
bashGET /getresponse/v3/imports
bashPOST /getresponse/v3/imports Content-Type: application/json { "campaign": { "campaignId": "abc123" }, "contacts": [ { "email": "user1@example.com", "name": "User One" }, { "email": "user2@example.com", "name": "User Two" } ] }
bashGET /getresponse/v3/imports/{importId}
bashGET /getresponse/v3/workflow
bashGET /getresponse/v3/workflow/{workflowId}
bashPOST /getresponse/v3/workflow/{workflowId} Content-Type: application/json { "status": "enabled" }
bashGET /getresponse/v3/search-contacts
bashPOST /getresponse/v3/search-contacts Content-Type: application/json { "name": "Active Subscribers", "subscribersType": ["subscribed"], "sectionLogicOperator": "or", "section": [] }
bashGET /getresponse/v3/search-contacts/{searchContactId}
bashPOST /getresponse/v3/search-contacts/{searchContactId} Content-Type: application/json { "name": "Updated Segment Name" }
bashDELETE /getresponse/v3/search-contacts/{searchContactId}
bashGET /getresponse/v3/search-contacts/{searchContactId}/contacts
bashPOST /getresponse/v3/search-contacts/contacts Content-Type: application/json { "subscribersType": ["subscribed"], "sectionLogicOperator": "or", "section": [] }
Note: Forms endpoints may require additional OAuth scopes (form_view, form_design, form_select) that are not included in the default authorization.
bashGET /getresponse/v3/forms
bashGET /getresponse/v3/forms/{formId}
bashGET /getresponse/v3/webforms
bashGET /getresponse/v3/webforms/{webformId}
bashGET /getresponse/v3/sms
bashPOST /getresponse/v3/sms Content-Type: application/json { "recipients": { "campaignId": "abc123" }, "content": { "message": "Your SMS message content" }, "sendOn": "2026-02-15T10:00:00Z" }
bashGET /getresponse/v3/sms/{smsId}
bashGET /getresponse/v3/statistics/sms/{smsId}
bashGET /getresponse/v3/shops
bashPOST /getresponse/v3/shops Content-Type: application/json { "name": "My Store", "locale": "en_US", "currency": "USD" }
bashGET /getresponse/v3/shops/{shopId}
bashGET /getresponse/v3/shops/{shopId}/products
bashPOST /getresponse/v3/shops/{shopId}/products Content-Type: application/json { "name": "Product Name", "url": "https://example.com/product", "variants": [ { "name": "Default", "price": 29.99, "priceTax": 32.99 } ] }
bashGET /getresponse/v3/shops/{shopId}/orders
bashPOST /getresponse/v3/shops/{shopId}/orders Content-Type: application/json { "contactId": "abc123", "totalPrice": 99.99, "currency": "USD", "status": "completed" }
bashGET /getresponse/v3/webinars
bashGET /getresponse/v3/webinars/{webinarId}
bashGET /getresponse/v3/lps
bashGET /getresponse/v3/lps/{lpsId}
bashGET /getresponse/v3/statistics/lps/{lpsId}/performance
Use page and perPage query parameters for pagination:
bashGET /getresponse/v3/contacts?page=1&perPage=100
page - Page number (starts at 1)perPage - Number of records per page (max 1000)Response headers include pagination info:
TotalCount - Total number of recordsTotalPages - Total number of pagesCurrentPage - Current page numberjavascriptconst response = await fetch( 'https://gateway.maton.ai/getresponse/v3/contacts?perPage=10', { headers: { 'Authorization': `Bearer ${process.env.MATON_API_KEY}` } } ); const contacts = await response.json();
pythonimport os import requests response = requests.get( 'https://gateway.maton.ai/getresponse/v3/contacts', headers={'Authorization': f'Bearer {os.environ["MATON_API_KEY"]}'}, params={'perPage': 10} ) contacts = response.json()
2026-02-15T10:00:00Z)curl -g when URLs contain brackets to disable glob parsingjq or other commands, environment variables like $MATON_API_KEY may not expand correctly in some shell environments| Status | Meaning | |--------|---------| | 400 | Missing GetResponse connection or invalid request | | 401 | Invalid or missing Maton API key | | 404 | Resource not found | | 409 | Conflict (e.g., contact already exists) | | 429 | Rate limited | | 4xx/5xx | Passthrough error from GetResponse API |
MATON_API_KEY environment variable is set:bashecho $MATON_API_KEY
bashpython <<'EOF' import urllib.request, os, json req = urllib.request.Request('https://ctrl.maton.ai/connections') req.add_header('Authorization', f'Bearer {os.environ["MATON_API_KEY"]}') print(json.dumps(json.load(urllib.request.urlopen(req)), indent=2)) EOF
getresponse. For example:https://gateway.maton.ai/getresponse/v3/contactshttps://gateway.maton.ai/v3/contactsOther measured skills in the registry, with their headline benchmark lift.