Providers
GET /auth/providers, list DAM providers available to the authenticated user.
Returns the list of DAM providers available to the authenticated CI HUB user. The
partner platform uses the result to render a connection picker and to pass each
provider's id on subsequent login and content calls.
This endpoint is intentionally lenient on authentication so the partner platform
can render its connection picker before any DAM session exists. A missing or
invalid Authorization header returns 200 with a single-entry list containing
only the CI HUB platform connection. When the list contains only cihub, refresh
the access token or start a new exchange.
The provider list is stable for the lifetime of one access token. Cache it for that long and refetch after a new exchange.
Authorization
CIHubAuth The CI-HUB JWT token obtained through authentication. Needs to be sent in the Authorization header.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/auth/providers"[
{
"id": "string",
"name": "string",
"version": "string",
"logo": {
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"width": 249,
"height": 77,
"backgroundColor": "#FFFFFF"
},
"glyph": {
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...",
"width": 249,
"height": 77,
"backgroundColor": "#FFFFFF"
},
"capabilities": {
"category": "string",
"assetUploadLimitInMB": 0,
"directAccessHelper": "string",
"assetHashAlgorithm": "Md5",
"assetSearch": {
"help": {
"en": "Enter a search term and matching files will be displayed. Click on the i icon for help with advanced search options.",
"de": "Geben Sie einen Suchbegriff ein und dazu passende Dateien werden angezeigt. Für Hilfe zu erweiterten Suchoptionen auf das i Symbol klicken."
},
"supportsParentId": true,
"alwaysSearchInFolder": true,
"similarSearch": true,
"externalUrl": "string",
"autoSearchQuery": "string",
"canParallelSearch": true,
"supportsParallelRelink": true,
"parallelRelinkMax": 0,
"searchByHash": "string"
},
"description": {
"en": "MediaGraph is a multi-user DAM system that offers permission-controlled access to many media types.",
"de": "MediaGraph ist ein Multi-User-DAM-System, das einen berechtigungsgesteuerten Zugriff auf viele Medientypen bietet."
},
"directAssetUpload": true,
"uploadWithRelinkOptionEnabled": true,
"requestHeaders": {
"X-Custom-Header": "Custom Value"
},
"assetComment": true,
"disableDuplicateCheck": true,
"restrictSameNameUpdatesOnly": true,
"tasking": true,
"maxMultipleAssetVersions": 0,
"inddAssetUploadAsPackage": true,
"alwaysRefreshFolders": true,
"supportsLocalContentView": true,
"supportsBrandHub": true
},
"loginUrl": "string",
"isDefault": true,
"isOptional": true,
"isLicensed": true,
"isUnsupported": true,
"unsupportedAdapterTitle": "Ask your DAM Vendor",
"unsupportedAdapterDescription": "This Solution is not supported today, please ask the DAM Vendor for a status.",
"isDisabledForHost": true
}
]{
"message": "Error",
"details": "POST /api/v1/auth/exchangeToken failed: SDK authentication token is invalid",
"errorCode": "cihub-sdk-token-invalid",
"error": {
"code": "integration-forbidden",
"source": "cihub",
"status": 400,
"message": "Access denied by the integration",
"details": "403 Forbidden - insufficient_permissions",
"provider": "bynder"
}
}Filtering
The response lists every provider configured for the host; the partner platform decides which to render. Hide entries where isDisabledForHost is true. For entries where isUnsupported is true, show unsupportedAdapterTitle / unsupportedAdapterDescription and block new logins.
Example
import { CiHubAccessClient, TokenManager } from '@ci-hub/access-sdk'
const client = new CiHubAccessClient({ baseUrl: 'https://stage.ci-hub.com/api/v1' })
const tokens = new TokenManager(client) // seeded during authentication
const providers = await tokens.withCihubAuth((accessToken) => client.listProviders(accessToken))curl "https://stage.ci-hub.com/api/v1/auth/providers" \
-H "Authorization: Bearer $CI_HUB_ACCESS_TOKEN"const response = await fetch(
'https://stage.ci-hub.com/api/v1/auth/providers',
{ headers: { Authorization: `Bearer ${ciHubAccessToken}` } }
)
if (!response.ok) {
const { error } = await response.json()
throw new Error(`${error.code}: ${error.message}`)
}
const providers = await response.json()