Didomi website screenshot

Didomi

Didomi is a Paris-based consent and preference management platform (CMP/PMP) that helps publishers, advertisers, retailers, and large enterprises collect, manage, and act on user privacy choices across web, mobile, CTV, and AMP surfaces. The platform covers GDPR, CCPA and the wider US state-law landscape, IAB TCF v2.x, Google Consent Mode v2, the IAB GPP, GPC, the EU DMA, Chilean Law 25, Australian privacy law, and other regulations through a single multi-regulation configuration model. Didomi exposes a JSON REST API (https://api.didomi.io/v1/) plus first-party SDKs for Web, iOS/tvOS, Android/Android TV, Unity, React Native, Flutter, Vega OS, and AMP, alongside IAB-compliant consent string tooling and reverse-proxy boilerplates for Fastly, CloudFront, and Cloudflare.

6 APIs 15 Features
AdvertisingAdTechCCPACMPConsentConsent ManagementDSARData PrivacyGDPRIAB TCFMarTechPreference ManagementPrivacyPrivacy RequestsRegulatory Compliance

APIs

Didomi Platform API

The Didomi Platform REST API at https://api.didomi.io/v1/ is the machine-facing surface for the entire Didomi CMP/PMP. It exposes 80+ operations across consents events / proofs ...

Didomi Web SDK

The Didomi Web SDK is the browser-side library that renders consent notices, preference centers, and privacy widgets, gates third-party tags on user consent, and writes IAB TCF ...

Didomi Android SDK

Didomi's Android and Android TV SDK delivers native consent notices, preference popups, and TCF / GPP / Didomi consent string generation in Java / Kotlin / Jetpack Compose apps....

Didomi iOS SDK

The iOS / tvOS / Mac Catalyst SDK renders Didomi consent notices and preference centers natively in Swift and Objective-C apps, coordinates Apple's App Tracking Transparency (AT...

Didomi Cross-Platform SDKs (React Native, Flutter, Unity, Vega OS, AMP)

Didomi maintains first-party CMP plugins for React Native, Flutter, Unity (games and game consoles), Vega OS (LG webOS smart TVs), and Google AMP. Each wraps the platform's noti...

Didomi Consent String Toolkit

Open-source libraries published under github.com/didomi for encoding, decoding, and validating the Didomi consent string and the IAB TCF v2 consent string. Includes TypeScript (...

Collections

Didomi API

POSTMAN

Didomi API

OPEN

Arazzo Workflows

Didomi Classify a Vendor and Register a Cookie

Create a vendor taxonomy item, register a cookie classified with it, and read the cookie back.

ARAZZO

Didomi Create a Consent User and Assign an Internal ID

Create an end user, patch it to assign your organization's internal user ID, and read it back.

ARAZZO

Didomi Create and Verify a Privacy Center

Create a privacy center for an organization and read it back to confirm it was created.

ARAZZO

Didomi Data Subject Erasure Request

Look up an end user by your internal ID and fulfil a right-to-erasure request by deleting their consent record.

ARAZZO

Didomi Deploy a Consent Notice

Create a consent notice, deploy a notice configuration to production, and confirm the deployment.

ARAZZO

Didomi Group Notices Under a Template

Create a consent notice, group it under a new notice template, and read the template back.

ARAZZO

Didomi Issue a Consent Token for an End User

Create an end user, assign an internal ID, and issue a scoped JWT consent token for that user.

ARAZZO

Didomi Provision an Organization and Invite a Member

Create an organization, invite a first member into it, and read the organization back.

ARAZZO

Didomi Record a Consent Event and Confirm Status

Create a consent event for an end user, then branch on whether it is confirmed or pending approval.

ARAZZO

Didomi Register and Verify a Cookie

Register a cookie set by a property and read it back to confirm registration.

ARAZZO

Didomi Submit Notice Text Content for Approval

Create a notice text, submit a content version for the Didomi approval process, and read the content status.

ARAZZO

Didomi Upload and Verify a Consent Proof

Upload a file as proof of consent for an organization and read it back to verify storage.

ARAZZO

Pricing Plans

Didomi Plans Pricing

5 plans

PLANS

Rate Limits

Didomi Rate Limits

0 limits

RATE LIMITS

FinOps

Didomi Finops

FINOPS

Features

Multi-regulation CMP

One Didomi notice can target GDPR, CCPA and the wider US-state landscape, TCF v2.x, GPP, GPC, EU DMA, Chilean Law 25, Australian privacy law, and Nordic regimes from a single multi-regulation configuration.

IAB TCF v2.x / GPP / GPC compliance

Didomi is an IAB-registered CMP that emits, validates, and decodes TCF v2.x and IAB GPP consent strings and honors Global Privacy Control signals.

Google Consent Mode v2

Native, certified Google Consent Mode v2 integration on Web and Mobile, plus Amazon Consent Signal and Microsoft UET Consent Mode bridges.

Preference Management Platform (PMP)

A separately licensed Preference Management module exposing custom preference centers, headless preference widgets, marketing channel preferences, and email/SMS opt-in flows.

Privacy Requests Management

DSAR / privacy-request intake forms, internal workflow, evidence storage, and reporting for GDPR Articles 15-22 and CCPA opt-out / delete rights.

Compliance Monitoring & Reports

Automated scanning of websites and apps for vendor coverage, unauthorized tags, and CMP behavior; CSV / Excel compliance reports surfaced via the Platform API and Console.

Privacy Widgets

Configurable, themed widgets (preference centers, DSAR forms, headless React widgets, embeddable widgets) deployable on Didomi-managed or customer-owned domains.

Consent Notice on Custom Domain

Serve consent notices from the customer's own domain via DNS delegation or via reverse-proxy boilerplates for Fastly, AWS CloudFront, and Cloudflare.

Cross-device / cross-domain consent sharing

Authenticated users can carry their consent state across domains and across devices via the platform's tokens and links APIs.

Server-side Google Tag Manager (Addingwell)

Server-side tagging product (Addingwell, acquired by Didomi) integrated with the consent model for first-party tagging without browser-side third-party calls.

Cross-Platform SDKs

First-party SDKs for Web, iOS / tvOS / Mac Catalyst, Android / Android TV, React Native, Flutter, Unity, Vega OS (LG smart TVs), and Google AMP.

Open Consent String tooling

Open-source consent-string encoders / decoders in TypeScript, Rust (with C and Java FFI), and Go, plus the iabtcf-es TCF v2 toolkit fork.

JWT bearer authentication

Platform API uses short-lived (one-hour) JWT access tokens obtained by exchanging API key + secret against POST /v1/sessions.

Token-bucket rate limiting

100 requests per 15 seconds per organization across most routes, with the high-volume /consents/* family exempt; RateLimit / RateLimit-Policy headers and 429 + Retry-After when exceeded.

SSO and member management

Programmatic management of organization members, roles, SSO connections, partner-portal sessions, and per-key API quotas via the Platform API.

Use Cases

Publisher CMP for ad monetization

News publishers and media groups (Yahoo, large French / European publishers) use Didomi as their IAB TCF CMP so SSPs and DSPs receive valid consent signals and ad inventory is monetizable under GDPR.

Retailer / e-commerce consent and preference

Retail and e-commerce brands (Lacoste, Rakuten, Michelin) capture consent for analytics, personalization, marketing, and CRM channels via the CMP and Preference Management Platform.

Connected TV CMP

CTV apps on LG webOS / Vega OS, Android TV, and tvOS use Didomi's native SDKs to render consent on TV screens and emit the same TCF / Didomi consent strings used on web.

DSAR / privacy-request intake at scale

Enterprises route GDPR Article 15-22 and CCPA opt-out / delete requests through Didomi's Privacy Requests product, with audit-grade proofs and structured exports.

Cross-domain / cross-device consent for media groups

Media groups operating dozens of domains share a single consent across all properties and across user devices via consent tokens and links.

Server-side first-party tagging

Marketing teams replace browser-side third-party tags with server-side Google Tag Manager via Addingwell, gated on Didomi consent.

Integrations

Google Tag Manager

First-class Didomi GTM template and native integration; certified Google Consent Mode v2 signal delivery.

Google Ad Manager / AdSense / AdX

Pass TCF consent signal and non-personalized-ads (NPA) fallback to Google ad stack.

Adobe Launch / Adobe DTM

Documented integration patterns for managing tag firing under Didomi consent.

Tealium iQ

Native Tealium integration for tag governance under Didomi consent.

Eulerian

Tag firing control through Eulerian tag management.

Prebid

Pass TCF v2 / US state-law consent to Prebid header bidding wrappers.

Salesforce DMP (Krux)

Forward consent state to Salesforce DMP / Krux.

Piano Analytics (AT Internet)

Integration with Piano Analytics (formerly AT Internet) for consent-aware analytics.

Kameleoon

Consent integration with Kameleoon experimentation / personalization platform.

Simple Analytics

Privacy-friendly analytics integration.

Amazon Consent Signal

Native bridge to Amazon's consent signal for Amazon Publisher Services.

Microsoft UET Consent Mode

Native bridge to Microsoft UET / Bing Ads consent mode.

mParticle

First-party JavaScript kit integration for mParticle customer data platform.

Magento 2

Didomi Magento 2 extension for consent management on Magento storefronts.

Firebase

Cloud Functions integration to ship Didomi consent into the Firebase / Google ecosystem.

Postman

Public Postman workspace and collections for the Platform API.

Solutions

CMP for Publishers

IAB TCF v2.x CMP specialized for ad-funded publishers and media groups.

CMP for Advertisers and Brands

Consent capture and forwarding for advertiser stacks, MarTech tools, and CDPs.

CMP for Connected TV

Native CTV consent for Vega OS, Android TV, tvOS, and other TV runtimes.

CMP for Mobile Apps

iOS / Android / cross-platform consent management coordinated with ATT and Google Consent Mode v2.

Preference Management Platform

Marketing-preference and channel-opt-in management beyond regulatory consent.

Privacy Requests

GDPR / CCPA DSAR intake, internal workflow, and audit-grade evidence.

Compliance Monitoring

Continuous scanning of digital properties for vendor coverage, unauthorized tags, and CMP misconfigurations.

Addingwell - Server-side Tagging

Server-side Google Tag Manager product acquired by Didomi, integrated with the Didomi consent model.

Semantic Vocabularies

Didomi Context

22 classes · 10 properties

JSON-LD

API Governance Rules

Didomi API Rules

10 rules · 4 errors 5 warnings 1 info

SPECTRAL

JSON Structure

Didomi Consent Event Structure

10 properties

JSON STRUCTURE

Example Payloads

Didomi Consent Event Example

10 fields

EXAMPLE

Didomi Consent Notice Example

15 fields

EXAMPLE

Didomi Privacy Request Example

11 fields

EXAMPLE

Resources

🔗
PostmanWorkspace
PostmanWorkspace
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🌐
Portal
Portal
🔗
Documentation
Documentation
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🌐
Console
Console
📝
Signup
Signup
💰
Pricing
Pricing
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
CookiePolicy
CookiePolicy
🟢
StatusPage
StatusPage
📰
Blog
Blog
💬
Support
Support
🎓
Training
Training
🔗
LinkedIn
LinkedIn
👥
GitHubOrganization
GitHubOrganization
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
🔧
Tools
Tools
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
💻
CodeExamples
CodeExamples
🔗
JSONLD
JSONLD
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Didomi API
  version: '1.0'
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: consents/events
    type: folder
  items:
  - info:
      name: Retrieve events
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/consents/events
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization for which to retrieve events
      - name: user_id
        value: ''
        type: query
        description: The Didomi user ID for which to retrieve events. You must provide either **user_id** or **organization_user_id**
          when querying events
      - name: organization_user_id
        value: ''
        type: query
        description: The organization user ID for which to retrieve events. You must provide either **user_id** or **organization_user_id**
          when querying events
      - name: status
        value: ''
        type: query
        description: 'Filter events according to their status (possible values: confirmed, pending_approval). If this field
          is missing, only confirmed events are returned. To filter on multiple statuses in a single request, use the notation
          status[$in]: ?status[$in]=confirmed&status[$in]=pending_approval.'
      - name: regulation
        value: ''
        type: query
        description: 'Filter events according to their regulation. Possible value is any existing regulation in the Regulations
          API (/compliance/v1/regulations). If this field is missing, only GDPR events are returned. To filter on multiple
          regulations in a single request, use the notation regulation[$in]: ?regulation[$in]=gdpr&regulation[$in]=cpra.'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of events for a given organization ID and user ID or organization user ID
  - info:
      name: Create a new event
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/consents/events
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization for which to create an event
      - name: $disable_integrations
        value: ''
        type: query
        description: Disable sending the event to integrations configured for the organization. Set this parameter to true
          if you do not want the event processed by integrations (if you are importing events that already exist in the integrated
          systems, for instance).
      - name: $generate_tcfcs
        value: ''
        type: query
        description: Set to "true" to generate a TCF consent string for the user based on the latest status of the user
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create a new event and update the consent status of the user
  - info:
      name: Delete events
      type: http
    http:
      method: DELETE
      url: https://api.didomi.io/v1/consents/events
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the event belongs to
      - name: user_id
        value: ''
        type: query
        description: The Didomi user ID for which to delete events. You must provide either **user_id** or **organization_user_id**
          when querying events
      - name: organization_user_id
        value: ''
        type: query
        description: The organization user ID for which to delete events. You must provide either **user_id** or **organization_user_id**
          when querying events
      - name: '{filters}'
        value: ''
        type: query
        description: Keys and values to filter the events to delete. You can filter using any property of the events, including
          nested properties like metadata by using . as a separator for each level
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete events and update the user consent status as if the events had never happened ; the user consent status is
      re-computed from all events for that user except deleted events
  - info:
      name: Retrieve an event
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/consents/events/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the event to retrieve
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the event belongs to
      - name: user_id
        value: ''
        type: query
        description: The Didomi user ID for which to retrieve events. You must provide either **user_id** or **organization_user_id**
          when querying events
      - name: organization_user_id
        value: ''
        type: query
        description: The organization user ID for which to retrieve events. You must provide either **user_id** or **organization_user_id**
          when querying events
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns an event
  - info:
      name: Patch an event
      type: http
    http:
      method: PATCH
      url: https://api.didomi.io/v1/consents/events/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the event to update
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the event belongs to
      - name: user_id
        value: ''
        type: query
        description: The Didomi user ID for which to update events. You must provide either **user_id** or **organization_user_id**
          when updating events
      - name: organization_user_id
        value: ''
        type: query
        description: The organization user ID for which to update events. You must provide either **user_id** or **organization_user_id**
          when updating events
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Patch an existing event
  - info:
      name: Delete an event
      type: http
    http:
      method: DELETE
      url: https://api.didomi.io/v1/consents/events/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the event to delete
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the event belongs to
      - name: user_id
        value: ''
        type: query
        description: The Didomi user ID for which to delete events. You must provide either **user_id** or **organization_user_id**
          when querying events
      - name: organization_user_id
        value: ''
        type: query
        description: The organization user ID for which to delete events. You must provide either **user_id** or **organization_user_id**
          when querying events
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete an event and update the user consent status as if the event had never happened ; the user consent status
      is re-computed from all events for that user except deleted events
- info:
    name: consents/proofs
    type: folder
  items:
  - info:
      name: Upload a consent proof
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/consents/proofs
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the proof belongs to
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Upload a file to serve as proof of consent
  - info:
      name: Retrieve a proof
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/consents/proofs/:id
      params:
      - name: id
        value: ''
        type: path
        description: Unique ID of the proof to retrieve
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the proof belongs to
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a consent proof
- info:
    name: consents/tokens
    type: folder
  items:
  - info:
      name: Create a new consent token
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/consents/tokens
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create a new consent token for the user
- info:
    name: consents/users
    type: folder
  items:
  - info:
      name: Retrieve users
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/consents/users
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization for which to retrieve users
      - name: organization_user_id
        value: ''
        type: query
        description: The organization user ID to retrieve (optional)
      - name: regulation
        value: ''
        type: query
        description: 'Filter user consents according to their regulation. Possible value is any existing regulation in the
          Regulations API (/compliance/v1/regulations). If this field is missing, only GDPR events are returned. To filter
          on multiple regulations in a single request, use the notation regulation[$in]: ?regulation[$in]=gdpr&regulation[$in]=cpra.'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of end users and their consent status
  - info:
      name: Create a new user
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/consents/users
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the user belongs to
      - name: $generate_tcfcs
        value: ''
        type: query
        description: Set to "true" to generate a TCF consent string for the user based on the latest status of the user
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create a new user and store its consent status
  - info:
      name: Retrieve a user
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/consents/users/:id
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the user belongs to
      - name: id
        value: ''
        type: path
        description: The ID of the user to retrieve. You can query by organization user ID here by providing your organization
          user ID in the path and adding a **$by_organization_user_id** query-string parameter
      - name: $by_organization_user_id
        value: ''
        type: query
        description: Add this query-string parameter if you provide an organization user ID as the **id** in the path
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a user and its consent status
  - info:
      name: Patch a user
      type: http
    http:
      method: PATCH
      url: https://api.didomi.io/v1/consents/users/:id
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the user belongs to
      - name: id
        value: ''
        type: path
        description: The ID of the user to update. You can update a user by organization user ID here by providing your organization
          user ID in the path and adding a **$by_organization_user_id** query-string parameter
      - name: $by_organization_user_id
        value: ''
        type: query
        description: Add this query-string parameter if you provide an organization user ID as the **id** in the path
      - name: $generate_tcfcs
        value: ''
        type: query
        description: Set to "true" to generate a TCF consent string for the user based on the latest status of the user
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Patch an existing user
  - info:
      name: Delete a user
      type: http
    http:
      method: DELETE
      url: https://api.didomi.io/v1/consents/users/:id
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the user belongs to
      - name: id
        value: ''
        type: path
        description: The ID of the user to delete. You can delete a user by organization user ID here by providing your organization
          user ID in the path and adding a **$by_organization_user_id** query-string parameter
      - name: $by_organization_user_id
        value: ''
        type: query
        description: Add this query-string parameter if you provide an organization user ID as the **id** in the path
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete an existing user
- info:
    name: widgets/notices/remote-configs
    type: folder
  items:
  - info:
      name: Deploy a SDK config
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/widgets/notices/remote-configs
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Directly deploy a SDK config to the production environment for the property
- info:
    name: sessions
    type: folder
  items:
  - info:
      name: GET /sessions/{id}
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/sessions/:id
      params:
      - name: id
        value: ''
        type: path
        description: ID of sessions to return
    docs: Retrieves a single resource with the given id from the service.
  - info:
      name: Create a new session
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/sessions
      body:
        type: json
        data: '{}'
    docs: Authenticate against the Didomi API and get an access token to use for calls requiring authorization
- info:
    name: keys
    type: folder
  items:
  - info:
      name: Retrieve a list of API keys
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/keys
      params:
      - name: $limit
        value: ''
        type: query
        description: Number of results to return
      - name: $skip
        value: ''
        type: query
        description: Number of results to skip
      - name: $sort
        value: ''
        type: query
        description: Property to sort results
      - name: filter
        value: ''
        type: query
        description: Query parameters to filter
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of all API keys the user has access to
  - info:
      name: Create a new API key
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/keys
      body:
        type: json
        data: '{}'
    docs: Create a new API key that can be used for authenticating HTTP requests to the Didomi API
  - info:
      name: Retrieve an API key
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/keys/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the API key to retrieve
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a single API key with the given ID
  - info:
      name: Update an API key
      type: http
    http:
      method: PUT
      url: https://api.didomi.io/v1/keys/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the API key to update
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Update an existing API key
  - info:
      name: Patch an API key
      type: http
    http:
      method: PATCH
      url: https://api.didomi.io/v1/keys/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the API key to patch
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Patch an existing API key
  - info:
      name: Delete an API key
      type: http
    http:
      method: DELETE
      url: https://api.didomi.io/v1/keys/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the API key to delete
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete an existing API key
- info:
    name: quotas
    type: folder
  items:
  - info:
      name: Retrieve a list of quotas
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/quotas
      params:
      - name: $limit
        value: ''
        type: query
        description: Number of results to return
      - name: $skip
        value: ''
        type: query
        description: Number of results to skip
      - name: $sort
        value: ''
        type: query
        description: Property to sort results
      - name: filter
        value: ''
        type: query
        description: Query parameters to filter
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of all quotas for the organizations the user belongs to
  - info:
      name: Retrieve a quota
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/quotas/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the quota to retrieve
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a single quota with the given ID
- info:
    name: domains
    type: folder
  items:
  - info:
      name: Retrieve a list of domains
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/domains
      params:
      - name: $limit
        value: ''
        type: query
        description: Number of results to return
      - name: $skip
        value: ''
        type: query
        description: Number of results to skip
      - name: $sort
        value: ''
        type: query
        description: Property to sort results
      - name: filter
        value: ''
        type: query
        description: Query parameters to filter
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of domains
  - info:
      name: Create a domain
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/domains
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create a new domain
  - info:
      name: Retrieve a domain
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/domains/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the domain to retrieve
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a domain by its ID
  - info:
      name: Update a domain
      type: http
    http:
      method: PUT
      url: https://api.didomi.io/v1/domains/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the domain to update
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Update an existing domain
  - info:
      name: Patch a domain
      type: http
    http:
      method: PATCH
      url: https://api.didomi.io/v1/domains/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the domain to patch
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Partially update a domain
  - info:
      name: Delete a domain
      type: http
    http:
      method: DELETE
      url: https://api.didomi.io/v1/domains/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the domain to delete
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete a domain with type "managed" by its ID
- info:
    name: secrets
    type: folder
  items:
  - info:
      name: Retrieve a list of secrets
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/secrets
      params:
      - name: $limit
        value: ''
        type: query
        description: Number of results to return
      - name: $skip
        value: ''
        type: query
        description: Number of results to skip
      - name: $sort
        value: ''
        type: query
        description: Property to sort results
      - name: filter
        value: ''
        type: query
        description: Query parameters to filter
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of all the secrets the user has access to
  - info:
      name: Create a secret
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/secrets
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create a new secret
  - info:
      name: Retrieve a secret
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/secrets/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the secret to retrieve
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a single secret with the given ID
  - info:
      name: Update a secret
      type: http
    http:
      method: PUT
      url: https://api.didomi.io/v1/secrets/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the secret to update
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Update an existing secret
  - info:
      name: Patch a secret
      type: http
    http:
      method: PATCH
      url: https://api.didomi.io/v1/secrets/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the secret to patch
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Partially update a secret
  - info:
      name: Delete a secret
      type: http
    http:
      method: DELETE
      url: https://api.didomi.io/v1/secrets/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the secret to delete
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete an existing secret. Secrets are unrecoverable after being deleted so make sure that they are not in-use before
      deleting them.
- info:
    name: Integrations
    type: folder
  items:
  - info:
      name: Mint JWT token for custodial platform integration
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/platform-integrations/sessions
      headers:
      - name: X-Shopify-Authorization
        value: ''
      body:
        type: json
        data: '{}'
    docs: Authenticates using platform-specific session token (e.g., Shopify Session Token) and returns a session response
      with a short-lived JWT token for accessing Didomi Admin API resources. The token is scoped to the integration's role
      (external-integrations-notices-manager) and organization. Only custodial integrations are supported.
- info:
    name: cookies
    type: folder
  items:
  - info:
      name: Retrieve a list of cookies
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/cookies
      params:
      - name: property_id
        value: ''
        type: query
        description: The ID of the property
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of cookies set by a property
  - info:
      name: Create a cookie
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/cookies
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create a new cookie for a property
  - info:
      name: Retrieve a cookie
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/cookies/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the cookie to retrieve
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a single cookie set by a property
  - info:
      name: Update a cookie
      type: http
    http:
      method: PUT
      url: https://api.didomi.io/v1/cookies/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the cookie to update
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Update an existing cookie set by a property and replace all its properties
  - info:
      name: Patch a cookie
      type: http
    http:
      method: PATCH
      url: https://api.didomi.io/v1/cookies/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the cookie to patch
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Partially update a cookie set by a property
  - info:
      name: Delete a cookie
      type: http
    http:
      method: DELETE
      url: https://api.didomi.io/v1/cookies/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the cookie to delete
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete an existing cookie
- info:
    name: languages
    type: folder
  items:
  - info:
      name: Retrieve list of available languages/locales
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/languages
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns list of available languages/locales
- info:
    name: dashboards-urls
    type: folder
  items:
  - info:
      name: Retrieve a list of dashboards with signed URLs
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/analytics/dashboards-urls
      params:
      - name: category
        value: ''
        type: query
        description: The category of the dashboard. Used for grouping dashboard (per page for example).
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization that the user belongs to
      - name: $limit
        value: ''
        type: query
        description: Number of max results to return
      - name: $skip
        value: ''
        type: query
        description: Number of results to skip
      - name: $sort
        value: '[object Object]'
        type: query
        description: Object representing sorting options. Accepts properties to sort as keys and -1 or 1 for sort direction
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of all dashboards with signed URLs
- info:
    name: organizations
    type: folder
  items:
  - info:
      name: Retrieve a list of organizations
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/organizations
      params:
      - name: $limit
        value: ''
        type: query
        description: Number of results to return
      - name: $skip
        value: ''
        type: query
        description: Number of results to skip
      - name: $sort
        value: ''
        type: query
        description: Property to sort results
      - name: filter
        value: ''
        type: query
        description: Query parameters to filter
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of all organizations the user belongs to
  - info:
      name: Create an organization
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/organizations
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create a new organization
  - info:
      name: Retrieve an organization
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/organizations/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the organization to retrieve
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a single organization with the given ID
  - info:
      name: Update an organization
      type: http
    http:
      method: PUT
      url: https://api.didomi.io/v1/organizations/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the organization to update
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Update an existing organization and replace all its properties
  - info:
      name: Patch an organization
      type: http
    http:
      method: PATCH
      url: https://api.didomi.io/v1/organizations/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the organization to patch
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Partially update an organization
  - info:
      name: Delete an organization
      type: http
    http:
      method: DELETE
      url: https://api.didomi.io/v1/organizations/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the organization to delete
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete an existing organization
- info:
    name: members
    type: folder
  items:
  - info:
      name: Retrieve a list of members of an organization
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/members
      params:
      - name: organization_id
        value: ''
        type: query
        description: The ID of the organization
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of members of an organization
  - info:
      name: Add a user to an organization
      type: http
    http:
      method: POST
      url: https://api.didomi.io/v1/members
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Add a new member to an organization. If the user is new it will send an email with a password reset link. Finally
      it will send an added to organization notification
  - info:
      name: Retrieve a member
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/members/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the member to retrieve
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a single member of an organization
  - info:
      name: PATCH /members/{id}
      type: http
    http:
      method: PATCH
      url: https://api.didomi.io/v1/members/:id
      params:
      - name: id
        value: ''
        type: path
        description: ID of members to update
      body:
        type: json
        data: '{}'
    docs: Updates the resource identified by id using data.
  - info:
      name: Remove a user from an organization
      type: http
    http:
      method: DELETE
      url: https://api.didomi.io/v1/members/:id
      params:
      - name: id
        value: ''
        type: path
        description: The ID of the member to delete
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Delete an existing member of an organization
- info:
    name: privacy-centers
    type: folder
  items:
  - info:
      name: Retrieve a list of privacy centers
      type: http
    http:
      method: GET
      url: https://api.didomi.io/v1/privacy-centers
      params:
      - name: privacy_center_id
        value: ''
        type: query
        description: The ID of the privacy center
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a list of all the privacy centers the user has acce

# --- truncated at 32 KB (90 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/didomi/refs/heads/main/apis.yml