Convert Domains API

Domains define websites which will be used in experiences in your projects.

Operations 8

POST /accounts/{account_id}/projects/{project_id}/domains List domains associated with a project #
GET /accounts/{account_id}/projects/{project_id}/domains/{domain_id} Get details for a specific domain in a project #
POST /accounts/{account_id}/projects/{project_id}/domains/by_url Get domain details by its URL #
POST /accounts/{account_id}/projects/{project_id}/domains/{domain_id}/check_code Verify Convert tracking code installation on a domain #
POST /accounts/{account_id}/projects/{project_id}/domains/add Add a new domain to a project #
POST /accounts/{account_id}/projects/{project_id}/domains/{domain_id}/update Update an existing domain in a project #
DELETE /accounts/{account_id}/projects/{project_id}/domains/{domain_id}/delete Remove a domain from a project #
POST /accounts/{account_id}/projects/{project_id}/domains/bulk-delete Remove multiple domains from a project #

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/convert-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

convert-domains-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Convert Domains API
  description: Move your app forward with the Convert API.
  version: 2.0.0
servers:
- url: https://api.convert.com/api/v2
  description: Live API server
- url: https://apidev.convert.com/api/v2
  description: DEV API server
- url: http://apidev.convert.com:5000/api/v2
  description: DEV mocked API server
tags:
- name: Domains
  description: Domains define websites which will be used in experiences in your projects.
paths:
  /accounts/{account_id}/projects/{project_id}/domains:
    post:
      operationId: getDomainsList
      summary: List domains associated with a project
      description: 'Retrieves a list of all website domains configured for a specific project.

        The Convert tracking script will operate on these domains to run experiences and track visitors.

        Wildcard domains (e.g., `*.example.com`) are supported.

        As per the Knowledge Base: "Active Websites: The domains you would like to use inside the project. Make sure you always add new domains here..."'
      tags:
      - Domains
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project to which save/retrieved data is connected
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/GetDomainsListRequest'
      responses:
        '200':
          $ref: '#/components/responses/DomainsListResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/domains/{domain_id}:
    get:
      operationId: getDomain
      summary: Get details for a specific domain in a project
      description: 'Retrieves information about a single domain associated with a project, identified by its `domain_id`.

        This includes the domain URL and whether the Convert tracking code was detected on it.'
      tags:
      - Domains
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the domain is stored
        schema:
          type: integer
      - name: domain_id
        in: path
        required: true
        description: ID of the domain to be retrieved
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/DomainResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/domains/by_url:
    post:
      operationId: getDomainByUrl
      summary: Get domain details by its URL
      description: 'Retrieves information about a domain by matching its URL (exact or wildcard) instead of its ID.

        Useful if you know the domain URL but not its internal Convert ID.'
      tags:
      - Domains
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the domain is stored
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/GetDomainByUrlRequest'
      responses:
        '200':
          $ref: '#/components/responses/DomainResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/domains/{domain_id}/check_code:
    post:
      operationId: checkCodeDomain
      summary: Verify Convert tracking code installation on a domain
      description: 'Checks if the Convert tracking script for the specified project is correctly installed and detectable on the given URL (which must belong to the domain identified by `domain_id`).

        Updates the `code_installed` status of the domain object.

        The Knowledge Base article "Tracking Script Installation Verification" describes this UI feature.'
      tags:
      - Domains
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the domain is stored
        schema:
          type: integer
      - name: domain_id
        in: path
        required: true
        description: ID of the domain to which the given URL belongs. An error would be returned if the URL is not under this domain.
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/CheckCodeDomainRequest'
      responses:
        '200':
          $ref: '#/components/responses/DomainResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/domains/add:
    post:
      operationId: createDomain
      summary: Add a new domain to a project
      description: 'Associates a new website domain (e.g., `https://www.example.com`) with the specified project.

        The Convert tracking script for this project should then be installed on this domain to enable experiments.

        Wildcards like `https://*.example.com` can be used to include all subdomains.'
      tags:
      - Domains
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the domain is to be stored
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/CreateDomainRequest'
      responses:
        '201':
          $ref: '#/components/responses/DomainResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/domains/{domain_id}/update:
    post:
      operationId: updateDomain
      summary: Update an existing domain in a project
      description: Modifies the URL of an existing domain associated with a project.
      tags:
      - Domains
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the domain is to be stored
        schema:
          type: integer
      - name: domain_id
        in: path
        required: true
        description: ID of the domain to be updated
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/UpdateDomainRequestData'
      responses:
        '200':
          $ref: '#/components/responses/DomainResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/domains/{domain_id}/delete:
    delete:
      operationId: deleteDomain
      summary: Remove a domain from a project
      description: 'De-associates a domain from the specified project.

        After deletion, Convert experiences will no longer run on this domain for this project.'
      tags:
      - Domains
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        in: path
        required: true
        description: ID of the project into which the domain is to be stored
        schema:
          type: integer
      - name: domain_id
        in: path
        required: true
        description: ID of the domain to be delete
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{account_id}/projects/{project_id}/domains/bulk-delete:
    post:
      operationId: bulkDomainsDelete
      summary: Remove multiple domains from a project
      description: 'De-associates multiple domains from the specified project in a single operation.

        Requires a list of domain IDs to be removed.'
      tags:
      - Domains
      parameters:
      - name: account_id
        in: path
        required: true
        description: ID of the account that owns the retrieved/saved data
        schema:
          type: integer
      - name: project_id
        description: ID of the project to which save/retrieved data is connected
        in: path
        required: true
        schema:
          type: integer
      requestBody:
        $ref: '#/components/requestBodies/BulkDeleteDomainsRequest'
      responses:
        '200':
          $ref: '#/components/responses/BulkSuccessResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
components:
  responses:
    BulkSuccessResponse:
      description: 'Indicates the outcome of a bulk operation (e.g., bulk update or delete). Provides a general success `message` and an `errors` array listing any entities that could not be processed, along with the reason for failure for each.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BulkSuccessData'
    ErrorResponse:
      description: 'Indicates an error occurred while processing the request. The `code` provides an HTTP status code, `message` offers a human-readable explanation or an array of validation errors, and `fields` (if present) specifies which input fields were problematic.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorData'
    DomainResponse:
      description: Details for a single domain associated with a project, including its `id`, `url`, and `code_installed` status.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Domain'
    SuccessResponse:
      description: 'A generic success response, typically used for operations that don''t return specific data (like deletions or some updates). The `code` is usually 200, and `message` confirms the successful action.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SuccessData'
    DomainsListResponse:
      description: A list of website domains associated with a project. Each entry includes the domain `id`, `url`, and a flag `code_installed` indicating if the Convert tracking script was detected.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DomainsListResponseData'
  requestBodies:
    GetDomainByUrlRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetDomainByUrlRequestData'
      description: Contains the `url` (which can be an exact match or include wildcards like `*.example.com`) to search for among the project's associated domains.
    CreateDomainRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CreateDomainRequestData'
      required: true
    CheckCodeDomainRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CheckCodeDomainRequestData'
      description: Contains the specific `url` (which must fall under the path-parameter `domain_id`) on which to check for the presence and correct installation of the Convert tracking script.
    GetDomainsListRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GetDomainsListRequestData'
      description: Optional filters for listing domains within a project, primarily pagination parameters (`page`, `results_per_page`).
    UpdateDomainRequestData:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UpdateDomainRequestData'
      required: true
    BulkDeleteDomainsRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BulkDeleteDomainRequestData'
  schemas:
    BulkSuccessData:
      allOf:
      - $ref: '#/components/schemas/SuccessData'
      - type: object
        properties:
          code:
            type: integer
            format: int32
          errors:
            type: array
            description: List of unprocessed entities. Would be empty, if all passed entities processed
            items:
              $ref: '#/components/schemas/BulkEntityError'
    CreateDomainRequestData:
      allOf:
      - $ref: '#/components/schemas/DomainToCreate'
    DomainsList:
      type: array
      description: List of domains
      items:
        $ref: '#/components/schemas/Domain'
    DomainsListDataOptions:
      type: object
      description: Filter domains list.
      allOf:
      - $ref: '#/components/schemas/ResultsPerPage'
    CheckCodeDomainRequestData:
      type: object
      description: Check if tracking code is installed on the given URL;
      properties:
        url:
          type: string
          maxLength: 255
          description: 'URL on which to check the tracking code installed.

            The given URL needs to be under the domain passes as parameter or otherwise an error would be returned.

            '
    BulkEntityError:
      type: object
      additionalProperties: false
      properties:
        id:
          type: integer
          description: The unique identifier of the entity that could not be processed.
        message:
          type: string
          description: A message explaining the reason for the failure for this specific entity.
    Pagination:
      type: object
      properties:
        current_page:
          description: The current page number being displayed from the paginated set.
          type: integer
          minimum: 1
        items_count:
          description: The total number of items available across all pages for the current filter criteria.
          type: integer
          minimum: 0
        items_per_page:
          description: The number of items included in the current page of results (matches `results_per_page` from the request).
          type: integer
          minimum: 0
        pages_count:
          description: The total number of pages available for the current filter criteria and `results_per_page` setting.
          type: integer
          minimum: 0
    Extra:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
    ResultsPerPage:
      type: object
      properties:
        results_per_page:
          type: integer
          nullable: true
          minimum: 0
          maximum: 50
          default: 30
          description: 'Specifies the maximum number of items to return in a single page of results.

            Used for pagination. Default is 30, maximum is 50.

            '
    DomainsListResponseData:
      type: object
      description: Response containing a list of domains and extra domains list metadata
      properties:
        data:
          $ref: '#/components/schemas/DomainsList'
        extra:
          $ref: '#/components/schemas/Extra'
    GetDomainByUrlRequestData:
      type: object
      description: Get domain by URL request data
      properties:
        url:
          type: string
          maxLength: 255
          description: URL by which to search the domain. The match can be an exact one or an wildcard one.
    BulkDomainsIds:
      type: array
      description: The list of domains id to delete
      items:
        type: integer
      minItems: 1
      maxItems: 100
    ErrorData:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        fields:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
    UpdateDomainRequestData:
      allOf:
      - $ref: '#/components/schemas/Domain'
    OnlyCount:
      type: object
      properties:
        onlyCount:
          type: boolean
          description: 'If set to `true` in a list request, the response will only contain the total count of matching items (`extra.pagination.items_count`)

            and will not include the actual item data. Useful for quickly getting totals without fetching full datasets.

            '
    Domain:
      type: object
      description: A website domain data.
      properties:
        id:
          type: integer
          description: Domain ID.
          readOnly: true
        url:
          type: string
          maxLength: 150
          pattern: ^(http|https)://
          description: Domain's homepage url
        code_installed:
          type: boolean
          description: Indicating whether code installed check passed sometimes in the past.
          default: false
    GetDomainsListRequestData:
      allOf:
      - $ref: '#/components/schemas/OnlyCount'
      - $ref: '#/components/schemas/DomainsListDataOptions'
      - $ref: '#/components/schemas/PageNumber'
      - type: object
        properties:
          only:
            description: 'Only retrieve domains with the given ids.

              '
            type: array
            nullable: true
            items:
              type: integer
            maxItems: 100
          except:
            description: 'Except domains with the given ids.

              '
            type: array
            items:
              type: integer
            maxItems: 100
    BulkDeleteDomainRequestData:
      type: object
      description: Bulk Delete provided domains
      additionalProperties: false
      properties:
        id:
          $ref: '#/components/schemas/BulkDomainsIds'
      required:
      - id
    PageNumber:
      type: object
      properties:
        page:
          type: integer
          minimum: 1
          description: 'The page number for paginated results. For example, if `results_per_page` is 30, `page: 2` will retrieve items 31-60.

            Defaults to 1 if not specified.

            '
    DomainToCreate:
      required:
      - url
      allOf:
      - $ref: '#/components/schemas/Domain'
    SuccessData:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
  securitySchemes:
    requestSigning:
      type: apiKey
      x-name-applicationId: Convert-Application-ID
      x-name-expire: Expire
      name: Authorization
      in: header
      description: 'See **[API Key Authentication](#tag/API-KEY-Authentication)** for more information.

        '
    secretKey:
      type: http
      scheme: bearer
      description: 'See **[API Key Authentication](#tag/API-KEY-Authentication)** for more information.

        '
    cookieAuthentication:
      type: apiKey
      in: cookie
      name: sid
      description: Cookie authentication is used against Convert's own IdentityProvider  or third party identity providers and is described more in the "[Cookie Authentication](#tag/Cookie-Authentication)" section
x-tagGroups:
- name: Client Authentication
  tags:
  - API KEY Authentication
  - Cookie Authentication
  - OAuth Authorization
- name: Common Parameters
  tags:
  - Optional Fields
  - Expandable Fields
- name: Requests
  tags:
  - User
  - Accounts
  - AI content
  - Collaborators
  - API Keys
  - Projects
  - SDK Keys
  - Experiences
  - Experience Variations
  - Experience Sections
  - Section Versions
  - Version Changes
  - Experiences Reports
  - Experiences Heatmaps
  - Goals
  - Hypotheses
  - Knowledge Bases
  - Observations
  - Locations
  - Audiences
  - Domains
  - Cdn Images
  - Files
  - Tags
  - Features
  - Visitor Insights
  - Visitors Data
  - Visitor Data Placeholders
  - OAuth