Sequenzy Tracking Domain API

The Tracking Domain API from Sequenzy — 2 operation(s) for tracking domain.

Operations 4

GET /tracking-domain Get tracking domain #
PUT /tracking-domain Set tracking domain #
DELETE /tracking-domain Remove tracking domain #
POST /tracking-domain/verify Verify tracking domain #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sequenzy:sequenzy-tracking-domain-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sequenzy-tracking-domain-api-openapi.yml Raw ↑
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