OAuth Presets
GET
/v1/oauth/presets
Static catalog of canonical OAuth/OIDC configurations for popular providers — Google, GitHub, Microsoft (Azure AD / Entra), Okta, Auth0. Use this to pre-fill the auth_url, token_url, user_info_url, default scopes, and identifier_field when adding a provider via POST /v1/endpoints/{id}/oauth/providers.
Read-only — these values come from the platform's hard-coded preset list and are updated when a provider rotates a URL upstream. Custom OIDC providers (anything not in the preset list) need provider_type: "custom" with manually-supplied URLs.
Response (200 OK)
JSON object keyed by provider slug (e.g. google, github) — not an array. Each value is a preset object. NOTE: the preset struct has no JSON field tags, so its keys are PascalCase. Copy these values into the corresponding snake_case fields of the create call.
Top-level keys are provider slugs. Pass the slug as provider_type when creating a provider.
Provider type slug (matches the top-level key).
OAuth/OIDC endpoints to copy into the create call (auth_url, token_url, user_info_url).
Recommended OAuth scopes (array of strings).
curl "https://api.ngris.com/v1/oauth/presets" \
-H "X-API-KEY: <your_api_key>"
from ngris import Ngris
client = Ngris(api_key="<your_api_key>")
presets = client._get_raw("/oauth/presets")
# Response is a JSON object keyed by provider slug, not a list.
for slug, p in presets.items():
print(f"{slug}: {p['Name']}")
{
"google": {
"Type": "google",
"Name": "Google",
"AuthURL": "https://accounts.google.com/o/oauth2/v2/auth",
"TokenURL": "https://oauth2.googleapis.com/token",
"UserInfoURL": "https://openidconnect.googleapis.com/v1/userinfo",
"Scopes": ["openid", "email", "profile"]
},
"github": {
"Type": "github",
"Name": "GitHub",
"AuthURL": "https://github.com/login/oauth/authorize",
"TokenURL": "https://github.com/login/oauth/access_token",
"UserInfoURL": "https://api.github.com/user",
"Scopes": ["read:user", "user:email"]
}
}