Constant Contact Technology Partners API

Use partner endpoints to manage client Constant Contact accounts under your partner account.

Operations 8

GET /partner/accounts GET Partner Client Accounts #
POST /partner/accounts POST (create) a Partner Client Account #
GET /partner/accounts/{encoded_account_id}/plan GET Billing Plan Details for a Client Account #
PUT /partner/accounts/{encoded_account_id}/plan PUT (update) Billing Plan Details for a Client Account #
PUT /partner/accounts/{encoded_account_id}/status/cancel PUT Cancel the Billing Plan for a Client Account #
POST /partner/accounts/{encoded_account_id}/account_operations/sync POST Send an API request on Behalf of a Client Account #
POST /partner/accounts/{encoded_account_id}/users/sso POST a User Under a Partner's SSO-Enabled Client Account #
POST /partner/accounts/{encoded_account_id}/contacts/unsubscribe POST Unsubscribe Contacts #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/constant-contact-technology-partners-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

constant-contact-technology-partners-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Constant Contact, Inc. V3 public API, for building integrations with Constant Contact, the leading small-business email marketing platform.
  version: 3.0.178
  title: AppConnect V3 Technology Partners API
  contact:
    name: webservices@constantcontact.com
  license:
    name: Private
    url: https://www.constantcontact.com/legal/terms-of-use
servers:
- url: https://api.cc.email/v3
tags:
- name: Technology Partners
  description: Use partner endpoints to manage client Constant Contact accounts under your partner account.
paths:
  /partner/accounts:
    get:
      tags:
      - Technology Partners
      summary: GET Partner Client Accounts
      description: 'Get all Constant Contact client accounts managed under your technology partner account. Use the `limit` query parameter to set the number of accounts to return on each results page. Use the `account_type` query parameter to filter client account results by type: `all` (default), `managed`, or `unmanaged`.

        Only technology partners can access partner endpoints and partner endpoints cannot be tested using the API reference tester.

        For more use case information, see [Get all Partner Client Accounts](/api_guide/partners_accts_get.html) in the API guide.'
      operationId: getPartnerSiteOwners
      parameters:
      - name: offset
        in: query
        description: Depending on the `limit` you specify, the system determines the `offset` parameter to use (number of records to skip) and includes it in the link used to get the next page of results
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: The number of client accounts to return on each page of results. The default value is `50`. Entering a `limit` value less than the minimum (`10`) or greater than the maximum (`50`) is ignored and the system uses the default values. Depending on the `limit` you specify, the system determines the `offset` parameter to use (number of records to skip) and includes it in the link used to get the next page of results.
        required: false
        x-example: '50'
        schema:
          type: string
          format: int32
          default: '50'
          maximum: 50
          minimum: 10
      - name: account_type
        in: query
        description: 'Filters client account results by account type: `all` (default), `managed`, or `unmanaged`. Excluding the `account_type` query parameter returns all client accounts for the partner.'
        required: false
        x-example: managed
        schema:
          type: string
          enum:
          - all
          - managed
          - unmanaged
          default: all
      responses:
        '200':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerAccount'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '500':
          description: There was a problem with our internal service.
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: getAccounts
    post:
      tags:
      - Technology Partners
      summary: POST (create) a Partner Client Account
      description: "Use this POST method to create a new Constant Contact client account under your partner account, set up the billing plan for the account, and to add the new client to the default contact list.\n\nNewly created accounts are free trials which give the user up to 60 days to try Constant Contact before buying. Trial accounts have limits depending on the services that are included.\n\nIf a field validation error occurs, a 400 response message is returned.\n\nIf provisioning does not complete successfully due to unavailable dependencies, such as database or dependent services, a 503 response message is returned. By default, the client account provision data is stored and processed when provisioning becomes available.\n\nIf the partner client account has the Single Sign On (SSO) for all users feature enabled, all users in the client account can sign into the account using SSO. This feature must be set up through the Constant Contact Partner team. For feature details, see [Configuring Identity Provider Initiated SSO](/api_guide/partner_sso_config.html). Some client account features will be supported in future releases. \n\nFor more use case information, see [Create a new Partner Client Account](/api_guide/partners_accts_create.html) in the API guide."
      operationId: provision
      responses:
        '201':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProvisionResponse'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '409':
          description: Conflict. The resource you are creating or updating conflicts with an existing resource.
        '415':
          description: Unsupported Media Type.
        '500':
          description: There was a problem with our internal service.
        '503':
          description: Our internal service is temporarily unavailable.
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: createAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Provision'
        description: Create a new Constant Contact client account under your partner account. All required properties must be included in the JSON payload request.
        required: true
  /partner/accounts/{encoded_account_id}/plan:
    get:
      tags:
      - Technology Partners
      summary: GET Billing Plan Details for a Client Account
      description: 'Use this GET method to return billing plan details for a client''s Constant Contact account.

        If you are not on the latest billing plan, contact the Constant Contact Partner Team. However, older billing plans and `plan_type` enum values will continue to be supported. Only technology partners can access partner endpoints and partner endpoints cannot be tested using the API reference tester.

        For more use case information, see [Get Billing Plan Details for a Client Account](/api_guide/partners_plans_get.html) in the API guide.'
      operationId: getPlan
      parameters:
      - name: encoded_account_id
        in: path
        description: Specify the client's unique `encoded_account_id`.
        required: true
        x-example: a07e1lxqqqo0
        schema:
          type: string
      responses:
        '200':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanTiersObject'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '405':
          description: Unsupported method used.
        '415':
          description: Unsupported Media Type.
        '500':
          description: There was a problem with our internal service.
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: getAccountBillingPlan
    put:
      tags:
      - Technology Partners
      summary: PUT (update) Billing Plan Details for a Client Account
      description: 'Use this PUT method to update the type of billing plan to assign to the Constant Contact client account. The type of billing plan determines which Constant Contact product features that the client account can access. The billing plan that you specify in the request body (`plan_type`) must already exist in the plan group. Attempting to change to a plan that is currently not available within your partner plan group results in a 400 error response code.


        When you create a new client account, the `plan_type` defaults to `TRIAL` and the `billing_day_of_month` defaults to `null`. The `billing_day_of_month` property is required if a client account is not set up to use single billing. You can change the day of month (`billing_day_of_month`) in which to bill a client account only when changing the `plan_type` value from `TRIAL` to a different `plan_type`, otherwise the `billing_day_of_month` value you enter is ignored. You can choose to enter a specific day of the month or accept the default value, which is the day on which the `plan_type` value changes from a `TRIAL` plan to a different `plan_type`. Changing the `plan_type` from `TRIAL` to another `plan_type` automatically changes the `billing_status` from `Trial` to `Open`.


        Only technology partners can access partner endpoints and partner endpoints cannot be tested using the API reference tester. If you are not on the latest billing plan, contact the Constant Contact Partner Team. However, older billing plans and `plan_type` enum values will continue to be supported.


        For more use case information, see [PUT Billing Plan Details for a Client Account](/api_guide/partners_plans_update.html) in the API guide.'
      operationId: setPlan
      parameters:
      - name: encoded_account_id
        in: path
        description: Specify the client's unique `encoded_account_id`.
        required: true
        x-example: a07e1lxqqqo0
        schema:
          type: string
      responses:
        '200':
          description: Request successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanTiersObject'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '405':
          description: Unsupported method used.
        '415':
          description: Unsupported Media Type.
        '500':
          description: There was a problem with our internal service.
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: updateAccountBillingPlan
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlanInfo'
        description: "`plan_type`: Updates the billing plan assigned to a client account to a different `plan_type`.   \n\n`plan_group_id`: To update an older `plan_type` to a current a `plan_type`, use the `plan_group_id` parameter to specify the older billing `plan_type` number. \n\n- If the specified `plan_group_id` does not exist under the account's current plan group, the default partner plan group is used.\n- If the specified `plan_group_id` exists but does not match the account's current plan group, an error is returned.\n- If the `plan_group_id` parameter is not included in the request, the accounts current plan group is used.\n\n`billing_day_of _month`:   Updates the day of month in which to bill the client account. This property is required if a client account is not set up to use single billing.      "
  /partner/accounts/{encoded_account_id}/status/cancel:
    put:
      tags:
      - Technology Partners
      summary: PUT Cancel the Billing Plan for a Client Account
      description: "Use this PUT method to cancel a client's Constant Contact account. If the specified client account or technology partner account does not exist, the system returns a 404 error response. If the client account exists under a different technology partner account, the system returns a 400 error response.\n\n\n  To get a list of all canceled client accounts (`\"billing_status\": \"Canceled\"`), make a `GET` call to the `/partner/accounts` endpoint.\n\n  Only technology partners can access partner endpoints and partner endpoints cannot be tested using the API reference tester.\n\n  For more use case information, see [Cancel the Billing Plan for a Client Account](/api_guide/partners_plans_cancel.html) in the API guide.\""
      operationId: cancelAccount
      parameters:
      - name: encoded_account_id
        in: path
        description: The system generated ID that uniquely identifies the client account.
        required: true
        x-example: a07e1lxqqqo0
        schema:
          type: string
      responses:
        '200':
          description: Request successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountCancellation'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '500':
          description: There was a problem with our internal service.
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: cancelAccountBillingPlan
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountCancellation'
        description: By default, the current date and time is automatically used as the cancellation date. However, you can specify a future date and time to cancel the account (`effective_date`) in the request body in ISO format. You can also enter the client's cancellation reason (`reason_id`).
  /partner/accounts/{encoded_account_id}/account_operations/sync:
    post:
      tags:
      - Technology Partners
      summary: POST Send an API request on Behalf of a Client Account
      description: 'Use this API method to send an API request on behalf of a managed client account in your partnership.


        The request body properties you use in this partner API call determine the structure of the API request that Constant Contact sends on behalf of the managed client account. This includes the HTTP url, HTTP method type, request body, request url parameters, request query parameters, and headers that for the request. You can use this `/partner/accounts/{encoded_account_id}/account_operations/sync` API method to send a request using non-partner v3 API methods.'
      operationId: partnerAccountOperationsPostSync
      parameters:
      - name: encoded_account_id
        in: path
        description: An encoded account id for a managed account in your partnership.
        required: true
        x-example: a07e1lxqqqo0
        schema:
          type: string
      responses:
        '200':
          description: Request successful. The response body schema returned by this method corresponds to the specific API request you provided in the request body.
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: Not found. This may indicate that the encoded_account_id you provided is invalid, or the API request you are sending on behalf of an account returned a 404.
        '500':
          description: There was a problem with our internal service.
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      x-sdk-methodName: sendRequestUsingManagedAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerAccountOperationsRequest'
        description: A JSON request body that contains the structure of the HTTP request you are instructing Constant Contact to send on behalf of specific managed account in your partnership.
  /partner/accounts/{encoded_account_id}/users/sso:
    post:
      tags:
      - Technology Partners
      summary: POST a User Under a Partner's SSO-Enabled Client Account
      description: Use this endpoint to create a new user under a partner client account that has the Single Sign On (SSO) for all users feature enabled.
      operationId: createSSOUser
      parameters:
      - name: encoded_account_id
        in: path
        description: 'The encoded account ID that identifies the partner''s client account to which to add the new user. '
        required: true
        x-example: a07e1lxqqqo0
        schema:
          type: string
      responses:
        '201':
          description: Request successful.
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '409':
          description: Conflict. The resource you are creating or updating conflicts with an existing resource.
        '500':
          description: There was a problem with our internal service.
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SSOUser'
        description: The JSON payload used to create a new user under the specified partner's client account. All request body properties are required (`first_name`, `last_name`, `role_name`, `contact_email`, `login_name`, `external_id`, `external_provider`).
        required: true
  /partner/accounts/{encoded_account_id}/contacts/unsubscribe:
    post:
      tags:
      - Technology Partners
      summary: POST Unsubscribe Contacts
      description: Use to unsubscribe contacts from partner client accounts. Identify the contacts to unsubscribe using the `email_address` parameter. To unsubscribe a single contact from all partner client accounts, specify the contacts `email_address` and set the `global_unsubscribe` parameter to `true`.
      operationId: partnerUnsubscribeContacts
      parameters:
      - name: encoded_account_id
        in: path
        description: The encoded account ID that uniquely identifies the partner's client account.
        required: true
        x-example: a07e1lxqqqo0
        schema:
          type: string
      responses:
        '200':
          description: Contacts were successfully unsubscribed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerUnsubscribeResponse'
        '400':
          description: Bad request. Either the JSON was malformed or there was a data validation error.
        '401':
          description: The Access Token used is invalid.
        '403':
          description: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated.
        '404':
          description: The requested resource was not found.
        '406':
          description: Unsupported Media Type.
        '500':
          description: There was a problem with our internal service.
      security:
      - ctctPartnerAuthorizer: []
        api_key: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - update_source
              properties:
                email_addresses:
                  type: array
                  description: Array of email addresses to unsubscribe.
                  items:
                    type: string
                  maxItems: 500
                  x-example: lang.carry@anymail.com
                update_source:
                  type: string
                  description: Required parameter to specify the update source performing the unsubscribe.
                  enum:
                  - Account
                  - Contact
                  - System
                  x-example: Account
                opt_out_reason:
                  type: string
                  description: Optional parameter to specify the reason for the unsubscribe.
                  maxLength: 255
                  x-example: No longer interested.
                delete_contacts:
                  type: boolean
                  description: Optional parameter to specify if the contact(s) should be soft-deleted as part of the unsubscribe.
                  default: false
                  x-example: 'false'
                global_unsubscribe:
                  type: boolean
                  description: Optional parameter to specify if the contact's email address should be unsubscribed from all partner child accounts. When specified only a single email address in the `email_addresses` array can be specified.
                  default: false
                  x-example: 'true'
        description: The JSON payload.
        required: true
components:
  schemas:
    PathParamObject:
      type: object
      properties:
        path_param_key:
          type: string
          example: contact_id
          description: The name of the path parameter.
        path_param_value:
          type: string
          example: 04fe9a-a579-43c5-bb1a-58ed29bf0a6a
          description: The value of the path parameter.
    ProvisionResponse:
      type: object
      properties:
        encoded_account_id:
          type: string
          example: a08e1izzh8t9
          description: The system generated ID used to uniquely identify a client account.
        provision_uuid:
          type: string
          example: x9xx2ede-5a58-4e23-8168-25930c5x7bxb
          description: The system generated ID used to uniquely identify the provisioning of a client account.
    PaginationLinks:
      type: object
      properties:
        next:
          description: Contains the next page link, if applicable.
          $ref: '#/components/schemas/partnersLink'
    TierObject:
      type: object
      properties:
        usage_type:
          type: string
          example: CONTACTS
          description: Identifies the tier usage type that is associated with the billing plan.
          readOnly: true
          default: CONTACTS
        current_usage:
          type: number
          format: float
          example: 10.0
          description: The number of active contacts (default) used within the current tier.
          readOnly: true
        tier:
          type: integer
          format: int32
          example: 1
          description: "The billing tier level that is associated with a client account. By default, the system determines the tier level to use based on the number of active contacts currently in the client account at the time of billing. Billing tiers may differ. The following shows an example billing tier: <ul>\n  <li>level <code>1</code> = 0 - 500 contacts</li>\n  <li>level <code>2</code> = 501 - 1000 contacts</li>\n  <li>level <code>3</code> = 1001 - ...</li>\n</ul>"
          readOnly: true
        tier_min:
          type: number
          format: float
          example: 0.0
          description: The minimum number of active contacts for the tier level.
          readOnly: true
        tier_max:
          type: number
          format: float
          example: 500.0
          description: The maximum number of active contacts for the tier level.
          readOnly: true
        price:
          type: number
          format: float
          example: 20.0
          description: The billing price set for the tier used to bill the client account each month.
          readOnly: true
        currency_code:
          type: string
          example: USD
          description: The currency (ISO currency code) used to price the tier for a client account.
          readOnly: true
      description: The usage tier that is associated with a client's Constant Contact account and is used to calculate the monthly billing price.
    PartnerAccountOperationsRequest:
      type: object
      required:
      - account_operation_method
      - account_operation_url
      properties:
        account_operation_url:
          type: string
          example: /contacts/{contact_id}
          description: 'The API method path for the request you are sending on behalf of a managed child account. This value should be a V3 API URL without the https://api.cc.email/v3 base url and with any path parameter names included. For example: <code>/emails/activities/{campaign_activity_id}</code>.'
        account_operation_method:
          type: string
          example: GET
          description: The http method for the request you are sending on behalf of a managed child account.
        account_operation_payload:
          type: string
          example: ''
          description: The request payload for the request you are sending on behalf of a managed child account. If you provide a JSON payload using this parameter, make sure that the JSON is string escaped.
        account_operation_query_parameters:
          type: array
          description: An array containing the query parameters for the request you are sending on behalf of a managed child account.
          items:
            $ref: '#/components/schemas/QueryParamObject'
        account_operation_path_parameters:
          type: array
          description: An array containing the path parameters for the request you are sending on behalf of a managed child account.
          items:
            $ref: '#/components/schemas/PathParamObject'
        account_operation_headers:
          type: array
          description: An array containing the headers for the request you are sending on behalf of a managed child account.
          items:
            $ref: '#/components/schemas/HeadersObject'
      description: JSON object that contains the fields Constant Contact uses to construct the HTTP request you are sending on behalf of a managed account.
    AccountCancellation:
      type: object
      properties:
        reason_id:
          type: integer
          format: int32
          example: 1
          description: "Specifies the reason that the client is canceling their Constant Contact account as follows:\n  <ul>\n    <li><code>1</code>  Cost Too High</li>\n    <li><code>2</code>  Using A Competitive Service</li>\n    <li><code>3</code>  Not Doing Email Marketing</li>\n    <li><code>11</code> Something Missing Or Not Working </li>\n    <li><code>12</code> Doing It In-House</li>\n    <li><code>14</code> Poor Results</li>\n    <li><code>21</code> Too Difficult To Use</li>\n    <li><code>27</code> Canceled Online by Customer</li>\n    <li><code>30</code> Dissatisfied With Billing Policies</li>\n  </ul>"
        effective_date:
          type: string
          format: date-time
          example: '2020-02-06T22:09:15.000Z'
          description: The client account cancellation date and time in ISO-8601 format.
      description: Specifies the date and time a client requests to cancel their Constant Contact account and changes the account `billing_status` to `Canceled`. By default, this is the current date and time in ISO format. In the request body, you can optionally specify a future cancellation date (in ISO format) and a reason (`reason_code`) that the client wants to cancel their account.
    PlanTiersObject:
      type: object
      properties:
        plan_type:
          type: string
          example: GOLD
          description: "The billing plan that is associated with a client's Constant Contact account. The billing plan determines which Constant Contact product features that the client account can access. If you are not on the latest billing plan, contact the Constant Contact Partner Team. However, older billing plans and <code>plan_type</code> enum values will continue to be supported. <ul>\n  <li><code>TRIAL</code>: Provides limited product features for a non-billed account and the account has an expiration date.</li>\n  <li><code>BRONZE</code>: Billable plan that provides basic email and marketing tools.</li>  \n  <li><code>SILVER</code>: Billable plan that provides all features available in the <code>BRONZE</code> plan, and adds some additional email campaign to features, such as contact segmentation and social media ads integration.</li>\n  <li><code>GOLD</code>: Billable plan that provides all available product features.</li>\n</ul>"
        current_tiers:
          type: array
          description: Lists the billing plan tiers that are currently associated with a client account.
          items:
            $ref: '#/components/schemas/TierObject'
        billing_status:
          type: string
          example: Open
          description: "The client's account billing status. When you first create a client account the <code>billing_status</code> defaults to <code>Trial</code>. Billing status values include:\n  <ul>\n    <li><code>Trial</code> - A non-paying trial client account (default value).</li>\n    <li><code>Open</code> - An active and paying client account.</li>\n    <li><code>Canceled</code> - A canceled client account.</li>\n    <li><code>Trial End</code> - The trial period has ended for this client account.</li>\n  </ul>"
        billing_day_of_month:
          type: integer
          format: int32
          example: 15
          description: This property is required when an account is not set up to use single billing. For trial accounts, the value is initially set to <code>null</code>. The value can only be changed when changing the <code>plan_type</code> from a trial account to a different type of plan, otherwise the value you enter is ignored. You can choose to enter a specific day of month or except the default value, which is the day that the <code>plan_type</code> value changes from a trial account plan to a different plan. Valid <code>billing_day_of_month</code> values include <code>1</code> through and including <code>31</code>.
      description: Specifies client billing plan details including the type of plan, the plan tiers used, the current billing status, and the day of the month that the client is billed. When a client account is first provisioned, the `plan_type` defaults to a `Trial` account. After you change an account `billing_status` from `Trial` to any other `billing_status`, you cannot change it back to a `Trial` account.
    PartnerUnsubscribeResponse:
      type: object
      properties:
        unsubscribed_count:
          type: integer
          example: 5
          description: The number of contacts that were successfully unsubscribed.
      description: Response indicating the number of contacts that were successfully unsubscribed.
    HeadersObject:
      type: object
      properties:
        header_key:
          type: string
          example: Accept
          description: The name of the header.
        header_value:
          type: string
          example: application/json
          description: The value of the header.
    partnersLink:
      type: object
      properties:
        href:
          type: string
    SSOUser:
      type: object
      required:
      - contact_email
      - external_id
      - external_provider
      - first_name
      - last_name
      - login_name
      - role_name
      pr

# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/constant-contact/refs/heads/main/openapi/constant-contact-technology-partners-api-openapi.yml