{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Introduction to Sprinklr APIs","description":"Sprinklr offers robust, convenient, and simple RESTful Web service APIs to integrate data from Sprinklr to any external system.","keywords":["Sprinklr API","Sprinklr Developer Portal","OAuth 2.0","RESTful API","Social Media API","Customer Experience API","Unified-CXM","Social Listening API"]},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"introduction-to-sprinklr-apis","__idx":0},"children":["Introduction to Sprinklr APIs"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sprinklr API v3 — the unified, OpenAPI-native interface to the Sprinklr platform."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sprinklr APIs are RESTful web service APIs that let external systems read from and write to the data held in Sprinklr — cases, profiles, messages, campaigns, assets, listening topics, reporting, surveys, users, and platform configuration — so you can automate workflows and connect Sprinklr to the rest of your stack."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sprinklr v3 APIs provide a robust, RESTful interface for managing customer experience data and processes across the Sprinklr platform. Designed for enterprise-scale integration, these APIs enable developers to interact with customer, asset, and reporting data, automate workflows, and connect Sprinklr with external systems. The v3 APIs follow OpenAPI 3.0 standards, support OAuth 2.0 and offer consistent response formats for ease of development and integration."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"why-v3","__idx":1},"children":["Why v3"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":""},"children":[]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"API v2"},"children":["API v2"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"API v3"},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API v3"]}]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Base path"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api3.sprinklr.com/{env}/api/v2"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://api3.sprinklr.com/{env}/api/v3"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Specification"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Page-by-page reference on the developer portal"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["One OpenAPI 3.0.3 document"]}," covering every endpoint"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Response shape"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Varies by endpoint"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["One envelope"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["metadata"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Error shape"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Varies by endpoint"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["One ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Error"]}," object"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," (all required)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Error codes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Documented per page"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Four shared responses"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}," — reused by every operation"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Auth"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["OAuth 2.0 bearer token + API key"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Same credentials, declared formally as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["bearerAuth"]}," (HTTP bearer, JWT) + ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["apiKeyAuth"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Key"]}," header)"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Environments"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Documented in prose"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Declared as a server variable"]}," with an enumerated list of 17 values"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tooling"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Manual"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Generate clients, mocks, and tests directly from the specification"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Your existing credentials work."]}," v3 uses the same API key and OAuth access token as v1 and v2. Migrating an integration is primarily a matter of changing the path segment and adapting to the v3 envelope — not re-onboarding."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"the-v3-contract-at-a-glance","__idx":2},"children":["The v3 contract at a glance"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"base-url","__idx":3},"children":["Base URL"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"https://api3.sprinklr.com/{env}/api/v3\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{env}"]}," is a server variable. The specification declares these values, with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod"]}," as the default:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod0"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod2"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod3"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod4"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod5"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod6"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod8"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod11"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod12"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod15"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod16"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod17"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod18"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod19"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod21"]}," · ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["prod25"]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["An API key and token are environment-specific."]}," A key generated for one environment cannot be used in another."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["To find your environment:"]}," log in to the Sprinklr UI, right-click anywhere on the homepage, select ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["View Page Source"]},", and search (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Ctrl+F"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Cmd+F"]},") for ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sentry-environment"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the production environment (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["app.sprinklr.com"]},"), omit the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{env}"]}," segment from the URL entirely."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"authentication","__idx":4},"children":["Authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Standard headers for a v3 call:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Key"},"children":["Key"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Authorization"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["******"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Credential used by the API to authenticate a user with the server."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Key"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["api-key"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["API key that authenticates the application with the server."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content-Type"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["application/json"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The v3 APIs send and accept JSON."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Accept"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["application/json"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Determines the acceptable response type from the server."]}]}]}]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Omitting either credential returns ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401 Unauthorized"]}]}," — the developer portal describes this as the ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"401 unauthorized (developer inactive)\""]}," error."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"response-envelope","__idx":5},"children":["Response envelope"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Successful v3 responses that use the shared ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["APIResponse"]}," schema return:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Notes"},"children":["Notes"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["object"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The payload. Its shape depends on the operation."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["array of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Error"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Empty on success."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["metadata"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ResponseMetadata"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Declared in the specification with ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["no properties"]},". Treat as reserved."]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"data\": { },\n  \"errors\": []\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"error-object","__idx":6},"children":["Error object"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Error"]}," — all three fields are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["required"]},":"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description (from the specification)"},"children":["Description (from the specification)"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["24-character hex ObjectId"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["integer"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["No description in the specification."]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["string"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Dotted error key (for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["account.not.found"]},")"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The dotted-key convention makes v3 errors machine-routable: branch on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," rather than parsing prose."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"shared-status-codes","__idx":7},"children":["Shared status codes"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Four reusable responses are defined once and referenced by operations across the whole specification:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Code"},"children":["Code"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Response name"},"children":["Response name"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BadRequest"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Bad request"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Unauthorized"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Missing or invalid authentication"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Forbidden"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Insufficient permissions"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["NotFound"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Resource not found"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All four return an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ErrorResponse"]}," under ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["application/json"]},"."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"getting-started","__idx":8},"children":["Getting started"]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developer Note."]}," ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["\"Starting with the 26.1 release, it is recommended to use the Developer Tools built into the Sprinklr platform to create Developer Apps and to generate API Key and Secret.\""]}," — Sprinklr Developer Portal, ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Getting Started"]},"."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Three steps to your first call: ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["generate an API key → generate an access token → make the call"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1--create-a-developer-app-and-generate-an-api-key-recommended-path","__idx":9},"children":["Step 1 — Create a Developer App and generate an API key (recommended path)"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Use ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developer Tools"]}," inside the Sprinklr platform. It provides a centralized, self-service way to create and manage Developer Applications, API keys, and tokens without leaving Sprinklr."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Prerequisite permission:"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Configure Developer Apps"]},"."]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Go to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["All Settings"]}," from the Sprinklr Launchpad."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["Classic All Settings UI:"]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Manage Customer → Developer Apps"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["New All Settings UI:"]}," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["APIs and Integrations → Developer Apps"]},"."]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+ Create App"]}," and complete the form:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Required"},"children":["Required"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["App Name"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Name your application for the use case it serves. You can also tie the name to the environment — for example Sandbox or Production."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["App Description"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The use case the application solves. Helps identify the objective when monitoring usage later."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Callback URL"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}," that tells the authorization server where to send the user back after successful account authorization. Must be a valid, publicly accessible URI, or the authorization call returns an error."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Enable Mutual TLS Authentication"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Optional toggle"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sprinklr APIs support mTLS as an additional layer of security, with client and server authenticating each other using their respective TLS certificates."]}]}]}]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Save, then open ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["⋮ → Manage API Key/Token"]}," and click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["+ API Key"]},". Copy the key and secret from the pop-up — ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["the secret is masked afterwards"]},"."]}]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Important."]}," Developer apps, API keys, secrets, and access tokens created at ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["dev.sprinklr.com are not synchronized with, or reflected in, the Developer Tools inside the Sprinklr platform"]},". Pick one path per integration."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2--generate-an-access-token","__idx":10},"children":["Step 2 — Generate an access token"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Prerequisite:"]}," you must be assigned the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Generate Token"]}," permission within the Sprinklr platform. This ensures only authorized users can generate tokens and access Sprinklr APIs."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["In-platform (Developer Tools):"]}," click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Generate Token"]},", authenticate with your credentials or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Continue with SSO"]},", then complete two-factor authentication with the code sent to your registered email. The access token, refresh token, and expiry date appear once — ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["save them, they cannot be recovered"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Via OAuth 2.0 authorization code grant"]}," — a two-step flow:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"# Step 1 — run in a browser to obtain a code\nhttps://api3.sprinklr.com/{env}/oauth/authorize?client_id={apikey}&response_type=code&redirect_uri={redirect_uri}\n\n# Step 2 — POST to exchange the code for a token\nhttps://api3.sprinklr.com/{env}/oauth/token?client_id={apikey}&client_secret={secret}&redirect_uri={redirect_uri}&grant_type=authorization_code&code={code}\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content-Type: application/x-www-form-urlencoded"]},". Parameters may be sent either as query parameters ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["or"]}," as body parameters — both methods are supported."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Required"},"children":["Required"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_id"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{apikey}"]}," — your API key"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["client_secret"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{secret}"]}," — your client secret"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["redirect_uri"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The exact Register Callback URL configured on your app"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["grant_type"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["authorization_code"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The authorization code you received"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Response:"]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Item"},"children":["Item"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["access_token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Credential used by an application to access an API"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refresh_token"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use to receive a new access token"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["token_type"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Bearer"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expires_in"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Token expiry duration in seconds"]}]}]}]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"access_token\": \"[token]\",\n  \"refresh_token\": \"[token]\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 2591999\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Critical constraints:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["The authorization code is valid for 10 minutes."]}," If you do not complete the token exchange within 10 minutes, repeat the access process."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["expires_in"]}," is 2591999 seconds"]}," (just under 30 days) in the documented response."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Only one token can exist per API key."]}," If you run multiple stateless instances, generate a separate API key and token pair for each. Generating a new token also updates the refresh token — if application B generates a token using application A's API key, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["application A's token and refresh token are invalidated"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Tokens remain valid as long as the authenticated user's Sprinklr password is valid. If the password changes, refresh the token to receive a new ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["access_token"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If you send the key and secret as query parameters and receive a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["411 Length-Required"]}]}," error, add a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Content-Length: 0"]}," header."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Use a service account."]}," Create a service user with an email group in the Sprinklr platform and grant it the necessary access, so the token is not tied to an individual who may leave the organization."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Ensure the right ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["workspaces"]}," are granted access while authorizing — you can only fetch data from workspaces the token has been given access to."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sprinklr supports ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth 2.0 Authorization Code Grant, Client Credentials Grant, and JWT certificate-based token generation"]},". Code grant is a three-legged flow among the resource server, the resource owner, and the client; client credentials requires setting up a default user for generating the access token."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3--make-your-first-v3-call","__idx":11},"children":["Step 3 — Make your first v3 call"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The simplest way to confirm your credentials work is the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["current user"]}," endpoint (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["MeApiV3_getCurrentUser"]},", tag ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["User V3"]},"):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X GET \\\n  'https://api3.sprinklr.com/{env}/api/v3/me' \\\n  -H 'Authorization: ******' \\\n  -H 'Key: {apikey}' \\\n  -H 'Accept: application/json'\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}," confirms your key, token, and environment all line up. A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401"]}," means one of the three is wrong."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"em","attributes":{},"children":["(Illustrative example. Credentials are placeholders — replace ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["******"]}," with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Bearer {access_token}"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{apikey}"]}," with your API key, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{env}"]}," with your environment identifier. No call was executed to produce this guide.)"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"governance--what-your-token-can-actually-do","__idx":12},"children":["Governance — what your token can actually do"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Sprinklr API governance model is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["directly dependent on the Sprinklr user's role and permission governance model"]},". An API key is created for a user, so all permissions and roles tied to that user apply equally to the associated API key."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["four types of users"]}," in Sprinklr:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Partner Admin"]}," (highest level of access)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Partner User"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Admin"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client User"]}," (lowest level of access)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Key rules:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Within a client environment, ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["client-level roles and permissions override partner-level"]}," ones. If a user is associated with both a Partner Role and a Client Role, the Client Role access supersedes the Partner Role permissions."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["You cannot make an API call — even with valid Sprinklr login credentials — if you do not hold the required role or permission."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Role-based permissions provide basic access, but some content or assets require ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["additional permissions"]},". Account permission is required to view content from, engage with, or publish from specific accounts."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The access token automatically carries the roles and permissions of the user who generated it."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Worked example"]},": user PA1 has permission to see SAM asset ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["A123"]}," but not ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["A567"]},". When PA1's API key ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["k123"]}," is used to access SAM assets, the API returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["A123"]}," and not ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["A567"]},". Similarly, if a user is granted access only to client Y1 and attempts to read data from client Y2's SAM, the call returns ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["401 Unauthorized"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This is why v3 declares a distinct ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403 Forbidden — Insufficient permissions"]}," alongside ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401 Unauthorized — Missing or invalid authentication"]},": ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401"]}," means ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["who are you"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]}," means ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["you are known but not entitled"]},"."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sprinklr customers with Enterprise licenses are entitled to make use of Sprinklr APIs to export and update data within Sprinklr."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"migrating-from-v2-to-v3","__idx":13},"children":["Migrating from v2 to v3"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Change the path segment"]}," from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/v2/"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["/api/v3/"]},". The host and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{env}"]}," convention are unchanged."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Keep your credentials."]}," The same API key and OAuth access token authenticate v3 calls."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Adapt to the envelope."]}," Read the payload from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["data"]}," and check ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]}," for the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},"/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]},"/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," triple. Branch on the dotted ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," key."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Re-check parameter locations."]}," Several v3 endpoints moved identifiers that were v2 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["path"]}," parameters into ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["query"]}," parameters. Verify each endpoint against its v3 reference page rather than assuming a mechanical version swap."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Re-test permissions."]}," v3 operations declare ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]}," explicitly; a call that silently returned empty data in v2 may now return ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Regenerate the specification-driven parts of your client."]}," Because v3 ships as a single OpenAPI 3.0.3 document, you can regenerate models and clients instead of hand-writing them."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Read the per-API migration section."]}," Each v3 developer guide on this portal carries a ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["V2 → V3 migration"]}," section with an endpoint map and a field map for that API."]}]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["v2 and v1 remain documented on this portal."]}," v3 is the recommended target for new integrations."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"best-practices","__idx":14},"children":["Best practices"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Register with a service account email"]},", not an individual's, so credentials survive staff changes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["One API key and token pair per running instance"]}," — a second token generated against the same key invalidates the first."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Never commit credentials."]}," Keys, secrets, access tokens, and refresh tokens do not belong in source control, Postman collections, support tickets, or documentation."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Match the token to the environment."]}," Keys and tokens are environment-specific and will not work across environments."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Grant the narrowest workspace access"]}," the integration needs at authorization time."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Handle ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401"]}," by refreshing"]},", not by retrying the same token in a loop."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Read ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]}," even on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]}]}," — the envelope carries an ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["errors"]}," array independently of the HTTP status."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Do not assume undeclared behaviour."]}," If rate limits, pagination defaults, or retry semantics are not stated on the endpoint's reference page, confirm them before depending on them."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Enable mTLS"]}," on the Developer App when your security posture requires mutual certificate authentication."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Rotate deliberately."]}," API keys and secrets do not expire and remain static; they can only be deleted or disabled from the Sprinklr developer account."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"where-to-go-next","__idx":15},"children":["Where to go next"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"I want to…"},"children":["I want to…"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Go to"},"children":["Go to"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create credentials in-platform"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developer Tools in Sprinklr"]}," — ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://www.sprinklr.com/help/articles/developer-tools/developer-tools-in-sprinklr/692e8b39f0afa271d18a5929"},"children":["Help Center"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Walk the end-to-end first-call flow"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://dev.sprinklr.com/getting-started"},"children":["Getting Started"]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Understand the OAuth flows in depth"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://dev.sprinklr.com/authorize"},"children":["Authorize"]}]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://dev.sprinklr.com/oauth-2-0-for-customers"},"children":["OAuth 2.0 for Customers"]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Receive real-time events instead of polling"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://dev.sprinklr.com/sprinklr-webhooks"},"children":["Sprinklr Webhooks"]}]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Track endpoint changes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Changelog"]}," on the developer portal"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Browse the previous generation"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://dev.sprinklr.com/api2-0"},"children":["API 2.0"]}]}]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"support","__idx":16},"children":["Support"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Enablement:"]}," some APIs are gated and must be switched on for your environment. Contact your Success Manager or Sprinklr Support."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Permissions:"]}," the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Generate Token"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Configure Developer Apps"]}," permissions are granted from within the Sprinklr platform by an administrator."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Registration email not arriving:"]}," check your Spam folder. If it is not there, ask your IT team whether a rule rejects mail sent via AWS SES, and whitelist AWS SES sending on behalf of the Sprinklr API address."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]}]},"headings":[{"value":"Introduction to Sprinklr APIs","id":"introduction-to-sprinklr-apis","depth":1},{"value":"Why v3","id":"why-v3","depth":2},{"value":"The v3 contract at a glance","id":"the-v3-contract-at-a-glance","depth":2},{"value":"Base URL","id":"base-url","depth":3},{"value":"Authentication","id":"authentication","depth":3},{"value":"Response envelope","id":"response-envelope","depth":3},{"value":"Error object","id":"error-object","depth":3},{"value":"Shared status codes","id":"shared-status-codes","depth":3},{"value":"Getting started","id":"getting-started","depth":2},{"value":"Step 1 — Create a Developer App and generate an API key (recommended path)","id":"step-1--create-a-developer-app-and-generate-an-api-key-recommended-path","depth":3},{"value":"Step 2 — Generate an access token","id":"step-2--generate-an-access-token","depth":3},{"value":"Step 3 — Make your first v3 call","id":"step-3--make-your-first-v3-call","depth":3},{"value":"Governance — what your token can actually do","id":"governance--what-your-token-can-actually-do","depth":2},{"value":"Migrating from v2 to v3","id":"migrating-from-v2-to-v3","depth":2},{"value":"Best practices","id":"best-practices","depth":2},{"value":"Where to go next","id":"where-to-go-next","depth":2},{"value":"Support","id":"support","depth":2}],"frontmatter":{"seo":{"title":"Introduction to Sprinklr APIs"}},"lastModified":"2026-09-03T21:02:24.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/introduction","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}