overlay: 1.0.0
info:
title: API Evangelist enhancements — AppConnect V3 Account Services Email Campaigns AB Tests API
version: 1.0.0
x-generated: '2026-08-13'
x-method: generated
x-source: openapi/constant-contact-email-campaigns-ab-tests-api-openapi.yml
x-note: Non-destructive enhancements API Evangelist derived for the Constant Contact V3 API. Applies
to the sibling OpenAPI in openapi/; the original is never mutated. Every value here is sourced from
the provider's own documentation or contract — see x-artifacts.
extends: openapi/constant-contact-email-campaigns-ab-tests-api-openapi.yml
actions:
- target: $.info
description: Attach provider-level operational facts and links to the API Evangelist artifact set.
update:
x-artifacts:
conventions: conventions/constant-contact-conventions.yml
errors: errors/constant-contact-problem-types.yml
rate-limits: rate-limits/constant-contact-rate-limits.yml
scopes: scopes/constant-contact-scopes.yml
authentication: authentication/constant-contact-authentication.yml
lifecycle: lifecycle/constant-contact-lifecycle.yml
changelog: changelog/constant-contact-changelog.yml
data-model: data-model/constant-contact-data-model.yml
conformance: conformance/constant-contact-conformance.yml
packages: packages/constant-contact-packages.yml
agentic-access: agentic-access/constant-contact-agentic-access.yml
webhooks: asyncapi/constant-contact-webhooks.yml
skills: skills/_index.yml
x-rate-limits:
per_second: 4
per_day: 10000
reset: 00:00:00 UTC
status: 429
headers: none
discriminator: error_key (throttled = per-second, quota_exceeded = daily)
source: https://developer.constantcontact.com/api_guide/rate_limits.html
x-error-envelope:
rfc9457: false
media_type: application/json
shapes:
- '[{error_key,error_message}]'
- '{error_key,error_message}'
- '{message}'
source: openapi definitions APIErrorSchema, AuthorizationErrorSchema, StatsError, ActivityErrors
x-idempotency:
supported: false
note: No idempotency key on any operation. Retried POSTs duplicate or return 409.
x-pagination:
style: cursor
request:
- limit
- next
- prev
response:
- _links.next.href
- next_cursor
note: _links hrefs are path-relative — prepend https://api.cc.email.
x-deprecation:
sunset_header: false
deprecation_header: false
rfc8594: false
note: Deprecations announced in prose on the release-notes page only.
x-contract-drift:
refined_from_build: 3.0.149
current_published_build: 3.0.178
note: The provider republished the contract with 14 additional paths (Automations, Social, Billing)
after these per-tag specs were split. See openapi/_original/HARVEST.yml.
- target: $
description: Point consumers at the provider documentation this spec is described by.
update:
externalDocs:
description: Constant Contact V3 API guide and reference
url: https://developer.constantcontact.com/api_guide/index.html
- target: $.securityDefinitions['oauth2_access_code']
description: Record documented token lifetimes and the refresh requirement the contract omits.
update:
x-token-lifetime-seconds: 86400
x-refresh-token:
supported: true
requires_scope: offline_access
lifetime: 180 days if never used
x-discovery: none — authz.constantcontact.com serves no RFC 8414 or OIDC metadata
x-source: https://developer.constantcontact.com/api_guide/auth_overview.html
- target: $.securityDefinitions['oauth2_implicit']
description: Flag the implicit flow as discouraged practice.
update:
x-token-lifetime-seconds: 28800
x-refresh-token:
supported: false
x-caution: Implicit grant is discouraged by OAuth 2.1 and RFC 9700 BCP. Prefer authorization code
with PKCE.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.