---
title: "List sign-in providers for a surface"
method: GET
path: "/v1/auth/providers"
tags: ["auth"]
---

# List sign-in providers for a surface

`GET /v1/auth/providers`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/auth/providers`
- Auth: none declared

Which sign-in providers this surface may offer right now. Public — it is read before any session exists. `available` means the provider's credentials are configured AND this surface may use it; it says nothing about any particular directory.

## Query parameters

- `surface` string, nullable

## Response `200`

Every known provider, with its availability for this surface.

- AuthProvidersResponse: Which sign-in providers a surface may offer. The list always names EVERY known provider, including unavailable ones, so a console renders a stable set of buttons and DISABLES rather than hides one that is not configured. A provider that vanished from the payload would look like a deploy that lost a feature.
  - `providers` AuthProviderState[], required
    - `code` string, required
    - `available` boolean, required

## Other responses

- `400`: Unknown surface
- `422`: Validation Error
- `429`: Too many requests from this client (``RATE_LIMITED``)

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
