---
title: "List upstream API credentials — labels and API bindings only, no secret values"
method: GET
path: "/credentials"
tags: ["credentials"]
---

# List upstream API credentials — labels and API bindings only, no secret values

`GET /credentials`

List stored upstream API credentials. Values are never returned.

All authenticated callers (agent keys and human sessions) can see all credential
labels and IDs — this is intentional. Labels are not secrets, and agents need
to discover credential IDs in order to file targeted `grant` access requests
(e.g. "bind Work Gmail" vs "bind Personal Gmail").

Use `GET /credentials/{id}` to retrieve a specific credential by ID.
Filter with `?api_id=api.github.com` to list all credentials for a given API.

## Query parameters

- `api_id` string, nullable — Filter credentials by API ID (hostname)

## Response `200`

Successful Response

- CredentialOut[]
  - `id` string, required — Credential ID
  - `label` string, required — Human-readable label for this credential
  - `identity` string, nullable — Identity field (username, client ID, etc.) for basic auth or compound API key schemes
  - `api_id` string, nullable — API this credential is bound to
  - `auth_type` string, nullable — Auth type: bearer, basic, or apiKey
  - `created_at` number, nullable — Unix timestamp when created
  - `updated_at` number, nullable — Unix timestamp of last update
  - `account_id` string, nullable — OAuth broker account ID (if from OAuth broker)
  - `app_slug` string, nullable — OAuth app slug (if from OAuth broker)
  - `synced_at` number, nullable — Unix timestamp of last OAuth sync

## Other responses

- `422` — Validation Error

## Changes

- **2026-04-13** `76e8f6063728` — 7 breaking, 10 warning, 12 info
  - the response's body type changed from `object` to `array` for status `200`
  - media type `application/problem+json` was changed to a more general media type `application/json` for the response status `422`
  - the response property `detail` became optional for the status `422`
  - the `detail` response property's maxLength was unset from `4096` for the response status `422`
  - …25 more

[Change history](https://skmtc.dev/jentic/apis/jentic-control-plane-api/changes/credentials/get.md)

---

[API](https://skmtc.dev/jentic/apis/jentic-control-plane-api.md) · [All operations](https://skmtc.dev/jentic/apis/jentic-control-plane-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/jentic/jentic-control-plane-api/revisions/76e8f6063728/schema)
