openapi: 3.0.1 info: title: Passage by 1Password Management Devices API description: Server-side REST Management API for Passage by 1Password, the passwordless / passkey authentication platform. Operations are scoped to a Passage application (app_id) and authenticated with a Bearer API key generated in the Passage Console (Settings -> API Keys). Covers user lifecycle (list, create, get, update, delete, activate, deactivate), WebAuthn device management, refresh-token revocation, and magic link creation. NOTE - 1Password has announced that the Passage product is being retired on 2026-01-16; this specification documents the API as published as of 2026-06-20. termsOfService: https://passage.1password.com contact: name: Passage by 1Password Support url: https://docs.passage.id/home version: '1.0' servers: - url: https://api.passage.id/v1 description: Passage Management API security: - bearerAuth: [] tags: - name: Devices description: WebAuthn (passkey) device management for a user. paths: /apps/{app_id}/users/{user_id}/devices: get: operationId: listUserDevices tags: - Devices summary: List a user's devices description: Returns the WebAuthn (passkey) devices registered to a user. parameters: - $ref: '#/components/parameters/AppID' - $ref: '#/components/parameters/UserID' responses: '200': description: The user's WebAuthn devices. content: application/json: schema: $ref: '#/components/schemas/ListDevicesResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /apps/{app_id}/users/{user_id}/devices/{device_id}: delete: operationId: deleteUserDevice tags: - Devices summary: Delete a user's device description: Removes a single WebAuthn (passkey) device from a user. parameters: - $ref: '#/components/parameters/AppID' - $ref: '#/components/parameters/UserID' - name: device_id in: path required: true description: The ID of the WebAuthn device. schema: type: string responses: '200': description: The device was deleted. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: parameters: UserID: name: user_id in: path required: true description: The Passage user ID. schema: type: string AppID: name: app_id in: path required: true description: The Passage application ID. schema: type: string responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: The API key is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Error: type: object properties: code: type: string error: type: string message: type: string ListDevicesResponse: type: object properties: devices: type: array items: $ref: '#/components/schemas/WebAuthnDevice' WebAuthnDevice: type: object properties: id: type: string cred_id: type: string friendly_name: type: string type: type: string last_login_at: type: string format: date-time created_at: type: string format: date-time updated_at: type: string format: date-time securitySchemes: bearerAuth: type: http scheme: bearer description: 'Passage Management API key, sent as: Authorization: Bearer '