CI HUBCI HUB SDK
AuthenticationDAM Auth

Providers

GET /auth/providers, list DAM providers available to the authenticated user.

GET
/auth/providers

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
AuthorizationBearer <token>

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()

Next

On this page