Docs
Dashboard
API reference / CredentialsBeta

List credentials

Everything about each credential except its values, in name order.

GET/v1/credentials

Request

Method and pathGET/v1/credentials
Base URLhttps://api.boxline.dev
AuthenticationYour API key in the x-api-key header (or Authorization: Bearer). The examples read it from BOXLINE_API_KEY.

Query parameters

NameTypeDefaultAllowed valuesDescription
limitinteger100–From 1 to 200.
afterstring––The next value of the previous page (same filters and sort). Opaque; do not build it yourself.
curl "https://api.boxline.dev/v1/credentials" \  -H "x-api-key: $BOXLINE_API_KEY"

Responses

200 OK

A page of credentials.

Fields

NameTypeDefaultAllowed valuesDescription
dataobject[]––
data[].namestring––
data[].typestring–password, secret
data[].descriptionstring | null––
data[].originsstring[] | null––Sites where the AI may type it (null = any site; always set for a password).
data[].usernamestring––A password's user name.
data[].hasTotpboolean––A password has a 2FA key (codeSource totp).
data[].codeSourcestring | null–totp, push, url, nullWhere a password's 2FA codes come from (%NAME.otp%, boxline-otp NAME); null: no 2FA.
data[].codeUrlstring | null––The endpoint the platform asks for codes (codeSource url).
data[].codeTimeoutSecondsinteger––How long a wait for a pushed or asked code lasts. From 5 to 900.
data[].previewstring | null––A secret's last 4 characters, for values of 24 characters or more; null for shorter values and for secrets with origins.
data[].shellboolean––The AI may use it in bash commands; this also allows exporting it into shells.
data[].scopestringagentagent, shell, allagent: only the AI, as placeholders (agent runs, steps, scripts' step(), the type action); shell: only as environment variables in session shells and commands; all: both.
data[].createdAtstring––Format: date-time.
data[].updatedAtstring––Format: date-time.
data[].lastUsedAtstring | null––Format: date-time.
nextstring | null––Pass it back as after for the next page; null on the last page.
Response 200
{  "data": [    {      "name": "SHOP",      "type": "password",      "description": "…",      "origins": [        "…"      ],      "username": "…",      "hasTotp": false,      "codeSource": "totp",      "codeUrl": "…",      "codeTimeoutSeconds": 5,      "preview": "••••1a2b",      "shell": false,      "scope": "agent",      "createdAt": "2026-09-29T10:00:00.000Z",      "updatedAt": "2026-09-29T10:00:00.000Z",      "lastUsedAt": "2026-09-29T10:00:00.000Z"    }  ],  "next": "eyJvIjoiY3JlYXRlZF9kZXNjIiwidCI6IjIwMjYtMDktMjlUMTA6MDA6MDAuMTIzNDU2WiIsImkiOiI2YzFmIn0"}

Errors

Errors have a matching HTTP status and the same body. code is stable, so check it in your code; message is for people. See Errors and request ids.

StatusCodesWhen
400 Bad Requestinvalid_request, invalid_json, invalid_cursor, invalid_idempotency_key, invalid_extension, variables_with_extensions, terms_not_accepted, invalid_reset_token, invalid_confirmation_code, wrong_password, no_password, invalid_next, invalid_oauth_tokenThe request is not valid.
401 UnauthorizedunauthorizedMissing or invalid API key.
Error body
{  "error": {    "code": "not_found",    "message": "session not found",    "requestId": "req_4fJx0aQm2Lk9Pz7N"  }}

Learn more

These docs describe a beta API. Endpoints, fields and SDK methods may change before general availability; breaking changes will be listed in the changelog.