Sequenzy Tracking Domain API
The Tracking Domain API from Sequenzy — 2 operation(s) for tracking domain.
The Tracking Domain API from Sequenzy — 2 operation(s) for tracking domain.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/sequenzy:sequenzy-tracking-domain-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Sequenzy Tracking Domain API
description: Sequenzy API for managing subscribers, tags, events, sequences, and transactional emails
version: 1.0.0
servers:
- url: https://api.sequenzy.com/api/v1
description: Production server
- url: https://api.sequenzy.com/v1
description: Legacy production server alias
security:
- bearerAuth: []
tags:
- name: Tracking Domain
paths:
/tracking-domain:
get:
operationId: getTrackingDomain
summary: Get tracking domain
description: Returns the company tracking domain every sending domain uses for tracked links and opens, or null when links use the shared Sequenzy tracking domain. Requires the account:read scope.
tags:
- Tracking Domain
responses:
'200':
description: Tracking domain returned
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
trackingDomain:
oneOf:
- $ref: '#/components/schemas/TrackingDomain'
- type: 'null'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: API key is missing the account:read scope
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
$ref: '#/components/responses/TransientDatabaseUnavailable'
put:
operationId: setTrackingDomain
summary: Set tracking domain
description: Sets or changes the company tracking domain. Any subdomain the caller controls works, including one on a root other than the sending domains; a bare registrable domain is rejected because it cannot hold a CNAME. Publish the returned cnameRecord. Sending never waits for it; new emails use the shared Sequenzy tracking domain until it verifies. Saving the current hostname again only rechecks it. Changing the hostname keeps the previous one serving links in emails already sent while its old CNAME stays. Requires the companies:manage scope plus owner or admin access.
tags:
- Tracking Domain
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- domain
properties:
domain:
type: string
description: Tracking hostname, a subdomain such as links.example.com. A leading https:// and trailing path are ignored.
responses:
'200':
description: Tracking domain saved
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
message:
type: string
description: The next step, usually the CNAME to add.
trackingDomain:
$ref: '#/components/schemas/TrackingDomain'
'400':
description: Invalid hostname or a bare root domain
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing the companies:manage scope, or view-only access
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Company not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: The hostname is already connected to another company
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: The request body is missing domain
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: The tracking provider could not register the hostname. Nothing was saved; retry.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
delete:
operationId: removeTrackingDomain
summary: Remove tracking domain
description: Removes the company tracking domain. New emails use the shared Sequenzy tracking domain, and links and images in emails already sent through the removed domain stop working. Removing when none is set succeeds with removed false. Requires the companies:manage scope plus owner or admin access.
tags:
- Tracking Domain
responses:
'200':
description: Tracking domain removed, or none was set
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
removed:
type: boolean
description: False when no tracking domain was set.
trackingDomain:
type: 'null'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing the companies:manage scope, or view-only access
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Company not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: The tracking provider could not release the hostname. The tracking domain was kept; retry.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/tracking-domain/verify:
post:
operationId: verifyTrackingDomain
summary: Verify tracking domain
description: Checks the company tracking domain's CNAME and HTTPS certificate now instead of waiting for the automatic checks. Requires the companies:manage scope plus owner or admin access.
tags:
- Tracking Domain
responses:
'200':
description: Check completed
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
verified:
type: boolean
description: Whether the CNAME and HTTPS certificate work.
message:
type: string
description: The result or the next step.
trackingDomain:
$ref: '#/components/schemas/TrackingDomain'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Missing the companies:manage scope, or view-only access
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No tracking domain is set
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: The tracking provider could not be reached; retry.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
headers:
RetryAfter:
description: Number of seconds to wait before retrying the request.
schema:
type: integer
minimum: 1
example: 1
responses:
TransientDatabaseUnavailable:
description: The database was temporarily unavailable. The request may be retried after the delay in Retry-After.
headers:
Retry-After:
$ref: '#/components/headers/RetryAfter'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
success: false
error: The service could not reach its database for a moment. Retry the request.
code: SERVICE_UNAVAILABLE
schemas:
TrackingDomain:
type: object
description: The company tracking domain. Every sending domain uses it for tracked links and opens. It never gates sending; until it verifies, or when it is broken or removed, links use the shared Sequenzy tracking domain.
required:
- domain
- status
- active
- everVerified
- cnameRecord
properties:
domain:
type: string
description: Tracking hostname, for example links.example.com.
example: links.example.com
status:
type: string
enum:
- not_started
- pending
- verified
- failed
description: Verification status of the CNAME and HTTPS certificate. not_started until the DNS setup is confirmed or checked.
active:
type: boolean
description: True while verified. New emails use this domain only while active.
everVerified:
type: boolean
description: True once this hostname has verified. A failed domain that was verified before is broken rather than unfinished.
sslStatus:
type:
- string
- 'null'
verifiedAt:
type:
- string
- 'null'
format: date-time
lastCheckedAt:
type:
- string
- 'null'
format: date-time
error:
type:
- string
- 'null'
description: Latest verification problem, if any.
cnameRecord:
type: object
description: The DNS record to publish.
properties:
type:
type: string
enum:
- CNAME
name:
type: string
example: links.example.com
value:
type: string
example: links1.sequenzydns.com
Error:
type: object
properties:
success:
type: boolean
example: false
error:
type: string
example: Error message
code:
type: string
description: Optional stable machine-readable error discriminator when available.
example: COMPANY_CREATE_REQUIRES_PERSONAL_KEY
retryable:
type: boolean
description: Whether retrying the request can recover from the error.
issues:
type: array
description: Field-level problems with the request, when the endpoint reports them. Up to ten entries; `error` summarizes the first three.
items:
$ref: '#/components/schemas/InputIssue'
required:
- error
InputIssue:
type: object
properties:
path:
type: string
description: Dotted field path, such as `audience.subscriberIds[0]`. Empty when the problem is with the request body itself.
example: kind
message:
type: string
description: What is wrong with the field.
example: must be "add_tags"
allowedValues:
type: array
description: Accepted values when the field only takes a fixed set of values.
items: {}
example:
- add_tags
required:
- path
- message
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: API key passed as Bearer token