{"id":5662,"date":"2026-02-12T20:45:03","date_gmt":"2026-02-13T01:45:03","guid":{"rendered":"https:\/\/chubes.net\/?documentation=wordpress-http-api-functions"},"modified":"2026-03-13T03:28:35","modified_gmt":"2026-03-13T07:28:35","slug":"wordpress-http-api-functions","status":"publish","type":"documentation","link":"https:\/\/chubes.net\/docs\/wordpress-core\/http\/wordpress-http-api-functions\/","title":{"rendered":"WordPress HTTP API Functions"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Request Functions<\/h2><h3 class=\"wp-block-heading\">wp_remote_request()<\/h3><p>Performs an HTTP request and returns its response.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_request( string $url, array $args = array() ): array|WP_Error<\/code><\/pre><\/div><p><strong>Parameters:<\/strong><\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Type<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>$url<\/code><\/td><td>string<\/td><td>The request URL<\/td><\/tr><tr><td><code>$args<\/code><\/td><td>array<\/td><td>Request arguments (see below)<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Request Arguments:<\/strong><\/p><figure class=\"wp-block-table\"><table><thead><tr><th>Argument<\/th><th>Type<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>method<\/code><\/td><td>string<\/td><td><code>'GET'<\/code><\/td><td>HTTP method: GET, POST, HEAD, PUT, DELETE, TRACE, OPTIONS, PATCH<\/td><\/tr><tr><td><code>timeout<\/code><\/td><td>float<\/td><td><code>5<\/code><\/td><td>Connection timeout in seconds<\/td><\/tr><tr><td><code>redirection<\/code><\/td><td>int<\/td><td><code>5<\/code><\/td><td>Number of allowed redirects<\/td><\/tr><tr><td><code>httpversion<\/code><\/td><td>string<\/td><td><code>'1.0'<\/code><\/td><td>HTTP protocol version: &#8216;1.0&#8217; or &#8216;1.1&#8217;<\/td><\/tr><tr><td><code>user-agent<\/code><\/td><td>string<\/td><td>WordPress UA<\/td><td>User-Agent header value<\/td><\/tr><tr><td><code>reject_unsafe_urls<\/code><\/td><td>bool<\/td><td><code>false<\/code><\/td><td>Validate URL with <code>wp_http_validate_url()<\/code><\/td><\/tr><tr><td><code>blocking<\/code><\/td><td>bool<\/td><td><code>true<\/code><\/td><td>Wait for response<\/td><\/tr><tr><td><code>headers<\/code><\/td><td>array|string<\/td><td><code>[]<\/code><\/td><td>Request headers<\/td><\/tr><tr><td><code>cookies<\/code><\/td><td>array<\/td><td><code>[]<\/code><\/td><td>Cookies to send<\/td><\/tr><tr><td><code>body<\/code><\/td><td>string|array<\/td><td><code>null<\/code><\/td><td>Request body<\/td><\/tr><tr><td><code>compress<\/code><\/td><td>bool<\/td><td><code>false<\/code><\/td><td>Compress body when sending<\/td><\/tr><tr><td><code>decompress<\/code><\/td><td>bool<\/td><td><code>true<\/code><\/td><td>Decompress compressed responses<\/td><\/tr><tr><td><code>sslverify<\/code><\/td><td>bool<\/td><td><code>true<\/code><\/td><td>Verify SSL certificate<\/td><\/tr><tr><td><code>sslcertificates<\/code><\/td><td>string<\/td><td>CA bundle path<\/td><td>Path to SSL certificates<\/td><\/tr><tr><td><code>stream<\/code><\/td><td>bool<\/td><td><code>false<\/code><\/td><td>Stream response to file<\/td><\/tr><tr><td><code>filename<\/code><\/td><td>string<\/td><td><code>null<\/code><\/td><td>Filename for streamed response<\/td><\/tr><tr><td><code>limit_response_size<\/code><\/td><td>int<\/td><td><code>null<\/code><\/td><td>Max response size in bytes<\/td><\/tr><\/tbody><\/table><\/figure><p><strong>Returns:<\/strong> Array with response data or <code>WP_Error<\/code> on failure.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$response = wp_remote_request( &#039;https:\/\/api.example.com\/data&#039;, [\n    &#039;method&#039;  =&gt; &#039;PUT&#039;,\n    &#039;headers&#039; =&gt; [\n        &#039;Authorization&#039; =&gt; &#039;Bearer &#039; . $token,\n        &#039;Content-Type&#039;  =&gt; &#039;application\/json&#039;,\n    ],\n    &#039;body&#039;    =&gt; wp_json_encode( [ &#039;key&#039; =&gt; &#039;value&#039; ] ),\n    &#039;timeout&#039; =&gt; 30,\n] );\n\nif ( is_wp_error( $response ) ) {\n    echo &#039;Error: &#039; . $response-&gt;get_error_message();\n} else {\n    $body = wp_remote_retrieve_body( $response );\n    $data = json_decode( $body, true );\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_get()<\/h3><p>Performs an HTTP request using the GET method.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_get( string $url, array $args = array() ): array|WP_Error<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$response = wp_remote_get( &#039;https:\/\/api.example.com\/posts&#039; );\n\nif ( ! is_wp_error( $response ) &amp;&amp; 200 === wp_remote_retrieve_response_code( $response ) ) {\n    $posts = json_decode( wp_remote_retrieve_body( $response ), true );\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_post()<\/h3><p>Performs an HTTP request using the POST method.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_post( string $url, array $args = array() ): array|WP_Error<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$response = wp_remote_post( &#039;https:\/\/api.example.com\/submit&#039;, [\n    &#039;body&#039; =&gt; [\n        &#039;name&#039;  =&gt; &#039;John Doe&#039;,\n        &#039;email&#039; =&gt; &#039;john@example.com&#039;,\n    ],\n] );<\/code><\/pre><\/div><p><strong>Sending JSON:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$response = wp_remote_post( &#039;https:\/\/api.example.com\/data&#039;, [\n    &#039;headers&#039; =&gt; [\n        &#039;Content-Type&#039; =&gt; &#039;application\/json&#039;,\n    ],\n    &#039;body&#039; =&gt; wp_json_encode( [\n        &#039;title&#039;   =&gt; &#039;Hello World&#039;,\n        &#039;content&#039; =&gt; &#039;Post content here&#039;,\n    ] ),\n] );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_head()<\/h3><p>Performs an HTTP request using the HEAD method.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_head( string $url, array $args = array() ): array|WP_Error<\/code><\/pre><\/div><p><strong>Note:<\/strong> HEAD requests have <code>redirection<\/code> set to <code>0<\/code> by default.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Check if a resource exists without downloading it\n$response = wp_remote_head( &#039;https:\/\/example.com\/large-file.zip&#039; );\n\nif ( ! is_wp_error( $response ) ) {\n    $status = wp_remote_retrieve_response_code( $response );\n    $size   = wp_remote_retrieve_header( $response, &#039;content-length&#039; );\n    \n    if ( 200 === $status ) {\n        echo &quot;File exists, size: {$size} bytes&quot;;\n    }\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Safe Request Functions<\/h2><p>These functions validate URLs to prevent SSRF attacks. Use them when the URL comes from user input.<\/p><h3 class=\"wp-block-heading\">wp_safe_remote_request()<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_safe_remote_request( string $url, array $args = array() ): array|WP_Error<\/code><\/pre><\/div><p>Sets <code>reject_unsafe_urls<\/code> to <code>true<\/code> automatically.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Safe for user-provided URLs\n$user_url = sanitize_url( $_POST[&#039;webhook_url&#039;] );\n$response = wp_safe_remote_request( $user_url, [\n    &#039;method&#039; =&gt; &#039;POST&#039;,\n    &#039;body&#039;   =&gt; [ &#039;event&#039; =&gt; &#039;test&#039; ],\n] );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_safe_remote_get()<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_safe_remote_get( string $url, array $args = array() ): array|WP_Error<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Fetch user-provided feed URL safely\n$feed_url = sanitize_url( get_option( &#039;external_feed_url&#039; ) );\n$response = wp_safe_remote_get( $feed_url );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_safe_remote_post()<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_safe_remote_post( string $url, array $args = array() ): array|WP_Error<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_safe_remote_head()<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_safe_remote_head( string $url, array $args = array() ): array|WP_Error<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Response Retrieval Functions<\/h2><h3 class=\"wp-block-heading\">wp_remote_retrieve_headers()<\/h3><p>Retrieves headers from the response.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_retrieve_headers( array|WP_Error $response ): CaseInsensitiveDictionary|array<\/code><\/pre><\/div><p><strong>Returns:<\/strong> <code>CaseInsensitiveDictionary<\/code> (since 4.6.0) or empty array on error.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$headers = wp_remote_retrieve_headers( $response );\n\n\/\/ Access headers (case-insensitive)\necho $headers[&#039;content-type&#039;];\necho $headers[&#039;Content-Type&#039;];  \/\/ Same result\n\n\/\/ Iterate headers\nforeach ( $headers as $name =&gt; $value ) {\n    echo &quot;{$name}: {$value}n&quot;;\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_retrieve_header()<\/h3><p>Retrieves a single header by name.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_retrieve_header( array|WP_Error $response, string $header ): array|string<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Header value(s) or empty string if not found.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$content_type = wp_remote_retrieve_header( $response, &#039;content-type&#039; );\n$etag         = wp_remote_retrieve_header( $response, &#039;etag&#039; );\n\n\/\/ Multiple values returned as array\n$set_cookies = wp_remote_retrieve_header( $response, &#039;set-cookie&#039; );\nif ( is_array( $set_cookies ) ) {\n    foreach ( $set_cookies as $cookie ) {\n        \/\/ Process each Set-Cookie header\n    }\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_retrieve_response_code()<\/h3><p>Retrieves the HTTP status code.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_retrieve_response_code( array|WP_Error $response ): int|string<\/code><\/pre><\/div><p><strong>Returns:<\/strong> Status code as integer, or empty string on error.<\/p><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$code = wp_remote_retrieve_response_code( $response );\n\nswitch ( $code ) {\n    case 200:\n        \/\/ Success\n        break;\n    case 401:\n        \/\/ Unauthorized\n        break;\n    case 404:\n        \/\/ Not found\n        break;\n    case 500:\n        \/\/ Server error\n        break;\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_retrieve_response_message()<\/h3><p>Retrieves the response status message.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_retrieve_response_message( array|WP_Error $response ): string<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$message = wp_remote_retrieve_response_message( $response );\n\/\/ Returns: &quot;OK&quot;, &quot;Not Found&quot;, &quot;Internal Server Error&quot;, etc.<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_retrieve_body()<\/h3><p>Retrieves the response body.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_retrieve_body( array|WP_Error $response ): string<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$body = wp_remote_retrieve_body( $response );\n\n\/\/ Parse JSON\n$data = json_decode( $body, true );\nif ( json_last_error() === JSON_ERROR_NONE ) {\n    \/\/ Valid JSON\n}\n\n\/\/ Parse XML\n$xml = simplexml_load_string( $body );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_retrieve_cookies()<\/h3><p>Retrieves all cookies from the response.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_retrieve_cookies( array|WP_Error $response ): WP_Http_Cookie[]<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$cookies = wp_remote_retrieve_cookies( $response );\n\nforeach ( $cookies as $cookie ) {\n    printf(\n        &quot;Cookie: %s = %s (expires: %s)n&quot;,\n        $cookie-&gt;name,\n        $cookie-&gt;value,\n        $cookie-&gt;expires ? date( &#039;Y-m-d&#039;, $cookie-&gt;expires ) : &#039;session&#039;\n    );\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_retrieve_cookie()<\/h3><p>Retrieves a single cookie by name.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_retrieve_cookie( array|WP_Error $response, string $name ): WP_Http_Cookie|string<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$session = wp_remote_retrieve_cookie( $response, &#039;session_id&#039; );\n\nif ( $session instanceof WP_Http_Cookie ) {\n    echo &quot;Session: &quot; . $session-&gt;value;\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_remote_retrieve_cookie_value()<\/h3><p>Retrieves just the value of a cookie by name.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_remote_retrieve_cookie_value( array|WP_Error $response, string $name ): string<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$token = wp_remote_retrieve_cookie_value( $response, &#039;auth_token&#039; );\n\nif ( ! empty( $token ) ) {\n    \/\/ Use the token\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Utility Functions<\/h2><h3 class=\"wp-block-heading\">wp_http_supports()<\/h3><p>Checks if an HTTP transport supports specific capabilities.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_http_supports( array $capabilities = array(), string $url = null ): bool<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Check SSL support\nif ( wp_http_supports( [ &#039;ssl&#039; ] ) ) {\n    \/\/ HTTPS requests are supported\n}\n\n\/\/ Check specific URL\nif ( wp_http_supports( [], &#039;https:\/\/api.example.com&#039; ) ) {\n    \/\/ Can make requests to this URL\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_http_validate_url()<\/h3><p>Validates a URL as safe for HTTP API use.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_http_validate_url( string $url ): string|false<\/code><\/pre><\/div><p>Blocks:<\/p><ul class=\"wp-block-list\"><li>Non-HTTP(S) protocols<\/li><li>Malformed URLs<\/li><li>URLs with credentials<\/li><li>Private\/local IP addresses (unless filtered)<\/li><li>Non-standard ports (unless filtered)<\/li><\/ul><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$url = wp_http_validate_url( $_POST[&#039;url&#039;] );\n\nif ( false === $url ) {\n    wp_die( &#039;Invalid URL provided.&#039; );\n}<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">wp_parse_url()<\/h3><p>Wrapper for PHP&#8217;s <code>parse_url()<\/code> with consistent behavior.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">wp_parse_url( string $url, int $component = -1 ): mixed<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">$parts = wp_parse_url( &#039;https:\/\/user:pass@example.com:8080\/path?query=1#hash&#039; );\n\/\/ Returns: [\n\/\/     &#039;scheme&#039;   =&gt; &#039;https&#039;,\n\/\/     &#039;host&#039;     =&gt; &#039;example.com&#039;,\n\/\/     &#039;port&#039;     =&gt; 8080,\n\/\/     &#039;user&#039;     =&gt; &#039;user&#039;,\n\/\/     &#039;pass&#039;     =&gt; &#039;pass&#039;,\n\/\/     &#039;path&#039;     =&gt; &#039;\/path&#039;,\n\/\/     &#039;query&#039;    =&gt; &#039;query=1&#039;,\n\/\/     &#039;fragment&#039; =&gt; &#039;hash&#039;,\n\/\/ ]\n\n$host = wp_parse_url( $url, PHP_URL_HOST );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">CORS Functions<\/h2><h3 class=\"wp-block-heading\">get_http_origin()<\/h3><p>Gets the HTTP Origin of the current request.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">get_http_origin(): string<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">get_allowed_http_origins()<\/h3><p>Gets the list of allowed HTTP origins.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">get_allowed_http_origins(): string[]<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">is_allowed_http_origin()<\/h3><p>Checks if an origin is authorized.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">is_allowed_http_origin( string|null $origin = null ): string<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">send_origin_headers()<\/h3><p>Sends CORS headers if the request is from an allowed origin.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">send_origin_headers(): string|false<\/code><\/pre><\/div><p><strong>Example:<\/strong><\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ In a custom endpoint\nadd_action( &#039;init&#039;, function() {\n    if ( isset( $_GET[&#039;my_api&#039;] ) ) {\n        $origin = send_origin_headers();\n        \n        if ( $origin ) {\n            \/\/ CORS headers sent, proceed with response\n        }\n    }\n} );<\/code><\/pre><\/div><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Internal Functions<\/h2><h3 class=\"wp-block-heading\">_wp_http_get_object()<\/h3><p>Returns the singleton <code>WP_Http<\/code> instance.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">_wp_http_get_object(): WP_Http<\/code><\/pre><\/div><p><strong>Note:<\/strong> This is a private function intended for internal use.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">allowed_http_request_hosts()<\/h3><p>Filter callback that marks allowed redirect hosts as safe.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">allowed_http_request_hosts( bool $is_external, string $host ): bool<\/code><\/pre><\/div><p>Attached to <code>http_request_host_is_external<\/code> filter.<\/p><hr class=\"wp-block-separator\"\/><h3 class=\"wp-block-heading\">ms_allowed_http_request_hosts()<\/h3><p>Filter callback for multisite that allows domains in the network.<\/p><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">ms_allowed_http_request_hosts( bool $is_external, string $host ): bool<\/code><\/pre><\/div><p>Attached to <code>http_request_host_is_external<\/code> filter in multisite.<\/p><hr class=\"wp-block-separator\"\/><h2 class=\"wp-block-heading\">Complete Usage Examples<\/h2><h3 class=\"wp-block-heading\">Basic API Request<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function fetch_api_data( $endpoint ) {\n    $url = &#039;https:\/\/api.example.com\/&#039; . ltrim( $endpoint, &#039;\/&#039; );\n    \n    $response = wp_remote_get( $url, [\n        &#039;headers&#039; =&gt; [\n            &#039;Accept&#039; =&gt; &#039;application\/json&#039;,\n        ],\n        &#039;timeout&#039; =&gt; 15,\n    ] );\n    \n    if ( is_wp_error( $response ) ) {\n        return $response;\n    }\n    \n    $code = wp_remote_retrieve_response_code( $response );\n    \n    if ( 200 !== $code ) {\n        return new WP_Error(\n            &#039;api_error&#039;,\n            sprintf( &#039;API returned status %d&#039;, $code ),\n            [ &#039;status&#039; =&gt; $code ]\n        );\n    }\n    \n    $body = wp_remote_retrieve_body( $response );\n    return json_decode( $body, true );\n}<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">POST with Authentication<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function create_remote_resource( $data ) {\n    $response = wp_remote_post( &#039;https:\/\/api.example.com\/resources&#039;, [\n        &#039;headers&#039; =&gt; [\n            &#039;Authorization&#039; =&gt; &#039;Bearer &#039; . get_option( &#039;api_token&#039; ),\n            &#039;Content-Type&#039;  =&gt; &#039;application\/json&#039;,\n        ],\n        &#039;body&#039;    =&gt; wp_json_encode( $data ),\n        &#039;timeout&#039; =&gt; 30,\n    ] );\n    \n    if ( is_wp_error( $response ) ) {\n        error_log( &#039;API Error: &#039; . $response-&gt;get_error_message() );\n        return false;\n    }\n    \n    $code = wp_remote_retrieve_response_code( $response );\n    \n    if ( 201 === $code ) {\n        return json_decode( wp_remote_retrieve_body( $response ), true );\n    }\n    \n    return false;\n}<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">File Download with Streaming<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function download_file( $url, $destination ) {\n    $response = wp_remote_get( $url, [\n        &#039;stream&#039;   =&gt; true,\n        &#039;filename&#039; =&gt; $destination,\n        &#039;timeout&#039;  =&gt; 300, \/\/ 5 minutes for large files\n    ] );\n    \n    if ( is_wp_error( $response ) ) {\n        return $response;\n    }\n    \n    if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {\n        @unlink( $destination );\n        return new WP_Error( &#039;download_failed&#039;, &#039;Download failed&#039; );\n    }\n    \n    return $destination;\n}<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">Handling Cookies Across Requests<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function api_session_request( $endpoint, $cookies = [] ) {\n    $response = wp_remote_get( &#039;https:\/\/api.example.com\/&#039; . $endpoint, [\n        &#039;cookies&#039; =&gt; $cookies,\n    ] );\n    \n    if ( is_wp_error( $response ) ) {\n        return $response;\n    }\n    \n    \/\/ Get cookies for next request\n    $new_cookies = wp_remote_retrieve_cookies( $response );\n    \n    return [\n        &#039;data&#039;    =&gt; json_decode( wp_remote_retrieve_body( $response ), true ),\n        &#039;cookies&#039; =&gt; $new_cookies,\n    ];\n}\n\n\/\/ Usage\n$result = api_session_request( &#039;login&#039;, [] );\n$result = api_session_request( &#039;profile&#039;, $result[&#039;cookies&#039;] );<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">Caching with Transients<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">function get_cached_api_data( $cache_key, $url, $expiration = HOUR_IN_SECONDS ) {\n    $data = get_transient( $cache_key );\n    \n    if ( false !== $data ) {\n        return $data;\n    }\n    \n    $response = wp_remote_get( $url );\n    \n    if ( is_wp_error( $response ) ) {\n        return $response;\n    }\n    \n    if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {\n        return new WP_Error( &#039;api_error&#039;, &#039;Failed to fetch data&#039; );\n    }\n    \n    $data = json_decode( wp_remote_retrieve_body( $response ), true );\n    set_transient( $cache_key, $data, $expiration );\n    \n    return $data;\n}<\/code><\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Request Functions wp_remote_request() Performs an HTTP request and returns its response. wp_remote_request( string $url, array $args = array() ): array|WP_Error Parameters: Parameter Type Description $url string The request URL $args&#8230;<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"footnotes":""},"tags":[],"project":[630],"project_type":[749],"class_list":["post-5662","documentation","type-documentation","status-publish","hentry","project-http","project_type-wordpress-reference"],"project_info":{"id":589,"name":"WordPress Core","slug":"wordpress-core"},"project_type_info":{"id":749,"name":"WordPress Reference","slug":"wordpress-reference"},"_links":{"self":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5662","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation"}],"about":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/types\/documentation"}],"version-history":[{"count":17,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5662\/revisions"}],"predecessor-version":[{"id":10916,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5662\/revisions\/10916"}],"wp:attachment":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/media?parent=5662"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/tags?post=5662"},{"taxonomy":"project","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project?post=5662"},{"taxonomy":"project_type","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project_type?post=5662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}