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