Constant Contact website screenshot

Constant Contact

Constant Contact is a small-business email and digital marketing platform offering email campaigns, automation, SMS, contact management, surveys, and events. The Constant Contact V3 API is a REST + JSON, OAuth2-protected service published at api.cc.email/v3 covering accounts, contacts, lists, tags, custom fields, segments, email campaigns, A/B tests, schedules and tests, bulk activities (CSV/JSON import, export, list and tag mutations), events with registration and check-in, reporting, and partner provisioning.

1 APIs 16 Features
CampaignsContactsEmail MarketingEventsReportingSMSSurveys

APIs

Constant Contact V3 API

Production REST API for Constant Contact's email marketing, SMS, and events platform. OAuth2 authorization (auth code, PKCE, and JWT-bearer flows) gates all endpoints across acc...

Collections

GraphQL

Constant Contact GraphQL Schema

This directory contains a conceptual GraphQL schema for the Constant Contact V3 API. Constant Contact is a small-business email and digital marketing platform offering email cam...

GRAPHQL

Pricing Plans

Rate Limits

Constant Contact Rate Limits

3 limits

RATE LIMITS

FinOps

Features

Lite: $12/mo for 500 contacts (jumps to $50/mo at 1K)
Standard: mid-tier with A/B testing, segmentation
Premium: $80/mo at 500 contacts with 24x email ratio
Email overages: $0.002 per additional email
REST API v3 at api.cc.email/v3
API limit: 4 req/sec, 10K req/day per app
OAuth 2.0
Webhooks for contact and campaign events
Contacts, lists, segments, custom fields
Email Templates and Drag-and-Drop editor
Marketing Automation (Standard+)
Surveys, landing pages, social media posts
Reporting on opens, clicks, bounces, conversions
E-commerce integrations (Shopify, WooCommerce, etc.)
Event marketing and registration
List building tools and lead capture

Semantic Vocabularies

Constant Contact Context

0 classes · 8 properties

JSON-LD

API Governance Rules

Constant Contact API Rules

9 rules · 3 errors 5 warnings 1 info

SPECTRAL

JSON Structure

Constant Contact Structure

0 properties

JSON STRUCTURE

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🌐
Portal
Portal
🚀
GettingStarted
GettingStarted
🔑
Authentication
Authentication
🔗
APIReference
APIReference
🔗
OpenAPI
OpenAPI
🟢
StatusPage
StatusPage
💬
Support
Support
🔗
Community
Community
📰
Blog
Blog
👥
GitHubOrganization
GitHubOrganization
📜
PrivacyPolicy
PrivacyPolicy
📜
TermsOfService
TermsOfService
🔗
JSONLD
JSONLD
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
Spectral
Spectral

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: AppConnect V3
  version: 3.0.149
items:
- info:
    name: Account Services
    type: folder
  items:
  - info:
      name: GET User Privileges
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/account/user/privileges'
    docs: 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).
  - info:
      name: GET a Summary of Account Details
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/account/summary'
      params:
      - name: extra_fields
        value: ''
        type: 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).
    docs: 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).
  - info:
      name: PUT (update) Account Details
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/account/summary'
    docs: 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).
  - info:
      name: GET the Physical Address for the Account
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/account/summary/physical_address'
    docs: 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.
  - info:
      name: POST the Physical Address for the Account
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/account/summary/physical_address'
    docs: 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 (<code>country_code</code>)
      where the account organization resides determines whether you use the <code>state_code</code> to specify United States
      (<code>US</code>) and Canada (<code>CA</code>) addresses, or use the <code>state_name</code> to specify all other countries.
  - info:
      name: PUT (update) the Physical Address for an Account
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/account/summary/physical_address'
    docs: 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 (<code>country_code</code>)
      where the account organization resides determines whether you use the <code>state_code</code> to specify United States
      (<code>US</code>) and Cana
  - info:
      name: GET a Collection of Account Email Addresses
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/account/emails'
      params:
      - name: confirm_status
        value: ''
        type: 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`.

          '
      - name: role_code
        value: ''
        type: 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`.
      - name: email_address
        value: ''
        type: query
        description: Use the `email_address` query parameter to search for a specific account email address.
    docs: "Use this method to return a collection of email addresses for the account associated with your access token. When\
      \ you <a href=\"https://v3.developer.constantcontact.com/api_reference/index.html#!/Email_Campaigns/createEmailCampaignUsingPOST\"\
      \ target=\"_blank\">Create an Email Campaign<a/>, 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_st"
  - info:
      name: POST Add an Account Email Address
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/account/emails'
    docs: "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`"
- info:
    name: Bulk Activities
    type: folder
  items:
  - info:
      name: GET Activity Status Collection
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/activities'
      params:
      - name: limit
        value: ''
        type: query
        description: Specifies the number of results displayed per page of output, from 1 - 500, default = 50.
      - name: state
        value: ''
        type: query
        description: 'Use this parameter to filter the response to include only activities in one of the following states:
          cancelled, completed, failed, processing, or timed_out.'
    docs: This endpoint returns a collection of activities. Use the state query parameter to include only activities with
      a specific status (processing, completed, cancelled, failed, or time_out). Use the limit query parameter to define the
      number of activities returned per page. Learn [more](/api_guide/activity_status.html).
  - info:
      name: GET an Activity Status
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/activities/:activity_id'
      params:
      - name: activity_id
        value: ''
        type: path
        description: The unique ID of the activity to GET
    docs: This endpoint returns an activity status report.
  - info:
      name: Export Contacts to a File
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/contact_exports'
    docs: Use this method to create an activity that exports contacts and contact details to a CSV file.  You can choose to
      export all contacts in your account (default) or you can use parameters to filter on which contacts to export. After
      Constant Contact finishes processing the activity, use the `results` link in the response body to retrieve the CSV file.
  - info:
      name: Retrieve Exported Contacts File
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/contact_exports/:file_export_id'
      params:
      - name: file_export_id
        value: ''
        type: path
        description: 'The unique ID of the exported file provided in the results: section of the export contacts activity
          response.'
    docs: "Use this endpoint to retrieve (GET) a CSV file containing exported contacts by providing the `activity_id` of a\
      \ completed CSV export activity. \n"
  - info:
      name: Delete Contacts in Bulk
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/contact_delete'
    docs: Use this endpoint to bulk delete contacts in an account. Contacts to delete are specified by contact_id (up to 500),
      or by list_id (up to 50 lists); all contacts that are members of the list_ids are deleted. Deleted contacts won’t receive
      email from you, and they don’t count as active contacts. Unlike unsubscribed contacts, deleted contacts can be added
      back to an account. [Learn how to revive deleted contacts](/api_guide/contacts_delete.html#revive).
  - info:
      name: Import Contacts using a CSV File
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/contacts_file_import'
    docs: 'This multipart method creates an asynchronous background job that adds or updates contacts by importing a CSV file
      containing contact information. Do not use a Content-Type header value with this method.


      Importing a new contact email address automatically sets the contact''s `permission_to_send` property as `implicit`
      and the `opt_in_source` property as `Account`. Importing an existing contact only updates the contact properties you
      include in the request.

      Importing contacts with `sms_number`s r'
  - info:
      name: Import Contacts using a JSON Payload
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/contacts_json_import'
    docs: Use this method to create an asynchronous background job that adds new contacts or updates existing contacts by
      importing a JSON payload. This method requires a request body that contains the contact data you are importing and the
      contact lists to which you want to add the imported contacts. A contact's data must include an `email` address and/or
      `sms_number`. The `sms_number` must be a US phone number to associate with the contact's SMS-enabled phone. Valid formats
      are <code>1231231234</code> o
  - info:
      name: Remove Contacts from Lists
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/remove_list_memberships'
    docs: Use this method to create an activity that removes contacts from one or more contact lists. Use the properties in
      the `source` object to remove specific contacts from your lists. Use the `list_ids` array to specify the target lists
      from which contacts are removed. Optionally, if the source is  `all_active_contacts` (billable) or `list_ids`, use the
      `exclude` object to exclude specific contacts from being removed from the destination lists.
  - info:
      name: Add Contacts to Lists
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/add_list_memberships'
    docs: Use this method to create an activity that adds contacts to one or more lists. Each contact can be a member of up
      to 50 lists. Use the properties in the `source` object to specify the contacts you want to add to lists. Use the `list_ids`
      array to specify which lists you want to add your source contacts to.
  - info:
      name: Delete Contact Lists
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/list_delete'
    docs: 'Use this endpoint to delete up to 100 contact lists in an account. '
  - info:
      name: Remove Tags from Contacts
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/contacts_taggings_remove'
    docs: 'Use this method to create an asynchronous activity that removes one or more tags from all contacts meeting your
      contact filtering criteria. Filtering criteria must include the `source` type used to identify contacts from which the
      specified tags (`tag_id`) are removed.

      Source types are mutually exclusive. If the specified source is either `all_active_contacts` or `list_ids`, you can
      optionally choose to `exclude` specified contacts by `contact_id`. Use the activity link in the results to check t'
  - info:
      name: Add Tags to Contacts
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/contacts_taggings_add'
    docs: 'Use this method to create an asynchronous activity that adds one or more tags to all contacts meeting your contact
      filtering criteria. Use the `source` type to identify contacts from which the specified tags (`tag_id`) are added.

      Source criteria are mutually exclusive. If the source is `all_active_contacts` or `list_ids`, you can optionally choose
      to `exclude` contacts by `contact_id`. Use the activity link in the results to check the status of your request.

      For more use case information, see "['
  - info:
      name: Delete Tags
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/contacts_tags_delete'
    docs: Use this method to create an asynchronous activity that deletes up to 500 tags. Deleted tags are automatically removed
      from tagged contacts. Use the `tag_ids` array of string values in the request body to specify which tags to delete.
  - info:
      name: Delete Custom Fields
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/activities/custom_fields_delete'
    docs: 'Use this endpoint to delete up to 100 custom fields for an account. '
- info:
    name: Events
    type: folder
  items:
  - info:
      name: GET a collection of events.
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/events'
      params:
      - name: event_status
        value: ''
        type: query
        description: Use to return only events that meet the specified status. Acceptable values include `ACTIVE`,`DRAFT`,
          `COMPLETE`, `DELETED`,`CANCELLED`, and `ERROR`.
      - name: search_text
        value: ''
        type: query
        description: Use to return only events that include the specified text.
      - name: sort_by
        value: ''
        type: query
        description: 'Use to sort resulting events by one of the following properties: `name`, `start_time`, `end_time`, `created_time`,
          or `updated_time`.'
      - name: sort_order
        value: ''
        type: query
        description: Sort order for the `sort_by parameter`. Accepted values include `ASC` (ascending) or `DESC` (descending).
          Defaults to `ASC` if `sort_by` is provided.
      - name: limit
        value: ''
        type: query
        description: Limit the number of results to return per page. Default and maximum is `100`.
      - name: prev
        value: ''
        type: query
        description: Cursor for retrieving the previous page of results. This value is obtained from the `prev_cursor` field
          in a previous response.
      - name: next
        value: ''
        type: query
        description: Cursor for retrieving the next page of results. This value is obtained from the `next_cursor` field in
          a previous response.
    docs: Retrieve a collection of events with event details.
  - info:
      name: POST (create) a new event.
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/events/default'
      params:
      - name: name
        value: ''
        type: query
        description: Name for the new event. If not provided, a default name will be generated.
      - name: start_time
        value: ''
        type: query
        description: Event start time in ISO 8601 format. If not provided, defaults to a future date.
      - name: end_time
        value: ''
        type: query
        description: Event end time in ISO 8601 format. If not provided, defaults to one hour after start time.
      - name: placeholder_campaign_id
        value: ''
        type: query
        description: Placeholder campaign ID for the event.
    docs: Creates a new event with default settings, registration form, and landing page. The event will be created in DRAFT
      status.
  - info:
      name: GET details for a single event.
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/events/:event_id'
      params:
      - name: event_id
        value: ''
        type: path
        description: The ID that uniquely identifies the event.
      - name: include
        value: ''
        type: query
        description: Use to include (`true`) or exclude (`false`) event setting properties in the results.
    docs: Specify the `event_id` path parameter to retrieve the event's details.
  - info:
      name: PATCH (update) an event.
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/events/:event_id'
      params:
      - name: event_id
        value: ''
        type: path
        description: The ID that uniquely identifies the event to update.
    docs: Partially updates an event with the provided fields. Only the specified fields will be updated. This endpoint only
      works for events in DRAFT or ACTIVE status. Events in COMPLETE, CANCELED, or DELETED status cannot be updated.
  - info:
      name: POST (copy) an existing event.
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/events/:event_id/copy'
      params:
      - name: event_id
        value: ''
        type: path
        description: The ID of the event to copy.
    docs: Creates a deep copy of an existing event with all its settings, registration forms, and landing pages. The copied
      event is created in DRAFT status. Events in DRAFT, ACTIVE, COMPLETE, or CANCELED status can be copied. DELETED events
      cannot be copied.
  - info:
      name: Check in event tickets.
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/events/:event_id/check_in/tickets'
      params:
      - name: event_id
        value: ''
        type: path
        description: The ID that uniquely identifies the event.
    docs: Use this endpoint to mark one or more tickets as checked in. The event must be in `ACTIVE` or `COMPLETE` status.
      Tickets with `CANCELLED` status cannot be checked in (returns HTTP 400).
  - info:
      name: Undo event ticket check-in.
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/events/:event_id/undo_check_in/tickets'
      params:
      - name: event_id
        value: ''
        type: path
        description: The ID that uniquely identifies the event.
    docs: Use this endpoint to undo check-in for one or more tickets, marking them as not checked in. The event must be in
      `ACTIVE` or `COMPLETE` status.
  - info:
      name: Get registration details for an event.
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/events/:event_id/tracks/:track_id/registrations/:registration_id'
      params:
      - name: event_id
        value: ''
        type: path
        description: The ID that uniquely identifies the event.
      - name: track_id
        value: ''
        type: path
        description: The track key that uniquely identifies the event track.
      - name: registration_id
        value: ''
        type: path
        description: The ID that uniquely identifies the registration.
    docs: Use the `event_id`, `registration_id`, and `track_id` path parameters to get registration details.
  - info:
      name: Get a list of registrations for an event.
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/events/:event_id/tracks/:track_id/registrations'
      params:
      - name: event_id
        value: ''
        type: path
        description: The ID that uniquely identifies the event.
      - name: track_id
        value: ''
        type: path
        description: The track ID that uniquely identifies the event track.
      - name: registration_status
        value: ''
        type: query
        description: Filter registration results by status.
      - name: payment_status
        value: ''
        type: query
        description: Filter registration results by payment status.
      - name: search_text
        value: ''
        type: query
        description: Filter registration results by first name, last name, or email address.
      - name: sort_by
        value: ''
        type: query
        description: Specify the field to use to sort the results.
      - name: sort_order
        value: ''
        type: query
        description: Use to specify how you want the results sorted.
      - name: page_size
        value: ''
        type: query
        description: Alternative to the <code>limit</code> parameter to limit the number of results returned per page. If
          specifying both the <code>limit</code> and <code>page_size</code> query parameters, they must be the same value.
      - name: limit
        value: ''
        type: query
        description: Limit the number of results returned per page. If specifying both the <code>limit</code> and <code>page_size</code>
          query parameters, they must be the same value.
      - name: prev
        value: ''
        type: query
        description: Cursor for pagination used to get the previous page of results (mutually exclusive with <code>next</code>).
      - name: next
        value: ''
        type: query
        description: Cursor for pagination used to get the next page of results (mutually exclusive with <code>prev</code>).
    docs: Use the `event_id` and `track_id` path parameters to get a list of registrations for an event. Use optional query
      parameters to limit the number of results returned per page, the sort order, or to filter results by specific criteria;
      such as registration `status`.
  - info:
      name: Update status for event registrations.
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/events/:event_id/tracks/:track_id/registrations'
      params:
      - name: event_id
        value: ''
        type: path
        description: The ID that uniquely identifies the event.
      - name: track_id
        value: ''
        type: path
        description: The track key that uniquely identifies the event track.
      - name: increase_count
        value: ''
        type: query
        description: Override count flag.
      - name: increase_item_count
        value: ''
        type: query
        description: Override item count flag.
      - name: return_items_to_inventory
        value: ''
        type: query
        description: Return items to inventory flag. Defaults to `true`.
    docs: Use this endpoint to update the registration status for one or more registrations within an event track.
  - info:
      name: Update payment status for event registrations.
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/events/:event_id/tracks/:track_id/registrations/payment_status'
      params:
      - name: event_id
        value: ''
        type: path
        description: The ID that uniquely identifies the event.
      - name: track_id
        value: ''
        type: path
        description: The track key that uniquely identifies the event track.
    docs: Use this endpoint to update the payment status for one or more registrations. This endpoint only processes registrations
      with a payment method (PAYPAL, WEPAY, STRIPE, DOOR, or CHECK). Free registrations without a payment method are silently
      excluded.
- info:
    name: Segments
    type: folder
  items:
  - info:
      name: GET all Segments
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/segments'
      params:
      - name: limit
        value: ''
        type: query
        description: The number of segments to return on a page.
      - name: sort_by
        value: ''
        type: query
        description: Specify the segment sort order to use. Sort by name (`sort_by=name`) in ascending order, or sort by date
          (`sort_by=date`) in descending order with the most recently updated segments listed first.
    docs: Use this method to get a list of all segments associated with the account. You can sort segment results and limit
      the number of segments that display per page. Deleted segments are excluded from the results. For more use case information,
      see [Get All Segments](/api_guide/segment_get_all.html) in the API guide.
  - info:
      name: POST (create) a Segment
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/segments'
    docs: "Use this method to create a new segment. You create segments to target a subset of your contacts that meet your\
      \ specific criteria for a marketing campaign. The segment `name` must be unique. The `segment_criteria` requires single-string\
      \ escaped JSON. Constant Contact uses the contact data that you specify in the `segment_criteria` to evaluate and identify\
      \ the contacts you want to target. Contact data can be grouped from different data sources, including:\n\n  -  **`tracking`**:\
      \ Supports **or** and"
  - info:
      name: GET a Segment's Details
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/segments/:segment_id'
      params:
      - name: segment_id
        value: ''
        type: path
        description: The system-generated unique ID that identifies a segment.
    docs: Use this method to get details about a segment, including the segment criteria. If you know the `segment_id` You
      can also use this method to get details about a deleted segment. For more use case information, see [Get a Segment's
      Details](/api_guide/segment_get.html) in the API guide.
  - info:
      name: PUT (update) a Segment
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/segments/:segment_id'
      params:
      - name: segment_id
        value: ''
        type: path
        description: The system generated ID that uniquely identifies the segment that you want to modify.
    docs: Use this method to update an existing segment's name (`name`) and/or contact selection criteria (`segment_criteria`).
      You must specify both the `name` and the `segment_criteria` in the request body, even if you don't plan to update both.
      The segment's name must be unique and the JSON must be valid (requires single-string escaped JSON). To avoid returning
      a 400 error response, when specifying the `segment_criteria` do not request more than 500 email campaigns or a date
      range greater than 1825 day
  - info:
      name: DELETE a Segment
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/segments/:segment_id'
      params:
      - name: segment_id
        value: ''
        type: path
        description: The system generated ID that uniquely identifies the segment.
    docs: 'Use this method to delete a segment from your account. Before deleting a segment, verify that the segment is not
      associated with a scheduled campaign.


      Deleted segments do not display in the results when using the `GET /segments` endpoint. If you know the `segment_id`,
      you can use the `GET /segments/{segment_id}` endpoint to view the deleted segment''s details. A segment''s details are
      preserved for external reference purposes, such as displaying the segment name in a campaign''s history. For more '
  - info:
      name: PATCH (rename) a Segment
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/segments/:segment_id/name'
      params:
      - name: segment_id
        value: ''
        type: path
        description: The system generated ID that uniquely identifies the segment that you want to modify.
    docs: Use this method to update an existing segment `name` with a new unique name in the request body. For more use case
      information, see [Rename a Segment](/api_guide/segment_rename.html) in the API guide.
- info:
    name: Contacts
    type: folder
  items:
  - info:
      name: GET a Contact
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/contacts/:contact_id'
      params:
      - name: contact_id
        value: ''
        type: path
        description: Unique ID of contact to GET
      - name: include
        value: ''
        type: query
        description: 'Use `include` to specify which contact sub-resources to include in the response. Use a comma to separate
          multiple sub-resources. Valid values: `custom_fields`, `list_memberships`, `phone_numbers`, `street_addresses`,
          `notes`, and `taggings`.'
    docs: This endpoint GETs a specific contact resource (contact_id). Use the `include` query parameter to add any of the
      available contact sub-resources to the response payload.
  - info:
      name: PUT (update) a Contact
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/contacts/:contact_id'
      params:
      - name: contact_id
        value: ''
        type: path
        description: Unique ID of contact to update
    docs: "The PUT method updates an existing contact. You must include the `update_source` property in the PUT request payload.\
      \ To restore  a deleted contact you must specify the `update_source` as `Account`. When updating any resource using\
      \ PUT, all properties are updated, overwriting all previous values. Any properties left blank or not included in the\
      \ request are overwritten with null value - however this does not apply to contact subresources. \n\nAdd or change any\
      \ of the subresources by including them "
  - info:
      name: DELETE a Contact
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/contacts/:contact_id'
      params:
      - name: contact_id
        value: ''
        type: path
        description: Unique ID of contact to DELETE
    docs: Deletes the contact identified by the contact_id path parameter. Deleted contacts won't receive email from you,
      and they don't count as active contacts. Unlike unsubscribed contacts, deleted contacts can be revived, or added back
      to an account. Learn how to [revive deleted contacts](/api_guide/contacts_delete.html#revive).
  - info:
      name: GET Contacts Collection
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/contacts'
      params:
      - name: status
        value: ''
        type: query
        description: 'Use the `status` query parameter to search for contacts by status. This parameter accepts one or more
          comma separated values: `all`, `active`, `deleted`, `not_set`, `pending_confirmation`, `temp_hold`, and `unsubscribed`.'
      - name: email
        value: ''
        type: query
        description: Use the `email` query parameter to search for a contact using a specific email address.
      - name: lists
        value: ''
        type: query
        description: Use the `lists` query parameter to search for contacts that are members of one or more specified lists.
          Use a comma to separate multiple `list_id` values, up to a maximum of 25.
      - name: segment_id
        value: ''
        type: query
        description: Use to get contacts that meet the segment criteria for a single specified `segment_id`. This query parameter
          can only be combined with the limit query parameter. When using the `segment_id` query parameter, the V3 API may
          return a 202 response code instead of a 200 response. The 202 response code indicates that your request has been
          accepted, but not fully completed. Retry sending your API request to return the completed results and a 200 response
          code.
      - name: tags
        value: ''
        type: query
        description: Use to get contact details for up to 50 specified tags. Use a comma to separate each `tag_id`.
      - name: updated_after
        value: ''
        type: query
        description: Use `updated_after` to search for contacts that have been updated after the date you specify. To search
          for updated contacts within a date range, specify both `updated_after` and `updated_before` dates. Accepts ISO-8601
          formatted dates.
      - name: updated_before
        value: ''
        type: query
        description: Use `updated_before` to search for contacts that have been updated before a specified date. To search
          for updated contacts within a date range, specify both `updated_after` and `updated_before` dat

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