openapi: 3.2.0
info:
title: AWeber Web Forms Webforms API
version: '1.0'
description: 'We are constantly working to improve this documentation. If you have
feedback and questions, please contact the AWeber API team at
api@aweber.com.
The AWeber API is a REST API that uses the OAuth 2.0 authentication model. We also offer webhooks.
Please see the below resources for further information:
- Terms of Service
- Showcasing an Integration
- Knowledge Base
- API Status Page
'
contact:
name: AWeber API Team
email: api@aweber.com
url: https://api.aweber.com/
servers:
- url: https://api.aweber.com/1.0
description: v1 API endpoints
security:
- OAuth 2.0: []
tags:
- name: Webforms
description: '### What is it?
Represents the collection of sign-up forms associated with the AWeber Customer
Account''s lists.
Webforms are sets of customized HTML and javascript that are used to put up a sign-up forms
on a customer''s website. The Webform can be modified in the AWeber Control Panel and if you
include the javascript source link on any web page, that form will be displayed.
Webforms can also be subject to split-tests to compare conversion effectiveness. Webforms that
belong to a split test are listed as *components* of the split test and can be retrieved by
following the `components_collection_link` of the split test. The statistics of each component
include only displays of that Webform where it was displayed from a split test.
Use this set of resources to retrieve information about the available sign-up forms and associated
split tests. The collection responses are sorted by the appropriate identifier and paginated using
`next_collection_link` and `prev_collection_link` properties. See
[How Collections are Represented](#collection-representation) for details on collection traversal.
### Related endpoints
* [Webforms](#tag/Webforms)
### Related code examples
* [Get Webforms Detail](#tag/Get-Webforms-Detail)
'
paths:
/accounts/{accountId}?ws.op=getWebForms:
get:
summary: Get webforms for account
description: "This endpoint is used to retrieve webforms for all lists on an account.\n\nCheck out related examples:\n\n * Get Webforms Detail (\n Python |\n PHP |\n Postman |\n C#.NET |\n Ruby |\n Node.js )"
tags:
- Webforms
parameters:
- $ref: '#/components/parameters/accountId'
- name: ws.op
in: query
required: true
description: The method name - expecting "getWebForms"
schema:
type: string
enum:
- getWebForms
- name: ws.size
in: query
required: true
description: The pagination total entries to retrieve
schema:
type: integer
format: int32
minimum: 1
maximum: 100
default: 100
- name: ws.start
in: query
required: true
description: The pagination starting offset
schema:
type: integer
format: int32
minimum: 0
default: 0
security:
- OAuth 2.0:
- list.read
x-code-samples:
- lang: Shell
source: "curl -G \\\n https://api.aweber.com/1.0/accounts/{accountId} \\\n -d ws.op=getWebForms \\\n -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}'\n"
- lang: Python
source: "headers = {'Accept': 'application/json',\n 'User-Agent': 'AWeber-Python-code-sample/1.0',\n 'Authorization': f'Bearer {access_token}'}\nurl = f'https://api.aweber.com/1.0/accounts/{account_id}'\nparams = urlencode({'ws.op': 'getWebForms'})\nsubs_url = '{}?{}'.format(url, params)\nresponse = requests.get(subs_url, headers=headers)\nprint(response.json())\n"
- lang: PHP
source: "$headers = [\n 'User-Agent' => 'AWeber-PHP-code-sample/1.0',\n 'Accept' => 'application/json',\n 'Authorization' => 'Bearer $token',\n];\n$url = \"https://api.aweber.com/1.0/accounts/{$accountId}\";\n$params = ['ws.op' => 'getWebForms'];\n$subsUrl = $url . '?' . http_build_query($params);\n$response = $client->get($subsUrl, ['headers' => $headers]);\n$body = json_decode($response->getBody(), true);\nprint_r($body);\n"
- lang: C#
source: "const string url = \"https://api.aweber.com/1.0/accounts/{accountId}\";\nvar queryParams = new Dictionary\n{\n {\"ws.op\", \"getWebForms\"}\n};\nvar encodedQueryParams = string.Join(\"&\", queryParams.Select(\n kvp => string.Format(\"{0}={1}\", kvp.Key, Uri.EscapeDataString(kvp.Value))));\nvar getUrl = string.Format(\"{0}?{1}\", url, encodedQueryParams);\nvar request = new HttpRequestMessage(HttpMethod.Get, getUrl);\nrequest.Headers.Add(\"Accept\",\"application/json\");\nrequest.Headers.Add(\"User-Agent\",\"AWeber-CSharp-code-sample/1.0\");\nrequest.Headers.Add(\"Authorization\", $\"Bearer {Token}\");\nvar response = await Client.SendAsync(request);\nConsole.Write(response.Content.ReadAsStringAsync());\n"
- lang: JavaScript
label: Node.js
source: "const headers = {\n \"Accept\": \"application/json\",\n \"User-Agent\": \"AWeber-Node-code-sample/1.0\",\n \"Authorization\": `Bearer ${accessToken}`\n};\nquerystring = require(\"querystring\");\nconst params = querystring.stringify({\n 'ws.op': 'getWebForms'\n});\nconst url = `https://api.aweber.com/1.0/accounts/${accountId}?${params}`;\nfetch(url, { headers: headers })\n .then(response => response.json())\n .then(data => {\n console.log(data)\n})\n"
- lang: Ruby
source: "headers = {\n 'Accept': 'application/json',\n 'User-Agent': 'AWeber-Ruby-code-sample/1.0',\n 'Authorization': \"Bearer #{access_token}\"\n}\nresponse = Faraday.get(\n \"https://api.aweber.com/1.0/accounts/#{account_id}\", {\n 'ws.op': 'getWebForms'\n }\n) do |req|\n req.headers = headers\nend\nputs response.body\n"
responses:
'200':
description: The request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Webforms'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/NotAllowed'
'410':
$ref: '#/components/responses/BlockedError'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
operationId: getWebformsForAccount
/accounts/{accountId}?ws.op=getWebFormSplitTests:
get:
summary: Get split tests for account
description: "This endpoint is used to retrieve webform split tests for all lists on an account.\n\nCheck out related examples:\n\n * Get Webforms Detail (\n Python |\n PHP |\n Postman |\n C#.NET |\n Ruby |\n Node.js )"
tags:
- Webforms
parameters:
- $ref: '#/components/parameters/accountId'
- name: ws.op
in: query
required: true
description: The method name - expecting "getWebFormSplitTests"
schema:
type: string
enum:
- getWebFormSplitTests
- name: ws.size
in: query
required: true
description: The pagination total entries to retrieve
schema:
type: integer
format: int32
minimum: 1
maximum: 100
default: 100
- name: ws.start
in: query
required: true
description: The pagination starting offset
schema:
type: integer
format: int32
minimum: 0
default: 0
security:
- OAuth 2.0:
- list.read
x-code-samples:
- lang: Shell
source: "curl -G \\\n https://api.aweber.com/1.0/accounts/{accountId} \\\n -d ws.op=getWebFormSplitTests \\\n -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}'\n"
- lang: Python
source: "headers = {'Accept': 'application/json',\n 'User-Agent': 'AWeber-Python-code-sample/1.0',\n 'Authorization': f'Bearer {access_token}'}\nurl = f'https://api.aweber.com/1.0/accounts/{account_id}'\nparams = urlencode({'ws.op': 'getWebFormSplitTests'})\nsubs_url = '{}?{}'.format(url, params)\nresponse = requests.get(subs_url, headers=headers)\nprint(response.json())\n"
- lang: PHP
source: "$headers = [\n 'User-Agent' => 'AWeber-PHP-code-sample/1.0',\n 'Accept' => 'application/json',\n 'Authorization' => 'Bearer $token',\n];\n$url = \"https://api.aweber.com/1.0/accounts/{$accountId}\";\n$params = ['ws.op' => 'getWebFormSplitTests'];\n$subsUrl = $url . '?' . http_build_query($params);\n$response = $client->get($subsUrl, ['headers' => $headers]);\n$body = json_decode($response->getBody(), true);\nprint_r($body);\n"
- lang: C#
source: "const string url = \"https://api.aweber.com/1.0/accounts/{accountId}\";\nvar queryParams = new Dictionary\n{\n {\"ws.op\", \"getWebFormSplitTests\"}\n};\nvar encodedQueryParams = string.Join(\"&\", queryParams.Select(\n kvp => string.Format(\"{0}={1}\", kvp.Key, Uri.EscapeDataString(kvp.Value))));\nvar getUrl = string.Format(\"{0}?{1}\", url, encodedQueryParams);\nvar request = new HttpRequestMessage(HttpMethod.Get, getUrl);\nrequest.Headers.Add(\"Accept\",\"application/json\");\nrequest.Headers.Add(\"User-Agent\",\"AWeber-CSharp-code-sample/1.0\");\nrequest.Headers.Add(\"Authorization\", $\"Bearer {Token}\");\nvar response = await Client.SendAsync(request);\nConsole.Write(response.Content.ReadAsStringAsync());\n"
- lang: JavaScript
label: Node.js
source: "const headers = {\n \"Accept\": \"application/json\",\n \"User-Agent\": \"AWeber-Node-code-sample/1.0\",\n \"Authorization\": `Bearer ${accessToken}`\n};\nquerystring = require(\"querystring\");\nconst params = querystring.stringify({\n 'ws.op': 'getWebFormSplitTests'\n});\nconst url = `https://api.aweber.com/1.0/accounts/${accountId}?${params}`;\nfetch(url, { headers: headers })\n .then(response => response.json())\n .then(data => {\n console.log(data)\n})\n"
- lang: Ruby
source: "headers = {\n 'Accept': 'application/json',\n 'User-Agent': 'AWeber-Ruby-code-sample/1.0',\n 'Authorization': \"Bearer #{access_token}\"\n}\nresponse = Faraday.get(\n \"https://api.aweber.com/1.0/accounts/#{account_id}\", {\n 'ws.op': 'getWebFormSplitTests'\n }\n) do |req|\n req.headers = headers\nend\nputs response.body\n"
responses:
'200':
description: The request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/WebFormSplitTests'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/NotAllowed'
'410':
$ref: '#/components/responses/BlockedError'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
operationId: getSplitTestsForAccount
/accounts/{accountId}/lists/{listId}/web_forms:
get:
summary: Get webforms for list
description: "This endpoint is used to retrieve a collection of webforms for a list\n\nCheck out related examples:\n\n * Get Webforms Detail (\n Python |\n PHP |\n Postman |\n C#.NET |\n Ruby |\n Node.js )"
tags:
- Webforms
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/listId'
- $ref: '#/components/parameters/wsStart'
- $ref: '#/components/parameters/wsSize'
security:
- OAuth 2.0:
- list.read
x-code-samples:
- lang: Shell
source: "curl -G \\\n https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_forms \\\n -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}'\n"
- lang: Python
source: "headers = {'Accept': 'application/json',\n 'User-Agent': 'AWeber-Python-code-sample/1.0',\n 'Authorization': f'Bearer {access_token}'}\nurl = (f'https://api.aweber.com/1.0/accounts/{account_id}'\n f'/lists/{list_id}/web_forms')\nresponse = requests.get(url, headers=headers)\nprint(response.json())\n"
- lang: PHP
source: "$headers = [\n 'User-Agent' => 'AWeber-PHP-code-sample/1.0',\n 'Accept' => 'application/json',\n 'Authorization' => 'Bearer $token',\n];\n$url = \"https://api.aweber.com/1.0/accounts/{$accountId}/lists/{$listId}/web_forms\";\n$response = $client->get($url, ['headers' => $headers]);\n$body = json_decode($response->getBody(), true);\nprint_r($body);\n"
- lang: C#
source: 'const string url = "https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_forms";
var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Add("Accept","application/json");
request.Headers.Add("User-Agent","AWeber-CSharp-code-sample/1.0");
request.Headers.Add("Authorization", $"Bearer {Token}");
var response = await Client.SendAsync(request);
Console.Write(response.Content.ReadAsStringAsync());
'
- lang: JavaScript
label: Node.js
source: "const headers = {\n \"Accept\": \"application/json\",\n \"User-Agent\": \"AWeber-Node-code-sample/1.0\",\n \"Authorization\": `Bearer ${accessToken}`\n};\nconst url = `https://api.aweber.com/1.0/accounts/${accountId}/lists/${listId}/web_forms`;\nfetch(url, { headers: headers })\n .then(response => response.json())\n .then(data => {\n console.log(data)\n})\n"
- lang: Ruby
source: "headers = {\n 'Accept': 'application/json',\n 'User-Agent': 'AWeber-Ruby-code-sample/1.0',\n 'Authorization': \"Bearer #{access_token}\"\n}\nresponse = Faraday.get(\n \"https://api.aweber.com/1.0/accounts/#{account_id}/\" \\\n \"lists/#{list_id}/web_forms\"\n) do |req|\n req.headers = headers\nend\nputs response.body\n"
responses:
'200':
description: The request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Webforms'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/NotAllowed'
'410':
$ref: '#/components/responses/BlockedError'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
operationId: getWebformsForList
/accounts/{accountId}/lists/{listId}/web_forms/{webformId}:
get:
summary: Get webform for list
description: "This endpoint is used to retrieve single webform for a list\n\nCheck out related examples:\n\n * Get Webforms Detail (\n Python |\n PHP |\n Postman |\n C#.NET |\n Ruby |\n Node.js )"
tags:
- Webforms
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/listId'
- $ref: '#/components/parameters/webformId'
x-code-samples:
- lang: Shell
source: "curl -G \\\n https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_forms/{webformId} \\\n -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}'\n"
- lang: Python
source: "headers = {'Accept': 'application/json',\n 'User-Agent': 'AWeber-Python-code-sample/1.0',\n 'Authorization': f'Bearer {access_token}'}\nurl = (f'https://api.aweber.com/1.0/accounts/{account_id}'\n f'/lists/{list_id}/web_forms/{webform_id}')\nresponse = requests.get(url, headers=headers)\nprint(response.json())\n"
- lang: PHP
source: "$headers = [\n 'User-Agent' => 'AWeber-PHP-code-sample/1.0',\n 'Accept' => 'application/json',\n 'Authorization' => 'Bearer $token',\n];\n$url = \"https://api.aweber.com/1.0/accounts/{$accountId}/lists/{$listId}/web_forms/{$webformId}\";\n$response = $client->get($url, ['headers' => $headers]);\n$body = json_decode($response->getBody(), true);\nprint_r($body);\n"
- lang: C#
source: 'const string url = "https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_forms/{webformId}";
var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Add("Accept","application/json");
request.Headers.Add("User-Agent","AWeber-CSharp-code-sample/1.0");
request.Headers.Add("Authorization", $"Bearer {Token}");
var response = await Client.SendAsync(request);
Console.Write(response.Content.ReadAsStringAsync());
'
- lang: JavaScript
label: Node.js
source: "const headers = {\n \"Accept\": \"application/json\",\n \"User-Agent\": \"AWeber-Node-code-sample/1.0\",\n \"Authorization\": `Bearer ${accessToken}`\n};\nconst url = `https://api.aweber.com/1.0/accounts/${accountId}/lists/${listId}/web_forms/${webFormId}`;\nfetch(url, { headers: headers })\n .then(response => response.json())\n .then(data => {\n console.log(data)\n})\n"
- lang: Ruby
source: "headers = {\n 'Accept': 'application/json',\n 'User-Agent': 'AWeber-Ruby-code-sample/1.0',\n 'Authorization': \"Bearer #{access_token}\"\n}\nresponse = Faraday.get(\n \"https://api.aweber.com/1.0/accounts/#{account_id}/\" \\\n \"lists/#{list_id}/web_forms/#{web_form_id}\"\n) do |req|\n req.headers = headers\nend\nputs response.body\n"
responses:
'200':
description: The request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/Webform'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/NotAllowed'
'410':
$ref: '#/components/responses/BlockedError'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
operationId: getWebformForList
/accounts/{accountId}/lists/{listId}/web_form_split_tests:
get:
summary: Get split tests for list
description: "This endpoint is used to retrieve webform split tests for a list.\n\nCheck out related examples:\n\n * Get Webforms Detail (\n Python |\n PHP |\n Postman |\n C#.NET |\n Ruby |\n Node.js )"
tags:
- Webforms
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/listId'
- $ref: '#/components/parameters/wsStart'
- $ref: '#/components/parameters/wsSize'
security:
- OAuth 2.0:
- list.read
x-code-samples:
- lang: Shell
source: "curl -G \\\n https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_form_split_tests \\\n -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}'\n"
- lang: Python
source: "headers = {'Accept': 'application/json',\n 'User-Agent': 'AWeber-Python-code-sample/1.0',\n 'Authorization': f'Bearer {access_token}'}\nurl = (f'https://api.aweber.com/1.0/accounts/{account_id}'\n f'/lists/{list_id}/web_form_split_tests')\nresponse = requests.get(url, headers=headers)\nprint(response.json())\n"
- lang: PHP
source: "$headers = [\n 'User-Agent' => 'AWeber-PHP-code-sample/1.0',\n 'Accept' => 'application/json',\n 'Authorization' => 'Bearer $token',\n];\n$url = \"https://api.aweber.com/1.0/accounts/{$accountId}/lists/{$listId}/web_form_split_tests\";\n$response = $client->get($url, ['headers' => $headers]);\n$body = json_decode($response->getBody(), true);\nprint_r($body);\n"
- lang: C#
source: 'const string url = "https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_form_split_tests";
var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Add("Accept","application/json");
request.Headers.Add("User-Agent","AWeber-CSharp-code-sample/1.0");
request.Headers.Add("Authorization", $"Bearer {Token}");
var response = await Client.SendAsync(request);
Console.Write(response.Content.ReadAsStringAsync());
'
- lang: JavaScript
label: Node.js
source: "const headers = {\n \"Accept\": \"application/json\",\n \"User-Agent\": \"AWeber-Node-code-sample/1.0\",\n \"Authorization\": `Bearer ${accessToken}`\n};\nconst url = `https://api.aweber.com/1.0/accounts/${accountId}/lists/${listId}/web_form_split_tests`;\nfetch(url, { headers: headers })\n .then(response => response.json())\n .then(data => {\n console.log(data)\n})\n"
- lang: Ruby
source: "headers = {\n 'Accept': 'application/json',\n 'User-Agent': 'AWeber-Ruby-code-sample/1.0',\n 'Authorization': \"Bearer #{access_token}\"\n}\nresponse = Faraday.get(\n \"https://api.aweber.com/1.0/accounts/#{account_id}/\" \\\n \"lists/#{list_id}/web_form_split_tests\"\n) do |req|\n req.headers = headers\nend\nputs response.body\n"
responses:
'200':
description: The request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/WebFormSplitTests'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/NotAllowed'
'410':
$ref: '#/components/responses/BlockedError'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
operationId: getSplitTestsForList
/accounts/{accountId}/lists/{listId}/web_form_split_tests/{splitTestId}:
get:
summary: Get split test for list
description: "This endpoint is used to retrieve a specific webform split test.\n\nCheck out related examples:\n\n * Get Webforms Detail (\n Python |\n PHP |\n Postman |\n C#.NET |\n Ruby |\n Node.js )"
tags:
- Webforms
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/listId'
- $ref: '#/components/parameters/splitTestId'
security:
- OAuth 2.0:
- list.read
x-code-samples:
- lang: Shell
source: "curl -G \\\n https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_form_split_tests/{splitTestId} \\\n -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}'\n"
- lang: Python
source: "headers = {'Accept': 'application/json',\n 'User-Agent': 'AWeber-Python-code-sample/1.0',\n 'Authorization': f'Bearer {access_token}'}\nurl = (f'https://api.aweber.com/1.0/accounts/{account_id}'\n f'/lists/{list_id}/web_form_split_tests/{split_test_id}')\nresponse = requests.get(url, headers=headers)\nprint(response.json())\n"
- lang: PHP
source: "$headers = [\n 'User-Agent' => 'AWeber-PHP-code-sample/1.0',\n 'Accept' => 'application/json',\n 'Authorization' => 'Bearer $token',\n];\n$url = \"https://api.aweber.com/1.0/accounts/{$accountId}/lists/{$listId}/web_form_split_tests/{$splitTestId}\";\n$response = $client->get($url, ['headers' => $headers]);\n$body = json_decode($response->getBody(), true);\nprint_r($body);\n"
- lang: C#
source: 'const string url = "https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_form_split_tests/{splitTestId}";
var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Add("Accept","application/json");
request.Headers.Add("User-Agent","AWeber-CSharp-code-sample/1.0");
request.Headers.Add("Authorization", $"Bearer {Token}");
var response = await Client.SendAsync(request);
Console.Write(response.Content.ReadAsStringAsync());
'
- lang: JavaScript
label: Node.js
source: "const headers = {\n \"Accept\": \"application/json\",\n \"User-Agent\": \"AWeber-Node-code-sample/1.0\",\n \"Authorization\": `Bearer ${accessToken}`\n};\nconst url = `https://api.aweber.com/1.0/accounts/${accountId}/lists/${listId}/web_form_split_tests/${splitTestId}`;\nfetch(url, { headers: headers })\n .then(response => response.json())\n .then(data => {\n console.log(data)\n})\n"
- lang: Ruby
source: "headers = {\n 'Accept': 'application/json',\n 'User-Agent': 'AWeber-Ruby-code-sample/1.0',\n 'Authorization': \"Bearer #{access_token}\"\n}\nresponse = Faraday.get(\n \"https://api.aweber.com/1.0/accounts/#{account_id}/\" \\\n \"lists/#{list_id}/web_form_split_tests/#{split_test_id}\"\n) do |req|\n req.headers = headers\nend\nputs response.body\n"
responses:
'200':
description: The request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/WebformSplitTest'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/NotAllowed'
'410':
$ref: '#/components/responses/BlockedError'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
operationId: getSplitTestForList
/accounts/{accountId}/lists/{listId}/web_form_split_tests/{splitTestId}/components:
get:
summary: Get split test components
description: "This endpoint is used to retrieve a collection of webform split test components.\n\nCheck out related examples:\n\n * Get Webforms Detail (\n Python |\n PHP |\n Postman |\n C#.NET |\n Ruby |\n Node.js )"
tags:
- Webforms
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/listId'
- $ref: '#/components/parameters/splitTestId'
- $ref: '#/components/parameters/wsStart'
- $ref: '#/components/parameters/wsSize'
security:
- OAuth 2.0:
- list.read
x-code-samples:
- lang: Shell
source: "curl -G \\\n https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_form_split_tests/{splitTestId}/components \\\n -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}'\n"
- lang: Python
source: "headers = {'Accept': 'application/json',\n 'User-Agent': 'AWeber-Python-code-sample/1.0',\n 'Authorization': f'Bearer {access_token}'}\nurl = (f'https://api.aweber.com/1.0/accounts/{account_id}'\n f'/lists/{list_id}/web_form_split_tests/{split_test_id}/components')\nresponse = requests.get(url, headers=headers)\nprint(response.json())\n"
- lang: PHP
source: "$headers = [\n 'User-Agent' => 'AWeber-PHP-code-sample/1.0',\n 'Accept' => 'application/json',\n 'Authorization' => 'Bearer $token',\n];\n$url = \"https://api.aweber.com/1.0/accounts/{$accountId}/lists/{$listId}/web_form_split_tests/{$splitTestId}/components\";\n$response = $client->get($url, ['headers' => $headers]);\n$body = json_decode($response->getBody(), true);\nprint_r($body);\n"
- lang: C#
source: 'const string url = "https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_form_split_tests/{splitTestId}/components";
var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Add("Accept","application/json");
request.Headers.Add("User-Agent","AWeber-CSharp-code-sample/1.0");
request.Headers.Add("Authorization", $"Bearer {Token}");
var response = await Client.SendAsync(request);
Console.Write(response.Content.ReadAsStringAsync());
'
- lang: JavaScript
label: Node.js
source: "const headers = {\n \"Accept\": \"application/json\",\n \"User-Agent\": \"AWeber-Node-code-sample/1.0\",\n \"Authorization\": `Bearer ${accessToken}`\n};\nconst url = `https://api.aweber.com/1.0/accounts/${accountId}/lists/${listId}/web_form_split_tests/${splitTestId}/components`;\nfetch(url, { headers: headers })\n .then(response => response.json())\n .then(data => {\n console.log(data)\n})\n"
- lang: Ruby
source: "headers = {\n 'Accept': 'application/json',\n 'User-Agent': 'AWeber-Ruby-code-sample/1.0',\n 'Authorization': \"Bearer #{access_token}\"\n}\nresponse = Faraday.get(\n \"https://api.aweber.com/1.0/accounts/#{account_id}/\" \\\n \"lists/#{list_id}/web_form_split_tests/#{split_test_id}/components\"\n) do |req|\n req.headers = headers\nend\nputs response.body\n"
responses:
'200':
description: The request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/WebformSplitTestComponents'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/NotAllowed'
'410':
$ref: '#/components/responses/BlockedError'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
operationId: getSplitTestComponents
/accounts/{accountId}/lists/{listId}/web_form_split_tests/{splitTestId}/components/{splitTestComponentId}:
get:
summary: Get split test component
description: "This endpoint is used to retrieve a collection of webform split test components.\n\nCheck out related examples:\n\n * Get Webforms Detail (\n Python |\n PHP |\n Postman |\n C#.NET |\n Ruby |\n Node.js )"
tags:
- Webforms
parameters:
- $ref: '#/components/parameters/accountId'
- $ref: '#/components/parameters/listId'
- $ref: '#/components/parameters/splitTestId'
- $ref: '#/components/parameters/splitTestComponentId'
security:
- OAuth 2.0:
- list.read
x-code-samples:
- lang: Shell
source: "curl -G \\\n https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_form_split_tests/{splitTestId}/components/{splitTestComponentId} \\\n -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}'\n"
- lang: Python
source: "headers = {'Accept': 'application/json',\n 'User-Agent': 'AWeber-Python-code-sample/1.0',\n 'Authorization': f'Bearer {access_token}'}\nurl = (f'https://api.aweber.com/1.0/accounts/{account_id}'\n f'/lists/{list_id}/web_form_split_tests/{split_test_id}/components'\n f'/{split_test_component_id}')\nresponse = requests.get(url, headers=headers)\nprint(response.json())\n"
- lang: PHP
source: "$headers = [\n 'User-Agent' => 'AWeber-PHP-code-sample/1.0',\n 'Accept' => 'application/json',\n 'Authorization' => 'Bearer $token',\n];\n$url = \"https://api.aweber.com/1.0/accounts/{$accountId}/lists/{$listId}/web_form_split_tests/{$splitTestId}/components/{$splitTestComponentId}\";\n$response = $client->get($url, ['headers' => $headers]);\n$body = json_decode($response->getBody(), true);\nprint_r($body);\n"
- lang: C#
source: 'const string url = "https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/web_form_split_tests/{splitTestId}/components/{splitTestComponentId}";
var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Add("Accept","application/json");
request.Headers.Add("User-Agent","AWeber-CSharp-code-sample/1.0");
request.Headers.Add("Authorization", $"Bearer {Token}");
var response = await Client.SendAsync(request);
Console.Write(response.Content.ReadAsStringAsync());
'
- lang: JavaScript
label: Node.js
source: "const headers = {\n \"Accept\": \"application/json\",\n \"User-Agent\": \"AWeber-Node-code-sample/1.0\",\n \"Authorization\": `Bearer ${accessToken}`\n};\nconst url = `https://api.aweber.com/1.0/accounts/${accountId}/lists/${listId}/web_form_split_tests/${split_testId}/components/${splitTestComponentId}`;\nfetch(url, { headers: headers })\n .then(response => response.json())\n .then(data => {\n console.log(data)\n})\n"
- lang: Ruby
source: "headers = {\n 'Accept': 'application/json',\n 'User-Agent': 'AWeber-Ruby-code-sample/1.0',\n 'Authorization': \"Bearer #{access_token}\"\n}\nresponse = Faraday.get(\n \"https://api.aweber.com/1.0/accounts/#{account_id}/\" \\\n \"lists/#{list_id}/web_form_split_tests/#{split_test_id}/\" \\\n \"components/#{split_test_component_id}\"\n) do |req|\n req.headers = headers\nend\nputs response.body\n"
responses:
'200':
description: The request completed successfully
content:
application/json:
schema:
$ref: '#/components/schemas/WebformSplitTestComponent'
'401':
$ref: '#/components/responses/UnauthorizedError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/NotAllowed'
'410':
$ref: '#/components/responses/BlockedError'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
operationId: getSplitTestComponent
components:
parameters:
listId:
name: listId
in: path
description: The list ID
required: true
schema:
type: integer
format: int32
wsStart:
name: ws.start
in: query
description: The pagination starting offset
schema:
type: integer
format: int32
minimum: 0
default: 0
splitTestComponentId:
name: splitTestComponentId
in: path
description: The webform split test component ID
required: true
schema:
type: string
accountId:
name: accountId
in: path
description: The account ID
required: true
schema:
type: integer
format: int32
webformId:
name: webformId
required: true
in: path
description: The webform ID
schema:
type: integer
format: int32
splitTestId:
name: splitTestId
required: true
in: path
description: The webform split test ID
schema:
type: integer
format: int32
wsSize:
name: ws.size
in: query
description: The pagination total entries to retrieve
schema:
type: integer
format: int32
minimum: 1
maximum: 100
default: 100
schemas:
WebformSplitTestComponent:
type: object
properties:
conversion_percentage:
description: The conversion percentage
type: number
format: float
minimum: 0
example: 0.0
html_source_link:
description: The webform HTML source URL
type: string
format: uri
example: http://forms.aweber.com/form/123/456.html
http_etag:
description: The ETag HTTP header
type: string
example: \"902ba3cda1883801594b6e1b452790cc53948fda-f83cb0ac22a8d5f792417f9b3dc0e9dc7558aa32\"
id:
description: The unique ID for the webform component
type: string
example: 234-456
is_active:
description: Whether the webform is active or not
type: boolean
javascript_source_link:
description: The webform javascript source URL
type: string
format: uri
example: http://forms.aweber.com/form/123/456.js
name:
description: The webform name
type: string
example: Joker's Wild
resource_type_link:
description: The link to the webform type
type: string
format: uri
example: https://api.aweber.com/1.0/#component
self_link:
description: The link to this resource
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_form_split_tests/789/component/234-456
tags:
description: A list of tags added to the webform component
type: array
items:
type: string
minLength: 1
example:
- slow
- fast
- lightspeed
total_displays:
description: The total number of times the webform is displayed
type: integer
minimum: 0
example: 123456789
total_submissions:
description: The total number of submissions received by the webform
type: integer
minimum: 0
example: 123456
total_unique_displays:
description: The total number of unique times the webform is displayed
type: integer
minimum: 0
example: 1234
type:
description: The webform display type
type: string
enum:
- exitpopup
- inline
- lightbox
- popover
- popunder
- popup
- styled
unique_conversion_percentage:
description: The conversion percentage based on unique counts
type: number
format: float
minimum: 0
example: 6.451612903225806
web_form_link:
description: The link to [Webform](#tag/Webforms/paths/~1accounts~1{accountId}~1lists~1{listId}~1web_forms~1{webformId}/get)
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_form/789
weight:
description: The relative display weight
type: integer
minimum: 0
example: 40
Webforms:
type: object
properties:
entries:
description: A list of webform entries
type: array
items:
$ref: '#/definitions/Webform'
next_collection_link:
description: A link to the next page of entries if more entries exist. This attribute is omitted from the collection if there are no more entries.
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_forms?ws.start=0&ws.size=10
prev_collection_link:
description: A link to the previous page of entries if any exist. This attribute is omitted from the collection if ws.start is 0.
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_forms?ws.start=10&ws.size=10
resource_type_link:
description: A link that identifies the type of resource that this collection represents
type: string
format: uri
example: https://api.aweber.com/1.0/#web_form-page-resource
start:
description: The starting offset for the page of entries to retrieve
type: integer
minimum: 0
total_size:
description: The total number of entries
type: integer
minimum: 0
example: 100
WebformSplitTest:
type: object
properties:
components_collection_link:
description: The webform [Split Test Components](#tag/Webforms/paths/~1accounts~1{accountId}~1lists~1{listId}~1web_form_split_tests~1{splitTestId}~1components/get) URL
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_form_split_tests/789/components
http_etag:
description: The ETag HTTP header
type: string
example: \"902ba3cda1883801594b6e1b452790cc53948fda-f83cb0ac22a8d5f792417f9b3dc0e9dc7558aa32\"
id:
description: The unique ID for the webform split test
type: integer
example: 234
is_active:
description: Whether the split test is active or not
type: boolean
javascript_source_link:
description: The webform javascript source URL
type: string
format: uri
example: http://forms.aweber.com/form/123/split_456.js
name:
description: The split test name
type: string
example: Joker's Wild Split Test
resource_type_link:
description: The link to the split test type
type: string
format: uri
example: https://api.aweber.com/1.0/#web_form_split_test
self_link:
description: The link to this resource
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_form_split_tests/789
WebFormSplitTests:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/WebformSplitTest'
next_collection_link:
description: A link to the next page of entries if more entries exist. This attribute is omitted from the collection if there are no more entries.
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_form_split_tests?ws.start=10&ws.size=10
prev_collection_link:
description: A link to the previous page of entries if any exist. This attribute is omitted from the collection if ws.start is 0.
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_form_split_tests?ws.start=0
resource_type_link:
description: The link to the event type
type: string
format: uri
example: https://api.aweber.com/1.0/#web_form_split_test-page-resource
start:
description: The starting offset for the page of entries to retrieve
type: integer
minimum: 0
total_size:
description: The total number of entries
type: integer
minimum: 0
example: 100
Webform:
type: object
properties:
conversion_percentage:
description: The conversion percentage
type: number
format: float
example: 6.451612903225806
html_source_link:
description: The webform HTML source URL
type: string
format: uri
example: http://forms.aweber.com/form/123/456.html
http_etag:
description: The ETag HTTP header
type: string
example: \"902ba3cda1883801594b6e1b452790cc53948fda-f83cb0ac22a8d5f792417f9b3dc0e9dc7558aa32\"
id:
description: The unique ID for the webform activity
type: integer
example: 234
is_active:
description: Whether the webform is active or not
type: boolean
javascript_source_link:
description: The webform javascript source URL
type: string
format: uri
example: http://forms.aweber.com/form/123/456.js
name:
description: The webform name
type: string
example: Joker's Wild
resource_type_link:
description: The link to the webform type
type: string
format: uri
example: https://api.aweber.com/1.0/#web_form
self_link:
description: The link to this resource
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_forms/789
tags:
description: A list of tags added to the webform
type: array
items:
type: string
minLength: 1
example:
- slow
- fast
- lightspeed
total_displays:
description: The total number of times the webform is displayed
type: integer
example: 123456789
total_submissions:
description: The total number of submissions received by the webform
type: integer
example: 123456
total_unique_displays:
description: The total number of unique times the webform is displayed
type: integer
example: 1234
type:
description: The webform display type
type: string
enum:
- exitpopup
- inline
- lightbox
- popover
- popunder
- popup
- styled
unique_conversion_percentage:
description: The conversion percentage based on unique counts
type: number
format: float
example: 6.451612903225806
WebformSplitTestComponents:
type: object
properties:
entries:
type: array
items:
$ref: '#/components/schemas/WebformSplitTestComponent'
next_collection_link:
description: A link to the next page of entries if more entries exist. This attribute is omitted from the collection if there are no more entries.
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_form_split_tests/789/components?ws.start=10&ws.size=10
prev_collection_link:
description: A link to the previous page of entries if any exist. This attribute is omitted from the collection if ws.start is 0.
type: string
format: uri
example: https://api.aweber.com/1.0/accounts/123/lists/456/web_form_split_tests/789/components?ws.start=0
resource_type_link:
description: The link to the Component type
type: string
format: uri
example: https://api.aweber.com/1.0/#component-page-resource
start:
description: The starting offset for the page of entries to retrieve
type: integer
minimum: 0
total_size:
description: The total number of entries
type: integer
minimum: 0
example: 100
responses:
BadRequest:
description: The server cannot or will not process the request due to a client error
content:
application/json:
schema:
type: object
properties:
error:
description: 'An error object.
The following error may be received:
| Error Type | Explanation |
|-------------------|-------------|
| BadRequestError | The request is malformed. This can be caused by missing authorization credentials |
'
type: object
properties:
documentation_url:
description: A link to the documentation that describes the error
type: string
example: https://api.aweber.com#badrequest
message:
description: A human friendly description of the error
type: string
example: Missing required argument(s)
status:
description: The HTTP status code
type: integer
enum:
- 400
type:
description: The API error type
type: string
enum:
- BadRequestError
UnauthorizedError:
description: The request could not be completed due to an authentication error
content:
application/json:
schema:
oneOf:
- $ref: '#/schemas/Endpoint Error'
- $ref: '#/schemas/Auth Error'
ServiceUnavailable:
description: The server is currently unavailable
content:
application/json:
schema:
type: object
properties:
error:
description: 'An error object.
The following error may be received:
| Error Type | Explanation |
|----------------------|------------------------------------------|
| ServiceUnavailableError | The server is unavailable |
Please see the message body for more details.
'
type: object
properties:
documentation_url:
description: A link to the documentation that describes the error
type: string
example: https://api.aweber.com#serviceunavailable
message:
description: A human friendly description of the error
type: string
example: Failed to communicate with endpoint
status:
description: The HTTP status code
type: integer
enum:
- 503
type:
description: The API error type
type: string
enum:
- ServiceUnavailableError
NotAllowed:
description: The method received in the request-line is known by the origin server but not supported by the target resource.
content:
application/json:
schema:
type: object
properties:
error:
description: 'An error object.
One of the following errors may be received:
| Error Type | Explanation |
|-------------------------|-------------|
| MethodNotAllowedError | The requested resource does not implement the requested method. |
Please see the message body for more details.
'
type: object
properties:
documentation_url:
description: A link to the documentation that describes the error
type: string
example: https://api.aweber.com#methodnotallowed
message:
description: A human friendly description of the error
type: string
example: ' https://api.aweber.com#methodnotallowed'
status:
description: The HTTP status code
type: integer
enum:
- 405
type:
description: The API error type
type: string
enum:
- MethodNotAllowedError
ForbiddenError:
description: The request could not be completed due to a rate limit error
content:
application/json:
schema:
type: object
properties:
error:
description: 'An error object.
The following error may be received:
| Error Type | Explanation |
|----------------------|------------------------------------------|
| ForbiddenError | Rate limit may be reached or account may be suspended |
Please see the message body for more details.
'
type: object
properties:
documentation_url:
description: A link to the documentation that describes the error
type: string
example: https://api.aweber.com#forbidden
message:
description: A human friendly description of the error
type: string
example: Rate Limit Error
status:
description: The HTTP status code
type: integer
enum:
- 403
type:
description: The API error type
type: string
enum:
- ForbiddenError
InternalServerError:
description: The request failed due to an internal error in the code or because of an external dependency failure
content:
application/json:
schema:
type: object
properties:
error:
description: 'An error object.
The following error may be received:
| Error Type | Explanation |
|----------------------|------------------------------------------|
| InternalServerError | The request failed due to an internal error |
Please see the message body for more details.
'
type: object
properties:
documentation_url:
description: A link to the documentation that describes the error
type: string
example: https://api.aweber.com#internalerror
message:
description: A human friendly description of the error
type: string
example: Something went wrong.
status:
description: The HTTP status code
type: integer
enum:
- 500
type:
description: The API error type
type: string
enum:
- InternalServerError
NotFound:
description: The requested resource could not be found
content:
application/json:
schema:
type: object
properties:
error:
description: 'An error object.
The following error may be received:
| Error Type | Explanation |
|----------------------|------------------------------------------|
| NotFoundError | The requested resource could not be found |
Please see the message body for more details.
'
type: object
properties:
documentation_url:
description: A link to the documentation that describes the error
type: string
example: https://api.aweber.com#notfound
message:
description: A human friendly description of the error
type: string
example: 'Object: None, name: '''''
status:
description: The HTTP status code
type: integer
enum:
- 404
type:
description: The API error type
type: string
enum:
- NotFoundError
BlockedError:
description: The request has been blocked
content:
application/json:
schema:
type: object
properties:
error:
description: 'An error object.
The following error may be received:
| Error Type | Explanation |
|----------------------|------------------------------------------|
| BlockedError | This Request has been blocked |
Please see the message body for more details.
'
type: object
properties:
documentation_url:
description: A link to the documentation that describes the error
type: string
example: https://api.aweber.com/#blocked
message:
description: A human friendly description of the error
type: string
example: Blocked Error
status:
description: The HTTP status code
type: integer
enum:
- 410
type:
description: The API error type
type: string
enum:
- BlockedError
securitySchemes:
OAuth_2.0:
description: 'The following endpoints and scopes are used to authenticate.
'
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://auth.aweber.com/oauth2/authorize
tokenUrl: https://auth.aweber.com/oauth2/token
refreshUrl: https://auth.aweber.com/oauth2/token
scopes:
account.read: '
Access account information and associated integrations.
Required for the following endpoints: get accounts, get account, get integrations, get integration
'
landing-page.read: '
Retrieve landing pages
Required for the following endpoints: get landing pages, get landing page
'
list.read: '
Retrieve lists, custom fields, tags, and sign up forms
Required for the following endpoints: get list, get lists, find lists, get tags for list, get custom fields, get custom field, get webforms for list, get split tests for list, get split test components, get split test component, get webforms for account, get split tests for account
'
list.write: '
Create, edit, and delete custom fields
Required for the following endpoints: add custom field, update custom field, delete custom field
'
subscriber.read: '
Retrieve subscribers and their activity
Required for the following endpoints: get subscribers, get subscriber, get subscriber activity, get subscribers for message, find subscribers for account, find subscribers for list
'
subscriber.write: '
Create, edit, delete, retrieve, search for, and move subscribers
Required for the following endpoints: add subscriber, move subscriber, update subscriber, delete subscriber
'
subscriber.read-extended: '
Previously required to retrieve subscriber PII such as name, email, IP address, etc. This functionality was moved to the "subscriber.read" scope
'
email.read: '
Retrieve email activity related to broadcasts and follow-ups
Required for the following endpoints: get messages, get message, get broadcasts, get broadcast, get message opens, get message open, get message tracked events, get message tracked event, get total broadcasts, get campaigns, get campaign, find campaigns, get broadcast statistics, get broadcast statistic
'
email.write: '
Create and send email broadcasts
Required for the following endpoints: create broadcast, update broadcast, delete broadcast, cancel broadcast, schedule broadcast
'