canonical: https://jentic.com/apis/l1.api.cc.email/appconnect-v3

# L1 Api Cc Email AppConnect V3

Jentic publishes the only available OpenAPI specification for AppConnect V3, keeping it validated and agent-ready. AppConnect V3 is Constant Contact's contact and contact-list management API, exposing CRUD on contacts and contact lists for marketing email programs. Authentication uses an x-api-key header alongside an OAuth 2.0-style Authorization header. The endpoints cover listing, retrieving, creating, updating, and deleting both contacts and lists.

## For AI agents

Manage Constant Contact AppConnect contacts and contact lists: list, retrieve, create, update, and delete contacts and lists for email marketing campaigns.

## Scope

Does not handle campaign sends, email templates, or engagement reporting - use for AppConnect contact and list management only.

## Capabilities

- Create contacts via POST /contacts with email, name, and custom fields for downstream campaigns
- Update an existing contact via PUT /contacts/{contact_id} when CRM data changes
- Delete a contact via DELETE /contacts/{contact_id} for opt-outs and right-to-be-forgotten requests
- Create and update contact lists via POST /lists and PUT /lists/{list_id} for segmentation
- List all contact lists in the account via GET /lists for audit and reporting
- Retrieve a single contact's full record via GET /contacts/{contact_id} including list memberships

## Use cases

### Sign-Up Form to Email List

Push new sign-ups from a website form into a Constant Contact list. POST /contacts creates the contact and attaches it to the right list IDs returned from /lists. The same flow handles double opt-in by reading back the contact via GET /contacts/{contact_id} after creation to confirm subscription status.

Example prompt: On a new sign-up event, GET /lists to resolve the target list ID and POST /contacts with the email and list membership.

### CRM-to-Email Sync

Mirror CRM contact changes into AppConnect so marketing email programs always have current data. When a CRM record updates, the agent looks up the AppConnect contact by ID and PUTs the new fields. Deletions from the CRM are mirrored with DELETE /contacts/{contact_id} to honour opt-outs.

Example prompt: On a contact.updated event from the CRM, PUT /contacts/{contact_id} with the new email, first name, and custom field values.

### List Hygiene and Segmentation

Maintain clean, focused contact lists by creating segment-specific lists and pruning obsolete ones. POST /lists creates a new segment list, PUT /lists/{list_id} renames or repositions it, and DELETE /lists/{list_id} removes lists that are no longer used in any campaign.

Example prompt: POST /lists to create a 'Q3 webinar attendees' list and DELETE /lists/{list_id} on lists older than 12 months with no recent send history.

### AI Agent Email Marketing Assistant

An assistant in a marketer's chat client adds contacts, creates segment lists, and prunes outdated entries on instruction. Through Jentic, the assistant calls AppConnect by intent without holding the OAuth token or x-api-key in the agent runtime.

Example prompt: On 'add jane@example.com to the newsletter list', search Jentic for 'create AppConnect contact' and POST /contacts with the resolved list ID.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /contacts | Create a contact |
| GET | /contacts | List contacts |
| PUT | /contacts/{contact_id} | Update a contact |
| DELETE | /contacts/{contact_id} | Delete a contact |
| POST | /lists | Create a contact list |
| PUT | /lists/{list_id} | Update a contact list |
| DELETE | /lists/{list_id} | Delete a contact list |

## Key resources

- **Contacts** — CRUD over contacts, with list membership and custom fields.
- **Lists** — CRUD over contact lists used for segmentation and campaign targeting.

## Why Jentic

- **Setup:** Wiring AppConnect V3 by hand means passing both the OAuth Authorization header and the x-api-key on every call to l1.api.cc.email and mapping the contact and list request bodies yourself. Through Jentic you install once, import AppConnect V3 from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** AppConnect's contact and list operations take their targets in the request body rather than the URL path, so scope the agent to the operations it needs, such as listing contacts and creating a list. You choose that set, so destructive operations like deleting a contact or a list are not included unless you add them.
- **Credential handling:** Your AppConnect x-api-key and OAuth token are stored once, encrypted, by your own Jentic One instance, which injects both headers at execution time. The credentials never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'add a Constant Contact contact' or 'create an AppConnect list', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Constant Contact API** — Broader Constant Contact API covering campaigns and reporting alongside contacts.
- **Mailchimp Marketing API** — Email marketing platform with a richer feature set than AppConnect's contact-only scope.
- **Brevo API** — Email and SMS marketing API with similar contact-and-list primitives.

## FAQ

### Why is there no official OpenAPI spec for AppConnect V3?

Constant Contact does not publish a stable OpenAPI specification for AppConnect V3 outside of SwaggerHub. Jentic generates and maintains this spec so that AI agents and developers can call AppConnect V3 via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the AppConnect V3 API use?

AppConnect V3 expects two headers: x-api-key for the application identifier and Authorization for the OAuth 2.0 access token issued to the user. Through Jentic, both are stored encrypted in your Jentic One instance and injected per request.

### Can I add a contact to an existing list with the AppConnect V3 API?

Yes. POST /contacts accepts list memberships as part of the contact body, and PUT /contacts/{contact_id} updates list membership for an existing contact. Use GET /lists to resolve the right list ID first.

### How do I delete a contact through Jentic?

Search Jentic for 'delete an AppConnect contact'. Jentic returns DELETE /contacts/{contact_id} with its schema. Provide the contact ID and Jentic executes the call using your stored credentials.

### What are the rate limits for the AppConnect V3 API?

Per-account rate limits aren't exposed in the public spec. Refer to Constant Contact's developer portal for current ceilings before scaling, and contact webservices@constantcontact.com for higher allocations.

### Can I create a new contact list with the AppConnect V3 API?

Yes. POST /lists creates a new contact list, returning the list ID you can then attach contacts to via POST /contacts or PUT /contacts/{contact_id}.

### Can I limit what my agent is allowed to do with the AppConnect V3 API?

Yes. Because Jentic One is self-hosted, you decide which AppConnect V3 operations your agent may call, so you can grant read-only actions like GET /contacts and GET /lists while withholding creates and updates. Since AppConnect takes its contact and list targets in the request body rather than the URL path, destructive operations such as DELETE /contacts/{contact_id} and DELETE /lists/{list_id} are excluded from the agent's allowed set unless you add them. Your own rules also govern which stored credentials the agent may use at execution time.
