openapi: 3.1.0 info: title: Linode API v4 Account Profile API description: The Linode API v4 provides programmatic access to the full range of Akamai Connected Cloud (formerly Linode) products and services. It enables developers to create and manage compute instances, deploy Kubernetes clusters, configure NodeBalancers, manage DNS domains, provision Block Storage volumes, control Object Storage buckets, set up firewalls, and administer account settings. The RESTful API uses OAuth and personal access tokens for authentication and returns JSON responses, with support for filtering and sorting across all resource endpoints. version: 4.189.0 contact: name: Linode Support url: https://www.linode.com/support/ termsOfService: https://www.linode.com/legal-tos/ servers: - url: https://api.linode.com/v4 description: Production Server security: - personalAccessToken: [] - oauth: [] tags: - name: Profile description: Manage your user profile settings, SSH keys, authorized applications, personal access tokens, and two-factor authentication. paths: /profile: get: operationId: getProfile summary: Get your profile description: Returns information about the current user, including their username, email address, timezone, and authentication settings. tags: - Profile responses: '200': description: Profile retrieved successfully content: application/json: schema: $ref: '#/components/schemas/Profile' '401': description: Unauthorized - invalid or missing authentication put: operationId: updateProfile summary: Update your profile description: Updates information about the current user. tags: - Profile requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Profile' responses: '200': description: Profile updated successfully content: application/json: schema: $ref: '#/components/schemas/Profile' '400': description: Bad request - invalid parameters '401': description: Unauthorized - invalid or missing authentication /profile/tokens: get: operationId: getPersonalAccessTokens summary: List personal access tokens description: Returns a paginated list of personal access tokens for the current user. tags: - Profile parameters: - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/pageSizeParam' responses: '200': description: Personal access tokens retrieved successfully content: application/json: schema: $ref: '#/components/schemas/PaginatedTokenList' '401': description: Unauthorized - invalid or missing authentication post: operationId: createPersonalAccessToken summary: Create a personal access token description: Creates a new personal access token with the specified scopes and expiry. The token value is only returned once at creation time. tags: - Profile requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TokenRequest' responses: '200': description: Personal access token created successfully content: application/json: schema: $ref: '#/components/schemas/Token' '400': description: Bad request - invalid parameters '401': description: Unauthorized - invalid or missing authentication /profile/sshkeys: get: operationId: getSSHKeys summary: List SSH keys description: Returns a paginated list of SSH keys on the current user's profile. tags: - Profile parameters: - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/pageSizeParam' responses: '200': description: SSH keys retrieved successfully content: application/json: schema: $ref: '#/components/schemas/PaginatedSSHKeyList' '401': description: Unauthorized - invalid or missing authentication post: operationId: createSSHKey summary: Add an SSH key description: Adds an SSH key to the current user's profile for use when deploying Linode instances. tags: - Profile requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SSHKeyRequest' responses: '200': description: SSH key added successfully content: application/json: schema: $ref: '#/components/schemas/SSHKey' '400': description: Bad request - invalid parameters '401': description: Unauthorized - invalid or missing authentication components: schemas: Token: type: object properties: id: type: integer description: The unique ID of this token. scopes: type: string description: The OAuth scopes for this token. label: type: string description: The label for this token. token: type: string description: The token string. Only returned at creation time. created: type: string format: date-time description: When this token was created. expiry: type: string format: date-time description: When this token expires. SSHKeyRequest: type: object required: - label - ssh_key properties: label: type: string minLength: 1 maxLength: 64 description: The label for the SSH key. ssh_key: type: string description: The SSH public key content. PaginatedTokenList: allOf: - $ref: '#/components/schemas/Pagination' - type: object properties: data: type: array items: $ref: '#/components/schemas/Token' SSHKey: type: object properties: id: type: integer description: The unique ID of this SSH key. label: type: string description: The label for this SSH key. ssh_key: type: string description: The SSH public key. created: type: string format: date-time description: When this SSH key was added. TokenRequest: type: object required: - scopes - label properties: scopes: type: string description: The OAuth scopes for the token. label: type: string minLength: 1 maxLength: 100 description: The label for the token. expiry: type: string format: date-time description: When the token should expire. PaginatedSSHKeyList: allOf: - $ref: '#/components/schemas/Pagination' - type: object properties: data: type: array items: $ref: '#/components/schemas/SSHKey' Profile: type: object properties: username: type: string description: The user's username. email: type: string format: email description: The user's email address. timezone: type: string description: The user's preferred timezone. email_notifications: type: boolean description: Whether email notifications are enabled. ip_whitelist_enabled: type: boolean description: Whether IP whitelisting is enabled. two_factor_auth: type: boolean description: Whether two-factor authentication is enabled. restricted: type: boolean description: Whether the user has restricted access. authorized_keys: type: array items: type: string description: SSH keys authorized on the profile. Pagination: type: object properties: page: type: integer description: The current page number. pages: type: integer description: The total number of pages. results: type: integer description: The total number of results. parameters: pageParam: name: page in: query schema: type: integer minimum: 1 default: 1 description: The page number to return. pageSizeParam: name: page_size in: query schema: type: integer minimum: 25 maximum: 500 default: 100 description: The number of items per page. securitySchemes: personalAccessToken: type: http scheme: bearer description: A personal access token generated from the Linode Cloud Manager that grants access to the API based on the token's scopes. oauth: type: oauth2 description: OAuth 2.0 authentication for third-party applications. flows: authorizationCode: authorizationUrl: https://login.linode.com/oauth/authorize tokenUrl: https://login.linode.com/oauth/token scopes: account:read_only: Read access to account information account:read_write: Read and write access to account information domains:read_only: Read access to domains domains:read_write: Read and write access to domains events:read_only: Read access to events events:read_write: Read and write access to events firewall:read_only: Read access to firewalls firewall:read_write: Read and write access to firewalls images:read_only: Read access to images images:read_write: Read and write access to images ips:read_only: Read access to IP addresses ips:read_write: Read and write access to IP addresses linodes:read_only: Read access to Linodes linodes:read_write: Read and write access to Linodes lke:read_only: Read access to LKE lke:read_write: Read and write access to LKE longview:read_only: Read access to Longview longview:read_write: Read and write access to Longview nodebalancers:read_only: Read access to NodeBalancers nodebalancers:read_write: Read and write access to NodeBalancers object_storage:read_only: Read access to Object Storage object_storage:read_write: Read and write access to Object Storage stackscripts:read_only: Read access to StackScripts stackscripts:read_write: Read and write access to StackScripts volumes:read_only: Read access to Volumes volumes:read_write: Read and write access to Volumes vpc:read_only: Read access to VPCs vpc:read_write: Read and write access to VPCs externalDocs: description: Linode API v4 Documentation url: https://techdocs.akamai.com/linode-api/reference/api