Amplitude · Arazzo Workflow

Amplitude DSAR Request and Poll

Version 1.0.0

Submit a data subject access request, poll its status until complete, and capture the download URL.

1 workflow 1 source API 1 provider
View Spec View on GitHub A/B TestingAnalyticsExperimentationFeature FlagsProduct AnalyticsUser BehaviorArazzoWorkflows

Provider

amplitude

Workflows

submit-and-poll-dsar
Submit a DSAR and poll until the data export is ready for download.
Resolves a data subject access request from submission through completion by submitting the request, polling the status endpoint until complete, and surfacing the download URL.
2 steps inputs: basicAuth, userIds outputs: downloadUrl, finalStatus, requestId
1
createRequest
Submit a data subject access request for the supplied user IDs. The request is processed asynchronously.
2
pollStatus
Poll the DSAR status endpoint. While the request is pending or processing the step loops; once it is complete it ends and captures the download URL.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Amplitude DSAR Request and Poll
  summary: Submit a data subject access request, poll its status until complete, and capture the download URL.
  description: >-
    A privacy-compliance flow built on the Amplitude DSAR API for GDPR and CCPA
    workflows. The workflow submits a data subject access request for one or
    more user IDs, then polls the request status endpoint until the asynchronous
    job reports a complete state, capturing the download URL for the requested
    data. The polling step branches on the reported status so it loops while the
    request is pending or processing. Every step spells out its request inline so
    the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: dataAccessApi
  url: ../openapi/amplitude-data-access-api-openapi.yml
  type: openapi
workflows:
- workflowId: submit-and-poll-dsar
  summary: Submit a DSAR and poll until the data export is ready for download.
  description: >-
    Resolves a data subject access request from submission through completion by
    submitting the request, polling the status endpoint until complete, and
    surfacing the download URL.
  inputs:
    type: object
    required:
    - basicAuth
    - userIds
    properties:
      basicAuth:
        type: string
        description: Base64-encoded api_key:secret_key credentials for HTTP Basic auth.
      userIds:
        type: array
        description: Array of user IDs to retrieve data for.
        items:
          type: string
  steps:
  - stepId: createRequest
    description: >-
      Submit a data subject access request for the supplied user IDs. The
      request is processed asynchronously.
    operationId: createDsarRequest
    parameters:
    - name: Authorization
      in: header
      value: "Basic $inputs.basicAuth"
    requestBody:
      contentType: application/json
      payload:
        user_ids: $inputs.userIds
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      requestId: $response.body#/request_id
      status: $response.body#/status
  - stepId: pollStatus
    description: >-
      Poll the DSAR status endpoint. While the request is pending or processing
      the step loops; once it is complete it ends and captures the download URL.
    operationId: getDsarRequestStatus
    parameters:
    - name: Authorization
      in: header
      value: "Basic $inputs.basicAuth"
    - name: request_id
      in: path
      value: $steps.createRequest.outputs.requestId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
      downloadUrl: $response.body#/download_url
    onSuccess:
    - name: requestComplete
      type: end
      criteria:
      - context: $response.body
        condition: $.status == "complete"
        type: jsonpath
    - name: stillProcessing
      type: goto
      stepId: pollStatus
      criteria:
      - context: $response.body
        condition: $.status == "pending" || $.status == "processing"
        type: jsonpath
  outputs:
    requestId: $steps.createRequest.outputs.requestId
    finalStatus: $steps.pollStatus.outputs.status
    downloadUrl: $steps.pollStatus.outputs.downloadUrl

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/amplitude-dsar-request-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.