---
title: "List SSO connections"
method: GET
path: "/sso-connections"
tags: ["sso-connections"]
---

# List SSO connections

`GET /sso-connections`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/sso-connections`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `X-API-Key`

SSO connections visible to the caller (tenant_admin: own tenant; platform admin: own tenant unless tenant_id / all_tenants; user/developer: none). Config never appears in lists. Filters only narrow that scope; total counts the rows matching every filter. q searches name and slug only (never config). Unknown provider values match nothing; a malformed enabled is a 400; an unknown sort falls back to created.

## Query parameters

- `q` string
- `provider` 'oidc' | 'saml'
- `enabled` boolean
- `sort` 'name' | 'slug' | 'created' | 'updated'
- `sort_dir` 'asc' | 'desc'
- `limit` integer
- `offset` integer
- `tenant_id` string, uuid
- `all_tenants` boolean

## Response `200`

OK

- InternalDeliveryHttpHandlerSSOConnectionPageResponse
  - `data` EnforcerV3InternalDomainSsoConnection[]
    - `config` object: Config is the decrypted configuration — populated only on authorized single-row reads (with secret fields redacted), never on lists.
    - `created_at` string
    - `id` string
    - `is_active` boolean
    - `name` string
    - `provider_type` 'privy' | 'email_otp' | 'google' | 'siwe' | 'phone_otp' | 'passkey' | 'oidc' | 'saml'
    - `slug` string: Slug is the human-friendly handle for the unauthenticated flow routes (/auth/sso/:connection/...). Globally unique among live rows — the flow resolves a connection with no tenant in hand. IdP-registered URLs (redirect_uri / ACS / entity id) always use the UUID so renames never break federation.
    - `tenant_id` string
    - `updated_at` string
  - `limit` integer
  - `offset` integer
  - `success` boolean
  - `total` integer

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: forbidden: tenant_id/all_tenants beyond your own tenant without the cross_tenant grant
- `500`: Internal Server Error

---

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