Linode Phone number API

Operations to verify and delete the phone number associated with your user account, which is used to send SMS messages as a form of two-factor authentication (2FA).

Operations 3

POST /{apiVersion}/profile/phone-number Send a phone number verification code #
DELETE /{apiVersion}/profile/phone-number Delete a phone number #
POST /{apiVersion}/profile/phone-number/verify Verify a phone number #

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-phone-number-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-phone-number-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 Phone number API'
  version: 4.229.1
servers:
- url: https://api.linode.com
tags:
- description: Operations to verify and delete the phone number associated with your user account, which is used to send SMS messages as a form of two-factor authentication (2FA).
  name: Phone number
paths:
  /{apiVersion}/profile/phone-number:
    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/profile-phone.yaml
      path-info: /{apiVersion}/profile/phone-number
    x-linode-cli-command: phone
    post:
      description: 'Send a one-time verification code via SMS message to the submitted phone number. Providing your phone number helps ensure you can securely access your Account in case other ways to connect are lost. Your phone number is only used to verify your identity by sending an SMS message. Standard carrier messaging fees may apply.


        - By accessing this operation you are opting in to receive SMS messages. You can opt out of SMS messages by running the Delete a phone number operation after your phone number is verified.


        - Verification codes are valid for 10 minutes after they are sent.


        - Subsequent requests made prior to code expiration result in sending the same code.


        Once a verification code is received, verify your phone number with the Verify a phone number operation.


        **Permissions and scopes**


        To call this operation, you need the following:


        - **Identity and access permissions**. Your user needs a role with these permissions assigned. Learn more.

        - Permissions: `send_profile_phone_number_verification_code`

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


        - Scopes: `account:read_write`


        **CLI**


        ```shell

        linode-cli phone sms-code-send \

        --iso-code US \

        --phone-number 555-555-5555

        ```


        Learn more'
      externalDocs:
        description: See documentation for this operation in Akamai's Linode API
        url: https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number
      operationId: post-profile-phone-number
      requestBody:
        content:
          application/json:
            example:
              iso_code: US
              phone_number: 555-555-5555
            schema:
              additionalProperties: false
              properties:
                iso_code:
                  description: The two-letter [ISO 3166](https://www.iso.org/iso-3166-country-codes.html) country code for the phone number.
                  example: '{{iso_code}}'
                  type: string
                phone_number:
                  description: A valid phone number.
                  example: '{{phone_number}}'
                  format: phone
                  type: string
              required:
              - iso_code
              - phone_number
              type: object
              x-akamai:
                file-path: schemas/post-profile-phone-number.yaml
      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: Phone number verification code request successful.
        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:
        - account:read_write
      summary: Send a phone number verification code
      tags:
      - Phone number
      x-akamai:
        tabs:
        - syntax: "linode-cli phone sms-code-send \\\n  --iso-code US \\\n  --phone-number 555-555-5555"
          title: CLI
          url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
      x-linode-cli-action: sms-code-send
      x-linode-grant: read_write
      x-linode-iam:
      - permissions:
        - send_profile_phone_number_verification_code
    delete:
      description: 'Delete the verified phone number for the User making this request.


        Use this operation to opt out of SMS messages for the requesting User after a phone number has been verified with the Verify a phone number operation.


        **Permissions and scopes**


        To call this operation, you need the following:


        - **Identity and access permissions**. Your user needs a role with these permissions assigned. Learn more.

        - Permissions: `delete_profile_phone_number`

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


        - Scopes: `account:read_write`


        **CLI**


        ```shell

        linode-cli phone delete

        ```


        Learn more'
      externalDocs:
        description: See documentation for this operation in Akamai's Linode API
        url: https://techdocs.akamai.com/linode-api/reference/delete-profile-phone-number
      operationId: delete-profile-phone-number
      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: Phone number deletion request successful.
        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:
        - account:read_write
      summary: Delete a phone number
      tags:
      - Phone number
      x-akamai:
        tabs:
        - syntax: linode-cli phone delete
          title: CLI
          url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
      x-linode-cli-action: delete
      x-linode-grant: read_write
      x-linode-iam:
      - permissions:
        - delete_profile_phone_number
  /{apiVersion}/profile/phone-number/verify:
    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/profile-phone-verify.yaml
      path-info: /{apiVersion}/profile/phone-number/verify
    x-linode-cli-command: phone
    post:
      description: 'Verify a phone number by confirming the one-time code received via SMS message after running the Send a phone number verification code operation.


        - Verification codes are valid for 10 minutes after they are sent.


        - Only the same User that made the verification code request can use that code with this operation.


        Once completed, the verified phone number is assigned to the User making the request. To change the verified phone number for a User, first run the Delete a phone number operation, then begin the verification process again with the Send a phone number verification code operation.


        **Permissions and scopes**


        To call this operation, you need the following:


        - **Identity and access permissions**. Your user needs a role with these permissions assigned. Learn more.

        - Permissions: `verify_profile_phone_number`

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


        - Scopes: `account:read_write`


        **CLI**


        ```shell

        linode-cli phone verify \

        --otp_code 123456

        ```


        Learn more'
      externalDocs:
        description: See documentation for this operation in Akamai's Linode API
        url: https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number-verify
      operationId: post-profile-phone-number-verify
      requestBody:
        content:
          application/json:
            example:
              otp_code: '318745'
            schema:
              additionalProperties: false
              properties:
                otp_code:
                  description: The one-time code received via SMS message after running the [Send a phone number verification code](https://techdocs.akamai.com/linode-api/reference/post-profile-phone-number) operation.
                  example: '{{otp_code}}'
                  type: string
              required:
              - otp_code
              type: object
              x-akamai:
                file-path: schemas/post-profile-phone-number-verify.yaml
      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: Phone number verification successful.
        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:
        - account:read_write
      summary: Verify a phone number
      tags:
      - Phone number
      x-akamai:
        tabs:
        - syntax: "linode-cli phone verify \\\n  --otp_code 123456"
          title: CLI
          url: https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
      x-linode-cli-action: verify
      x-linode-grant: read_write
      x-linode-iam:
      - permissions:
        - verify_profile_phone_number
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