AWeber Subscribers API

The Subscribers API from AWeber — 12 operations for adding, reading, updating, moving, searching and deleting subscribers on a list, reading subscriber activity, and recording tracked purchases.

OpenAPI Specification

aweber-subscribers-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: AWeber Subscribers 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:

    - <a href="https://labs.aweber.com/docs/tos" target="_blank">Terms of Service</a>

    - <a href="https://help.aweber.com/hc/en-us/articles/204031776" target="_blank">Showcasing an Integration</a>

    - <a href="https://help.aweber.com/hc/en-us/sections/360000617213-API" target="_blank">Knowledge Base</a>

    - <a href="https://status.aweber.com" target="_blank">API Status Page</a>

    '
  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
tags:
- name: Subscribers
  description: '### What is it?


    Represents a collection of subscribers.


    Use this set of resources to add, remove, find, and update an AWeber Customer Account''s subscribers.

    The collection responses are ordered and paginated using `next_collection_link` and

    `prev_collection_link` properties.  See [How Collections are Represented](#collection-representation)

    for details on collection traversal and the individual endpoint descriptions for ordering constraints.

    Many of the subscriber-related endpoints support the `sort_order` query parameter to control the sorting

    *direction* in the response collection.


    Subscribers are one of the most important elements in the AWeber API so care must be taken before

    adding a subscriber to a list.  Read more about adding subscribers in AWeber Knowledge Base article

    <a href="https://help.aweber.com/entries/21729456-can-i-use-this-list" target="_blank">

    "Can I use this list?"</a>.


    Although not required, it''s strongly recommended that you provide the IP address of the Subscriber
    if

    it is known.  For web based Apps, the `ip_address` that you should use is the REMOTE_ADDRESS of their

    requests to your App server, not the server''s IP address.  The IP address is used in the Geo Location

    parameters and for send windows in the AWeber Control Panel.  **The IP address can only be specified

    when ADDING a new subscriber.**



    ### Related endpoints


    * [Subscribers](#tag/Subscribers)

    * [Get subcribers associated with a message](#tag/Messages/paths/~1accounts~1{accountId}~1lists~1{listId}~1campaigns~1{campaignType}{messageId}~1messages?ws.op=getSubscribers/get)

    * [Get susbcribers that opened a message](#tag/Messages/paths/~1accounts~1{accountId}~1lists~1{listId}~1campaigns~1{campaignType}{messageId}~1messages~1{messageEntryId}~1opens/get)


    ### Related code examples


    * [Manage a Subscriber](#tag/Manage-a-Subscriber)

    * [Find Subscribers Across Lists](#tag/Find-Subscribers-Across-Lists)

    * [Move Subscriber to Another List](#tag/Move-Subscriber-to-Another-List)

    * [Get Subscribers Who Opened or Clicked a Broadcast](#tag/Get-Subscribers-Who-Opened-or-Clicked-a-Broadcast)

    '
security:
- OAuth 2.0: []
paths:
  /accounts/{accountId}/lists/{listId}/subscribers:
    get:
      summary: Get subscribers
      description: "This endpoint is used to get a paginated collection of subscribers under the specified\
        \ account and list.  The subscribers are returned in the order that they were added to the list\
        \ starting with the oldest subscriber. The order can be changed using the `sort_order` query parameter.\n\
        Check out related examples:\n\n  * Find Subscribers Across Lists (\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/python/find-subscribers-across-lists\"\
        \ target=\"_blank\">Python</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/php/find-subscribers-across-lists\"\
        \ target=\"_blank\">PHP</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/postman/Find%20Subscribers%20Across%20Lists.postman_collection.json\"\
        \ target=\"_blank\">Postman</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/csharp/AWeber.Examples.FindSubscribersAcrossLists\"\
        \ target=\"_blank\">C#.NET</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/ruby/find_subscribers_across_lists.rb\"\
        \ target=\"_blank\">Ruby</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/node/find-subscribers-across-lists.js\"\
        \ target=\"_blank\">Node.js</a> )\n  * Manage Subscriber (\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/python/manage-subscriber\"\
        \ target=\"_blank\">Python</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/php/manage-subscriber\"\
        \ target=\"_blank\">PHP</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/postman/Manage%20Subscriber.postman_collection.json\"\
        \ target=\"_blank\">Postman</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/csharp/AWeber.Examples.ManageSubscriber\"\
        \ target=\"_blank\">C#.NET</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/ruby/manage_subscriber.rb\"\
        \ target=\"_blank\">Ruby</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/node/manage-subscriber.js\"\
        \ target=\"_blank\">Node.js</a> )\n  * Move Subscriber (\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/python/move-subscriber\"\
        \ target=\"_blank\">Python</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/php/move-subscriber\"\
        \ target=\"_blank\">PHP</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/postman/Move%20Subscriber.postman_collection.json\"\
        \ target=\"_blank\">Postman</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/csharp/AWeber.Examples.MoveSubscriber\"\
        \ target=\"_blank\">C#.NET</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/ruby/move_subscriber.rb\"\
        \ target=\"_blank\">Ruby</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/node/move-subscriber.js\"\
        \ target=\"_blank\">Node.js</a> )"
      tags:
      - Subscribers
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/listId'
      - $ref: '#/components/parameters/wsStart'
      - $ref: '#/components/parameters/wsSize'
      - $ref: '#/components/parameters/sortOrder'
      security:
      - OAuth 2.0:
        - subscriber.read
      x-code-samples:
      - lang: Shell
        source: "curl -G \\\n  https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/subscribers\
          \ \\\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}/subscribers')\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}/subscribers\"\
          ;\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}/subscribers";

          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}/subscribers`;\n\
          fetch(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}/subscribers\"\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/Subscribers'
        '400':
          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.

                      One of the following errors may be received:


                      | Error Type                           | Explanation                              |

                      |--------------------------------------|------------------------------------------|

                      | WebServiceError                      | `ws.start`, `ws.size`, or `sort_order`
                      values are invalid |

                      | MissingOAuthParametersError          | An OAuth parameter is missing in the request
                      |

                      | UnsupportedOAuthSignatureMethodError | The provided OAuth 1 signature method is
                      unsupported. Only HMAC-SHA1 is supported. |

                      | UnsupportedOAuthVersionError         | The provided OAuth 1 version is unsupported.
                      |

                      '
                    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: Maximum for "ws.size" parameter is 100.
                      status:
                        description: The HTTP status code
                        type: integer
                        example: 400
                      type:
                        description: The API error type
                        type: string
                        example: WebServiceError
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFound'
        '410':
          $ref: '#/components/responses/BlockedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      operationId: getSubscribers
    post:
      summary: Add subscriber
      description: "This endpoint is used to add subscribers to the specified account and list. Before\
        \ adding a subscriber to a list, read <a href=\"https://help.aweber.com/entries/21729456-can-i-use-this-list\"\
        \ target=\"_blank\">Can I use this list?</a> to understand the ramifications. If you have a large\
        \ list of subscribers, please use our <a href=\"https://help.aweber.com/hc/en-us/articles/204028626-How-do-I-import-a-list-of-subscribers-\"\
        \ target=\"_blank\">list importer</a>. Attempting to use the endpoint to bulk add subscribers\
        \ is considered abuse which violates our Terms of Service.\n\nCheck out related examples:\n\n\
        \  * Find Subscribers Across Lists (\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/python/find-subscribers-across-lists\"\
        \ target=\"_blank\">Python</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/php/find-subscribers-across-lists\"\
        \ target=\"_blank\">PHP</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/postman/Find%20Subscribers%20Across%20Lists.postman_collection.json\"\
        \ target=\"_blank\">Postman</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/csharp/AWeber.Examples.FindSubscribersAcrossLists\"\
        \ target=\"_blank\">C#.NET</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/ruby/find_subscribers_across_lists.rb\"\
        \ target=\"_blank\">Ruby</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/node/find-subscribers-across-lists.js\"\
        \ target=\"_blank\">Node.js</a> )\n  * Manage Subscriber (\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/python/manage-subscriber\"\
        \ target=\"_blank\">Python</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/php/manage-subscriber\"\
        \ target=\"_blank\">PHP</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/postman/Manage%20Subscriber.postman_collection.json\"\
        \ target=\"_blank\">Postman</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/csharp/AWeber.Examples.ManageSubscriber\"\
        \ target=\"_blank\">C#.NET</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/ruby/manage_subscriber.rb\"\
        \ target=\"_blank\">Ruby</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/node/manage-subscriber.js\"\
        \ target=\"_blank\">Node.js</a> )\n  * Move Subscriber (\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/python/move-subscriber\"\
        \ target=\"_blank\">Python</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/php/move-subscriber\"\
        \ target=\"_blank\">PHP</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/postman/Move%20Subscriber.postman_collection.json\"\
        \ target=\"_blank\">Postman</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/csharp/AWeber.Examples.MoveSubscriber\"\
        \ target=\"_blank\">C#.NET</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/ruby/move_subscriber.rb\"\
        \ target=\"_blank\">Ruby</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/node/move-subscriber.js\"\
        \ target=\"_blank\">Node.js</a> )"
      tags:
      - Subscribers
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/listId'
      security:
      - OAuth 2.0:
        - subscriber.write
      x-code-samples:
      - lang: Shell
        source: "json='{\n   \"ad_tracking\": \"ebook\",\n   \"custom_fields\": {\n     \"apple\": \"\
          fuji\",\n     \"pear\": \"bosc\"\n   },\n   \"email\": \"user@example.com\",\n   \"ip_address\"\
          : \"192.168.0.1\",\n   \"last_followup_message_number_sent\": 0,\n   \"misc_notes\": \"string\"\
          ,\n   \"name\": \"John Doe\",\n   \"strict_custom_fields\": \"true\",\n   \"tags\": [\"slow\"\
          , \"fast\", \"lightspeed\"]\n}'\ncurl -X POST \\\n  https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/subscribers\
          \ \\\n  -d $json \\\n  -H 'Authorization: Bearer {YOUR_ACCESS_TOKEN}' \\\n  -H 'Content-Type:\
          \ application/json'\n"
      - lang: Python
        source: "body = {\n   'ad_tracking': 'ebook',\n   'custom_fields': {\n     'apple': 'fuji',\n\
          \     'pear': 'bosc'\n   },\n   'email': 'user@example.com',\n   'ip_address': '192.168.0.1',\n\
          \   'last_followup_message_number_sent': 0,\n   'misc_notes': 'string',\n   'name': 'John Doe',\n\
          \   'strict_custom_fields': True,\n   'tags': [\n     'slow',\n     'fast',\n     'lightspeed'\n\
          \   ]\n}\nheaders = {'Content-Type': 'application/json',\n           '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}/subscribers')\n\
          response = requests.post(url, headers=headers, json=body)\nprint(response.headers['Location'])\n"
      - lang: PHP
        source: "$body = [\n  'ad_tracking' => 'ebook',\n  'custom_fields' => [\n    'apple' => 'fuji',\n\
          \    'pear' => 'bosc'\n  ],\n  'email' => 'user@example.com',\n  'ip_address' => '192.168.0.1',\n\
          \  'last_followup_message_number_sent' => 0,\n  'misc_notes' => 'string',\n  'name' => 'John\
          \ Doe',\n  'strict_custom_fields' => true,\n  'tags' => [\n    'slow',\n    'fast',\n    'lightspeed'\n\
          \  ]\n];\n$headers = [\n    'Content-Type' => 'application/json',\n    'Accept' => 'application/json',\n\
          \    'Authorization' => 'Bearer $token',\n    'User-Agent' => 'AWeber-PHP-code-sample/1.0'\n\
          ];\n$url = \"https://api.aweber.com/1.0/accounts/{$accountId}/lists/{$listId}/subscribers\"\
          ;\n$response = $client->post($url, ['json' => $body, 'headers' => $headers]);\necho $response->getHeader('Location')[0];\n"
      - lang: C#
        source: "const string url = \"https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/subscribers\"\
          ;\nvar customFields = new Dictionary<string, string>\n{\n  {\"apple\", \"fuji\"},\n  {\"pear\"\
          , \"bosc\"}\n};\nvar tags = new string[3]{\"slow\", \"fast\", \"lightspeed\"};\nvar payload\
          \ = new Dictionary<string, object>\n{\n  {\"ad_tracking\", \"ebook\"},\n  {\"custom_fields\"\
          , customFields},\n  {\"email\", \"user@example.com\"},\n  {\"ip_address\", \"192.168.0.1\"},\n\
          \  {\"last_followup_message_number_sent\", \"0\"},\n  {\"misc_notes\", \"string\"},\n  {\"name\"\
          , \"John Doe\"},\n  {\"strict_custom_fields\", \"true\"},\n  {\"tags\", tags}\n};\nvar request\
          \ = new HttpRequestMessage(HttpMethod.Post, url);\nrequest.Content = JsonConvert.SerializeObject(payload);\n\
          request.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.Headers.Location);\n"
      - lang: JavaScript
        label: Node.js
        source: "const headers = {\n  \"Accept\": \"application/json\",\n  \"Content-Type\": \"application/json\"\
          ,\n  \"User-Agent\": \"AWeber-Node-code-sample/1.0\",\n  \"Authorization\": `Bearer ${accessToken}`\n\
          };\nconst body = JSON.stringify({\n  \"ad_tracking\": \"ebook\",\n  \"custom_fields\": {\n \
          \     \"apple\": \"fuji\",\n      \"pear\": \"bosc\"\n  },\n  \"email\": \"user@example.com\"\
          ,\n  \"ip_address\": \"192.168.0.1\",\n  \"last_followup_message_number_sent\": 0,\n  \"misc_notes\"\
          : \"string\",\n  \"name\": \"John Doe\",\n  \"strict_custom_fields\": true,\n  \"tags\": [\"\
          slow\", \"fast\", \"lightspeed\"]\n});\nconst url = `https://api.aweber.com/1.0/accounts/${accountId}/lists/${listId}/subscribers`;\n\
          fetch(url, { headers: headers, method: \"POST\", body: body })\n  .then(response => response.status)\n\
          \  .then(data => {\n    console.log(data)\n})\n"
      - lang: Ruby
        source: "headers = {\n  'Accept': 'application/json',\n  'Content-Type': 'application/json',\n\
          \  'User-Agent': 'AWeber-Ruby-code-sample/1.0',\n  'Authorization': \"Bearer #{access_token}\"\
          \n}\nbody = {\n  'ad_tracking': 'ebook',\n  'custom_fields': {\n    'apple': 'fuji',\n    'pear':\
          \ 'bosc'\n  },\n  'email': 'user@example.com',\n  'ip_address': '192.168.0.1',\n  'last_followup_message_number_sent':\
          \ 0,\n  'misc_notes': 'string',\n  'name': 'John Doe',\n  'strict_custom_fields': true,\n  'tags':\
          \ [\n    'slow',\n    'fast',\n    'lightspeed'\n  ]\n}\nresponse = Faraday.post(\n  \"https://api.aweber.com/1.0/accounts/#{account_id}/\"\
          \ \\\n  \"lists/#{list_id}/subscribers\"\n) do |req|\n  req.headers = headers\n  req.body =\
          \ body.to_json\nend\nputs response.status\n"
      responses:
        '201':
          description: The subscriber was created successfully
          headers:
            Location:
              description: URI of the new subscriber
              example: https://api.aweber.com/1.0/accounts/123/lists/456/subscribers/789
              schema:
                type: string
                format: uri
        '400':
          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.

                      One of the following errors may be received:


                      | Error Type                           | Explanation                              |

                      |--------------------------------------|------------------------------------------|

                      | WebServiceError                      | An issue with the email address entered.
                      Issue could be the that the subscriber is already subscribed, has an invalid email,
                      or has a blocked email. |

                      | MissingArgumentError                 | No email address in the request body. |

                      | BadRequestError                      | An issue with one of the fields in the
                      request body or no Content-Type header specified. |

                      | InvalidTypeError                     | A field in the request body has an invalid
                      type. |

                      | MissingOAuthParametersError          | An OAuth parameter is missing in the request.
                      |

                      | UnsupportedOAuthSignatureMethodError | The provided OAuth 1 signature method is
                      unsupported. Only HMAC-SHA1 is supported. |

                      | UnsupportedOAuthVersionError         | The provided OAuth 1 version is unsupported.
                      |


                      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#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
                        example: 400
                      type:
                        description: The API error type
                        type: string
                        example: BadRequestError
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          description: The request could not be completed due to a rate limit error, due to account being
            on hold, or because the subscriber limit has been reached.
          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, account may be suspended, subscriber
                      limit has been reached, account may be on hold, or email address cannot be accepted
                      at this time |


                      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
        '404':
          $ref: '#/components/responses/SubListNotFound'
        '410':
          $ref: '#/components/responses/BlockedError'
        '415':
          $ref: '#/components/responses/NotFormURLEncodedOrJSON'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddSubscriberRequestBody'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AddSubscriberRequestBody'
        description: Request body to add a subscriber
        required: true
      operationId: addSubscriber
    delete:
      summary: Delete subscriber by email
      description: "This endpoint is used to delete a subscriber and related information by the subscriber's\
        \ email.\n\nIf you just want to unsubscribe the subscriber, then make a\n[PATCH request](#tag/Subscribers/paths/~1accounts~1{accountId}~1lists~1{listId}~1subscribers~1{subscriberId}/patch)\n\
        to set the status to \"unsubscribed\" instead.  When a subscriber is *DELETED*,\nthe subscriber\
        \ is unsubscribed from the list and all related analytics activity\nis removed from the customer\
        \ account for the subscriber.  Any references to\nclicks or opens are shown as \"Deleted Subscriber\"\
        \ afterwards.\n\n\nCheck out related examples:\n\n  * Find Subscribers Across Lists (\n    <a\
        \ href=\"https://github.com/aweber/public-api-examples/blob/master/python/find-subscribers-across-lists\"\
        \ target=\"_blank\">Python</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/php/find-subscribers-across-lists\"\
        \ target=\"_blank\">PHP</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/postman/Find%20Subscribers%20Across%20Lists.postman_collection.json\"\
        \ target=\"_blank\">Postman</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/csharp/AWeber.Examples.FindSubscribersAcrossLists\"\
        \ target=\"_blank\">C#.NET</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/ruby/find_subscribers_across_lists.rb\"\
        \ target=\"_blank\">Ruby</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/node/find-subscribers-across-lists.js\"\
        \ target=\"_blank\">Node.js</a> )\n  * Manage Subscriber (\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/python/manage-subscriber\"\
        \ target=\"_blank\">Python</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/php/manage-subscriber\"\
        \ target=\"_blank\">PHP</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/postman/Manage%20Subscriber.postman_collection.json\"\
        \ target=\"_blank\">Postman</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/csharp/AWeber.Examples.ManageSubscriber\"\
        \ target=\"_blank\">C#.NET</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/ruby/manage_subscriber.rb\"\
        \ target=\"_blank\">Ruby</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/node/manage-subscriber.js\"\
        \ target=\"_blank\">Node.js</a> )\n  * Move Subscriber (\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/python/move-subscriber\"\
        \ target=\"_blank\">Python</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/php/move-subscriber\"\
        \ target=\"_blank\">PHP</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/postman/Move%20Subscriber.postman_collection.json\"\
        \ target=\"_blank\">Postman</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/csharp/AWeber.Examples.MoveSubscriber\"\
        \ target=\"_blank\">C#.NET</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/ruby/move_subscriber.rb\"\
        \ target=\"_blank\">Ruby</a> |\n    <a href=\"https://github.com/aweber/public-api-examples/blob/master/node/move-subscriber.js\"\
        \ target=\"_blank\">Node.js</a> )\n"
      tags:
      - Subscribers
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/listId'
      - $ref: '#/components/parameters/subCollectionEmail'
      security:
      - OAuth 2.0:
        - subscriber.write
      x-code-samples:
      - lang: Shell
        source: "curl -X DELETE \\\n  https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/subscribers\
          \ \\\n  -d 'email=example@example.com'\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}/subscribers?subscriber_email=example@example.com')\nresponse = requests.delete(url,\
          \ headers=headers)\nprint(response.status_code)\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}/subscribers?subscriber_email=example@example.com\"\
          ;\n$response = $client->delete($url, ['headers' => $headers]);\necho $response->getStatusCode();\n"
      - lang: C#
        source: 'const string url = "https://api.aweber.com/1.0/accounts/{accountId}/lists/{listId}/subscribers?subscriber_email=example@example.com";

          var request = new HttpRequestMessage(HttpMethod.Delete, 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.

# --- truncated at 32 KB (195 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/aweber/refs/heads/main/openapi/aweber-subscribers-api-openapi.yml