swagger: '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.149 title: AppConnect V3 Account Services API contact: name: webservices@constantcontact.com license: name: Private url: https://www.constantcontact.com/legal/terms-of-use host: api.cc.email basePath: /v3 schemes: - https consumes: - application/json produces: - application/json tags: - name: Account Services description: Use the account endpoints and methods to get account information. paths: /account/user/privileges: get: tags: - Account Services summary: GET User Privileges description: Use this method to return the user privileges associated with your access token as an array of objects. This method returns all user privileges, including privileges the V3 API does not currently use. Constant Contact requires specific user privileges to make requests using the V3 API. For more information, see the [User Privileges and Roles Overview](/api_guide/user_privileges.html). operationId: getUserPrivileges produces: - application/json parameters: [] responses: '200': description: Request successful. schema: $ref: '#/definitions/UserPrivilegesResource' '401': description: The Access Token used is invalid. '403': description: Forbidden request. Your application is deactivated. '500': description: There was a problem with our internal service. '503': description: Our internal service is temporarily unavailable. security: - oauth2_implicit: [] - oauth2_access_code: [] /account/summary: get: tags: - Account Services summary: GET a Summary of Account Details description: Get account related details for a Constant Contact user account. Use the `extra_fields` query parameter to include the `company_logo` and/or `physical_address` details in the response body. For more details, see [Get Account Summary Details](/api_guide/account_details_get.html). operationId: getAccountById produces: - application/json parameters: - name: extra_fields in: query description: Use the `extra_fields` query parameter to include the `physical_address` and/or `company_logo` details in the response body. Use a comma separated list to include both (physical_address, company logo). required: false type: string format: csv enum: - physical_address - company_logo x-example: company_logo responses: '200': description: Request successful schema: $ref: '#/definitions/Customer' '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. '500': description: There was a problem with our internal service. '503': description: Our internal service is temporarily unavailable. security: - oauth2_implicit: - account_read - oauth2_access_code: - account_read x-authorization-privileges: - account:read x-sdk-methodName: getAccountDetails put: tags: - Account Services summary: PUT (update) Account Details description: Use this method to update account details for a Constant Contact account, such as the email address or phone number. This PUT method provides a partial update where only valid properties that you include in the request body are updated and excluded properties are not overwritten. For more details, see [Put (update) Account Summary Details](/api_guide/account_details_put.html). operationId: putCustomerById consumes: - application/json produces: - application/json parameters: - in: body name: body description: In the request body, specify changes to account details by including and modifying all or select `CustomerPut` properties. Changes to read-only fields (`encoded_account_id`) are ignored. required: true schema: $ref: '#/definitions/CustomerPut' responses: '200': description: Request successful schema: $ref: '#/definitions/CustomerPut' '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. '500': description: There was a problem with our internal service. '503': description: Our internal service is temporarily unavailable. security: - oauth2_implicit: - account_update - oauth2_access_code: - account_update x-authorization-privileges: - account:update x-sdk-methodName: updateAccount /account/summary/physical_address: get: tags: - Account Services summary: GET the Physical Address for the Account description: Use this method to get the address where the account's organization physically resides. The physical address is required to send emails and displays on the footer of every email that is sent from the account. operationId: getPhysicalAddress produces: - application/json parameters: [] responses: '200': description: Request successful schema: $ref: '#/definitions/AccountPhysicalAddress' '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. '415': description: Unsupported Media Type. '500': description: There was a problem with our internal service. '503': description: Our internal service is temporarily unavailable. security: - oauth2_implicit: - account_read - oauth2_access_code: - account_read x-authorization-privileges: - account:read x-ctctmcp-allow: true x-sdk-methodName: getAccountPhysicalAddress post: tags: - Account Services summary: POST the Physical Address for the Account description: Use this method to add the address where the account's organization physically resides. The physical address is required to send emails and displays on the footer of every email that is sent from the account. The country (country_code) where the account organization resides determines whether you use the state_code to specify United States (US) and Canada (CA) addresses, or use the state_name to specify all other countries. operationId: addPhysicalAddress produces: - application/json parameters: - in: body name: body description: Include all `AccountPhysicalAddress` properties required for the specified `country_code`. If a required property is not included or incorrectly formatted, a 400 error message is returned. If the address already exists, a 409 error message is returned. required: true schema: $ref: '#/definitions/AccountPhysicalAddress' responses: '201': description: Request successful schema: $ref: '#/definitions/AccountPhysicalAddress' '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: Forbidden request. You lack the necessary scopes, you lack the necessary user privileges, or the application is deactivated. '415': description: Unsupported Media Type. '500': description: There was a problem with our internal service. '503': description: Our internal service is temporarily unavailable. security: - oauth2_implicit: - account_update - oauth2_access_code: - account_update x-authorization-privileges: - account:update x-ctctmcp-allow: true put: tags: - Account Services summary: PUT (update) the Physical Address for an Account description: 'Use this method to update the organization''s physical address for the Constant Contact user account. The physical address is required to send emails and displays on the footer of every email that is sent from the account. To get the current physical address, make a GET call to `/account/summary/physical_address`. The country (country_code) where the account organization resides determines whether you use the state_code to specify United States (US) and Canada (CA) addresses, or use the state_name to specify all other countries. For more details, see [Put (update) the Physical Address for the Account](/api_guide/account_address_put.html). You must have the role of Account Owner assigned to update account level details. ' operationId: putPhysicalAddress consumes: - application/json produces: - application/json parameters: - in: body name: body description: Include all `AccountPhysicalAddress` properties required for the specified `country_code` and then update only those properties that you want to change. Excluding a non-read only field from the request body removes it from the physical address. required: true schema: $ref: '#/definitions/AccountPhysicalAddress' responses: '200': description: Request successful schema: $ref: '#/definitions/AccountPhysicalAddress' '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. '415': description: Unsupported Media Type. '500': description: There was a problem with our internal service. '503': description: Our internal service is temporarily unavailable. security: - oauth2_implicit: - account_update - oauth2_access_code: - account_update x-authorization-privileges: - account:update x-ctctmcp-allow: true x-sdk-methodName: updateAccountPhysicalAddress /account/emails: get: tags: - Account Services summary: GET a Collection of Account Email Addresses description: "Use this method to return a collection of email addresses for the account associated with your access token. When you Create an Email Campaign, you must use an account email address with a `CONFIRMED` status in the email campaign `from_email` and `reply_to_email` headers.\n \n\nUse the query parameters to filter results. You can filter using `confirm_status`, `role_code`, or `email_address`. For example, searching with `confirm_status=CONFIRMED` returns all confirmed email addresses in the account. This method only supports one query parameter at a time.\n" operationId: retrieveEmailAddresses produces: - application/json parameters: - name: confirm_status in: query description: 'Use the `confirm_status` query parameter to search for account emails using the email status. Possible values are `CONFIRMED` or `UNCONFIRMED`. You can also abbreviate the values of this query parameter and use `C` or `U`. ' required: false type: string enum: - CONFIRMED - C - UNCONFIRMED - U - name: role_code in: query description: Use the `role_code` query parameter to search for account emails that have a specific role. Each each email address in an account can have multiple roles or no role. Possible values are `CONTACT`, `BILLING`, `REPLY_TO`, `JOURNALING`, or `OTHER`. You can also abbreviate the value of this query parameter and use `C`,`B`,`R`,`J`, or `O`. required: false type: string enum: - CONTACT - C - BILLING - B - JOURNALING - J - REPLY_TO - R - OTHER - O - name: email_address in: query description: Use the `email_address` query parameter to search for a specific account email address. required: false type: string responses: '200': description: Request successful. schema: $ref: '#/definitions/AccountEmails' '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. '415': description: Unsupported Media Type. '500': description: There was a problem with our internal service. '503': description: Our internal service is temporarily unavailable. security: - oauth2_implicit: - account_read - oauth2_access_code: - account_read x-authorization-privileges: - account:read x-sdk-methodName: getAllAccountEmailAddresses x-ctctmcp-allow: true post: tags: - Account Services summary: POST Add an Account Email Address description: "Use this method to add a new email address to a Constant Contact account. If the email address you are adding already exists in the account the API will return a 409 conflict error. \n\nWhen you add a new email address to an account, Constant Contact automatically sends an email to that address with a link to confirm it. After a user clicks that link, the account email status changes from `UNCONFIRMED` to `CONFIRMED`. You can use confirmed account email addresses in the email campaign `from_email` and `reply_to_email` headers. For more use case information, see [Add an Account Email Address](/api_guide/account_post_emails.html) in the API guide. \n" operationId: addAccountEmailAddress produces: - application/json parameters: - in: body name: body description: A JSON request payload containing the new email address you want to add to the Constant Contact account. required: true schema: $ref: '#/definitions/AccountEmailInput' responses: '201': description: Request successful. schema: $ref: '#/definitions/AccountEmailCreateResponse' '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. '415': description: Unsupported Media Type. '500': description: There was a problem with our internal service. '503': description: Our internal service is temporarily unavailable. security: - oauth2_implicit: - account_update - oauth2_access_code: - account_update x-authorization-privileges: - account:update x-ctctmcp-allow: true definitions: AccountPhysicalAddress: type: object required: - address_line1 - city - country_code properties: address_line1: type: string example: 123 Maple Street description: Line 1 of the organization's street address. minLength: 1 maxLength: 80 address_line2: type: string example: Unit 1 description: Line 2 of the organization's street address. minLength: 1 maxLength: 80 address_line3: type: string example: Apartment 234 description: Line 3 of the organization's street address. minLength: 1 maxLength: 80 city: type: string example: Boston description: The city where the organization is located. state_code: type: string example: MA description: The two letter ISO 3166-1 code for the organization's state and only used if the country_code is US or CA. If not, exclude this property from the request body. maxLength: 2 state_name: type: string example: EXCLUDE if country_code is US. description: Use if the state where the organization is physically located is not in the United States or Canada. If country_code is US or CA, exclude this property from the request body. postal_code: type: string example: '02451' description: The postal code address (ZIP code) of the organization. This property is required if the state_code is US or CA, otherwise exclude this property from the request body. country_code: type: string example: US description: The two letter ISO 3166-1 code for the organization's country. Customer: type: object properties: contact_email: type: string example: InstaPrinz@gmail.com description: Email addresses that are associated with the Constant Contact account owner. contact_phone: type: string example: '5081111212' description: The account owner's contact phone number (up to 25 characters in length). maxLength: 25 country_code: type: string example: US description: The uppercase two-letter ISO 3166-1 code representing the organization's country. encoded_account_id: type: string example: p07e1l8cdif9dl description: The readOnly encoded account ID that uniquely identifies the account. readOnly: true encoded_partner_id: type: string example: a37cranviy95el description: The encoded partner id that identifies which Constant Contact partner provisioned the account. readOnly: true first_name: type: string example: Lola description: The account owner's first name. last_name: type: string example: Zang description: The account owner's last name. organization_name: type: string example: InstaPrinz description: The name of the organization that is associated with this account. organization_phone: type: string example: 333-333-3335 description: The phone number of the organization that is associated with this account. state_code: type: string example: MA description: The uppercase two letter ISO 3166-1 code for the organization's state. This property is required if the country_code is US (United States). time_zone_id: type: string example: US/Eastern description: The time zone that is automatically set based on the state_code setting; as defined in the IANA time-zone database (see http://www.iana.org/time-zones). website: type: string example: http://InstaPriz4me.com description: The organization's website URL. physical_address: type: object properties: address_line1: type: string example: 123 Maple Street description: Line 1 of the organization's street address. minLength: 1 maxLength: 80 address_line2: type: string example: Unit 1 description: Line 2 of the organization's street address. minLength: 1 maxLength: 80 address_line3: type: string example: Apartment 234 description: Line 3 of the organization's street address. minLength: 1 maxLength: 80 city: type: string example: Boston description: The city where the organization is located. state_code: type: string example: MA description: The two letter ISO 3166-1 code for the organization's state and only used if the country_code is US or CA. If not, exclude this property from the request body. maxLength: 2 state_name: type: string example: EXCLUDE if country_code is US. description: Use if the state where the organization is physically located is not in the United States or Canada. If country_code is US or CA, exclude this property from the request body. postal_code: type: string example: '02451' description: The postal code address (ZIP code) of the organization. This property is required if the state_code is US or CA, otherwise exclude this property from the request body. country_code: type: string example: US description: The two letter ISO 3166-1 code for the organization's country. required: - address_line1 - city - country_code company_logo: description: Used to include an existing company logo in the response body. If a company logo does not exist, nothing is returned in the response body. This property is optional. $ref: '#/definitions/CompanyLogo' AccountEmailInput: type: object properties: email_address: type: string example: dlang@example.com description: The new email address you want to add to a Constant Contact account. maxLength: 80 CompanyLogo: type: object properties: url: type: string example: https://files.constantcontact.com/3a20c2f5701/780c1ff3-7fc6-4712-a862-ad5b6af57d38.jpg. description: The internal URL used to get the company logo image file hosted locally in your account's MyLibrary. external_url: type: string example: https://www.google.com/images/logos/google_logo_41.png. description: The external URL used to get the company logo image file that is hosted on an external website. internal_id: type: string example: ACCOUNT.IMAGE.5 description: The internal ID used to identify the image hosted in your account's MyLibrary. AccountEmails: type: array items: type: object properties: email_address: type: string description: An email address associated with a Constant Contact account owner. maxLength: 80 email_id: type: integer format: int64 description: The unique ID for an email address in a Constant Contact account. minimum: 1 confirm_status: type: string description: 'The confirmation status of the account email address. When you add a new email address to an account, Constant Contact automatically sends an email to that address with a link to confirm it. You can use any account email address with a CONFIRMED status to create an email campaign. ' confirm_time: type: string format: date-time description: The date that the email address changed to CONFIRMED status in ISO-8601 format. confirm_source_type: type: string description: "Describes who confirmed the email address. Valid values are:\n \n" roles: type: array description: 'Specifies the current role of a confirmed email address in an account. Each email address can have multiple roles or no role. Possible role values are: You can use any confirmed email address in the email campaign from_email and reply_to_email headers. ' items: type: string pending_roles: type: array description: 'The planned role for an unconfirmed email address. Possible role values are: ' items: type: string AccountEmailCreateResponse: type: object properties: email_address: type: string example: dlang@example.com description: An email address associated with a Constant Contact account owner. maxLength: 80 email_id: type: integer format: int64 example: 2 description: The unique ID for an email address in a Constant Contact account. minimum: 1 confirm_status: type: string example: UNCONFIRMED description: 'The confirmation status of the account email address. When you add a new email address to an account, Constant Contact automatically sends an email to that address with a link to confirm it. You can use any account email address with a CONFIRMED status to create an email campaign. ' CustomerPut: type: object properties: contact_email: type: string example: InstaPrinz@gmail.com description: The confirmed email address that is associated with the account owner. contact_phone: type: string example: '5081111212' description: The account owner's contact phone number (up to 25 characters in length). maxLength: 25 country_code: type: string example: US description: The two-letter ISO 3166-1 code representing the organization's country. encoded_account_id: type: string example: p07e1l8cdif9dl description: The read only encoded account ID that uniquely identifies the account. readOnly: true first_name: type: string example: Lola description: The account owner's first name. last_name: type: string example: Zang description: The account owner's last name. organization_name: type: string example: InstaPrinz description: The name of the organization that is associated with this account. organization_phone: type: string example: 333-333-3335 description: The phone number of the organization that is associated with this account. state_code: type: string example: MA description: The two letter ISO 3166-1 code used to specify the state to associate with the account. This property is required if the country_code is US (United States). time_zone_id: type: string example: US/Eastern description: The time zone to use for the account; as defined in the IANA time-zone database (see http://www.iana.org/time-zones). website: type: string example: http://InstaPriz4me.com description: The organization's website URL. UserPrivilegesResource: type: array items: type: object properties: privilege_id: type: integer example: 30 description: Identifies a user privilege in Constant Contact. privilege_name: type: string example: campaign:create description: The name of the Constant Contact user privilege. securityDefinitions: oauth2_implicit: type: oauth2 authorizationUrl: https://authz.constantcontact.com/oauth2/default/v1/authorize flow: implicit scopes: contact_data: Read or modify contact data. campaign_data: Read or modify email campaign data. account_read: Read account data. account_update: Modify account data. oauth2_access_code: type: oauth2 authorizationUrl: https://authz.constantcontact.com/oauth2/default/v1/authorize tokenUrl: https://authz.constantcontact.com/oauth2/default/v1/token flow: accessCode scopes: contact_data: Read or modify contact data. campaign_data: Read or modify email campaign data. account_read: Read account data. account_update: Modify account data. ctctPartnerAuthorizer: description: Partner Authentication type: oauth2 authorizationUrl: https://v3api-partner.auth.us-east-1.amazoncognito.com/oauth2/token flow: implicit scopes: v3api/general.partner: Access to general partner API methods api_key: type: apiKey name: x-api-key in: header