Skip to content

List your sign-in activity

The users.sign_ins.list operation: GET /api/v1/users/me/sign_ins in the REST API and the users_sign_ins_list tool in the MCP server.

GET/api/v1/users/me/sign_ins

Lists the security events of your account, newest first: sign-ins (auth.signed_in, with the method), fresh sign-ins before a sensitive action (auth.reauthenticated), sign-outs, sign-ins that were refused (auth.sign_in_refused, with the reason: a disabled account, too many sign-in links, …), Google or Microsoft accounts added as a way to sign in (auth.identity_linked), the security emails sent to you about a sign-in from a network, country or browser your account hadn't used in 90 days or an added sign-in method (auth.notice_sent, with new_sign_in or identity_linked as the reason) and changes to your account such as ending your other sessions. Each shows the country, the network (the client address shortened to /24 or /48) and the browser. If you see a sign-in that wasn't you, end your other sessions (users.sessions.revoke) and tell your organization's owner and Ownrecord support.

Who can call it: the signed-in user, for their own account.

At a glance

  • REST: GET /api/v1/users/me/sign_ins
  • MCP tool: users_sign_ins_list
  • Operation ID: users.sign_ins.list
  • Scope: Platform
  • Permission: account:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: API key with the account:read scope
  • Since: M13

Request

Query parameters

FieldTypeRequiredDescription
limitinteger (1 to 100)NoHow many events, at most 100.

Response

200 OK with a JSON object:

FieldTypeDescription
object"list"
dataarray of object
data[].object"security_event"
data[].idaud_… ID
data[].atdate-time
data[].actionstringauth.signed_in, auth.reauthenticated, auth.sign_in_refused, auth.signed_out, auth.identity_linked (a Google or Microsoft account added), auth.notice_sent (a security email sent to you), or the operation that changed the account (e.g. users.sessions.revoke).
data[].byone of you, staff, systemWho did it: you, Ownrecord staff, or the platform.
data[].methodstring or nullHow you signed in: email (a sign-in link), google, microsoft-entra-id, or dev.
data[].reasonstring or nullWhy a sign-in was refused (an error code), how a session ended, or what a security email was about (new_sign_in, identity_linked).
data[].countrystring or null
data[].networkstring or nullThe client address shortened to its network (/24 for IPv4, /48 for IPv6).
data[].userAgentstring or null

Examples

A sign-in and a refused one

HTTP
GET /api/v1/users/me/sign_ins?limit=50
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "list",
  "data": [
    {
      "object": "security_event",
      "id": "aud_01m4tx5nj8emwbyf7y9vcf47xe",
      "at": "2026-10-30T08:15:00.000Z",
      "action": "auth.signed_in",
      "by": "you",
      "method": "google",
      "reason": null,
      "country": "HR",
      "network": "203.0.113.0",
      "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 15_5) AppleWebKit/605.1.15 Version/18.5 Safari/605.1.15"
    },
    {
      "object": "security_event",
      "id": "aud_01m4tx5nj8emwbyf7y9vcf47xf",
      "at": "2026-10-29T17:02:00.000Z",
      "action": "auth.sign_in_refused",
      "by": "system",
      "method": "email",
      "reason": "sign_in_link_rate_limited",
      "country": "DE",
      "network": "198.51.100.0",
      "userAgent": null
    }
  ]
}

Errors

CodeHTTP statusWhenWhat to do
validation_failed400limit is out of range.Fix the fields listed in details.issues and send the request again.
permission_denied403The caller isn't a signed-in user.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.