> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapengine.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List Credentials

> List the caller's credential records. Metadata only — no secret material is ever returned.

## Overview

Returns every credential record owned by the caller. Only metadata is returned (name, vault integration ID, vault path, field map, allowed domains, timestamps) — the underlying secret never leaves your vault and is not included in the response. Credential IDs returned here are what you pass to the `authenticate` task action.

## Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.scrapengine.io/api/v1/credentials" \
    -H "Authorization: Bearer $SCRAPENGINE_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.scrapengine.io/api/v1/credentials", {
    headers: {
      "Authorization": `Bearer ${process.env.SCRAPENGINE_API_KEY}`,
    },
  });
  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.scrapengine.io/api/v1/credentials",
      headers={"Authorization": f"Bearer {SCRAPENGINE_API_KEY}"},
  )
  data = response.json()
  ```
</CodeGroup>

## Response

### Success Response (200)

Returns an array of credential records.

<ResponseField name="id" type="string">
  Credential ID (UUID).
</ResponseField>

<ResponseField name="name" type="string">
  Human-readable name.
</ResponseField>

<ResponseField name="vaultIntegrationId" type="string">
  Vault integration this credential reads from.
</ResponseField>

<ResponseField name="vaultPath" type="string">
  Path inside the vault.
</ResponseField>

<ResponseField name="fieldMap" type="object">
  Maps vault field names to `username` / `password` / optional `totp`.
</ResponseField>

<ResponseField name="allowedDomains" type="string[]">
  Hostnames this credential may be used on.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp.
</ResponseField>

<ResponseField name="updatedAt" type="string">
  ISO 8601 timestamp.
</ResponseField>

**Example Response:**

```json theme={null}
[
  {
    "id": "2b5aa4c8-b9e6-4e58-9c80-1d4bfd0a3f01",
    "name": "Alice @ app.example.com",
    "vaultIntegrationId": "5f8c6a74-5f2e-4f5a-9e58-5b9c3c7d2a11",
    "vaultPath": "secret/data/login-alice",
    "fieldMap": { "username": "username", "password": "password" },
    "allowedDomains": ["app.example.com"],
    "createdAt": "2026-04-24T09:12:44Z",
    "updatedAt": "2026-04-24T09:12:44Z"
  }
]
```

### Error Responses

| Status | Description                                |
| ------ | ------------------------------------------ |
| `401`  | Unauthorized — invalid or missing API key. |
