leadboxer-com Custom Tracking Domains API

The Custom Tracking Domains API from leadboxer-com — 4 operation(s) for custom tracking domains.

Operations 5

POST /v1/management/ctd/add Add Custom Tracking Domain #
PUT /v1/management/ctd/update Update Custom Tracking Domain by Dataset ID #
POST /v1/management/ctd/validate Validate Custom Tracking Domain #
GET /v1/management/ctd/{datasetId} Get Custom Tracking Domain by Dataset ID #
DELETE /v1/management/ctd/{datasetId} Delete Custom Tracking Domain by Dataset ID #

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/leadboxer-com:leadboxer-com-custom-tracking-domains-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

leadboxer-com-custom-tracking-domains-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Leadboxer Custom Tracking Domains API
  description: '# LeadBoxer API Documentation


    Here you can find the technical documentation needed for using the LeadBoxer API, including the option to generate requests and review the outcomes.


    ## Getting Started


    To get started, please have a look at these pages that include introductions, use-cases, and additional information for the LeadBoxer API: LeadBoxer API Documentation


    These documents are intended for LeadBoxer CUSTOMERS that have a valid API license & Key. Please contact us before using the LeadBoxer API.


    ## Warning


    Please be aware that any actions you perform through this reference testing functionality will involve operations with your production data. To test your applications against some sandbox data, we recommend creating a new, separate LeadBoxer account for sandboxing purposes.


    This API is under active maintenance, and we are constantly adding new functionality to this version.


    [**All requests to the API must be made over SSL (https, not http).**]'
  termsOfService: https://www.leadboxer.com/resources/terms
  contact:
    name: Wart Fransen
    url: wart@leadboxer.com
    email: hello@leadboxer.com
  license:
    name: ''
    url: https://www.leadboxer.com/resources/privacy
  version: 0.0.1
servers:
- url: https://api.leadboxer.com
  description: Production Server
security:
- ApiKeyAuth: []
tags:
- name: Custom Tracking Domains
paths:
  /v1/management/ctd/add:
    post:
      tags:
      - Custom Tracking Domains
      summary: Add Custom Tracking Domain
      description: 'Adds a custom tracking domain to the dataset and triggers the certificate generation process.


        Note: This operation may take several minutes to complete.


        The response indicates whether the request resulted in an error, completed successfully, or requires additional DNS configuration.'
      operationId: addCustomTrackingDomain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomTrackingDomainRequest'
        required: true
      responses:
        '200':
          description: Indicates the result of adding a custom tracking domain.<br/>Response code 0 indicates success, while response code -1 indicates failure; details are provided in the responseMessage.
          content:
            application/json:
              examples:
                Success:
                  description: Success
                  value:
                    responseCode: 0
                    responseMessage: Successfully added the track.example.com as the custom tracking domain.
                Error:
                  description: Error
                  value:
                    responseCode: -1
                    responseMessage: Something went wrong while adding ctd.
        '400':
          description: 'Bad Request: The request is invalid or malformed (missing/incorrect parameters).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BadRequestResponse'
        '402':
          description: 'Payment Required: The client has exceeded credit limits.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
        '403':
          description: 'Forbidden: The authenticated user does not have permission to access this resource.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PermissionDenied'
        '404':
          description: 'Not Found: The requested resource does not exist.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1NotFoundResponse'
        '409':
          description: 'Conflict: The request could not be completed due to a resource state conflict.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConflictResponse'
        '429':
          description: 'Too Many Requests: Rate limit exceeded. The client has sent too many requests in a given time period'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponse'
        '500':
          description: 'Interval Server Error: An unexpected error occurred on the server.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
  /v1/management/ctd/update:
    put:
      tags:
      - Custom Tracking Domains
      summary: Update Custom Tracking Domain by Dataset ID
      description: Update custom tracking domain entry for the given dataset Id and ctd.
      operationId: updatedCustomTrackingDomain
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomTrackingDomainRequest'
        required: true
      responses:
        '204':
          description: Custom Tracking Domain updated successfully, no content returned.
        '400':
          description: 'Bad Request: The request is invalid or malformed (missing/incorrect parameters).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BadRequestResponse'
        '402':
          description: 'Payment Required: The client has exceeded credit limits.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
        '403':
          description: 'Forbidden: The authenticated user does not have permission to access this resource.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PermissionDenied'
        '404':
          description: 'Not Found: The requested resource does not exist.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1NotFoundResponse'
        '409':
          description: 'Conflict: The request could not be completed due to a resource state conflict.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConflictResponse'
        '429':
          description: 'Too Many Requests: Rate limit exceeded. The client has sent too many requests in a given time period'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponse'
        '500':
          description: 'Interval Server Error: An unexpected error occurred on the server.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
  /v1/management/ctd/validate:
    post:
      tags:
      - Custom Tracking Domains
      summary: Validate Custom Tracking Domain
      description: Validate the given custom tracking domain.
      operationId: validateCustomTrackingDomain
      requestBody:
        description: Custom Tracking Domain Request.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomTrackingDomainRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomTrackingDomainValidationResponse'
        '400':
          description: 'Bad Request: The request is invalid or malformed (missing/incorrect parameters).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BadRequestResponse'
        '402':
          description: 'Payment Required: The client has exceeded credit limits.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
        '403':
          description: 'Forbidden: The authenticated user does not have permission to access this resource.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PermissionDenied'
        '404':
          description: 'Not Found: The requested resource does not exist.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1NotFoundResponse'
        '409':
          description: 'Conflict: The request could not be completed due to a resource state conflict.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConflictResponse'
        '429':
          description: 'Too Many Requests: Rate limit exceeded. The client has sent too many requests in a given time period'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponse'
        '500':
          description: 'Interval Server Error: An unexpected error occurred on the server.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
  /v1/management/ctd/{datasetId}:
    get:
      tags:
      - Custom Tracking Domains
      summary: Get Custom Tracking Domain by Dataset ID
      description: Get all custom tracking domains for a given dataset Id.
      operationId: getCustomTrackingDomains
      parameters:
      - name: datasetId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllResponseCustomTrackingDomainDTO'
        '400':
          description: 'Bad Request: The request is invalid or malformed (missing/incorrect parameters).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BadRequestResponse'
        '402':
          description: 'Payment Required: The client has exceeded credit limits.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
        '403':
          description: 'Forbidden: The authenticated user does not have permission to access this resource.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PermissionDenied'
        '404':
          description: 'Not Found: The requested resource does not exist.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1NotFoundResponse'
        '409':
          description: 'Conflict: The request could not be completed due to a resource state conflict.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConflictResponse'
        '429':
          description: 'Too Many Requests: Rate limit exceeded. The client has sent too many requests in a given time period'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponse'
        '500':
          description: 'Interval Server Error: An unexpected error occurred on the server.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
    delete:
      tags:
      - Custom Tracking Domains
      summary: Delete Custom Tracking Domain by Dataset ID
      description: Delete custom tracking domain entry for the given dataset Id and ctd.
      operationId: deleteCustomTrackingDomain
      parameters:
      - name: ctd
        in: query
        required: true
        schema:
          type: string
      - name: datasetId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Custom Tracking Domain deleted successfully, no content returned.
        '400':
          description: 'Bad Request: The request is invalid or malformed (missing/incorrect parameters).'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1BadRequestResponse'
        '402':
          description: 'Payment Required: The client has exceeded credit limits.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
        '403':
          description: 'Forbidden: The authenticated user does not have permission to access this resource.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1PermissionDenied'
        '404':
          description: 'Not Found: The requested resource does not exist.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1NotFoundResponse'
        '409':
          description: 'Conflict: The request could not be completed due to a resource state conflict.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1ConflictResponse'
        '429':
          description: 'Too Many Requests: Rate limit exceeded. The client has sent too many requests in a given time period'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitErrorResponse'
        '500':
          description: 'Interval Server Error: An unexpected error occurred on the server.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1InternalServerError'
components:
  schemas:
    V1PermissionDenied:
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type
        title:
          type: string
          description: A short, human-readable summary of the problem type
        status:
          type: integer
          description: The HTTP status code
          format: int32
          example: 403
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence of the problem
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem
    V1InternalServerError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type
        title:
          type: string
          description: A short, human-readable summary of the problem type
          example: Internal Server Error
        status:
          type: integer
          description: The HTTP status code
          format: int32
          example: 500
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence of the problem
          example: An unexpected error occurred. Please contact support.
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem
    CustomTrackingDomainDTO:
      type: object
      properties:
        datasetId:
          type: string
        ctd:
          type: string
        createdTimestamp:
          type: integer
          format: int64
        modifiedTimestamp:
          type: integer
          format: int64
        description:
          type: string
    RateLimitErrorResponse:
      type: object
      properties:
        timestamp:
          type: integer
          format: int64
          example: 1765611454230
        status:
          type: integer
          format: int32
          example: 429
        error:
          type: string
          example: Too Many Requests
        message:
          type: string
          example: Rate limit exceeded. Please try again later.
        retryAfter:
          type: integer
          format: int32
          example: 58
        limit:
          type: integer
          format: int32
          example: 2
        remaining:
          type: integer
          format: int32
          example: 0
      description: Rate limit exceeded error response
    GetAllResponseCustomTrackingDomainDTO:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CustomTrackingDomainDTO'
        metaData:
          type: object
    CustomTrackingDomainValidationResponse:
      type: object
      properties:
        responseCode:
          type: integer
          format: int32
        responseMessage:
          type: string
        messageType:
          type: string
          description: 'Indicates the result of custom tracking domain validation.


            - ERROR: Validation failed due to a client-side or server-side error.

            - WARNING: The domain is valid, but the DNS configuration is incomplete. Suggested CNAME records are returned.

            - SUCCESS: The domain is valid and correctly configured for tracking.'
        suggestions:
          type: array
          description: Recommended DNS record configurations needed to complete custom tracking domain setup.
          items:
            $ref: '#/components/schemas/CTDSuggestionDTO'
      description: Represents the response returned after validating a custom tracking domain. The response indicates whether validation failed, succeeded, or requires additional DNS configuration, and may include suggested CNAME records to complete setup.
    V1BadRequestResponse:
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type
          example: https://developers.leadboxer.com/docs/validation-error
        title:
          type: string
          description: A short, human-readable summary of the problem type
          example: The request is malformed or contains invalid data
        status:
          type: integer
          description: The HTTP status code
          format: int32
          example: 400
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence of the problem
          example: email must be a well-formed email address
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem
          example: /v1/users/{userId}/name?email=johndoe.com
        errors:
          type: array
          description: Array of field-level validation errors
          items:
            $ref: '#/components/schemas/ValidationError'
    V1NotFoundResponse:
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type
        title:
          type: string
          description: A short, human-readable summary of the problem type
        status:
          type: integer
          description: The HTTP status code
          format: int32
          example: 404
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence of the problem
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem
    ValidationError:
      type: object
      properties:
        field:
          type: string
          description: The name of the field that failed validation
          example: email
        message:
          type: string
          description: Human-readable error message for this specific field
          example: must be a well-formed email address
      description: Array of field-level validation errors
    CTDSuggestionDTO:
      type: object
      properties:
        type:
          type: string
          description: The DNS record type that should be configured for the custom tracking domain. This is typically a CNAME record required for tracking and link redirection.
          example: CNAME
        host:
          type: string
          description: Tracking subdomain where the DNS record should be configured.
          example: track
        value:
          type: string
          description: Target hostname that the tracking subdomain must point to.
          example: pixel.leadboxer.com
      description: A recommended DNS record configuration generated after validating the custom tracking domain
    V1ConflictResponse:
      type: object
      properties:
        type:
          type: string
          description: A URI reference that identifies the problem type
        title:
          type: string
          description: A short, human-readable summary of the problem type
          example: Resource already exist
        status:
          type: integer
          description: The HTTP status code
          format: int32
          example: 409
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence of the problem
          example: 'User with email: john.doe@examplecompany.com already exist'
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem
          example: /v1/users/?email=john.doe@examplecompany.com
    CustomTrackingDomainRequest:
      required:
      - ctd
      - datasetId
      type: object
      properties:
        ctd:
          type: string
          example: track.companyname.com
        datasetId:
          type: string
        description:
          type: string
          description: Description for the given custom tracking domain
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: Provide your LeadBoxer API Key
      name: x-api-key
      in: header
x-provenance:
  method: searched
  source: https://developers.leadboxer.com/reference
  harvested: '2026-10-30'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://developers.leadboxer.com/reference/addcustomtrackingdomain.md
  - https://developers.leadboxer.com/reference/adddataset.md
  - https://developers.leadboxer.com/reference/adduser.md
  - https://developers.leadboxer.com/reference/adduserdataset.md
  - https://developers.leadboxer.com/reference/assignleads.md
  - https://developers.leadboxer.com/reference/authentication.md
  - https://developers.leadboxer.com/reference/createsegment.md
  - https://developers.leadboxer.com/reference/deletecustomtrackingdomain.md
  - https://developers.leadboxer.com/reference/deletedatasetexclusion.md
  - https://developers.leadboxer.com/reference/deletedefaultsegment.md
  - https://developers.leadboxer.com/reference/deletesegment.md
  - https://developers.leadboxer.com/reference/getavailablecreditgrants.md
  - https://developers.leadboxer.com/reference/getcustomtrackingdomains.md
  - https://developers.leadboxer.com/reference/getdatasetexclusions.md
  - https://developers.leadboxer.com/reference/getevents.md
  - https://developers.leadboxer.com/reference/getsegments.md
  - https://developers.leadboxer.com/reference/getsessions.md
  - https://developers.leadboxer.com/reference/getting-started.md
  - https://developers.leadboxer.com/reference/getuserdatasets.md
  - https://developers.leadboxer.com/reference/getuserdatasets_1.md
  - https://developers.leadboxer.com/reference/getusersbysegmentidanddatasetid.md
  - https://developers.leadboxer.com/reference/leaddetail.md
  - https://developers.leadboxer.com/reference/lookupdomain.md
  - https://developers.leadboxer.com/reference/lookupemail.md
  - https://developers.leadboxer.com/reference/lookupemailbyquery.md
  - https://developers.leadboxer.com/reference/lookupip.md
  - https://developers.leadboxer.com/reference/my-requests.md
  - https://developers.leadboxer.com/reference/removedataset.md
  - https://developers.leadboxer.com/reference/removeuser.md
  - https://developers.leadboxer.com/reference/removeuserdataset.md
  - https://developers.leadboxer.com/reference/resendinvite.md
  - https://developers.leadboxer.com/reference/savedatasetexclusion.md
  - https://developers.leadboxer.com/reference/savedefaultsegment.md
  - https://developers.leadboxer.com/reference/updatedatasetname.md
  - https://developers.leadboxer.com/reference/updatedcustomtrackingdomain.md
  - https://developers.leadboxer.com/reference/updateformtracking.md
  - https://developers.leadboxer.com/reference/updateleadtags.md
  - https://developers.leadboxer.com/reference/updatename.md
  - https://developers.leadboxer.com/reference/updatesegment.md
  - https://developers.leadboxer.com/reference/updatesegmentuser.md
  - https://developers.leadboxer.com/reference/users.md
  - https://developers.leadboxer.com/reference/userscsv.md
  - https://developers.leadboxer.com/reference/validatecustomtrackingdomain.md
  merge:
    pages: 43
    deduped: 355
    conflicts_kept_first: 0