Skip to content

Sign-In Providers API

The sign-in provider endpoints power the Providers, Link approvals, Invitations, and Log tabs in the UI. All management endpoints require the Admin user role.

Tip

For complete API documentation, including request and response schemas, visit the API docs on your Qualytics deployment.

All endpoints are served from your Qualytics deployment (e.g., https://your-instance.qualytics.io). The paths below include the /api prefix.


Invitations

The invitation endpoints require an enabled Email & Password sign-in provider. See Invite a User for the flow.

Invite User

Endpoint: POST /api/auth/db/invite

Permission: Admin user role

Request Body:

{
  "email": "new.user@example.com",
  "role": "Member"
}

role is optional and defaults to Member. The response includes the invitation status, its expiration time, and the invitation link so you can share it manually when email delivery is not configured.

List Invitations

Endpoint: GET /api/auth/db/invitations

Permission: Admin user role

Query Parameters:

Parameter Type Description
status string Filter by status (pending, accepted, revoked, expired)
email string Filter by email (partial match)
sort_email string Sort by email (asc or desc)
sort_status string Sort by status (asc or desc)
sort_created string Sort by sent date (asc or desc)

Revoke Invitation

Endpoint: DELETE /api/auth/db/invitations/{id}

Permission: Admin user role

Only invitations with the pending status can be revoked.


Providers

List Providers

Endpoint: GET /api/auth/providers

Permission: Admin user role

Returns a paginated list of provider configurations. Secrets (client secret, certificate) are never returned. Supports provider_type and enabled filters and sorting by name or created date.

Get Provider

Endpoint: GET /api/auth/providers/{id}

Permission: Admin user role

Create Provider

Endpoint: POST /api/auth/providers

Permission: Admin user role

The body depends on the provider type (oidc, saml2, or password). A minimal OIDC example:

{
  "display_name": "Corporate SSO",
  "provider_type": "oidc",
  "oidc_discovery_url": "https://idp.example.com/.well-known/openid-configuration",
  "oidc_client_id": "your-client-id",
  "oidc_client_secret": "your-client-secret"
}

Only one password provider can exist; creating a second one fails.

Update Provider

Endpoint: PUT /api/auth/providers/{id}

Permission: Admin user role

The body must include expected_configuration_version (returned by the read endpoints). If another administrator changed the provider in the meantime, the update fails with a conflict and you reload the provider first. Disabling a provider is an update with "enabled": false.

Delete Provider

Endpoint: DELETE /api/auth/providers/{id}

Permission: Admin user role

Fails with a conflict while users are still associated with the provider, or, once the deployment uses the new authentication mode, when it is the last enabled provider.

Preview Metadata (Discovery)

Endpoint: POST /api/auth/providers/oidc/discover and POST /api/auth/providers/saml2/discover

Permission: Admin user role

Fetches the identity provider's discovery document or SAML metadata and returns the values that would be filled in, without saving anything.

Run Diagnostics

Endpoint: POST /api/auth/providers/{id}/diagnose (saved provider) and POST /api/auth/providers/diagnose (unsaved configuration)

Permission: Admin user role

Returns the list of checks with a pass, fail, warning, or skipped status each, plus an overall status. Not supported for the password provider type.

Google Workspace Authorization

Endpoint: POST /api/auth/providers/{id}/google-workspace/authorize, POST /api/auth/providers/{id}/google-workspace/verify, and DELETE /api/auth/providers/{id}/google-workspace/authorization

Permission: Admin user role

Starts, verifies, and removes the Google Workspace administrator authorization used to fetch group membership. The authorization link returned by the authorize endpoint is single-use and short-lived.


Endpoint: GET /api/auth/links/pending

Permission: Admin user role

Each pending request carries the requester's account, the provider, the subject identifier reported by the identity provider, the trust evidence (verified email, allowed domain, signed assertion), and the request time.

Endpoint: POST /api/auth/links/{id}/approve and POST /api/auth/links/{id}/reject

Permission: Admin user role

Approval works on a pending request and also on one that was previously rejected, so a rejection can be reversed. Rejection works only on a pending request.

Endpoint: DELETE /api/auth/links/{id}

Permission: Admin user role

Removes the link between an account and a provider, whatever its state. Use it to clear a mistaken rejection or a pre-created link: the person's next sign-in through that provider starts the linking flow again, following the provider's current linking settings.

Bulk Approve

Endpoint: POST /api/auth/links/bulk-approve

Permission: Admin user role

Approves pending links by ID list or for an entire provider.

Endpoint: POST /api/auth/providers/{id}/backfill-links

Permission: Admin user role

Pre-creates approved links between existing users and an OIDC or SAML provider, so existing users do not land in the approval queue when the deployment switches to the new authentication mode. Runs as a dry run by default; DELETE /api/auth/providers/{id}/backfill-links removes unused pre-created links.


Sign-In Log

List Auth Events

Endpoint: GET /api/auth/audit

Permission: Admin user role

Query Parameters:

Parameter Type Description
user_id int Only events for this user.
event_type string One or more event types, comma-separated.
provider_type string Only events for this provider type (oidc, saml2, password).
from / to datetime Time range.

Events are sortable by timestamp, event type, and outcome. Each event includes the user, provider, IP address, outcome, and a details object; secrets are masked.


Sign-In (Public Endpoints)

These endpoints serve the sign-in page itself and require no authentication:

Endpoint Purpose
GET /api/auth/providers/available The enabled providers shown on the sign-in page. Empty until the deployment uses the new authentication mode.
GET /api/auth/saml2/metadata?provider_id={id} The SAML service provider metadata document for your identity provider to import.
GET /api/auth/db/password-policy The password rules displayed on the password screens.