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.
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
AppConnect V3
OPENGraphQL
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...
GRAPHQLPricing Plans
Rate Limits
FinOps
Constant Contact Finops
FINOPSFeatures
Semantic Vocabularies
API Governance Rules
JSON Structure
Resources
Sources
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