AWeber Beta API

The Beta API from AWeber — early-access endpoints served at https://api.aweber.com/2.0-beta/, announced in API 1.4.0 on 2025-09-05 as a preview of the upcoming v2 API, primarily replacing numeric ids with UUIDs. Currently one documented operation, broadcast links analytics. No compatibility commitment is published; treat as unstable.

OpenAPI Specification

aweber-beta-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: AWeber Beta 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: Beta Endpoints
  description: '### What is it?


    Beta endpoints are early-access versions of the upcoming v2 API that provide developers with a preview
    of new features and changes before the official v2 release. These endpoints are accessible at `api.aweber.com/2.0-beta/`
    and include **new functionality not available in v1**.


    Beta endpoints are previews of v2 functionality and do not replace v1 endpoints. The stable v1 API
    remains the recommended choice for production applications.


    ### Important Notice


    **Beta endpoints are experimental and subject to change without notice.** As beta endpoints, developers
    should expect:


    - **Contracts may change** at any time without backward compatibility

    - **Endpoints may not follow** previously established patterns from v1 endpoints

    - **Current Documentation may be inaccurate** or incomplete

    - **Limited support** compared to stable v1 endpoints

    - **No guarantee of stability** until official v2 release


    **Use beta endpoints only for testing and development purposes.** Do not rely on beta endpoints for
    production applications.


    ### Key Differences from v1 API


    Beta endpoints introduce several changes that preview the upcoming v2 API:


    - **UUID Identifiers**: Resources use UUIDs instead of numeric IDs

    - **New Functionality**: Access to capabilities and data not available through v1 endpoints

    - **Different Base URL**: Beta endpoints are accessible at `api.aweber.com/2.0-beta/` instead of `api.aweber.com/1.0/`


    ### Authentication


    Beta endpoints use the same OAuth 2.0 authentication as v1 endpoints. Your existing access tokens
    and authentication flow will work with beta endpoints.


    ### Base URL


    ```

    https://api.aweber.com/2.0-beta/

    ```


    ### Support


    For questions about beta endpoints:

    - Email: [api@aweber.com](mailto:api@aweber.com?subject=Beta%20Endpoints)

    - Include "Beta Endpoints" in your subject line

    - Provide specific details about the endpoint and issue encountered

    '
security:
- OAuth 2.0: []
paths:
  /analytics/reports/broadcasts-links:
    get:
      summary: Broadcast Links Analytics
      description: 'Returns links data for clicks or pageviews in a broadcast. The data can be filtered
        by minimum and maximum unique counts.

        This endpoint is part of the beta 2.0 API and uses UUID identifiers.

        **This is a beta endpoint and is subject to change without notice.** Use only for testing and
        development purposes.'
      operationId: getBroadcastLinksAnalytics
      servers:
      - url: /2.0-beta
        description: Beta v2 API endpoints
      tags:
      - Beta Endpoints
      parameters:
      - name: account_id
        in: query
        schema:
          description: Account ID
          type: string
          pattern: '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}'
          example: 18b02362-8eaf-477c-9917-d447bbe618d5
        required: true
        description: Account UUID. Can be found using the [Get accounts](#tag/Accounts/paths/~1accounts/get)
          endpoint.
      - name: broadcast_id
        in: query
        schema:
          description: Message/Broadcast ID
          type: string
          pattern: '[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}'
          example: 78746ae5-b9bb-4faa-ac91-e8971fa878ae
        required: true
        description: Broadcast UUID. Can be found using the [Get broadcasts](#tag/Broadcasts/paths/~1accounts~1{accountId}~1lists~1{listId}~1broadcasts/get)
          endpoint.
      - name: filter
        in: query
        schema:
          type: string
          enum:
          - clicks
          - pageviews
          example: clicks
        required: true
        description: Type of link data to retrieve
      - name: min_count
        in: query
        schema:
          type: integer
          minimum: 0
          default: 1
        description: Minimum count threshold for unique links
      - name: max_count
        in: query
        schema:
          type: integer
          minimum: 0
        description: Maximum count threshold for unique links
      - name: sort_by
        in: query
        schema:
          type: string
          enum:
          - unique
          - total
          default: unique
        description: Field to sort the results by
      - name: sort_asc
        in: query
        schema:
          type: boolean
          default: true
        description: Whether to sort in ascending order (true) or descending order (false)
      - name: before
        in: query
        description: specifies the IDs for pagination, for results from before onward
        schema:
          type: integer
      - name: after
        in: query
        description: specifies the IDs for pagination, for results from after onward
        schema:
          type: string
      - name: page_size
        in: query
        description: specifies the max number of items in a single page
        schema:
          type: integer
          minimum: 1
          maximum: 100
      responses:
        '200':
          description: Successfully retrieved link analytics data
          headers:
            Link:
              description: '[RFC-8288](https://tools.ietf.org/html/rfc8288) Link header'
              schema:
                type: string
                example: <https://api.aweber.com/v1/accounts/1234567890/broadcasts/1234567890/links?before=1717000000&after=1717000000&page_size=100>;
                  rel=next
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required:
                  - url
                  - unique
                  - total
                  - type
                  properties:
                    url:
                      type: string
                      format: uri
                      description: The URL of the link
                      example: http://aweber.com
                    unique:
                      type: integer
                      description: Number of unique interactions with the link
                      example: 2
                    total:
                      type: integer
                      description: Total number of interactions with the link
                      example: 2
                    type:
                      type: string
                      enum:
                      - click
                      - pageview
                      description: Type of interaction (click or pageview)
                      example: click
              example:
              - url: http://aweber.com
                unique: 2
                total: 2
                type: click
              - url: https://api.aweber.com
                unique: 1
                total: 2
                type: click
              - url: https://google.com
                unique: 1
                total: 1
                type: click
        '400':
          description: The request contained an error
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    description: A URI reference that identifies the problem type
                    type: string
                    example: https://tools.ietf.org/html/rfc7231#section-6.6.1
                  title:
                    description: A short, human-readable summary of the problem type
                    type: string
                    example: Request Error
                  status:
                    description: The HTTP status code generated by the origin server for this occurrence
                      of the problem
                    type: integer
                    example: 400
                  instance:
                    description: A URI reference that identifies the specific occurrence of the problem
                    type: string
                  detail:
                    description: A human-readable explanation specific to this occurrence of the problem
                    type: string
                    example: '''account'' is not of type ''integer'''
              example:
                title: Request Error
                status: 400
                detail: '''account'' is not of type ''integer'''
        '404':
          description: Database Not Found
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    description: A URI reference that identifies the problem type
                    type: string
                    example: https://tools.ietf.org/html/rfc7231#section-6.6.1
                  title:
                    description: A short, human-readable summary of the problem type
                    type: string
                    example: Not Found
                  status:
                    description: The HTTP status code generated by the origin server for this occurrence
                      of the problem
                    type: integer
                    example: 404
                  instance:
                    description: A URI reference that identifies the specific occurrence of the problem
                    type: string
                  detail:
                    description: A human-readable explanation specific to this occurrence of the problem
                    type: string
                    example: The requested account could not be found
              example:
                title: Not Found
                status: 404
                detail: The requested account could not be found
        '503':
          description: Service cannot process requests at this time
      security:
      - OAuth 2.0:
        - email.read
components:
  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: '<br>

              Access account information and associated integrations. <br>

              <b>Required for the following endpoints:</b> get accounts, get account, get integrations,
              get integration

              '
            landing-page.read: '<br>

              Retrieve landing pages <br>

              <b>Required for the following endpoints:</b> get landing pages, get landing page

              '
            list.read: '<br>

              Retrieve lists, custom fields, tags, and sign up forms <br>

              <b>Required for the following endpoints:</b> 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: '<br>

              Create, edit, and delete custom fields <br>

              <b>Required for the following endpoints:</b> add custom field, update custom field, delete
              custom field

              '
            subscriber.read: '<br>

              Retrieve subscribers and their activity <br>

              <b>Required for the following endpoints:</b> get subscribers, get subscriber, get subscriber
              activity, get subscribers for message, find subscribers for account, find subscribers for
              list

              '
            subscriber.write: '<br>

              Create, edit, delete, retrieve, search for, and move subscribers <br>

              <b>Required for the following endpoints:</b> add subscriber, move subscriber, update subscriber,
              delete subscriber

              '
            subscriber.read-extended: '<br>

              Previously required to retrieve subscriber PII such as name, email, IP address, etc.  This
              functionality was moved to the "subscriber.read" scope

              '
            email.read: '<br>

              Retrieve email activity related to broadcasts and follow-ups <br>

              <b>Required for the following endpoints:</b> 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: '<br>

              Create and send email broadcasts <br>

              <b>Required for the following endpoints:</b> create broadcast, update broadcast, delete
              broadcast, cancel broadcast, schedule broadcast

              '