{"id":15645,"date":"2023-11-07T11:04:44","date_gmt":"2023-11-07T05:34:44","guid":{"rendered":"https:\/\/opstree.com\/blog\/\/?p=15645"},"modified":"2026-03-05T17:45:09","modified_gmt":"2026-03-05T12:15:09","slug":"enabling-cors-on-azure-apim","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2023\/11\/07\/enabling-cors-on-azure-apim\/","title":{"rendered":"Enabling CORS on Azure APIM"},"content":{"rendered":"\r\n<p>You can set up cross-origin resource sharing (CORS) using the built-in CORS policy in Azure API Management or by adjusting the automatically available settings in the overview of the developer portal.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">What is Azure API Management?<\/h2>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\"><strong>Azure API Management<\/strong> is a comprehensive platform provided by Microsoft Azure that allows organizations to create, publish, secure, and analyze APIs. Whether you&#8217;re exposing APIs to external developers or managing internal APIs within your organization, Azure APIM simplifies the process and offers a range of features to ensure your APIs are both accessible and secure.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\"><strong>Key Features of Azure APIM:<\/strong><\/h3>\r\n\r\n\r\n\r\n<p>1. <strong>API Gateway<\/strong>: Azure APIM acts as a gateway between your APIs and consumers. It handles requests, routing, and caching, improving API performance and reliability.<\/p>\r\n\r\n\r\n\r\n<p>2.<strong> Security and Authentication<\/strong>: Secure your APIs with authentication, authorization, and OAuth support. Set up rate limiting and IP filtering to protect against abuse.<\/p>\r\n\r\n\r\n\r\n<p>3. <strong>Developer Portal<\/strong>: Provide a developer-friendly portal where external developers can discover and consume your APIs. Publish documentation, code samples, and interactive API testing tools.<\/p>\r\n\r\n\r\n\r\n<p><!--more--><\/p>\r\n\r\n\r\n\r\n<p>4. <strong>Analytics and Monitoring<\/strong>: Gain insights into API usage with detailed analytics and monitoring. Track performance, errors, and usage patterns to make data-driven decisions.<\/p>\r\n\r\n\r\n\r\n<p>5. <strong>Transformation and Composition<\/strong>: Modify API requests and responses on the fly with policies. Compose APIs by combining multiple backend services into a single API.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">Now we have to discuss about CORS error and how to enable CORS in the Azure API management service<\/h3>\r\n\r\n\r\n\r\n<h5 class=\"wp-block-heading\">Below error we face if CORS is not enabled in Azure APIM &#8211;<\/h5>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https:\/\/domain.com' is therefore not allowed access.<\/code><\/pre>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">Enabling Cross-Origin Resource Sharing (CORS) in Azure API Management (APIM) is essential for allowing web applications hosted on different domains to access your APIs securely. CORS configuration helps you define which origins are allowed to make requests to your APIs. In this blog post, we&#8217;ll guide you through the process of enabling CORS in Azure APIM.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\"><strong>What is CORS?<\/strong><\/h3>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">CORS is a security feature implemented by web browsers to prevent web pages from making requests to a different domain than the one that served the web page. When your API is hosted on a different domain than your web application, you need to configure CORS to allow requests from the web application&#8217;s domain.<\/p>\r\n\r\n\r\n\r\n<p>When I added the API in Azure API management service, the fronted request was blocked by CORS policy as below &#8211;<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"108\" class=\"wp-image-16259\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/11\/screenshot-2023-11-07-102826.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\"><strong>Enabling CORS in Azure API Management<\/strong>:<\/h3>\r\n\r\n\r\n\r\n<p>Follow the below steps to enable CORS in Azure API Management:-<\/p>\r\n\r\n\r\n\r\n<p><strong>Step 1<\/strong>: Sign in to the Azure Portal<\/p>\r\n\r\n\r\n\r\n<p>Log in to your Azure portal account: <a href=\"https:\/\/portal.azure.com\/\" target=\"_blank\" rel=\"noopener\">Azure Portal<\/a><\/p>\r\n\r\n\r\n\r\n<p><strong>Step 2<\/strong>: Open Your API Management Service<\/p>\r\n\r\n\r\n\r\n<p>In the Azure portal, navigate to your API Management service.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"219\" class=\"wp-image-16261\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/11\/screenshot-2023-11-07-103119.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p><strong>Step 3<\/strong>: Configure the CORS Policy<\/p>\r\n\r\n\r\n\r\n<p>In the left-hand menu of your API Management service, click on &#8220;APIs&#8221; to list your APIs.<\/p>\r\n\r\n\r\n\r\n<p>Select the API for which you want to enable CORS.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"743\" class=\"wp-image-16263\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/11\/screenshot-2023-11-07-103253.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>In the selected API, Click on all operations &#8211;&gt; then click on the Add policy tab inside the inbound processing rules, As below :<\/p>\r\n\r\n\r\n\r\n<p><em>Note:- make sure you have added policy on All operations so that the policy will be applicable on all operations of the selected API.<\/em><\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"383\" class=\"wp-image-16265\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/11\/screenshot-2023-11-07-103441.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>After clicking on the Add Policy button, Select the CORS policy<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"392\" class=\"wp-image-16266\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/11\/screenshot-2023-11-07-103614.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Fill in the details in CORS policy: In my case, I have selected &#8220;*&#8221;. Click the &#8220;Save&#8221; button to apply the CORS configuration.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"472\" class=\"wp-image-16267\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/11\/screenshot-2023-11-07-103759.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Step 4: Save and Publish Changes: After you Save the policy, the policy looks like as below &#8211;<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"354\" class=\"wp-image-16268\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/11\/screenshot-2023-11-07-103943.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p><em><strong>Note: Please make sure the CORS policy has to be added prior base policy<\/strong><\/em><\/p>\r\n\r\n\r\n\r\n<p>After configuring CORS, make sure to save your API Management configuration changes. If you&#8217;ve made other changes, don&#8217;t forget to publish them to make them active.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"313\" class=\"wp-image-16269\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2023\/11\/screenshot-2023-11-07-104055.png?w=800\" alt=\"\" \/><\/figure>\r\n\r\n\r\n\r\n<p>You can also add manually below xml code block\u00a0 in the inbound processing rule &#8211;<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>        &lt;cors allow-credentials=\"false\"&gt;\r\n            &lt;allowed-origins&gt;\r\n                &lt;origin&gt;*&lt;\/origin&gt;\r\n            &lt;\/allowed-origins&gt;\r\n            &lt;allowed-methods preflight-result-max-age=\"300\"&gt;\r\n                &lt;method&gt;*&lt;\/method&gt;\r\n            &lt;\/allowed-methods&gt;\r\n            &lt;allowed-headers&gt;\r\n                &lt;header&gt;*&lt;\/header&gt;\r\n            &lt;\/allowed-headers&gt;\r\n            &lt;expose-headers&gt;\r\n                &lt;header&gt;*&lt;\/header&gt;\r\n            &lt;\/expose-headers&gt;\r\n        &lt;\/cors&gt;\r\n        &lt;base \/&gt;<\/code><\/pre>\r\n\r\n\r\n\r\n<p><strong>Step 5<\/strong>: Test CORS Configuration<\/p>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">To ensure that CORS is correctly configured, test your API from a web application hosted on one of the allowed domains. You should now be able to make cross-origin requests to your API without encountering CORS issues.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">Conclusion:<\/h2>\r\n\r\n\r\n\r\n<p class=\"has-text-align-justify\">Enabling Cross-Origin Resource Sharing (CORS) on Azure API Management Service is a crucial step in ensuring that your APIs can be securely accessed by client applications from different domains. By following the steps in this blog, you can enhance the security and accessibility of your APIs, making them more user-friendly and developer-friendly while maintaining robust security measures<\/p>\r\n\r\n\r\n\r\n<p><strong>Blog Pundits: \u00a0<strong><a href=\"https:\/\/www.linkedin.com\/in\/mehul-sharma-devops\/\" target=\"_blank\" rel=\"noreferrer noopener\">Mehul Sharma<\/a><\/strong> and <a href=\"https:\/\/opstree.com\/blog\/\/author\/sandeep7c51ad81ba\/\" target=\"_blank\" rel=\"noreferrer noopener\">Sandeep Rawat<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p><strong>OpsTree is an End-to-End <a href=\"https:\/\/opstree.com\/services\/\" target=\"_blank\" rel=\"noreferrer noopener\">DevOps Solution<\/a> Provider.<\/strong><\/p>\r\n\r\n\r\n\r\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\r\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/opstree.com\/contact-us\/?utm_source=WordPress&amp;utm_medium=Blog&amp;utm_campaign=My+learning+in+Migration+of+MySQL+from+5.7+to+8.0\" target=\"_blank\" rel=\"noreferrer noopener\">Contact Us<\/a><\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<p class=\"has-text-align-center\"><strong>Connect with Us<\/strong><\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-social-links aligncenter is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-1 wp-block-social-links-is-layout-flex\"><li class=\"wp-social-link wp-social-link-linkedin  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.linkedin.com\/company\/opstree-solutions\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">LinkedIn<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-youtube  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.youtube.com\/channel\/UCeLma6SpNYH7jjYKSBNSexw\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">YouTube<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-github  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/OpsTree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">GitHub<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-facebook  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/www.facebook.com\/opstree\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Facebook<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-medium  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/medium.com\/buildpiper\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20.962,7.257l-5.457,8.867l-3.923-6.375l3.126-5.08c0.112-0.182,0.319-0.286,0.527-0.286c0.05,0,0.1,0.008,0.149,0.02 c0.039,0.01,0.078,0.023,0.114,0.041l5.43,2.715l0.006,0.003c0.004,0.002,0.007,0.006,0.011,0.008 C20.971,7.191,20.98,7.227,20.962,7.257z M9.86,8.592v5.783l5.14,2.57L9.86,8.592z M15.772,17.331l4.231,2.115 C20.554,19.721,21,19.529,21,19.016V8.835L15.772,17.331z M8.968,7.178L3.665,4.527C3.569,4.479,3.478,4.456,3.395,4.456 C3.163,4.456,3,4.636,3,4.938v11.45c0,0.306,0.224,0.669,0.498,0.806l4.671,2.335c0.12,0.06,0.234,0.088,0.337,0.088 c0.29,0,0.494-0.225,0.494-0.602V7.231C9,7.208,8.988,7.188,8.968,7.178z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Medium<\/span><\/a><\/li>\r\n\r\n<li class=\"wp-social-link wp-social-link-twitter  wp-block-social-link\"><a rel=\"noopener nofollow\" target=\"_blank\" href=\"https:\/\/twitter.com\/opstreedevops\" class=\"wp-block-social-link-anchor\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z\"><\/path><\/svg><span class=\"wp-block-social-link-label screen-reader-text\">Twitter<\/span><\/a><\/li><\/ul>\r\n","protected":false},"excerpt":{"rendered":"<p>You can set up cross-origin resource sharing (CORS) using the built-in CORS policy in Azure API Management or by adjusting the automatically available settings in the overview of the developer portal. What is Azure API Management? Azure API Management is a comprehensive platform provided by Microsoft Azure that allows organizations to create, publish, secure, and &hellip; <a href=\"https:\/\/opstree.com\/blog\/2023\/11\/07\/enabling-cors-on-azure-apim\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Enabling CORS on Azure APIM&#8221;<\/span><\/a><\/p>\n","protected":false},"author":233730519,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":true,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[28070474],"tags":[4276,44070,335778,768739308,676319247,4996032],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-44l","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/15645"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/233730519"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=15645"}],"version-history":[{"count":27,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/15645\/revisions"}],"predecessor-version":[{"id":30903,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/15645\/revisions\/30903"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=15645"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=15645"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=15645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}