List a connection's recent login attempts
/portal/v1/accounts/{accountSlug}/sso/connections/{id}/recent-loginsReturns up to the 100 most recent login attempts for a connection, newest first, read from the Account's audit log (sso.login.succeeded / sso.login.failed rows matched on connection_id). Responds 404 when the connection is not found in the Account. The response is an unpaginated { items } array.
Authentication
AuthorizationJWT access token. Never send alongside X-API-Key: a request carrying both is refused.
sso.viewSecurityView SSO connections, domains, and directory sync. Granted through an administrator role in the Admin Workspace; a valid token without it is refused with 403.
Path Parameters
idstring Required Responses
application/json
items *SsoRecentLoginDto[]
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
application/json
error *ApiErrorBodyDto
Errors
When the request can't be completed, the response body includes a stable error code you can branch on.
account.capability_requiredForbiddenThe signed-in user's administrator roles do not grant the capability this endpoint requires.
Ask an account administrator to grant a role carrying the capability named in the Authentication section, then retry.
Returned object
curl -X GET "https://auth.canopy-io.com/portal/v1/accounts/{accountSlug}/sso/connections/value/recent-logins" \ -H "Authorization: Bearer $CANOPY_TOKEN"
{ "items": [ { "outcome": "success", "email": "string", "reason": "string", "ip_address": "string", "occurred_at": "2026-04-20T12:00:00.000Z" } ] }
Tell us how we can improve this guide.