LiveIntent API references API

This API reference describes how to interact with the Privacy Management API.

Operations 5

GET /data-subject-report/{transactionId}
POST /data-subject-requests
POST /data-subject-requests/test
GET /data-subject-requests/{transactionId}
POST /search/data-subject-requests

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/liveintent-api-references-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

liveintent-api-references-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LiveIntent Privacy Management API references API
  description: '


    '
  contact:
    name: LiveIntent Support
    email: support@liveintent.com
  version: 1.0.0
servers:
- url: https://privacy.liadm.com
  description: 'Privacy server production


    '
- url: privacy-test.liadm.com
  description: 'Privacy server staging


    '
security:
- Bearer: []
tags:
- name: API references
  description: 'This API reference describes how to interact with the Privacy Management API.


    '
paths:
  /data-subject-report/{transactionId}:
    description: '# Get a customer data report URL


      For internal use only. This endpoint redirects to the report download URL using the signed URL parameters.



      - API references

      '
    get:
      tags:
      - API references
      description: '# Get a customer data report URL


        For internal use only. This endpoint redirects to the report download URL using the signed URL parameters.



        - API references

        '
      parameters:
      - name: expiresAt
        in: query
        description: 'Expiration timestamp for the signed URL


          '
        required: true
        schema:
          type: string
        allowReserved: false
        style: form
      - name: signature
        in: query
        description: 'Signature for URL validation


          '
        required: true
        schema:
          type: string
        allowReserved: false
        style: form
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
        style: simple
      responses:
        '303':
          description: 'Redirects to the report download URL


            '
          content:
            application/json:
              schema:
                type: 'null'
        '400':
          description: 'Missing required query parameters.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Missing required query parameters.


                  '
        '403':
          description: 'Invalid signature or link expired.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Invalid signature or link expired.


                  '
        '404':
          description: 'Report not found.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Report not found.


                  '
        '500':
          description: 'Internal server error.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Internal server error.


                  '
  /data-subject-requests:
    description: "# Submit a request\n\nThis endpoint lets you submit _RESTRICT_, _ERASURE_, and _ACCESS_ requests. \nTo access any of the resources, get the `access_token` as described in the Authentication section, then call this endpoint by specifying an action. The submission of _ACCESS_ requests is for internal use only. A request is considered valid if `emailhashes` set is not empty OR `liveIntentFpcs` set is not empty. If both `emailHashes` and `liveItentFpcs` are not empty, then the values are all considered as applied to the same, single data subject.\n\n\n- API references\n"
    post:
      tags:
      - API references
      description: "# Submit a request\n\nThis endpoint lets you submit _RESTRICT_, _ERASURE_, and _ACCESS_ requests. \nTo access any of the resources, get the `access_token` as described in the Authentication section, then call this endpoint by specifying an action. The submission of _ACCESS_ requests is for internal use only. A request is considered valid if `emailhashes` set is not empty OR `liveIntentFpcs` set is not empty. If both `emailHashes` and `liveItentFpcs` are not empty, then the values are all considered as applied to the same, single data subject.\n\n\n- API references\n"
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewDataSubjectRequest'
        required: true
      responses:
        '202':
          description: 'Request has been accepted


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSubjectResponse'
        '401':
          description: 'Missing bearer token.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Missing bearer token.


                  '
        '403':
          description: 'Invalid or expired bearer token.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Invalid or expired bearer token.


                  '
        '500':
          description: 'Internal server error.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Internal server error.


                  '
  /data-subject-requests/test:
    description: "# Submit a test request\n\nThis endpoint lets you submit _RESTRICT_, _ERASURE_, and _ACCESS_ requests for testing.\nThe correctness of submitted requests will be verified and the authority of the `access_token` to submit the type of request will be checked, \nbut the requests will not be persisted. Submitted requests will have no effect on privacy related settings of the submitted hashes and will not lead to a report generation in case of `_ACCESS_` action. \nResponses will consist of randomly generated data. \nTo access any of the resources, get the `access_token` as described in the Authentication section, then call this endpoint by specifying an action. A request is considered valid if `emailhashes` set is not empty OR `liveIntentFpcs` set is not empty. If both `emailHashes` and `liveItentFpcs` are not empty, then the values are all considered as applied to the same, single data subject.\n\n\n- API references\n"
    post:
      tags:
      - API references
      description: "# Submit a test request\n\nThis endpoint lets you submit _RESTRICT_, _ERASURE_, and _ACCESS_ requests for testing.\nThe correctness of submitted requests will be verified and the authority of the `access_token` to submit the type of request will be checked, \nbut the requests will not be persisted. Submitted requests will have no effect on privacy related settings of the submitted hashes and will not lead to a report generation in case of `_ACCESS_` action. \nResponses will consist of randomly generated data. \nTo access any of the resources, get the `access_token` as described in the Authentication section, then call this endpoint by specifying an action. A request is considered valid if `emailhashes` set is not empty OR `liveIntentFpcs` set is not empty. If both `emailHashes` and `liveItentFpcs` are not empty, then the values are all considered as applied to the same, single data subject.\n\n\n- API references\n"
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewDataSubjectRequest'
        required: true
      responses:
        '202':
          description: 'Request has been accepted


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSubjectResponse'
        '401':
          description: 'Missing bearer token.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Missing bearer token.


                  '
        '403':
          description: 'Invalid or expired bearer token.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Invalid or expired bearer token.


                  '
        '500':
          description: 'Internal server error.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Internal server error.


                  '
  /data-subject-requests/{transactionId}:
    description: '# Get a customer data report


      For internal use only. This endpoint lets you download a report that you have already requested with the _ACCESS_ request by providing the _transactionId_.



      - API references

      '
    get:
      tags:
      - API references
      description: '# Get a customer data report


        For internal use only. This endpoint lets you download a report that you have already requested with the _ACCESS_ request by providing the _transactionId_.



        - API references

        '
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
        style: simple
      responses:
        '200':
          description: 'The report


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSubjectRequestWithReport'
        '401':
          description: 'Missing bearer token.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Missing bearer token.


                  '
        '403':
          description: 'Invalid or expired bearer token.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Invalid or expired bearer token.


                  '
        '404':
          description: 'The provided account cannot be used.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'The provided account cannot be used.


                  '
        '500':
          description: 'Internal server error.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Internal server error.


                  '
  /search/data-subject-requests:
    description: '# Search Data Subject Requests


      For internal use only. This endpoint lets you search for previously submitted Data Subject Requests.



      - API references

      '
    post:
      tags:
      - API references
      description: '# Search Data Subject Requests


        For internal use only. This endpoint lets you search for previously submitted Data Subject Requests.



        - API references

        '
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DataSubjectRequestSearch'
        required: true
      responses:
        '200':
          description: 'The search result


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSubjectRequestSearchResult'
        '401':
          description: 'Missing bearer token.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Missing bearer token.


                  '
        '403':
          description: 'Invalid or expired bearer token.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Invalid or expired bearer token.


                  '
        '404':
          description: 'The provided account cannot be used.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'The provided account cannot be used.


                  '
        '500':
          description: 'Internal server error.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationError'
                description: 'Internal server error.


                  '
components:
  schemas:
    DsrAction:
      type: string
      enum:
      - RESTRICT
      - ERASURE
      - ACCESS
    Global:
      type: object
      properties: {}
    DataSubjectRequestSearchResult:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/DataSubjectRequest'
      required:
      - results
    DataSubjectRequestSearch:
      type: object
      properties:
        emailHashes:
          type: array
          items:
            type: string
          uniqueItems: true
          minItems: 1
      required:
      - emailHashes
    Advertiser:
      type: object
      properties:
        id:
          type: integer
          format: int32
      required:
      - id
    DataSubjectResponse:
      type: object
      properties:
        transactionId:
          type: string
      required:
      - transactionId
    NewDataSubjectRequest:
      type: object
      properties:
        jurisdiction:
          type:
          - string
          - 'null'
          description: The scope of the request. Either `EU_PRIVACY`or `US_PRIVACY`
        scope:
          anyOf:
          - type: 'null'
          - $ref: '#/components/schemas/SimpleDsrScope'
        liveIntentFpcs:
          type: array
          items:
            type: string
          description: 'An array of the liveIntent first party cookies (DUIDs).

            If not set, this field defaults to the value of the default annotation.'
          default: []
          uniqueItems: true
        callback:
          type:
          - string
          - 'null'
          description: For internal use only. Callback url that should be invoked when ACCESS request processing has been completed.
        emailHashes:
          type: array
          items:
            type: string
          description: 'An array of email hashes.

            If not set, this field defaults to the value of the default annotation.'
          default: []
          uniqueItems: true
        submitter:
          type:
          - string
          - 'null'
          description: Optional freeform string that may be used to describe the request submission. This value is simply logged with the request and no additional processing is applied.
        action:
          $ref: '#/components/schemas/DsrAction'
      required:
      - action
    Publisher:
      type: object
      properties:
        id:
          type: integer
          format: int32
      required:
      - id
    DataSubjectRequest:
      type: object
      properties:
        jurisdiction:
          type:
          - string
          - 'null'
        scope:
          $ref: '#/components/schemas/DsrScope'
        liveIntentFpcs:
          type: array
          items:
            type: string
          uniqueItems: true
        callback:
          type:
          - string
          - 'null'
        status:
          type: string
        submitter:
          type:
          - string
          - 'null'
        userId:
          type:
          - integer
          - 'null'
          format: int64
        action:
          $ref: '#/components/schemas/DsrAction'
        transactionId:
          type: string
        emailHashes:
          type: array
          items:
            type: string
          uniqueItems: true
        createdAt:
          type: string
      required:
      - transactionId
      - action
      - scope
      - status
      - emailHashes
      - liveIntentFpcs
      - createdAt
    ApplicationError:
      type: object
      properties:
        httpStatus:
          type: integer
          format: int32
        message:
          type: string
        errorCode:
          type: string
      required:
      - httpStatus
      - message
      - errorCode
    DsrScope:
      oneOf:
      - type: object
        properties:
          Advertiser:
            $ref: '#/components/schemas/Advertiser'
        additionalProperties: false
        required:
        - Advertiser
      - type: object
        properties:
          Publisher:
            $ref: '#/components/schemas/Publisher'
        additionalProperties: false
        required:
        - Publisher
      - type: object
        properties:
          MediaGroup:
            $ref: '#/components/schemas/MediaGroup'
        additionalProperties: false
        required:
        - MediaGroup
      - type: object
        properties:
          PublisherMediaGroup:
            $ref: '#/components/schemas/PublisherMediaGroup'
        additionalProperties: false
        required:
        - PublisherMediaGroup
      - type: object
        properties:
          Global:
            $ref: '#/components/schemas/Global'
        additionalProperties: false
        required:
        - Global
    SimpleDsrScope:
      oneOf:
      - $ref: '#/components/schemas/Advertiser'
      - $ref: '#/components/schemas/Publisher'
      - $ref: '#/components/schemas/MediaGroup'
      - $ref: '#/components/schemas/Global'
      discriminator:
        propertyName: entity_type
        mapping:
          advertiser: '#/components/schemas/Advertiser'
          publisher: '#/components/schemas/Publisher'
          media_group: '#/components/schemas/MediaGroup'
          global: '#/components/schemas/Global'
    PublisherMediaGroup:
      type: object
      properties:
        pid:
          type: integer
          format: int32
        mid:
          type: integer
          format: int32
      required:
      - pid
      - mid
    DataSubjectRequestWithReport:
      type: object
      properties:
        jurisdiction:
          type:
          - string
          - 'null'
        scope:
          $ref: '#/components/schemas/DsrScope'
        downloadUrl:
          type:
          - string
          - 'null'
        callback:
          type:
          - string
          - 'null'
        status:
          type: string
        submitter:
          type:
          - string
          - 'null'
        userId:
          type:
          - integer
          - 'null'
          format: int64
        action:
          $ref: '#/components/schemas/DsrAction'
        transactionId:
          type: string
        emailHashes:
          type: array
          items:
            type: string
          uniqueItems: true
        createdAt:
          type: string
      required:
      - transactionId
      - action
      - scope
      - status
      - emailHashes
      - createdAt
    MediaGroup:
      type: object
      properties:
        id:
          type: integer
          format: int32
      required:
      - id
  securitySchemes:
    Bearer:
      type: apiKey
      description: 'To get an access token, contact your account team at LiveIntent. Then use the provided access token as a bearer token in the _Authorization_ header when sending request to any of the endpoints.


        '
      name: Authorization
      in: header