openapi: 3.0.3 info: version: 1.2.0 title: Hanko Admin Audit Logs API description: '## Introduction This is the OpenAPI specification for the [Hanko Admin API](https://github.com/teamhanko/hanko/blob/main/backend/README.md#start-private-api). ## Authentication The Admin API must be protected by an access management system. --- ' contact: email: developers@hanko.io license: name: AGPL-3.0-or-later url: https://www.gnu.org/licenses/agpl-3.0.txt 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. 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' /{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 components: schemas: 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 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' Error: type: object required: - code - message properties: code: type: integer format: int32 message: type: string 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 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: ; rel="first",; rel="last",; rel="next",; rel="prev" 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 responses: 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 InternalServerError: description: Internal server error content: application/json: schema: $ref: '#/components/schemas/Error' example: code: 500 message: Internal Server Error securitySchemes: BearerApiKeyAuth: description: Bearer authentication header of the form `Bearer `, where `` 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