协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
getresponse【开发与工程】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-ga…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Access the GetResponse API with managed OAuth authentication. Manage email marketing campaigns, contacts, newsletters, autoresponders, segments, and forms.
# 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_KEY
Environment Variable: Set your API key as MATON_API_KEY:
export MATON_API_KEY="YOUR_API_KEY"
Manage your GetResponse OAuth connections at https://ctrl.maton.ai.
python <<'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
python <<'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
python <<'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:
{
"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.
python <<'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:
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"]}')
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.
GET /getresponse/v3/accounts
GET /getresponse/v3/accounts/billing
Campaigns in GetResponse are equivalent to email lists/audiences.
GET /getresponse/v3/campaigns
With pagination:
GET /getresponse/v3/campaigns?page=1&perPage=100
GET /getresponse/v3/campaigns/{campaignId}
POST /getresponse/v3/campaigns
Content-Type: application/json
{
"name": "My Campaign"
}
GET /getresponse/v3/contacts
With campaign filter:
GET /getresponse/v3/contacts?query[campaignId]={campaignId}
With pagination:
GET /getresponse/v3/contacts?page=1&perPage=100
With sorting:
GET /getresponse/v3/contacts?sort[createdOn]=desc
GET /getresponse/v3/contacts/{contactId}
POST /getresponse/v3/contacts
Content-Type: application/json
{
"email": "john@example.com",
"name": "John Doe",
"campaign": {
"campaignId": "abc123"
},
"customFieldValues": [
{
"customFieldId": "xyz789",
"value": ["Custom Value"]
}
]
}
POST /getresponse/v3/contacts/{contactId}
Content-Type: application/json
{
"name": "John Smith",
"customFieldValues": [
{
"customFieldId": "xyz789",
"value": ["Updated Value"]
}
]
}
DELETE /getresponse/v3/contacts/{contactId}
GET /getresponse/v3/contacts/{contactId}/activities
GET /getresponse/v3/custom-fields
GET /getresponse/v3/custom-fields/{customFieldId}
POST /getresponse/v3/custom-fields
Content-Type: application/json
{
"name": "company",
"type": "text",
"hidden": false,
"values": []
}
GET /getresponse/v3/newsletters
POST /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"
}
POST /getresponse/v3/newsletters/send-draft
Content-Type: application/json
{
"messageId": "newsletter123",
"sendOn": "2026-02-15T10:00:00Z"
}
GET /getresponse/v3/rss-newsletters
GET /getresponse/v3/tags
GET /getresponse/v3/tags/{tagId}
POST /getresponse/v3/tags
Content-Type: application/json
{
"name": "VIP Customer"
}
POST /getresponse/v3/tags/{tagId}
Content-Type: application/json
{
"name": "Premium Customer"
}
DELETE /getresponse/v3/tags/{tagId}
POST /getresponse/v3/contacts/{contactId}/tags
Content-Type: application/json
{
"tags": [
{"tagId": "abc123"},
{"tagId": "xyz789"}
]
}
GET /getresponse/v3/autoresponders
GET /getresponse/v3/autoresponders/{autoresponderId}
POST /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!"
}
}
POST /getresponse/v3/autoresponders/{autoresponderId}
Content-Type: application/json
{
"subject": "Updated Welcome Email"
}
DELETE /getresponse/v3/autoresponders/{autoresponderId}
GET /getresponse/v3/autoresponders/{autoresponderId}/statistics
GET /getresponse/v3/autoresponders/statistics
GET /getresponse/v3/from-fields
GET /getresponse/v3/from-fields/{fromFieldId}
Note: Transactional email endpoints may require additional OAuth scopes that are not included in the default authorization.
GET /getresponse/v3/transactional-emails
POST /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!"
}
}
GET /getresponse/v3/transactional-emails/{transactionalEmailId}
GET /getresponse/v3/transactional-emails/statistics
GET /getresponse/v3/imports
POST /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"
}
]
}
GET /getresponse/v3/imports/{importId}
GET /getresponse/v3/workflow
GET /getresponse/v3/workflow/{workflowId}
POST /getresponse/v3/workflow/{workflowId}
Content-Type: application/json
{
"status": "enabled"
}
GET /getresponse/v3/search-contacts
POST /getresponse/v3/search-contacts
Content-Type: application/json
{
"name": "Active Subscribers",
"subscribersType": ["subscribed"],
"sectionLogicOperator": "or",
"section": []
}
GET /getresponse/v3/search-contacts/{searchContactId}
POST /getresponse/v3/search-contacts/{searchContactId}
Content-Type: application/json
{
"name": "Updated Segment Name"
}
DELETE /getresponse/v3/search-contacts/{searchContactId}
GET /getresponse/v3/search-contacts/{searchContactId}/contacts
POST /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.
GET /getresponse/v3/forms
GET /getresponse/v3/forms/{formId}
GET /getresponse/v3/webforms
GET /getresponse/v3/webforms/{webformId}
GET /getresponse/v3/sms
POST /getresponse/v3/sms
Content-Type: application/json
{
"recipients": {
"campaignId": "abc123"
},
"content": {
"message": "Your SMS message content"
},
"sendOn": "2026-02-15T10:00:00Z"
}
GET /getresponse/v3/sms/{smsId}
GET /getresponse/v3/statistics/sms/{smsId}
GET /getresponse/v3/shops
POST /getresponse/v3/shops
Content-Type: application/json
{
"name": "My Store",
"locale": "en_US",
"currency": "USD"
}
GET /getresponse/v3/shops/{shopId}
GET /getresponse/v3/shops/{shopId}/products
POST /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
}
]
}
GET /getresponse/v3/shops/{shopId}/orders
POST /getresponse/v3/shops/{shopId}/orders
Content-Type: application/json
{
"contactId": "abc123",
"totalPrice": 99.99,
"currency": "USD",
"status": "completed"
}
GET /getresponse/v3/webinars
GET /getresponse/v3/webinars/{webinarId}
GET /getresponse/v3/lps
GET /getresponse/v3/lps/{lpsId}
GET /getresponse/v3/statistics/lps/{lpsId}/performance
Use page and perPage query parameters for pagination:
GET /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 numberconst 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();
import 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:echo $MATON_API_KEY
python <<'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/contacts