linode NodeBalancers API
Create and manage NodeBalancer load balancers, their configurations, and backend nodes for distributing traffic across Linode instances.
Create and manage NodeBalancer load balancers, their configurations, and backend nodes for distributing traffic across Linode instances.
openapi: 3.1.0
info:
title: Linode API v4 Account NodeBalancers 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: NodeBalancers
description: Create and manage NodeBalancer load balancers, their configurations, and backend nodes for distributing traffic across Linode instances.
paths:
/nodebalancers:
get:
operationId: getNodeBalancers
summary: List NodeBalancers
description: Returns a paginated list of NodeBalancers on your account.
tags:
- NodeBalancers
parameters:
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: NodeBalancers retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedNodeBalancerList'
'401':
description: Unauthorized - invalid or missing authentication
post:
operationId: createNodeBalancer
summary: Create a NodeBalancer
description: Creates a new NodeBalancer in the specified region.
tags:
- NodeBalancers
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerRequest'
responses:
'200':
description: NodeBalancer created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancer'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
/nodebalancers/{nodeBalancerId}:
get:
operationId: getNodeBalancer
summary: Get a NodeBalancer
description: Returns the details for a single NodeBalancer.
tags:
- NodeBalancers
parameters:
- $ref: '#/components/parameters/nodeBalancerIdParam'
responses:
'200':
description: NodeBalancer retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancer'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: NodeBalancer not found
put:
operationId: updateNodeBalancer
summary: Update a NodeBalancer
description: Updates the label and other settings for a NodeBalancer.
tags:
- NodeBalancers
parameters:
- $ref: '#/components/parameters/nodeBalancerIdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancerUpdateRequest'
responses:
'200':
description: NodeBalancer updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/NodeBalancer'
'400':
description: Bad request - invalid parameters
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: NodeBalancer not found
delete:
operationId: deleteNodeBalancer
summary: Delete a NodeBalancer
description: Deletes a NodeBalancer and all associated configurations and nodes.
tags:
- NodeBalancers
parameters:
- $ref: '#/components/parameters/nodeBalancerIdParam'
responses:
'200':
description: NodeBalancer deleted successfully
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: NodeBalancer not found
/nodebalancers/{nodeBalancerId}/configs:
get:
operationId: getNodeBalancerConfigs
summary: List configs
description: Returns a paginated list of configurations for a NodeBalancer.
tags:
- NodeBalancers
parameters:
- $ref: '#/components/parameters/nodeBalancerIdParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/pageSizeParam'
responses:
'200':
description: NodeBalancer configs retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedNodeBalancerConfigList'
'401':
description: Unauthorized - invalid or missing authentication
'404':
description: NodeBalancer not found
components:
parameters:
nodeBalancerIdParam:
name: nodeBalancerId
in: path
required: true
schema:
type: integer
description: The ID of the NodeBalancer.
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.
schemas:
NodeBalancerRequest:
type: object
required:
- region
properties:
region:
type: string
description: The region for the new NodeBalancer.
label:
type: string
minLength: 3
maxLength: 32
description: The label for the new NodeBalancer.
client_conn_throttle:
type: integer
minimum: 0
maximum: 20
description: Throttle connections per second.
tags:
type: array
items:
type: string
description: Tags for the new NodeBalancer.
NodeBalancer:
type: object
properties:
id:
type: integer
description: The unique ID of this NodeBalancer.
label:
type: string
description: The label for this NodeBalancer.
region:
type: string
description: The region where this NodeBalancer is located.
hostname:
type: string
description: The hostname for this NodeBalancer.
ipv4:
type: string
format: ipv4
description: The public IPv4 address of this NodeBalancer.
ipv6:
type: string
description: The public IPv6 address of this NodeBalancer.
client_conn_throttle:
type: integer
minimum: 0
maximum: 20
description: Throttle connections per second.
transfer:
type: object
properties:
in:
type: number
description: Inbound transfer in MB this month.
out:
type: number
description: Outbound transfer in MB this month.
total:
type: number
description: Total transfer in MB this month.
description: Transfer statistics for this NodeBalancer.
tags:
type: array
items:
type: string
description: Tags for this NodeBalancer.
created:
type: string
format: date-time
description: When this NodeBalancer was created.
updated:
type: string
format: date-time
description: When this NodeBalancer was last updated.
PaginatedNodeBalancerConfigList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: integer
port:
type: integer
protocol:
type: string
algorithm:
type: string
stickiness:
type: string
check:
type: string
NodeBalancerUpdateRequest:
type: object
properties:
label:
type: string
minLength: 3
maxLength: 32
description: The label for the NodeBalancer.
client_conn_throttle:
type: integer
minimum: 0
maximum: 20
description: Throttle connections per second.
tags:
type: array
items:
type: string
description: Tags for the NodeBalancer.
PaginatedNodeBalancerList:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/NodeBalancer'
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.
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