POST
/v2/mgmt/thirdparty/apps/loadAuthorization
Descope Project ID and Management Key AuthorizationBearer <token>
Project ID:Management Key as bearer token.
In: header
Request Body
application/json
page?integer
Format
int32limit?integer
Format
int32Loads all third party applications in the structured scope-claim mapping model, using a valid management key. Legacy attributesScopes are converted to scopeClaimMapping and returned empty.
curl -X POST "https://api.descope.com/v2/mgmt/thirdparty/apps/load" \ -H "Content-Type: application/json" \ -d '{}'{ "apps": [ { "id": "string", "name": "string", "description": "string", "clientId": "string", "logo": "string", "loginPageUrl": "string", "approvedCallbackUrls": [ "string" ], "permissionsScopes": [ { "name": "string", "description": "string", "optional": true, "values": [ "string" ] } ], "dynamic": true, "status": "string", "logoUrl": "string", "jwtBearerSettings": { "issuers": { "property1": { "jwksUri": "string", "signAlgorithm": "string", "userInfoUri": "string", "externalIdFieldName": "string", "jitDisabled": true, "attributeMapping": { "name": "string", "email": "string", "group": "string", "givenName": "string", "middleName": "string", "familyName": "string", "picture": "string", "customAttributes": { "property1": "string", "property2": "string" } } }, "property2": { "jwksUri": "string", "signAlgorithm": "string", "userInfoUri": "string", "externalIdFieldName": "string", "jitDisabled": true, "attributeMapping": { "name": "string", "email": "string", "group": "string", "givenName": "string", "middleName": "string", "familyName": "string", "picture": "string", "customAttributes": { "property1": "string", "property2": "string" } } } }, "jwtBearerGrantTypeAudienceToUse": "string", "jwtBearerGrantTypeScopeToUse": "string", "jwtBearerGrantTypeCustomClaimsToUse": "string" }, "sessionSettings": { "enabled": true, "refreshTokenExpiration": 0, "refreshTokenExpirationUnit": "string", "sessionTokenExpiration": 0, "sessionTokenExpirationUnit": "string", "userTemplateId": "string", "keyTemplateId": "string", "keySessionTokenExpiration": 0, "keySessionTokenExpirationUnit": "string" }, "nonConfidentialClient": true, "audienceWhitelist": [ "string" ], "forceAddAllAuthorizationInfo": true, "connectionsScopes": [ { "name": "string", "description": "string", "optional": true, "values": [ "string" ] } ], "defaultAudience": "string", "skipConsentScreen": true, "useResources": true, "customAttributes": { "attribute-key": "attribute-value" }, "cibaSettings": { "enabled": true, "expirationTime": 0, "expirationTimeUnit": "string", "emailServiceProvider": "string", "emailServiceProviderFallback": "string", "emailServiceTemplateId": "string", "loginPageURL": "string" }, "jarSettings": { "enforce": true, "publicKey": "string", "maxLifetimeSeconds": 0, "fapi": true }, "allowedTenants": [ "string" ], "clientType": "string", "forcePkce": true, "allowPartialScopes": true, "scopeClaimMapping": [ { "scope": "string", "claims": { "property1": "string", "property2": "string" }, "description": "string", "useProjectMapping": true, "mandatory": true, "claimTargets": { "property1": { "tokens": [ "string" ] }, "property2": { "tokens": [ "string" ] } } } ], "createdTime": 0, "forceDpop": true, "rarSettings": { "excludeInAccessToken": true, "schemas": [ { "type": "string", "description": "string", "schema": {} } ] }, "idJagTargetClients": { "property1": { "targetClientId": "string" }, "property2": { "targetClientId": "string" } } } ], "total": 0}export interface Response {apps?: ThirdPartyApplicationV2[]total?: number}export interface ThirdPartyApplicationV2 {id?: stringname?: stringdescription?: stringclientId?: stringlogo?: stringloginPageUrl?: stringapprovedCallbackUrls?: string[]permissionsScopes?: {name?: stringdescription?: stringoptional?: booleanvalues?: string[]}[]dynamic?: booleanstatus?: stringlogoUrl?: stringjwtBearerSettings?: {issuers?: {[k: string]: IssuerSettings}jwtBearerGrantTypeAudienceToUse?: stringjwtBearerGrantTypeScopeToUse?: stringjwtBearerGrantTypeCustomClaimsToUse?: string}sessionSettings?: {enabled?: booleanrefreshTokenExpiration?: numberrefreshTokenExpirationUnit?: stringsessionTokenExpiration?: numbersessionTokenExpirationUnit?: stringuserTemplateId?: stringkeyTemplateId?: stringkeySessionTokenExpiration?: numberkeySessionTokenExpirationUnit?: string}nonConfidentialClient?: booleanaudienceWhitelist?: string[]forceAddAllAuthorizationInfo?: booleanconnectionsScopes?: {name?: stringdescription?: stringoptional?: booleanvalues?: string[]}[]defaultAudience?: stringskipConsentScreen?: booleanuseResources?: boolean/** * Custom attributes as key-value pairs. Keys must be strings; values can be strings, numbers, booleans, or arrays. */customAttributes?: {[k: string]: string}cibaSettings?: ThirdPartyApplicationCIBASettings/** * JAR (JWT-Secured Authorization Request, RFC 9101) settings for Third Party Applications */jarSettings?: {enforce?: booleanpublicKey?: stringmaxLifetimeSeconds?: numberfapi?: boolean}allowedTenants?: string[]clientType?: stringforcePkce?: booleanallowPartialScopes?: booleanscopeClaimMapping?: {scope?: string/** * claims is consulted only when useProjectMapping is false. When useProjectMapping is true, * the project-wide mapping's entry for `scope` provides the claims and this field is ignored. */claims?: {[k: string]: string}description?: string/** * useProjectMapping, when true, reuses the project-wide ScopeClaimMapping's entry for this * scope (the app's `claims` field is ignored). Default false uses the app's own `claims`. */useProjectMapping?: boolean/** * mandatory, when true, means the scope is always granted and cannot be deselected by the * user on the consent screen. Mirrors the inverse of the legacy ApplicationScope.optional. */mandatory?: boolean/** * claimTargets narrows which tokens a claim is written to, keyed by the claim name. * Consulted only when useProjectMapping is false — when it is true the project-wide * entry supplies both the claims and their targets. Empty means every token. */claimTargets?: {/** * ClaimTokenTargets lists the tokens a single mapped claim is written to. An empty * list means every token, which is the default for claims with no entry. * * Values are plain strings rather than an enum because this field is served over two * JSON surfaces with different enum encodings: the management API marshals via protojson * (enum names) while the console API marshals the proto with encoding/json (enum numbers). * A string renders identically on both. Unknown values are dropped on write, so a claim * with no valid target falls back to the "every token" default. * * Wrapper message because proto3 map values cannot be `repeated`. */[k: string]: {tokens?: string[]}}}[]/** * createdTime is epoch seconds (int32 so it serializes as a JSON number). */createdTime?: numberforceDpop?: booleanrarSettings?: ThirdPartyApplicationRARSettings/** * The client id the target authorization server knows this app by, per ID-JAG target resource URI. */idJagTargetClients?: {[k: string]: IdJagTargetClient}}export interface IssuerSettings {jwksUri?: stringsignAlgorithm?: stringuserInfoUri?: stringexternalIdFieldName?: string/** * Cross-App Access JIT provisioning, per trusted issuer. jitDisabled: only sign in an already- * provisioned user, do not create. attributeMapping maps assertion claims to user fields. Group->role / * FGA / default-role / priority mapping is read from the tenant's shared SSO config, NOT per issuer. */jitDisabled?: booleanattributeMapping?: {name?: stringemail?: stringgroup?: stringgivenName?: stringmiddleName?: stringfamilyName?: stringpicture?: stringcustomAttributes?: {[k: string]: string}}}export interface ThirdPartyApplicationCIBASettings {enabled?: booleanexpirationTime?: numberexpirationTimeUnit?: stringemailServiceProvider?: stringemailServiceProviderFallback?: stringemailServiceTemplateId?: stringloginPageURL?: string}export interface ThirdPartyApplicationRARSettings {excludeInAccessToken?: booleanschemas?: RARTypeSchema[]}export interface RARTypeSchema {type?: stringdescription?: stringschema?: {}}/** * A struct rather than a bare client id so further per-pair attributes are additive. */export interface IdJagTargetClient {targetClientId?: string} Was this helpful?
Create third party application (v2) POST
Create a new third party application using the structured scope-claim mapping model, using a valid management key. The legacy attributesScopes field is ignored.
Load third party application by ID (v2) GET
Loads a third party application by id in the structured scope-claim mapping model, using a valid management key. Legacy attributesScopes are converted to scopeClaimMapping and returned empty.