List OAuth Providers
List the OAuth identity providers attached to this endpoint. When the endpoint's auth mode is set to sso (stored as basic with the oauth_sso method on), visitors hitting the public URL see a sign-in page with one button per enabled: true provider here.
Each endpoint can have at most one provider per provider_type (e.g. one google, one github). Use provider_type: "custom" for arbitrary OIDC IdPs that don't have a built-in preset.
Client secrets are never returned by this endpoint — only provider type, name, uuid, URLs, scopes, and the enabled flag.
Path parameters
uuid string (uuid) Req
The endpoint's
uuid.Response (200 OK)
An object with a providers array (not a bare array):
providers array<object>
The provider list (
[] when the endpoint has none). Each element has the fields below.uuid string (uuid)
The provider's public id — the
{provider_uuid} of the get/update/delete/toggle routes.endpoint_uuid string (uuid)
The endpoint the provider belongs to.
provider_type string
One of
google, github, azure, okta, auth0, custom.provider_name string
Display name shown on the login page.
client_id string
OAuth client ID issued by the IdP.
auth_url, token_url string
OAuth/OIDC endpoints. Pre-filled for known providers; required for
custom.user_info_url string?
The IdP's user-info endpoint. Omitted when empty.
issuer, jwks_url string?
OIDC
id_token verification settings (see create). Each is omitted when empty.scopes string
Comma-separated OAuth scopes (
openid,email,profile).identifier_field string
Which user-info field to use as the canonical identifier (
email, sub, login).enabled boolean
Whether this provider button shows on the login page.
has_client_secret boolean
Whether a client secret is stored. The secret itself is never returned.
created_at, updated_at datetime
RFC 3339 UTC timestamps.
Deprecated: until the sunset this response also carries the legacy integer id and *_id fields. Don't use them; read uuid and the *_uuid fields.
Errors
401 Unauthorized
Missing auth.
403 Forbidden
Caller lacks the
endpoints:read permission in the active account.404 Not Found
Endpoint doesn't exist or doesn't belong to the calling account.
Request
curl "https://api.ngris.com/v1/endpoints/<uuid>/oauth/providers" \
-H "X-API-KEY: <your_api_key>"
Python
from ngris import Ngris
client = Ngris(api_key="<your_api_key>")
resp = client.endpoint_oauth.list_providers("<endpoint_uuid>")
for p in resp["providers"]:
badge = "on" if p["enabled"] else "off"
print(f"[{badge}] {p['provider_type']}: {p['provider_name']}")
Response — 200 OK
{
"providers": [
{
"uuid": "019b407c-8a46-7001-897f-343e36ba8939",
"endpoint_uuid": "019bb1e4-e785-77d2-9966-c3cff31d0a0e",
"provider_type": "google",
"provider_name": "Sign in with Google",
"client_id": "1234567890-abc.apps.googleusercontent.com",
"auth_url": "https://accounts.google.com/o/oauth2/v2/auth",
"token_url": "https://oauth2.googleapis.com/token",
"user_info_url": "https://www.googleapis.com/oauth2/v2/userinfo",
"scopes": "openid,email,profile",
"identifier_field": "email",
"enabled": true,
"has_client_secret": true,
"created_at": "2026-04-01T00:00:00Z",
"updated_at": "2026-04-01T00:00:00Z"
}
]
}
Was this helpful?