Hanko Audit Logs API
The Audit Logs API from Hanko — 2 operation(s) for audit logs.
The Audit Logs API from Hanko — 2 operation(s) for audit logs.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/hanko-audit-logs-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Hanko Audit Logs API
version: '1.0'
description: 'Operations tagged Audit Logs across 2 of this provider''s published API definitions: hanko-admin-api-openapi.yml, hanko-passkey-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://{tenant_id}.hanko.io/admin
variables:
tenant_id:
default: ''
description: The (UU)ID of a tenant. Replace the default value with your tenant ID.
- url: https://passkeys.hanko.io
tags:
- name: Audit Logs
paths:
/audit_logs:
get:
summary: Get a list of audit logs
security:
- BearerApiKeyAuth: []
operationId: listAuditLogs
tags:
- Audit Logs
parameters:
- in: query
name: page
schema:
type: integer
default: 1
description: The page which should be returned
- in: query
name: per_page
schema:
type: integer
default: 20
description: The number of returned items
- in: query
name: start_time
schema:
type: string
example: 2022-09-12 12:48:48+00:00
description: Date and time from which the logs are included
- in: query
name: end_time
schema:
type: string
example: 2022-09-15 12:48:48+00:00
description: Date and time to which the logs are included
- in: query
name: actor_user_id
schema:
allOf:
- $ref: '#/components/schemas/UUID4'
example: c339547d-e17d-4ba7-8a1d-b3d5a4d17c1c
description: Only audit logs with the specified user_id are included
- in: query
name: actor_email
schema:
type: string
format: email
example: example@example.com
description: Only audit logs with the specified email are included
- in: query
name: meta_source_ip
schema:
oneOf:
- type: string
format: ipv4
- type: string
format: ipv6
example: 127.0.0.1
description: Only audit logs with the specified ip address are included
- in: query
name: q
schema:
type: string
example: example.com
description: Only audit logs are included when the search string matches values in meta_source_ip or actor_user_id or actor_email
- in: query
name: type
schema:
type: array
items:
allOf:
- $ref: '#/components/schemas/AuditLogTypes'
example: user_created
style: form
explode: true
description: Only audit logs with the specified type are included
responses:
'200':
description: Details about audit logs
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AuditLog'
headers:
X-Total-Count:
$ref: '#/components/headers/X-Total-Count'
Link:
$ref: '#/components/headers/Link'
'500':
$ref: '#/components/responses/InternalServerError'
servers:
- url: https://{tenant_id}.hanko.io/admin
variables:
tenant_id:
default: ''
description: The (UU)ID of a tenant. Replace the default value with your tenant ID.
/{tenant_id}/audit_logs:
get:
summary: List audit log entries
description: Get a list of audit logs
operationId: get-tenants-tenant_id-audit_logs
tags:
- Audit Logs
parameters:
- name: page
in: query
description: Page to start from
schema:
type: number
default: 1
- name: per_page
in: query
description: How many logs should be displayed per page
schema:
type: number
default: 20
- name: start_time
in: query
description: timestamp from where to start the list
schema:
type: string
format: date-time
- name: end_time
in: query
description: timestamp on which to end the list
schema:
type: string
format: date-time
- name: type
in: query
description: comma separated list of types to query for
schema:
type: string
- name: actor_user_id
in: query
description: id of the user who performed the action
schema:
type: string
- name: meta_source_ip
in: query
description: ip address from which the action was performed
schema:
type: string
- name: q
in: query
description: the search string
schema:
type: string
- $ref: '#/components/parameters/tenant_id'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/audit_log'
headers:
Link:
schema:
type: string
description: links to pages
X-Total-Count:
schema:
type: number
description: Total number of log entries
'400':
$ref: '#/components/responses/error'
'500':
$ref: '#/components/responses/error'
security: []
servers:
- url: https://passkeys.hanko.io
servers:
- url: https://passkeys.hanko.io
components:
schemas:
Error:
type: object
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string
AuditLog:
type: object
required:
- id
- type
- meta_http_request_id
- meta_source_ip
- meta_user_agent
- created_at
- updated_at
properties:
id:
description: The ID of the audit log
allOf:
- $ref: '#/components/schemas/UUID4'
type:
allOf:
- $ref: '#/components/schemas/AuditLogTypes'
error:
description: A more detailed message why something failed
type: string
meta_http_request_id:
description: The ID of the corresponding http request
type: string
example: 0a2xsrhlhiQv49FIpq8KV8uQVq6ky9Bw
meta_source_ip:
description: The IP from where the http request came from
type: string
format: ip-address
example: 172.27.0.1
meta_user_agent:
description: The user agent from where the http request came from
type: string
actor_user_id:
description: The userID from the actor
allOf:
- $ref: '#/components/schemas/UUID4'
actor_email:
description: The email from the actor
type: string
format: email
created_at:
description: Time of creation of the audit log
type: string
format: date-time
example: '2022-09-14T12:15:09.788784Z'
AuditLogTypes:
description: The type of the audit log
type: string
enum:
- user_logged_out
- password_set_succeeded
- password_set_failed
- password_login_succeeded
- password_login_failed
- passcode_login_init_succeeded
- passcode_login_init_failed
- passcode_login_final_succeeded
- passcode_login_final_failed
- webauthn_registration_init_succeeded
- webauthn_registration_init_failed
- webauthn_registration_final_succeeded
- webauthn_registration_final_failed
- webauthn_authentication_init_succeeded
- webauthn_authentication_init_failed
- webauthn_authentication_final_succeeded
- webauthn_authentication_final_failed
- webauthn_credential_updated
- webauthn_credential_deleted
- thirdparty_signup_succeeded
- thirdparty_signin_succeeded
- thirdparty_linking_succeeded
- thirdparty_signin_signup_failed
- token_exchange_succeeded
- token_exchange_failed
- user_created
- email_created
- email_verified
- email_deleted
- primary_email_changed
- user_deleted
- login_success
- login_failure
- otp_created
- passkey_created
- passkey_deleted
- security_key_created
- username_changed
- username_deleted
- password_changed
- password_deleted
UUID4:
type: string
format: uuid4
example: c339547d-e17d-4ba7-8a1d-b3d5a4d17c1c
audit_log:
type: object
title: audit_log
properties:
id:
type: string
format: uuid
type:
type: string
error:
type: string
meta_http_request_id:
type: string
meta_source_ip:
type: string
meta_user_agent:
type: string
actor_user_id:
type: string
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
tenant_id:
type: string
format: uuid
required:
- id
- type
- meta_http_request_id
- meta_source_ip
- meta_user_agent
- created_at
- updated_at
- tenant_id
headers:
X-Total-Count:
schema:
type: string
description: The total count of the requested resource considering query parameter
example: 1234
Link:
schema:
type: string
description: Web Linking as described in RFC5988
example: <http://localhost:8001/resource?page=1&per_page=10>; rel="first",<http://localhost:8001/resource?page=16&per_page=10>; rel="last",<http://localhost:8001/resource?page=6&per_page=10>; rel="next",<http://localhost:8001/resource?page=4&per_page=10>; rel="prev"
responses:
InternalServerError:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: 500
message: Internal Server Error
error:
description: Error Response with detailed information
content:
application/json:
schema:
type: object
properties:
title:
type: string
example:
- explanatory title
details:
type: string
example:
- Information which helps resolving the problem
status:
type: integer
parameters:
tenant_id:
name: tenant_id
in: path
description: UUID of the tenant
required: true
schema:
type: string
format: uuid
minLength: 36
maxLength: 36
example:
- 1f496bcd-49da-4839-a02f-7ce681ccb488
securitySchemes:
BearerApiKeyAuth:
description: Bearer authentication header of the form `Bearer <token>`, where `<token>` is your API key. Must only be used when using Hanko Cloud.
type: http
scheme: bearer
bearerFormat: API Key
externalDocs:
description: More about Hanko
url: https://github.com/teamhanko/hanko
x-refined-from:
- hanko-admin-api-openapi.yml
- hanko-passkey-api-openapi.yml