---
title: "List Credentials"
method: GET
path: "/workflow/credentials"
tags: ["workflow-credentials"]
---

# List Credentials

`GET /workflow/credentials`

## Request

- Base URL: `https://api.anyreach.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.anyreach.ai/workflow/credentials`
- Auth: HTTP bearer

List the organization's credentials (metadata only — never values).

## Query parameters

- `name` string, nullable: Filter credentials by name
- `limit` integer: Number of items per page
- `cursor` string, nullable: Cursor for pagination

## Headers

- `x-anyreach-org` string, nullable: Organization ID for user PATs (pat_ prefix tokens)

## Response `200`

Successful Response

- PaginatedCredentialResponse
  - `data` CredentialSchema[], required
    - `id` string, uuid, required
    - `organization_id` string, required
    - `name` string, required
    - `description` string, nullable
    - `refresher_workflow_id` string, uuid, nullable
    - `refresh_input` object
    - `refresh_policy` union
      - ManualRefreshPolicy: Refreshed only when someone asks (button or API).
        - `type` 'manual'
      - CronRefreshPolicy: Refreshed on a fixed schedule, whatever the credential's expiry says. The cron expression and timezone are validated here, during request parsing, so an invalid policy is a 422 before anything is written. Validating later (when the Temporal schedule is built) would leave the bad policy persisted and the previous working schedule already gone.
        - `type` 'cron'
        - `cron_expression` string, required
        - `timezone` string
      - BeforeExpiryRefreshPolicy: Refreshed ahead of expiry, rescheduled after every successful refresh. `fallback_interval_seconds` covers credentials whose refresher does not report an expiry — without it there would be nothing to schedule against.
        - `type` 'before_expiry'
        - `seconds_before` integer
        - `fallback_interval_seconds` integer
    - `has_value` boolean
    - `value_keys` string[]
    - `expires_at` string, date-time, nullable
    - `last_refresh_status` 'success' | 'failed' | 'in_progress', nullable
    - `last_refresh_at` string, date-time, nullable
    - `last_refresh_error` string, nullable
    - `last_refresh_execution_id` string, uuid, nullable
    - `refresh_locked_until` string, date-time, nullable
    - `is_refreshing` boolean
    - `temporal_schedule_id` string, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `created_by` string, nullable
    - `modified_by` string, nullable
    - `secrets` CredentialSecretSchema[]
      - `key` string, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
  - `pagination` RoutesWorkflowModelsCommonPaginationMeta, required
    - `limit` integer, required
    - `next_cursor` string, nullable
    - `total` integer, nullable
    - `offset` integer, nullable

## Other responses

- `404`: Not found
- `422`: Validation Error

---

[API](https://skmtc.dev/anyreach/apis/anyreach-api.md) - [All operations](https://skmtc.dev/anyreach/apis/anyreach-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anyreach/apis/anyreach-api/revisions/2eddf40c8c93?raw)
