openapi: 3.1.0 info: title: Proxmox VE Access API description: 'REST-style management API for Proxmox Virtual Environment (PVE). All endpoints live under /api2/json on port 8006 of a PVE node. Authentication is via stateless API tokens (PVEAPIToken header) or ticket-based sessions issued by /access/ticket (cookie + CSRFPreventionToken header for write operations). Output format may be switched via the path (json, extjs, html, text). Tickets expire after 2 hours. ' version: 1.0.0 contact: name: Proxmox VE API url: https://pve.proxmox.com/wiki/Proxmox_VE_API servers: - url: https://{server}:8006/api2/json description: Proxmox VE node API variables: server: default: your.server description: Hostname or IP of the Proxmox VE node security: - apiTokenAuth: [] - ticketAuth: [] tags: - name: Access paths: /access/ticket: post: tags: - Access summary: Create authentication ticket description: 'Create a ticket (and CSRFPreventionToken) using username/password credentials. The returned ticket is used as the PVEAuthCookie for subsequent requests, and the CSRFPreventionToken header is required for write operations. ' security: [] requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - username - password properties: username: type: string description: User name in the form `USER@REALM`. password: type: string format: password realm: type: string otp: type: string responses: '200': description: Ticket and CSRFPreventionToken /access/users: get: tags: - Access summary: List configured users responses: '200': description: User list post: tags: - Access summary: Create a new user responses: '200': description: User created /access/users/{userid}: parameters: - name: userid in: path required: true schema: type: string description: User identifier in `USER@REALM` form. delete: tags: - Access summary: Delete user responses: '200': description: User deleted components: securitySchemes: apiTokenAuth: type: apiKey in: header name: Authorization description: 'Stateless API token. Send header `Authorization: PVEAPIToken=USER@REALM!TOKENID=UUID`. No CSRFPreventionToken required. ' ticketAuth: type: apiKey in: cookie name: PVEAuthCookie description: 'Ticket issued by POST /access/ticket. Carried as a cookie. Write operations also require the `CSRFPreventionToken` header returned with the ticket. Tickets expire after 2 hours. '