openapi: 3.0.2
info:
title: Didomi consents/events domains API
description: 'A REST API to communicate with the Didomi platform (https://api.didomi.io/v1/)
This is the complete specification of the API. A complete guide to authenticating and using the API is available on our Developers Portal.
All HTTP calls to the API require a valid JWT token. The token must be provided in an **Authorization** header with the value "Bearer ".
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