Didomi · Arazzo Workflow

Didomi Issue a Consent Token for an End User

Version 1.0.0

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

1 workflow 2 source APIs 1 provider
View Spec View on GitHub AdvertisingAdTechCCPACMPConsentConsent ManagementDSARData PrivacyGDPRIAB TCFMarTechPreference ManagementPrivacyPrivacy RequestsRegulatory ComplianceArazzoWorkflows

Provider

didomi

Workflows

issue-consent-token
Create a user, assign an internal ID, and issue a scoped consent token for that user.
Creates an end user, patches it to assign your organization's internal user ID, and issues a consent token scoped to that user and organization.
3 steps inputs: lifetime, organizationId, organizationUserId, token outputs: idToken, userId
1
createUser
{$sourceDescriptions.consentsUsersApi.url}#/paths/~1consents~1users/post
Create a new end user under the organization. organization_id is supplied as a required query parameter.
2
assignInternalId
{$sourceDescriptions.consentsUsersApi.url}#/paths/~1consents~1users~1{id}/patch
Patch the user to assign your organization's internal user ID so the token can be scoped to that ID.
3
issueToken
{$sourceDescriptions.consentsTokensApi.url}#/paths/~1consents~1tokens/post
Issue a consent token scoped to the user and organization. organization_id, organization_user_id and lifetime are all required by the ConsentToken input schema.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Didomi Issue a Consent Token for an End User
  summary: Create an end user, assign an internal ID, and issue a scoped JWT consent token for that user.
  description: >-
    A Didomi pattern for handing an end user a token that authorizes them to read
    and modify their own consent data from client-side environments. The workflow
    creates an end user, patches it to assign your organization's internal user ID,
    and issues a scoped consent token for that user. Each step spells out its
    request inline, including the bearer Authorization header, so the flow can be
    read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: consentsTokensApi
  url: ../openapi/didomi-consents-tokens-api-openapi.yml
  type: openapi
- name: consentsUsersApi
  url: ../openapi/didomi-consents-users-api-openapi.yml
  type: openapi
workflows:
- workflowId: issue-consent-token
  summary: Create a user, assign an internal ID, and issue a scoped consent token for that user.
  description: >-
    Creates an end user, patches it to assign your organization's internal user
    ID, and issues a consent token scoped to that user and organization.
  inputs:
    type: object
    required:
    - token
    - organizationId
    - organizationUserId
    - lifetime
    properties:
      token:
        type: string
        description: A valid Didomi JWT used as the bearer token for the Authorization header.
      organizationId:
        type: string
        description: The ID of the organization that the user and token belong to.
      organizationUserId:
        type: string
        description: Your organization's internal user ID to assign to the new user.
      lifetime:
        type: integer
        description: Lifetime of the issued consent token, in seconds.
  steps:
  - stepId: createUser
    description: >-
      Create a new end user under the organization. organization_id is supplied as
      a required query parameter.
    operationPath: '{$sourceDescriptions.consentsUsersApi.url}#/paths/~1consents~1users/post'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: organization_id
      in: query
      value: $inputs.organizationId
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organizationId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      userId: $response.body#/id
  - stepId: assignInternalId
    description: >-
      Patch the user to assign your organization's internal user ID so the token
      can be scoped to that ID.
    operationPath: '{$sourceDescriptions.consentsUsersApi.url}#/paths/~1consents~1users~1{id}/patch'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: id
      in: path
      value: $steps.createUser.outputs.userId
    - name: organization_id
      in: query
      value: $inputs.organizationId
    requestBody:
      contentType: application/json
      payload:
        organization_user_id: $inputs.organizationUserId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      organizationUserId: $response.body#/organization_user_id
  - stepId: issueToken
    description: >-
      Issue a consent token scoped to the user and organization. organization_id,
      organization_user_id and lifetime are all required by the ConsentToken input
      schema.
    operationPath: '{$sourceDescriptions.consentsTokensApi.url}#/paths/~1consents~1tokens/post'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    requestBody:
      contentType: application/json
      payload:
        organization_id: $inputs.organizationId
        organization_user_id: $steps.assignInternalId.outputs.organizationUserId
        lifetime: $inputs.lifetime
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      idToken: $response.body#/id_token
  outputs:
    userId: $steps.createUser.outputs.userId
    idToken: $steps.issueToken.outputs.idToken

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • 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 workflow
curl "https://apis.io/api/v1/arazzo/didomi-issue-consent-token-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?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.