Didomi domains API

Provisioned domains for consent notices and privacy centers

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

didomi-domains-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Didomi consents/events domains API
  description: 'A REST API to communicate with the Didomi platform (<a href="https://api.didomi.io/v1/">https://api.didomi.io/v1/</a>)


    This is the complete specification of the API. A complete guide to authenticating and using the API is available on our <a href="https://developers.didomi.io/" target="_blank">Developers Portal</a>.


    All HTTP calls to the API require a valid JWT token. The token must be provided in an **Authorization** header with the value "Bearer <token>".

    Click on the Authorize button in the header of this page to provide a token before testing requests from this documentation.


    '
  version: '1.0'
servers:
- url: https://api.didomi.io/v1
  description: Didomi Platform API
security:
- bearer: []
tags:
- name: domains
  description: Provisioned domains for consent notices and privacy centers
paths:
  /domains:
    get:
      parameters:
      - description: Number of results to return
        in: query
        name: $limit
        schema:
          type: integer
      - description: Number of results to skip
        in: query
        name: $skip
        schema:
          type: integer
      - description: Property to sort results
        in: query
        name: $sort
        style: deepObject
        schema:
          type: object
      - description: Query parameters to filter
        in: query
        name: filter
        style: form
        explode: true
        schema:
          $ref: '#/components/schemas/domains'
      responses:
        '200':
          description: A list of Domain objects
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/domains'
      description: Returns a list of domains
      summary: Retrieve a list of domains
      tags:
      - domains
      security:
      - bearer: []
    post:
      parameters:
      - name: domain
        in: body
        description: The Domain object to create
        required: true
        schema:
          $ref: '#/components/schemas/domains-input-create'
      responses:
        '200':
          description: The created Domain object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domains'
      description: Create a new domain
      summary: Create a domain
      tags:
      - domains
      security:
      - bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/domains'
  /domains/{id}:
    get:
      parameters:
      - name: id
        in: path
        description: The ID of the domain to retrieve
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A Domain object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domains'
      description: Returns a domain by its ID
      summary: Retrieve a domain
      tags:
      - domains
      security:
      - bearer: []
    put:
      parameters:
      - name: id
        in: path
        description: The ID of the domain to update
        required: true
        schema:
          type: string
      - name: domain
        in: body
        description: The new data to update the domain with
        required: true
        schema:
          $ref: '#/components/schemas/domains-input-update'
      responses:
        '200':
          description: The updated Domain object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domains'
      description: Update an existing domain
      summary: Update a domain
      tags:
      - domains
      security:
      - bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/domains'
    patch:
      parameters:
      - name: id
        in: path
        description: The ID of the domain to patch
        required: true
        schema:
          type: string
      - name: domain
        in: body
        description: The properties to replace on the Domain object
        required: true
        schema:
          $ref: '#/components/schemas/domains-input-update'
      responses:
        '200':
          description: The patched Domain object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domains'
      description: Partially update a domain
      summary: Patch a domain
      tags:
      - domains
      security:
      - bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/domains'
    delete:
      parameters:
      - name: id
        in: path
        description: The ID of the domain to delete
        required: true
        schema:
          type: string
      responses:
        '200':
          description: A Domain object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/domains'
      description: Delete a domain with type "managed" by its ID
      summary: Delete a domain
      tags:
      - domains
      security:
      - bearer: []
components:
  schemas:
    domains-input-update:
      title: DomainInputUpdate
      type: object
      properties:
        description:
          type: string
          description: Description of the domain name usage in your organization
        enabled:
          type: boolean
          description: Whether the domain is enabled or not. Disabling a domain triggers de-provisioning of the domain on the Didomi platform which might break existing notices or privacy centers if the domain is still in use. Make sure that the domain is not used anymore before disabling it.
        entity_id:
          type: string
          description: Which entity the domain is used by. This entity ID is currently used by PMP for the domain to properly redirect to the correct S3 bucket (preference-center/organization_id/entity_id/)
        status:
          type: string
          description: "Provisioning status on the Didomi platform. \n    Possible values: \n      draft (domain is created but not deployed yet), \n      scheduled (domain is scheduled for deployment), \n      to_be_deleted (domain is scheduled for deletion),\n      deploying (domain is being provisioned),\n      deleting (domain is being deleted),\n      failed (domain deployment/deletion failed),\n      ready (domain is provisioned and ready for use)"
        bots_crawl:
          type: string
          description: 'Controls whether bots are allowed to crawl the domain. Possible values: "allow_all" (allow crawls from any bots) or "disallow_all" (disallow crawls from all bots)'
          enum:
          - allow_all
          - disallow_all
    domains-input-create:
      title: DomainInputCreate
      type: object
      properties:
        id:
          type: string
          description: Fully qualified domain name
        organization_id:
          type: string
          description: The ID of the organization that owns this data processing
        description:
          type: string
          description: Description of the domain name usage in your organization
        enabled:
          type: boolean
          description: Whether the domain is enabled or not. Disabling a domain triggers de-provisioning of the domain on the Didomi platform which might break existing notices or privacy centers if the domain is still in use. Make sure that the domain is not used anymore before disabling it.
        entity_id:
          type: string
          description: Which entity the domain is used by. This entity ID is currently used by PMP for the domain to properly redirect to the correct S3 bucket (preference-center/organization_id/entity_id/)
        status:
          type: string
          description: "Provisioning status on the Didomi platform. \n    Possible values: \n      draft (domain is created but not deployed yet), \n      scheduled (domain is scheduled for deployment), \n      to_be_deleted (domain is scheduled for deletion),\n      deploying (domain is being provisioned),\n      deleting (domain is being deleted),\n      failed (domain deployment/deletion failed),\n      ready (domain is provisioned and ready for use)"
        usage:
          type: string
          description: 'What the domain is used for: CMP ("cmp"), Privacy Center ("privacy-center"), Preference Center ("preference-center")'
        bots_crawl:
          type: string
          description: 'Controls whether bots are allowed to crawl the domain. Possible values: "allow_all" (allow crawls from any bots) or "disallow_all" (disallow crawls from all bots)'
          enum:
          - allow_all
          - disallow_all
      required:
      - id
      - usage
      - organization_id
    domains:
      title: Domain
      type: object
      properties:
        id:
          type: string
          description: Fully qualified domain name
        organization_id:
          type: string
          description: The ID of the organization that owns this data processing
        description:
          type: string
          description: Description of the domain name usage in your organization
        enabled:
          type: boolean
          description: Whether the domain is enabled or not. Disabling a domain triggers de-provisioning of the domain on the Didomi platform which might break existing notices or privacy centers if the domain is still in use. Make sure that the domain is not used anymore before disabling it.
        entity_id:
          type: string
          description: Which entity the domain is used by. This entity ID is currently used by PMP for the domain to properly redirect to the correct S3 bucket (preference-center/organization_id/entity_id/)
        type:
          type: string
          description: Type of the domain. "custom" indicates a domain owned and delegated by a client while "managed" indicates a domain that Didomi owns and manages like "privacy-center.org". This is automatically set when a domain is created
        status:
          type: string
          description: "Provisioning status on the Didomi platform. \n    Possible values: \n      draft (domain is created but not deployed yet), \n      scheduled (domain is scheduled for deployment), \n      to_be_deleted (domain is scheduled for deletion),\n      deploying (domain is being provisioned),\n      deleting (domain is being deleted),\n      failed (domain deployment/deletion failed),\n      ready (domain is provisioned and ready for use)"
        usage:
          type: string
          description: 'What the domain is used for: CMP ("cmp"), Privacy Center ("privacy-center"), Preference Center ("preference-center")'
        bots_crawl:
          type: string
          description: 'Controls whether bots are allowed to crawl the domain. Possible values: "allow_all" (allow crawls from any bots) or "disallow_all" (disallow crawls from all bots)'
          enum:
          - allow_all
          - disallow_all
        created_at:
          type: string
          description: Creation date of the domain
          format: date-time
        updated_at:
          type: string
          description: Last update date of the domain
          format: date-time
        version:
          type: number
          description: Revision number of the domain entity
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http