# DDx API Documentation > Documentation for DDx API ## Guides - [DDx API Accounts, Workspaces & Apps](https://apidocs.demexchange.com/docs/ddxapi-accounts-workspaces.md) - [Workspaces](https://apidocs.demexchange.com/docs/workspaces.md) - [Apps](https://apidocs.demexchange.com/docs/apps.md): What an App is in the DDx API Console, and the difference between Dataset Exchange API and Interactions API Apps. - [Set Up A New Personal Workspace](https://apidocs.demexchange.com/docs/set-up-a-new-personal-workspace.md): How to set up a new Personal Workspace in the DDx API Console. - [Add or Set Up A New Organizational Workspace](https://apidocs.demexchange.com/docs/add-an-organizational-workspace-or-set-up-a-new-organizational-workspace.md): How to add or set up a new Organizational Workspace in the DDx API Console - [Workspace User Role Definitions](https://apidocs.demexchange.com/docs/workspace-role-definitions.md): This page reviews DDx API Console Workspace user roles and what permissions they have within a workspace. - [App Environments and Sharing Rules](https://apidocs.demexchange.com/docs/app-environments-and-sharing.md): How an App's environment (Development or Production) controls who can see and install it. - [Admin API Overview](https://apidocs.demexchange.com/docs/admin-api-overview.md) - [Admin API Authentication](https://apidocs.demexchange.com/docs/admin-api-authentication.md) - [Admin API Flows for Tech Partners](https://apidocs.demexchange.com/docs/endpoint-flows-for-tech-partners.md) - [VAN API Proxy](https://apidocs.demexchange.com/docs/van-api-proxy.md) - [API Proxy Set Up](https://apidocs.demexchange.com/docs/api-proxy-set-up.md) - [Frequently Asked Questions](https://apidocs.demexchange.com/docs/frequently-asked-questions.md) - [Errors & Troubleshooting](https://apidocs.demexchange.com/docs/errors-troubleshooting.md) - [Dataset Exchange API Overview](https://apidocs.demexchange.com/docs/dxapi-overview.md): The Dataset Exchange API (DXAPI) v1 is a set of HTTP endpoints to support central tool vendor integration. - [Getting Started the Dataset Exchange API](https://apidocs.demexchange.com/docs/getting-started.md): How to get started with set up and testing of the Dataset Exchange API! - [For Tech Partners](https://apidocs.demexchange.com/docs/for-tech-partners.md) - [Creating an App](https://apidocs.demexchange.com/docs/create-an-app.md) - [Production Apps](https://apidocs.demexchange.com/docs/production-apps.md) - [Data Submission Flows](https://apidocs.demexchange.com/docs/data-submission-flows.md) - [For Campaigns & Organizations](https://apidocs.demexchange.com/docs/for-campaigns-organizations.md) - [Connecting to an App](https://apidocs.demexchange.com/docs/connecting-to-an-app.md) - [Adjusting Permissions](https://apidocs.demexchange.com/docs/adjusting-permissions.md) - [Disconnecting an App](https://apidocs.demexchange.com/docs/disconnecting-an-app.md) - [Scale To Win](https://apidocs.demexchange.com/docs/connecting-to-scale-to-win.md) - [Portal App](https://apidocs.demexchange.com/docs/portal-app.md) - [Switchboard](https://apidocs.demexchange.com/docs/switchboard.md) - [BigQuery](https://apidocs.demexchange.com/docs/bigquery.md): Use the Dataset Exchange API to send datasets to your BigQuery instance! - [DDx Exchange](https://apidocs.demexchange.com/docs/ddx-exchange.md) - [Sending to DDx Exchange](https://apidocs.demexchange.com/docs/sending-to-ddx-exchange-set-up.md) - [FAQ: Sending to DDx Exchange](https://apidocs.demexchange.com/docs/ddx-exchange-integration-faq.md) - [Receiving Data from DDx Exchange](https://apidocs.demexchange.com/docs/receiving-data-from-the-ddx-exchange.md) - [Authentication](https://apidocs.demexchange.com/docs/authentication.md) - [Submission Endpoints](https://apidocs.demexchange.com/docs/submission-endpoints.md) - [Retrieval Endpoints](https://apidocs.demexchange.com/docs/retrieval-endpoints.md) - [Tips for Testing your DXAPI App](https://apidocs.demexchange.com/docs/tips-for-testing-your-app.md) - [Interactions API Overview](https://apidocs.demexchange.com/docs/interactions-api-overview.md): If you are new to the Interactions API, start here! - [Outcome Operations](https://apidocs.demexchange.com/docs/outcome-operations.md): How to use the operation field on outcomesDetailed to represent creates, deletes, and updates within an interaction. - [Interactions API Set Up](https://apidocs.demexchange.com/docs/interactions-api-set-up.md): Learn how to set up the Interactions API based on your user type - whether you're a Data Owner, Data Source, or Data Destination. - [Quick Start for Data Sources](https://apidocs.demexchange.com/docs/quick-start-data-sources.md): Get set up and get testing as an Interactions API data source in this abbreviated guide. - [Set Up for Data Owners](https://apidocs.demexchange.com/docs/set-up-for-data-owners.md): Instructions for how to get started with the Interactions API as a Data Owner - [Set Up for Sources](https://apidocs.demexchange.com/docs/set-up-for-sources.md): Instructions for how to get started with the Interactions API as a Source - [Set Up for Destinations](https://apidocs.demexchange.com/docs/set-up-for-destinations.md): Instructions for how to get started with the Interactions API as a Destination - [Consuming Interactions data via Pub/Sub](https://apidocs.demexchange.com/docs/consuming-interactions-data-via-pubsub.md) - [Detailed Guide: Interactions App Creation](https://apidocs.demexchange.com/docs/detailed-guide-interactions-app-creation.md) - [Detailed Guide: Interactions API Key Creation](https://apidocs.demexchange.com/docs/detailed-guide-api-key-creation.md) - [Tech Partners: VAN Canvass Responses as a Destination](https://apidocs.demexchange.com/docs/detailed-guide-integrating-with-van-canvass-response-endpoint.md) - [Data Owners: VAN Canvass Responses as a Destination](https://apidocs.demexchange.com/docs/copy-of-detailed-guide-van-canvass-responses-as-a-destination.md) - [Tech Partners: DDx Exchange as a Destination](https://apidocs.demexchange.com/docs/tech-partners-detailed-guide-integrating-with-ddx-exchange.md) - [Data Owners: DDx Exchange as a Destination](https://apidocs.demexchange.com/docs/data-owners-detailed-guide-ddx-exchange-as-a-destination.md) - [Interactions API Authentication](https://apidocs.demexchange.com/docs/interactions-api-authentication.md): How to authenticate requests to the Interactions API - [API Examples](https://apidocs.demexchange.com/docs/api-examples.md): This page contains examples of how to represent different interactions using the Interactions API - [Interactions API Frequently Asked Questions](https://apidocs.demexchange.com/docs/interactions-api-faq.md) ## API Reference - [Get Installed Apps](https://apidocs.demexchange.com/reference/get_apps-me-installations-1.md): Get all installed apps for the current workspace. - [Install an app on a workspace](https://apidocs.demexchange.com/reference/post_apps-appid-installations-1.md): Create a new "installation" of a MovementApp on the current workspace. - [Uninstall an app from a workspace](https://apidocs.demexchange.com/reference/delete_apps-appid-installations-installationid-1.md): Uninstalling an app from a workspace severs the tie between an app and the workspace. That app will no longer be able to access datasets in that workspace. - [Get app by ID](https://apidocs.demexchange.com/reference/get_apps-appid-1.md): Gets details about a specific Movement App that the authenticated user has access to. - [Update a movement app](https://apidocs.demexchange.com/reference/put_apps-appid-1.md): Updates the name and description of an existing movement app. Only the app owner can update the app details. - [Get movement apps](https://apidocs.demexchange.com/reference/get_apps-1.md): Returns a list of movement apps that the authenticated user has access to. If includeKeys is true, the response will include API keys associated with each app. By default, API keys are not included. - [Create a movement app](https://apidocs.demexchange.com/reference/post_apps-1.md): Creates a new movement app with the specified name, description, app types, environment and products. If the app includes Dataset Exchange product capabilities, the workspace must have Dataset Exchange APIs enabled. - [Get installable apps](https://apidocs.demexchange.com/reference/get_apps-installable-1.md): Returns a list of movement apps that can be installed in the current workspace. The list can be filtered to only show apps from a specific product line (e.g. DXAPI) by providing the product ID. If no product ID is provided, all installable apps are returned. Apps are only returned if the current user has permission to install them in the workspace. Apps are installable if they are "production" apps, and are either publically installable (which requires approval from MIG admins) or exist within your own workspace. To get an app approved for public installation, please contact support@movementinfrastructure.org. - [Get workspaces where an app is installed](https://apidocs.demexchange.com/reference/get_apps-appid-installations.md): Returns a list of workspaces where the specified Movement App is installed. For organization workspaces, shows the workspace name. For personal workspaces, shows the owner's name. - [Get a Client Data Access (CDA) token](https://apidocs.demexchange.com/reference/post_auth-clienttoken-1.md): Requests a client token for a given app installation (a workspace-to-installed-app pairing).\ CDA tokens are used to access client data from an installed app and are scoped to a specific app installation. CDA tokens are time-limited and will expire after 1 hour. ## Accessing this endpoint with a system-level token See the [documentation](https://docs.movementinfrastructure.org/docs/authentication#generating-system-level-json-web-token-jwt)\ on how to generate a System-level JWT (JSON Web Token) for the MIG Console. - [Get dataset job](https://apidocs.demexchange.com/reference/get_datasets-jobs-jobid-1.md): Dataset jobs are created when a dataset is processed. They are used to track the status of the dataset processing. - [Get logs for dataset job](https://apidocs.demexchange.com/reference/get_datasets-jobs-jobid-logs-1.md): Dataset job logs track the progress and status changes of a dataset job as it processes. - [Get current status of dataset job](https://apidocs.demexchange.com/reference/get_datasets-jobs-jobid-logs-current-1.md): Returns the most recent status log entry for a dataset job, showing its current state. - [Create a dataset tag](https://apidocs.demexchange.com/reference/post_datasets-datasetid-tags-1.md): Creates a new tag for a dataset using the specified movement app ID. The tag associates the dataset with a movement app installation in the workspace, and is used to assign permissions to the dataset for the movement app. - [Delete a dataset tag](https://apidocs.demexchange.com/reference/delete_datasets-datasetid-tags-datasettagid-1.md): Removes a tag from a dataset, which revokes the associated movement app's access to the dataset. The tag can be re-added later if needed. - [Get datasets](https://apidocs.demexchange.com/reference/get_datasets-1.md): Returns a list of datasets for a workspace. If `createdBy` is "me", the datasets created by the current user will be returned. If `createdBy` is a user ID, the datasets created by that user will be returned. _NOTE:_ as of 6/5/2025, this endpoint can only be used to access your own datasets. - [Create a dataset](https://apidocs.demexchange.com/reference/post_datasets-1.md): Creates a new dataset with the given name, description, and schema. The schema provided should be an exact representation of the dataset you are loading. All schema properties must be present in the dataset file you are loading. Data is matched to columns by name, not by order, and headers must match schema columns. - [Get dataset by ID](https://apidocs.demexchange.com/reference/get_datasets-datasetid-1.md): Gets details about a specific dataset that the authenticated user or app has access to. - [Delete a dataset](https://apidocs.demexchange.com/reference/delete_datasets-datasetid-1.md): Deletes a dataset that the authenticated user has access to. - [Create a signed URL for file upload.](https://apidocs.demexchange.com/reference/post_datasets-datasetid-uploadurl-1.md): Generates a pre-signed URL for one-time upload or a resumable URI for dataset upload. - [Load dataset records from URL](https://apidocs.demexchange.com/reference/post_datasets-datasetid-records-load-1.md): Loads records into a dataset from a pre-signed URL where your dataset already exists, e.g. an pre-signed download URL from an S3 bucket. By default, records can only be loaded into empty datasets. Use mode=replace to replace existing records or mode=append to add to existing records. - [Get dataset records](https://apidocs.demexchange.com/reference/post_datasets-datasetid-records-retrieve-1.md): Retrieves records from a dataset by generating a pre-signed URL to download the dataset contents. The records will be formatted according to the specified content type. - [Get addable dataset tags](https://apidocs.demexchange.com/reference/get_datasets-tags-1.md): Returns a list of available movement apps that can be used to tag datasets in the workspace. Each tag option includes the movement app ID and name. - [Get all workspaces that the current user belongs to](https://apidocs.demexchange.com/reference/get_workspaces-me-1.md): Returns a list of all workspaces that the authenticated user belongs to - [Get authentication context](https://apidocs.demexchange.com/reference/get_v-version-auth-me.md): Returns details about the authenticated API key including vendor, organization, committee, and state information. - [Post interactions data](https://apidocs.demexchange.com/reference/post_v-version-interactions.md): This endpoint is used to post interactions data to the Interactions API that will be published to Pub/Sub. A maximum of 100 interactions can be submitted per request. - [Get external API transactions by interactionId](https://apidocs.demexchange.com/reference/get_v-version-interactions-interactionid-transactions.md): Get all external API transaction records for the specified interaction. - [Get external API transaction logs by date range](https://apidocs.demexchange.com/reference/get_v-version-interactions-transactions.md): Get all external API transaction records within the date range specified, for a maximum of up to a 30 day span. - [Get Exchange pipeline statuses by correlation or interaction ID](https://apidocs.demexchange.com/reference/get_v-version-interactions-exchange-status.md): Returns Exchange pipeline statuses filtered by either correlationId or interactionId. Supports cursor-based pagination. - [Get Exchange pipeline statuses by date range](https://apidocs.demexchange.com/reference/get_v-version-interactions-exchange-status-range.md): Returns Exchange pipeline statuses for interactions published within the specified date range. Supports cursor-based pagination. Maximum date range is 30 days. - [Get External API Keys](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-externalapikeys.md) - [Add an External API Key](https://apidocs.demexchange.com/reference/post_admin-workspaces-workspaceid-externalapikeys.md) - [Get an External API Key by ID](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-externalapikeys-externalapikeyid.md) - [Delete an External API Key](https://apidocs.demexchange.com/reference/delete_admin-workspaces-workspaceid-externalapikeys-externalapikeyid.md) - [Get a list of Interactions API source apps](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-interactionsapi-sources.md): Get a list of Interactions API sources. This endpoint can be accessed for any workspace in your hierarchy, however, the results will always be restricted to destinations available to the workspace your DDx API Key is tied to. - [Get a list of Interactions API destinations](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-interactionsapi-destinations.md): Get a list of Interactions API destinations. This endpoint can be accessed for any workspace in your hierarchy, however, the results will always be restricted to destinations available to the workspace your DDx API Key is tied to. - [Get a list of Interactions API Keys](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-interactionsapi-apikeys.md): Lists the production Interactions API Keys in the workspace you specify, limited to the Interactions API apps visible from your root workspace. It is intended for data owners auditing or managing the keys in a single workspace in their hierarchy. If you own a movement app (for example as a tech partner running a source or destination), this is not the endpoint you want. Keys a data owner provisions to your app live in that data owner's workspace, so this endpoint returns an empty list for your own workspace. Use `GET /admin/workspaces/{workspaceId}/movementApps/{appId}/apiKeys` instead. To pull the keys across a whole hierarchy in a single call, use `GET /admin/workspaces/{workspaceId}/interactionsApi/apiKeys/hierarchy`, which returns a download URL for a CSV of the results. - [Get secret for an Interactions API Key](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-interactionsapi-apikeys-apikeyid-secret.md) - [Create an Interactions API Key](https://apidocs.demexchange.com/reference/post_admin-workspaces-workspaceid-interactionsapi-apikeys.md) - [Get an Interactions API Key by ID](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-interactionsapi-apikeys-apikeyid.md) - [Update an Interactions API Key](https://apidocs.demexchange.com/reference/patch_admin-workspaces-workspaceid-interactionsapi-apikeys-apikeyid.md) - [Delete an Interactions API Key](https://apidocs.demexchange.com/reference/delete_admin-workspaces-workspaceid-interactionsapi-apikeys-apikeyid.md) - [Get an Interactions API destination by ID](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-interactionsapi-destinations-destinationid.md): Get an Interactions API destination by ID. This endpoint can be accessed for any workspace in your hierarchy, however, the results will always be restricted to destinations available to the workspace your DDx API Key is tied to. - [Get Interactions API Keys for a destination](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-interactionsapi-destinations-destinationid-apikeys.md): As a destination owner, get a list of Interactions API Keys that are connected to you. This endpoint can be accessed for any workspace in your hierarchy, however, it will be restricted to destinations owned by the workspace your DDx API Key is tied to. - [Get all interactions API keys in a workspace hierarchy](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-interactionsapi-apikeys-hierarchy.md) - [Refresh the secret for an Interactions API Key](https://apidocs.demexchange.com/reference/post_admin-workspaces-workspaceid-interactionsapi-apikeys-apikeyid-refreshsecret.md): This will reset the API Key secret for the specified API Key, invalidating the previous secret. A notification will be sent to the app owner to inform them a new secret is available. The new secret will be retrievable by you through the Get Interactions API Key Secret endpoint, or by the source app owner through the movement apps API key endpoint. - [Get movement apps for a workspace](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-movementapps.md) - [Get a specific movement app by ID for a workspace](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-movementapps-appid.md) - [Get all Interactions API keys provisioned to a movement app](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-movementapps-appid-apikeys.md): Lists the Interactions API Keys that data owners have provisioned to a specific movement app. Use it if you own a movement app (for example as a tech partner running a source or destination) and need to retrieve the keys provisioned to your app. If you are a data owner looking at the keys you have created, use `GET /admin/workspaces/{workspaceId}/interactionsApi/apiKeys` for one workspace at a time, or `GET /admin/workspaces/{workspaceId}/interactionsApi/apiKeys/hierarchy` for a whole hierarchy in a single call. - [Get an Interactions API key provisioned to a movement app by key ID](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-movementapps-appid-apikeys-apikeyid.md) - [Get the secret for an API Key provisioned to a movement app](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-movementapps-appid-apikeys-apikeyid-secret.md) - [Add or update the external keys associated with the destinations of an Interactions API key provisioned to your app.](https://apidocs.demexchange.com/reference/put_admin-workspaces-workspaceid-movementapps-appid-apikeys-apikeyid-destinations.md): An Interactions API key can be associated with one external API key per destination. Tech partners can associate an external API key with an interactions key provisioned to their app only if the data owner included an external API key-eligible destination (ex. VAN), and has not already specified an external API key for the destination. - [Invite a user to a workspace](https://apidocs.demexchange.com/reference/post_admin-workspaces-workspaceid-users.md) - [Get users invited to a workspace](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-users.md) - [Remove a user from a workspace](https://apidocs.demexchange.com/reference/delete_admin-workspaces-workspaceid-users-userid.md) - [Get workspace details](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid.md) - [Get a tree representation of a workspace and its descendants](https://apidocs.demexchange.com/reference/get_admin-workspaces-workspaceid-hierarchy.md) - [Create a new workspace](https://apidocs.demexchange.com/reference/post_admin-workspaces.md) - [Update an existing workspace](https://apidocs.demexchange.com/reference/patch_admin-workspaces-workspaceid.md) - [Delete a workspace](https://apidocs.demexchange.com/reference/delete_admin-workspaces-workspaceid.md) ## Changelog - [Interactions API: Exchange pipeline statuses updates](https://apidocs.demexchange.com/changelog/interactions-api-exchange-pipeline-statuses-updates.md) - [Interactions API: Granular Validation](https://apidocs.demexchange.com/changelog/interactions-api-granular-validation.md) - [Interactions API: Support added for Event Signups type](https://apidocs.demexchange.com/changelog/interactions-api-support-added-for-eventsignups-type.md) - [Admin API Updates](https://apidocs.demexchange.com/changelog/admin-api-updates.md) - [Dataset Exchange API: Append Mode available when uploading records](https://apidocs.demexchange.com/changelog/dataset-exchange-api-append-mode-available-when-uploading-records.md) - [Admin API: Launch](https://apidocs.demexchange.com/changelog/admin-api-launch.md) - [Interactions API: Add `initiative` array to Interactions model](https://apidocs.demexchange.com/changelog/add-initiative-array-to-interactions-api.md) - [Interactions API: Added App ID to "Source" object](https://apidocs.demexchange.com/changelog/interactions-api-added-app-id-to-source-object.md) - [Interactions API: Support for additional person identifiers](https://apidocs.demexchange.com/changelog/interactions-api-support-for-additional-person-identifiers.md) - [Interactions API: Support Added for VAN's Canvass Responses Destination](https://apidocs.demexchange.com/changelog/interactions-api-support-added-for-van-canvass-response-destination.md)