Didomi · Arazzo Workflow

Didomi Upload and Verify a Consent Proof

Version 1.0.0

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

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

Provider

didomi

Workflows

upload-consent-proof
Upload a consent proof file for an organization and read it back by ID.
Uploads a base64-encoded data URI as proof of consent for the organization and then retrieves the created proof by its ID to confirm it was stored.
2 steps inputs: file, organizationId, token outputs: proofId
1
uploadProof
{$sourceDescriptions.consentsProofsApi.url}#/paths/~1consents~1proofs/post
Upload the base64-encoded file to serve as proof of consent for the organization. The file field is required by the ConsentProof input schema.
2
getProof
{$sourceDescriptions.consentsProofsApi.url}#/paths/~1consents~1proofs~1{id}/get
Retrieve the uploaded proof by its ID, scoped to the same organization, to verify that it was persisted.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Didomi Upload and Verify a Consent Proof
  summary: Upload a file as proof of consent for an organization and read it back to verify storage.
  description: >-
    A compliance-focused Didomi pattern for retaining evidence of consent. The
    workflow uploads a base64-encoded file that serves as proof of consent for an
    organization, then retrieves the stored proof by its ID to verify it was
    persisted. 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
  x-realizes-capability-ids:
  - BC-130.50
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-130.50
      capability_name: Privacy & Data Protection Management
      spec: didomi-consents-proofs-api-openapi.yml
      confidence: 0.78
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: consentsProofsApi
  url: ../openapi/didomi-consents-proofs-api-openapi.yml
  type: openapi
workflows:
- workflowId: upload-consent-proof
  summary: Upload a consent proof file for an organization and read it back by ID.
  description: >-
    Uploads a base64-encoded data URI as proof of consent for the organization
    and then retrieves the created proof by its ID to confirm it was stored.
  inputs:
    type: object
    required:
    - token
    - organizationId
    - file
    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 proof belongs to.
      file:
        type: string
        description: 'Base64-encoded data URI of the proof file (PDF, PNG, JPG, GIF, DOCX or DOC).'
  steps:
  - stepId: uploadProof
    description: >-
      Upload the base64-encoded file to serve as proof of consent for the
      organization. The file field is required by the ConsentProof input schema.
    operationPath: '{$sourceDescriptions.consentsProofsApi.url}#/paths/~1consents~1proofs/post'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: organization_id
      in: query
      value: $inputs.organizationId
    requestBody:
      contentType: application/json
      payload:
        file: $inputs.file
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      proofId: $response.body#/id
  - stepId: getProof
    description: >-
      Retrieve the uploaded proof by its ID, scoped to the same organization, to
      verify that it was persisted.
    operationPath: '{$sourceDescriptions.consentsProofsApi.url}#/paths/~1consents~1proofs~1{id}/get'
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.token"
    - name: id
      in: path
      value: $steps.uploadProof.outputs.proofId
    - name: organization_id
      in: query
      value: $inputs.organizationId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      proofId: $response.body#/id
  outputs:
    proofId: $steps.getProof.outputs.proofId

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-upload-consent-proof-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.