Skip to main content
Duckie API requests use API keys created in Duckie. Send the full key in the Authorization header using the bearer scheme.
Authorization: Bearer dk_live_your_api_key

Create an API Key

Create keys from Settings -> API Access. The full key is shown once after creation, so store it before closing the dialog. Keys start with dk_live_. Duckie stores only a hash and a display preview after creation.

Example Request

curl "https://app.useduckie.ai/api/v1/tools?type=custom_tool" \
  -H "Authorization: Bearer dk_live_your_api_key"

Scopes

Every key has one or more read scopes. A request fails with 403 permission_denied when the key does not include the required scope.
ScopeAllows
api:runs:readRead runs and run tool filter options
api:tools:readRead tools
api:agents:readRead agents
api:guidelines:readRead guidelines
api:guardrails:readRead guardrails
api:runbooks:readRead runbooks
The create-key dialog selects all read scopes by default. You can remove scopes when you want a key to access only a subset of the API.

Invalid or Expired Keys

The API returns 401 unauthenticated when a key is missing, malformed, unknown, expired, or revoked.
{
  "error": {
    "code": "unauthenticated",
    "message": "Invalid API key",
    "request_id": "req_123"
  }
}
Revoking a key in Settings stops new requests with that key immediately.