The http_api_debug WordPress PHP action fires after an HTTP API response is received and before the response is returned.
Usage
add_action('http_api_debug', 'my_custom_http_api_debug', 10, 5);
function my_custom_http_api_debug($response, $context, $class, $parsed_args, $url) {
    // your custom code here
}
Parameters
$response(array|WP_Error): HTTP response or WP_Error object.$context(string): Context under which the hook is fired.$class(string): HTTP transport used.$parsed_args(array): HTTP request arguments.$url(string): The request URL.
More information
See WordPress Developer Resources: http_api_debug
Examples
Log all API responses
Log all API responses to a custom log file.
add_action('http_api_debug', 'log_http_api_responses', 10, 5);
function log_http_api_responses($response, $context, $class, $parsed_args, $url) {
    // Create a log file
    $log_file = WP_CONTENT_DIR . '/debug-http-api.log';
    // Format log entry
    $log_entry = sprintf(
        "[%s] %s %s\n",
        date('Y-m-d H:i:s'),
        $url,
        json_encode($response)
    );
    // Append log entry to the log file
    file_put_contents($log_file, $log_entry, FILE_APPEND);
}
Email admin on specific API error
Send an email to the administrator when a specific API returns an error.
add_action('http_api_debug', 'email_admin_on_api_error', 10, 5);
function email_admin_on_api_error($response, $context, $class, $parsed_args, $url) {
    // Check if the response is an error and the URL matches the specific API
    if (is_wp_error($response) && strpos($url, 'https://api.example.com/') !== false) {
        // Send email to admin
        wp_mail(
            get_option('admin_email'),
            'API Error',
            'An error occurred while connecting to the Example API: ' . $response->get_error_message()
        );
    }
}
Modify response headers
Modify the Cache-Control header of a specific API response.
add_action('http_api_debug', 'modify_cache_control_header', 10, 5);
function modify_cache_control_header($response, $context, $class, $parsed_args, $url) {
    // Check if the URL matches the specific API
    if (strpos($url, 'https://api.example.com/') !== false) {
        // Modify Cache-Control header
        $response['headers']['Cache-Control'] = 'private, no-cache, no-store, max-age=0';
    }
}
Count successful API requests
Count the number of successful API requests made during a page load.
add_action('http_api_debug', 'count_successful_api_requests', 10, 5);
function count_successful_api_requests($response, $context, $class, $parsed_args, $url) {
    // Check if the response is not an error
    if (!is_wp_error($response)) {
        // Increment the counter
        $GLOBALS['successful_api_requests_count']++;
    }
}
Add a custom user agent to all API requests
Add a custom user agent to all outgoing API requests.
add_action('http_api_debug', 'add_custom_user_agent', 10, 5);
function add_custom_user_agent($response, $context, $class, $parsed_args, $url) {
    // Set custom user agent
    $parsed_args['headers']['User-Agent'] = 'My Custom User Agent';
    // Update the request arguments
    $response = wp_remote_request($url, $parsed_args);
}