Linode IPv4 addresses API

The IPv4 addresses API from Linode — 2 operation(s) for ipv4 addresses.

Business capability
IT Infrastructure Management BC-600.50

Operations 2

POST /{apiVersion}/networking/ipv4/assign Assign IPv4s to Linodes #
POST /{apiVersion}/networking/ipv4/share Configure IPv4 sharing #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/linode:linode-ipv4-addresses-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

linode-ipv4-addresses-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Add a Cloud Computing instance so you can build, release, and scale applications faster with virtual machines.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  title: 'Akamai: Linode IPv4 addresses API'
  version: 4.229.1
servers:
- url: https://api.linode.com
tags:
- name: IPv4 addresses
paths:
  /{apiVersion}/networking/ipv4/assign:
    parameters:
    - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.
      example: '{{apiVersion}}'
      in: path
      name: apiVersion
      required: true
      schema:
        enum:
        - v4
        - v4beta
        example: v4
        type: string
      x-akamai:
        file-path: parameters/api-version-path.yaml
    x-akamai:
      file-path: paths/ipv4-assign.yaml
      path-info: /{apiVersion}/networking/ipv4/assign
    x-linode-cli-command: networking
    post:
      description: 'This operation is equivalent to Assign IP addresses.


        Assign multiple IPv4 addresses and/or IPv6 ranges to multiple Linodes in one Region. This allows swapping, shuffling, or otherwise reorganizing IPs to your Linodes.


        The following restrictions apply:


        - All Linodes involved must have at least one public IPv4 address after assignment.

        - For Linode interfaces, the Linode needs to have a public interface, and the address it receives can''t be a private IPv4 address.

        - Linodes may have no more than one assigned private IPv4 address.

        - Linodes may have no more than one assigned IPv6 range.


        Open a support ticket to request additional IPv4 addresses or IPv6 ranges beyond standard account limits.


        > 📘

        >

        > Removing an IP address that has been set as a Managed Linode''s `ssh.ip` causes the Managed Linode''s SSH access settings to reset to their default values.


        To view and configure Managed Linode SSH settings, use the following operations:

        - Get a Linode''s managed settings

        - Update a Linode''s managed settings


        **Permissions and scopes**


        To call this operation, you need the following:


        - **OAuth scopes**. Your user needs these scopes assigned. Learn more.


        - Scopes: `ips:read_write, linodes:read_write`'
      externalDocs:
        description: See documentation for this operation in Akamai's Linode API
        url: https://techdocs.akamai.com/linode-api/reference/post-assign-ipv4s
      operationId: post-assign-ipv4s
      requestBody:
        content:
          application/json:
            example:
              assignments:
              - address: 192.0.2.1
                linode_id: 123
              region: us-east
            schema:
              additionalProperties: false
              description: Request object for IP Addresses Assign (POST /networking/ips/assign).
              properties:
                assignments:
                  description: The list of assignments to make. You must have read_write access to all IPs being assigned and all Linodes being assigned to in order for the assignments to succeed.
                  items:
                    additionalProperties: false
                    properties:
                      address:
                        description: 'The IPv4 address or IPv6 range for this assignment.


                          - Must be an IPv4 address or an IPv6 range you can access in the region specified.

                          - IPv6 ranges must include a prefix length of `/56` or `/64`, for example: `2001:db8:3c4d:15::/64`.

                          - Assignment of an IPv6 range to a Linode updates the route target of the range to the assigned Linode''s SLAAC address.

                          - Can be a public or private address.

                          - For Linode interfaces, public IPv4 addresses or public IPv6 ranges can be exchanged on public interfaces. Private IPv4 addresses are not supported.'
                        example: 192.0.2.1
                        format: ipv4|ipv6/prefix_length
                        type: string
                      linode_id:
                        description: 'The ID of the Linode to assign this address to.


                          - If the address is currently assigned to another Linode, that Linode will lose the address.

                          - If the address is an unassigned reserved IP, it will be moved from your account''s unassigned pool to the target Linode.

                          - All Linodes involved must end up with at least one public address and no more than one private address once all assignments have been made.'
                        example: 123
                        type: integer
                    required:
                    - address
                    - linode_id
                    type: object
                  type: array
                region:
                  description: The ID of the region in which these assignments are to take place. All IPs and Linodes must exist in this region.
                  example: '{{region}}'
                  type: string
              required:
              - region
              - assignments
              type: object
              x-akamai:
                file-path: schemas/ip-addresses-assign-request.yaml
        required: true
      responses:
        '200':
          content:
            application/json:
              example: {}
              schema:
                description: The API responds with an empty object.
                maxProperties: 0
                type: object
                x-akamai:
                  file-path: schemas/added-empty-obj.yaml
          description: All assignments completed successfully.
        default:
          content:
            application/json:
              example:
                errors:
                - reason: Invalid JSON
              schema:
                additionalProperties: false
                properties:
                  errors:
                    description: Any warnings associated with a response.
                    items:
                      additionalProperties: false
                      description: An object for describing a single error that occurred during the processing of a request.
                      properties:
                        field:
                          description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.
                          example: fieldname
                          type: string
                        reason:
                          description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.
                          example: fieldname must be a valid value
                          type: string
                      type: object
                      x-akamai:
                        file-path: schemas/error-object.yaml
                    type: array
                type: object
          description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes.
      security:
      - personalAccessToken: []
      - oauth:
        - ips:read_write
        - linodes:read_write
      summary: Assign IPv4s to Linodes
      tags:
      - IPv4 addresses
      x-akamai:
        tabs:
        - syntax: 'ips:read_write

            linodes:read_write'
          title: OAuth scopes
          url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
      x-linode-cli-skip: true
      x-linode-grant: read_write
  /{apiVersion}/networking/ipv4/share:
    parameters:
    - description: __Enum__ Call either the `v4` URL, or `v4beta` for operations still in Beta.
      example: '{{apiVersion}}'
      in: path
      name: apiVersion
      required: true
      schema:
        enum:
        - v4
        - v4beta
        example: v4
        type: string
      x-akamai:
        file-path: parameters/api-version-path.yaml
    x-akamai:
      file-path: paths/ipv4-share.yaml
      path-info: /{apiVersion}/networking/ipv4/share
    x-linode-cli-command: networking
    post:
      description: 'This operation is equivalent to Share IP addresses.


        Configure shared IPs.


        IP sharing allows IP address reassignment (also referred to as IP failover) from one Linode to another if the primary Linode becomes unresponsive. This means that requests to the primary Linode''s IP address can be automatically rerouted to secondary Linodes at the configured shared IP addresses.


        IP failover requires configuration of a BGP based failover service within the internal system of the primary Linode.


        > 📘

        >

        > A public IPv4 address can''t be shared if it''s configured for a 1:1 NAT on a legacy configuration profile VPC interface or on a Linode VPC interface.


        **Permissions and scopes**


        To call this operation, you need the following:


        - **OAuth scopes**. Your user needs these scopes assigned. Learn more.


        - Scopes: `ips:read_write, linodes:read_write`'
      externalDocs:
        description: See documentation for this operation in Akamai's Linode API
        url: https://techdocs.akamai.com/linode-api/reference/post-share-ipv4s
      operationId: post-share-ipv4s
      requestBody:
        content:
          application/json:
            example:
              ips:
              - 192.0.2.1
              linode_id: 123
            schema:
              additionalProperties: false
              description: A request object IP Addresses Share (POST /networking/ips/share).
              properties:
                ips:
                  description: 'A list of secondary Linode IPs to share with the primary Linode.


                    - Can include both IPv4 addresses and IPv6 ranges (omit /56 and /64 prefix lengths)

                    - Can include both private and public IPv4 addresses.

                    - You must have access to all of these addresses and they must be in the same Region as the primary Linode.

                    - Enter an empty array to remove all shared IP addresses.'
                  example:
                  - 192.0.2.1
                  - '2001:db8:3c4d:15::'
                  items:
                    format: ip
                    type: string
                  type: array
                linode_id:
                  description: The ID of the primary Linode that the addresses will be shared with.
                  example: '{{linode_id}}'
                  type: integer
              required:
              - linode_id
              - ips
              type: object
              x-akamai:
                file-path: schemas/ip-addresses-share-request.yaml
        required: true
      responses:
        '200':
          content:
            application/json:
              example: {}
              schema:
                description: The API responds with an empty object.
                maxProperties: 0
                type: object
                x-akamai:
                  file-path: schemas/added-empty-obj.yaml
          description: Sharing configured successfully.
        default:
          content:
            application/json:
              example:
                errors:
                - reason: Invalid JSON
              schema:
                additionalProperties: false
                properties:
                  errors:
                    description: Any warnings associated with a response.
                    items:
                      additionalProperties: false
                      description: An object for describing a single error that occurred during the processing of a request.
                      properties:
                        field:
                          description: The field in the request that caused this error. This may be a path, separated by periods in the case of nested fields. In some cases this may come back as `null` if the error is not specific to any single element of the request.
                          example: fieldname
                          type: string
                        reason:
                          description: What happened to cause this error. In most cases, this can be fixed immediately by changing the data you sent in the request, but in some cases you will be instructed to [Open a support ticket](https://techdocs.akamai.com/linode-api/reference/post-ticket) or perform some other action before you can complete the request successfully.
                          example: fieldname must be a valid value
                          type: string
                      type: object
                      x-akamai:
                        file-path: schemas/error-object.yaml
                    type: array
                type: object
          description: See [Errors](https://techdocs.akamai.com/linode-api/reference/errors) for the range of possible error response codes.
      security:
      - personalAccessToken: []
      - oauth:
        - ips:read_write
        - linodes:read_write
      summary: Configure IPv4 sharing
      tags:
      - IPv4 addresses
      x-akamai:
        tabs:
        - syntax: 'ips:read_write

            linodes:read_write'
          title: OAuth scopes
          url: https://techdocs.akamai.com/linode-api/reference/get-started#oauth
      x-linode-cli-skip: true
      x-linode-grant: read_write
components:
  securitySchemes:
    oauth:
      flows:
        authorizationCode:
          authorizationUrl: https://login.linode.com/oauth/authorize
          scopes:
            account:read_only: Allows access to GET information about your account.
            account:read_write: Allows access to all endpoints related to your account.
            child_account:read_only: Allows access to GET information about deprecated parent/child operations.
            child_account:read_write: Allows access to deprecated parent/child operations.
            databases:read_only: Allows access to GET information about databases.
            databases:read_write: Allows access to all endpoints related to databases.
            domains:read_only: Allows access to GET Domains on your account.
            domains:read_write: Allows access to all Domain endpoints.
            events:read_only: Allows access to GET your Events.
            events:read_write: Allows access to all endpoints related to your Events.
            firewall:read_only: Allows access to GET information about your Firewalls.
            firewall:read_write: Allows access to all Firewall endpoints.
            images:read_only: Allows access to GET your Images.
            images:read_write: Allows access to all endpoints related to your Images.
            ips:read_only: Allows access to GET your ips.
            ips:read_write: Allows access to all endpoints related to your ips.
            linodes:read_only: Allows access to GET Linodes on your account.
            linodes:read_write: Allow access to all endpoints related to your Linodes.
            lke:read_only: Allows access to GET LKE Clusters on your account.
            lke:read_write: Allows access to all endpoints related to LKE Clusters on your account.
            longview:read_only: Allows access to GET your Longview Clients.
            longview:read_write: Allows access to all endpoints related to your Longview Clients.
            monitor:read_only: Allows access to Monitor (Akamai Cloud Pulse) data.
            monitor:read_write: Allows access to GET Monitor (Akamai Cloud Pulse) data.
            nodebalancers:read_only: Allows access to GET NodeBalancers on your account.
            nodebalancers:read_write: Allows access to all NodeBalancer endpoints.
            object_storage:read_only: Allows access to GET information related to your Object Storage.
            object_storage:read_write: Allows access to all Object Storage endpoints.
            stackscripts:read_only: Allows access to GET your StackScripts.
            stackscripts:read_write: Allows access to all endpoints related to your StackScripts.
            volumes:read_only: Allows access to GET your Volumes.
            volumes:read_write: Allows access to all endpoints related to your Volumes.
            vpc:read_write: Allows access to all endpoints related to VPC and Subnet creation, updating, and deletion.
          tokenUrl: https://login.linode.com/oauth/token
      type: oauth2
    personalAccessToken:
      scheme: bearer
      type: http
externalDocs:
  description: See documentation for Akamai's Linode API
  url: https://techdocs.akamai.com/linode-api/reference
x-readme:
  explorer-enabled: false
  samples-languages:
  - curl
  - python
  - node