LinuxCommandLibrary

ibmcloud-api

Call IBM Cloud APIs directly

TLDR

View the current API endpoint

$ ibmcloud api
copy

Set the API endpoint to cloud.ibm.com
$ ibmcloud api cloud.ibm.com
copy

Set a private API endpoint
$ ibmcloud api private.cloud.ibm.com
copy

Use a VPC connection for a private endpoint
$ ibmcloud api private.cloud.ibm.com --vpc
copy

Bypass SSL validation of HTTP requests
$ ibmcloud api https://cloud.ibm.com --skip-ssl-validation
copy

Remove the API endpoint setting
$ ibmcloud api --unset
copy

SYNOPSIS

ibmcloud call TARGET_URL [-m METHOD] [-H HEADER] [-d DATA] [--output FORMAT] [--check-status] [--include-headers]

PARAMETERS

TARGET_URL
    The full URL of the API endpoint to which the request will be sent. This can be any valid IBM Cloud API endpoint.

-m METHOD
    Specifies the HTTP method to use for the request (e.g., GET, POST, PUT, DELETE). If omitted, GET is the default.

-H HEADER
    Adds a custom HTTP header to the request. This option can be specified multiple times for different headers. Format: "Name:Value".

-d DATA
    Provides the request body or data to be sent with the request. For JSON, ensure the data is properly escaped or enclosed in single quotes, e.g., '{ "key": "value" }'.

--output FORMAT
    Defines the desired output format for the API response. Common formats include JSON or TEXT.

--check-status
    If specified, the command will check for non-2xx HTTP status codes in the API response and exit with an error if found.

--include-headers
    Includes the HTTP response headers in the command's output, useful for debugging or detailed analysis.

DESCRIPTION

The command ibmcloud-api itself is not a direct or standalone command within the standard IBM Cloud Command Line Interface (CLI). However, the ibmcloud CLI provides comprehensive capabilities for interacting with IBM Cloud APIs. The most direct and versatile method to make raw HTTP requests to any IBM Cloud API endpoint via the CLI is using the ibmcloud call command.

This command allows users to specify the target URL, HTTP method (e.g., GET, POST), custom headers, and the request body. It's an indispensable tool for developers and administrators needing fine-grained control over API interactions, enabling rapid prototyping, testing, and automation of tasks that may not be fully covered by specific ibmcloud service commands. The ibmcloud call command automatically handles authentication by leveraging the current ibmcloud login session's credentials, simplifying the process of interacting with secured IBM Cloud services.

CAVEATS

The specific command ibmcloud-api does not exist as a direct subcommand or standalone executable in the IBM Cloud CLI. This analysis is based on the ibmcloud call command, which provides the primary means of direct API interaction. Users must be successfully logged into the IBM Cloud CLI via ibmcloud login for authentication credentials to be automatically applied to API calls. The TARGET_URL must be a valid and accessible IBM Cloud API endpoint.

IBM CLOUD CLI <B>CLOUD-API</B> PLUGIN

While ibmcloud-api is not a direct command, an official plugin named cloud-api exists for the IBM Cloud CLI. This plugin can be installed using ibmcloud plugin install cloud-api. Once installed, it provides a set of specialized commands (prefixed with ibmcloud cloud-api) designed for querying and interacting with the IBM Cloud API Catalog and specific API endpoints. It often offers a more structured way to discover and invoke APIs compared to the raw HTTP requests made by ibmcloud call, by abstracting some of the underlying API details.

HISTORY

The IBM Cloud CLI has undergone continuous development, evolving from earlier CLI tools to its current comprehensive form. The ibmcloud call command was introduced to offer developers and administrators a powerful, generic mechanism for direct interaction with the vast and expanding ecosystem of IBM Cloud APIs. It addresses the need for flexibility, allowing users to quickly prototype, debug, and automate tasks involving new or niche API endpoints without needing to write dedicated programming scripts or manually manage API tokens.

SEE ALSO

ibmcloud(1), curl(1), jq(1)

Copied to clipboard