Usercentrics App CMP SDK

Mobile and TV consent management SDK with native iOS (11+), tvOS (11+), Android (API 16+), AndroidTV, Unity (2018.4+), Flutter (1.20+), and React Native (0.65+) support. Comprises UsercentricsCore (backend logic) and UsercentricsUI (prebuilt banner). Supports GDPR, CCPA, LGPD, and IAB TCF 2.0.

Usercentrics App CMP SDK is one of 4 APIs that Usercentrics publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include SDK, Mobile, iOS, Android, and Flutter. The published artifact set on APIs.io includes API documentation, an API reference, SDKs, and an OpenAPI specification.

OpenAPI Specification

usercentrics-app-cmp-sdk-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Usercentrics App CMP SDK API
  description: |
    Public method surface of the Usercentrics App CMP SDK across iOS, tvOS, Android, AndroidTV,
    Unity, Flutter, and React Native. The SDK is delivered as a client-side library; this OpenAPI
    document models the SDK call surface as logical HTTP operations so that lifecycle, capability,
    and Naftiko tooling can reason about it uniformly with other Usercentrics surfaces.

    Reference: https://docs.usercentrics.com/cmp_in_app_sdk/latest/api/api_documentation/
  version: "1.0.0"
  contact:
    name: Usercentrics Documentation
    url: https://docs.usercentrics.com/cmp_in_app_sdk/latest/
servers:
  - url: sdk://usercentrics.app
    description: In-process App CMP SDK (logical URL).
tags:
  - name: Lifecycle
  - name: Consent
  - name: TCF
  - name: CCPA
  - name: Controller
paths:
  /configure:
    post:
      tags: [Lifecycle]
      summary: Configure The SDK
      description: Initialize the App CMP SDK with a Settings ID, runtime options, and ruleset.
      operationId: configureSdk
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settingsId: { type: string }
                ruleSetId: { type: string }
                defaultLanguage: { type: string }
                version: { type: string }
                timeoutMillis: { type: integer }
      responses:
        '200': { description: SDK configured. }
  /is-ready:
    get:
      tags: [Lifecycle]
      summary: Check Readiness
      description: Returns once the SDK is fully initialized and ready to read or collect consent.
      operationId: isReady
      responses:
        '200': { description: SDK ready. }
  /cmp-data:
    get:
      tags: [Consent]
      summary: Get CMP Data
      description: Retrieve the active CMP configuration including service list, categories, and copy.
      operationId: getCmpData
      responses:
        '200': { description: Active CMP configuration returned. }
  /consents:
    get:
      tags: [Consent]
      summary: Get Consents
      description: Return the current per-service consent state stored on device.
      operationId: getConsents
      responses:
        '200': { description: Per-service consent state returned. }
  /tcf-data:
    get:
      tags: [TCF]
      summary: Get TCF Data
      description: Return the IAB TCF 2.3 string and per-purpose/per-vendor consent state.
      operationId: getTcfData
      responses:
        '200': { description: TCF data returned. }
  /ccpa-data:
    get:
      tags: [CCPA]
      summary: Get CCPA Data
      description: Return the CCPA Do-Not-Sell signal for the current user.
      operationId: getCcpaData
      responses:
        '200': { description: CCPA state returned. }
  /controller-id:
    get:
      tags: [Controller]
      summary: Get Controller ID
      description: Return the Usercentrics controller ID identifying the current user's consent record.
      operationId: getControllerId
      responses:
        '200': { description: Controller ID returned. }
  /restore-user-session:
    post:
      tags: [Lifecycle]
      summary: Restore User Session
      description: Restore an existing consent session from a controller ID across devices.
      operationId: restoreUserSession
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                controllerId: { type: string }
      responses:
        '200': { description: Session restored. }
  /reset:
    post:
      tags: [Lifecycle]
      summary: Reset Consent State
      description: Clear all stored consent state for the current user.
      operationId: resetUser
      responses:
        '200': { description: User reset. }