{"id":615,"date":"2026-01-18T16:47:44","date_gmt":"2026-01-18T16:47:44","guid":{"rendered":"https:\/\/radar.kubebuddy.io\/?page_id=615"},"modified":"2026-01-27T16:13:25","modified_gmt":"2026-01-27T16:13:25","slug":"api","status":"publish","type":"page","link":"https:\/\/radar.kubebuddy.io\/docs\/api\/","title":{"rendered":"api"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"utf-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <title>KubeBuddy Radar API<\/title>\n  <link rel=\"stylesheet\" href=\"\/wp-content\/plugins\/kubebuddy-radar-plugin\/assets\/radar.css\">\n  <link rel=\"stylesheet\" href=\"\/wp-content\/plugins\/kubebuddy-radar-plugin\/assets\/docs.css?v=5\">\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/prism.min.js\"><\/script>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/components\/prism-bash.min.js\"><\/script>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/components\/prism-json.min.js\"><\/script>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/components\/prism-python.min.js\"><\/script>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/components\/prism-powershell.min.js\"><\/script>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/prism\/1.29.0\/components\/prism-javascript.min.js\"><\/script>\n<\/head>\n<body>\n  <div class=\"kb-docs-page\">\n    <div class=\"kb-docs-hero\">\n      <a class=\"kb-docs-back\" href=\"\/docs\/\">\u2190 Back to Docs<\/a>\n      <h1>KubeBuddy Radar API<\/h1>\n      <p>Track releases and automate your DevOps workflows with the KubeBuddy Radar API.<\/p>\n    <\/div>\n\n    <div class=\"kb-docs-content\">\n      <div class=\"kb-docs-layout\">\n        <aside class=\"kb-docs-toc\">\n          <h3>On this page<\/h3>\n          <div class=\"kb-docs-toc-links\">\n            <a href=\"#base-url\">Base URL<\/a>\n            <a href=\"#auth\">Authentication<\/a>\n            <a href=\"#response-format\">Response format<\/a>\n            <a href=\"#endpoint-matrix\">Endpoint matrix<\/a>\n            <a href=\"#endpoint-details\">Endpoint details<\/a>\n            <a href=\"#api-key-management\">API key management<\/a>\n            <a href=\"#best-practices\">Best practices<\/a>\n            <a href=\"#errors\">Errors<\/a>\n            <a href=\"#examples\">Quick examples<\/a>\n            <a href=\"#faq\">FAQ<\/a>\n            <a href=\"#help\">Need help<\/a>\n          <\/div>\n        <\/aside>\n        <div>\n      <section id=\"base-url\" class=\"kb-docs-section\">\n        <div class=\"kb-docs-callout kb-docs-callout-info\">\n          <h2>Base URL<\/h2>\n          <code>https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1<\/code>\n        <\/div>\n      <\/section>\n\n      <section id=\"auth\" class=\"kb-docs-section\">\n        <h2>Authentication<\/h2>\n        <p>All endpoints require authentication. Use HTTP Basic Auth for API clients, or a logged-in browser session.<\/p>\n        <ul>\n          <li>Go to Account -&gt; Developer API Access<\/li>\n          <li>Create a key and copy it (shown once)<\/li>\n          <li>Keys are WordPress Application Passwords tied to your user<\/li>\n          <li>Use your WordPress username + the generated key<\/li>\n        <\/ul>\n        <p>Example header:<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"auth-header\">Copy<\/button>\n          <pre id=\"auth-header\"><code class=\"language-bash\">Authorization: Basic base64(username:app_password)<\/code><\/pre>\n        <\/div>\n      <\/section>\n\n      <section id=\"response-format\" class=\"kb-docs-section\">\n        <h2>How responses are formatted<\/h2>\n        <p>Most responses include a <code>success<\/code> flag and a payload object or list.<\/p>\n        <p>Examples below are illustrative; fields may grow over time.<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"response-format\">Copy<\/button>\n          <pre id=\"response-format\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"example\": \"value\"\n  }\n}<\/code><\/pre>\n        <\/div>\n      <\/section>\n\n      <section id=\"endpoint-matrix\" class=\"kb-docs-section\">\n        <h2>Endpoint matrix<\/h2>\n        \n        <h3>Catalog Endpoints (Auth Required)<\/h3>\n        <p>Requires authentication via browser session or API key. Responses are cached server-side for performance.<\/p>\n        <table class=\"kb-docs-table\">\n          <thead>\n            <tr>\n              <th>Endpoint<\/th>\n              <th>Purpose<\/th>\n              <th>Access<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody>\n            <tr>\n              <td><code>GET \/projects<\/code><\/td>\n              <td>List projects (paginated, optional full releases)<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Auth required<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><code>GET \/projects\/{id}<\/code><\/td>\n              <td>Single project with full release history<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Auth required<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><code>GET \/projects\/{id}\/releases<\/code><\/td>\n              <td>Paginated releases for a project<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Auth required<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><code>GET \/stats<\/code><\/td>\n              <td>Global statistics and totals<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Auth required<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><code>GET \/recent-releases<\/code><\/td>\n              <td>Recent release highlights<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Auth required<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><code>GET \/popular-projects<\/code><\/td>\n              <td>Most followed projects<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Auth required<\/span><\/td>\n            <\/tr>\n          <\/tbody>\n        <\/table>\n\n        <h3>User Data Endpoints<\/h3>\n        <p>Authentication required. These endpoints return personalized data for the authenticated user.<\/p>\n        <table class=\"kb-docs-table\">\n          <thead>\n            <tr>\n              <th>Endpoint<\/th>\n              <th>Purpose<\/th>\n              <th>Auth<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody>\n            <tr>\n              <td><code>GET \/subscriptions<\/code><\/td>\n              <td>Your tracked projects<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Required<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><code>GET \/feed<\/code><\/td>\n              <td>Release feed from your subscriptions<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Required<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><code>GET \/dashboard<\/code><\/td>\n              <td>Account metadata and plan info<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Required<\/span><\/td>\n            <\/tr>\n          <\/tbody>\n        <\/table>\n\n        <h3>Account Management Endpoints<\/h3>\n        <p>Authentication required. Manage API keys and access credentials. <strong>Requires Pro or Pro Plus plan.<\/strong><\/p>\n        <div class=\"kb-docs-callout kb-docs-callout-warning\">\n          <strong>&#x26a0;&#xfe0f; Security Notice:<\/strong> These endpoints manage authentication credentials. Only use over HTTPS. Keys are shown once at creation. Rotate regularly and revoke unused keys.\n        <\/div>\n        <table class=\"kb-docs-table\">\n          <thead>\n            <tr>\n              <th>Endpoint<\/th>\n              <th>Purpose<\/th>\n              <th>Auth<\/th>\n            <\/tr>\n          <\/thead>\n          <tbody>\n            <tr>\n              <td><code>GET \/api-keys<\/code><\/td>\n              <td>List your application passwords<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Required<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><code>POST \/api-keys<\/code><\/td>\n              <td>Create new application password<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Required<\/span><\/td>\n            <\/tr>\n            <tr>\n              <td><code>DELETE \/api-keys\/{uuid}<\/code><\/td>\n              <td>Revoke application password<\/td>\n              <td><span class=\"kb-docs-tag kb-docs-tag-auth\">Required<\/span><\/td>\n            <\/tr>\n          <\/tbody>\n        <\/table>\n      <\/section>\n\n      <section id=\"endpoint-details\" class=\"kb-docs-section\">\n        <h2>Endpoint details<\/h2>\n        <h3>GET \/projects<\/h3>\n        <p>List all projects with pagination support.<\/p>\n        <p>Use this when you need a catalog to browse or index projects in your own UI. Returns basic project metadata by default, or full release history with <code>include_releases=true<\/code>. Supports search and CNCF status filtering.<\/p>\n        <p><strong>Query params<\/strong>:<\/p>\n        <ul>\n          <li><code>page<\/code> (integer, default 1) &#8211; Page number for pagination<\/li>\n          <li><code>per_page<\/code> (integer, default 20, max 100) &#8211; Results per page<\/li>\n          <li><code>search<\/code> (string, optional) &#8211; Search term for project name, description, category, or repo URL<\/li>\n          <li><code>cncf_status<\/code> (string, optional) &#8211; Filter by CNCF maturity: &#8220;graduated&#8221;, &#8220;incubating&#8221;, &#8220;sandbox&#8221;, or &#8220;open-source&#8221;<\/li>\n          <li><code>include_releases<\/code> (string, &#8220;true&#8221; or &#8220;false&#8221;, default &#8220;false&#8221;) &#8211; Include full release history<\/li>\n        <\/ul>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"projects-request\">Copy<\/button>\n          <pre id=\"projects-request\"><code class=\"language-bash\"># Basic pagination\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects?page=1&per_page=3\"\n\n# Search for projects\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects?search=kubernetes\"\n\n# Filter by CNCF status\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects?cncf_status=graduated&per_page=10\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"projects-response\">Copy<\/button>\n          <pre id=\"projects-response\"><code class=\"language-json\">{\n  \"page\": 1,\n  \"per_page\": 3,\n  \"total\": 256,\n  \"total_pages\": 86,\n  \"items\": [\n    {\n      \"id\": 12,\n      \"name\": \"Argo CD\",\n      \"description\": \"Declarative GitOps CD for Kubernetes\",\n      \"category\": \"CI\/CD\",\n      \"cncf_status\": \"graduated\",\n      \"homepage\": \"https:\/\/argo-cd.readthedocs.io\",\n      \"docs_url\": \"https:\/\/argo-cd.readthedocs.io\",\n      \"repo_url\": \"https:\/\/github.com\/argoproj\/argo-cd\",\n      \"helm_chart_repo\": null,\n      \"logo_url\": \"https:\/\/radar.kubebuddy.io\/logos\/argocd.png\",\n      \"latest_version\": \"v2.10.4\",\n      \"latest_published_at\": \"2024-06-02 10:35:20\"\n    }\n  ]\n}<\/code><\/pre>\n        <\/div>\n        \n        <p><strong>With full release history<\/strong>:<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"projects-full-request\">Copy<\/button>\n          <pre id=\"projects-full-request\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects?page=1&per_page=3&include_releases=true\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"projects-full-response\">Copy<\/button>\n          <pre id=\"projects-full-response\"><code class=\"language-json\">{\n  \"page\": 1,\n  \"per_page\": 3,\n  \"total\": 256,\n  \"total_pages\": 86,\n  \"items\": [\n    {\n      \"id\": 12,\n      \"name\": \"Argo CD\",\n      \"...\": \"...\",\n      \"releases\": {\n        \"app\": [\n          {\n            \"version\": \"v2.10.4\",\n            \"published_at\": \"2024-06-02 10:35:20\",\n            \"type\": \"app\"\n          }\n        ],\n        \"helm\": [],\n        \"pre\": []\n      }\n    }\n  ]\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>GET \/projects\/{id}<\/h3>\n        <p>Get a single project with full release history and subscription details.<\/p>\n        <p>Use this to hydrate a project detail page with complete information including all releases.<\/p>\n        <p><strong>Path params<\/strong>: <code>id<\/code> (project ID)<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"project-request\">Copy<\/button>\n          <pre id=\"project-request\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects\/12\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"project-response\">Copy<\/button>\n          <pre id=\"project-response\"><code class=\"language-json\">{\n  \"product\": {\n    \"id\": 12,\n    \"name\": \"Argo CD\",\n    \"description\": \"Declarative GitOps CD for Kubernetes\",\n    \"category\": \"CI\/CD\",\n    \"cncf_status\": \"graduated\",\n    \"repo_url\": \"https:\/\/github.com\/argoproj\/argo-cd\",\n    \"homepage\": \"https:\/\/argo-cd.readthedocs.io\",\n    \"docs_url\": \"https:\/\/argo-cd.readthedocs.io\",\n    \"logo_url\": \"https:\/\/radar.kubebuddy.io\/logos\/argocd.png\",\n    \"releases\": {\n      \"app\": [\n        {\n          \"version\": \"v2.10.4\",\n          \"published_at\": \"2024-06-02 10:35:20\",\n          \"type\": \"app\",\n          \"notes\": \"Bug fixes and improvements\"\n        }\n      ],\n      \"helm\": [],\n      \"pre\": []\n    }\n  }\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>GET \/projects\/{id}\/releases<\/h3>\n        <p>List releases for a project with pagination and filtering by release type.<\/p>\n        <p>Use this when you need a changelog timeline or release history view with pagination support.<\/p>\n        <p><strong>Path params<\/strong>: <code>id<\/code> (project ID)<\/p>\n        <p><strong>Query params<\/strong>:<\/p>\n        <ul>\n          <li><code>type<\/code> (string, default &#8220;app&#8221;) &#8211; Release type: app, helm, or pre<\/li>\n          <li><code>page<\/code> (integer, default 1) &#8211; Page number<\/li>\n          <li><code>per_page<\/code> (integer, default 20, max 100) &#8211; Items per page<\/li>\n        <\/ul>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"releases-request\">Copy<\/button>\n          <pre id=\"releases-request\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects\/12\/releases?type=app&page=1&per_page=5\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"releases-response\">Copy<\/button>\n          <pre id=\"releases-response\"><code class=\"language-json\">{\n  \"page\": 1,\n  \"per_page\": 5,\n  \"total\": 42,\n  \"total_pages\": 9,\n  \"items\": [\n    {\n      \"id\": 1234,\n      \"version\": \"v2.10.4\",\n      \"type\": \"app\",\n      \"published_at\": \"2024-06-02 10:35:20\",\n      \"notes\": \"Bug fixes and improvements\"\n    }\n  ]\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>GET \/stats<\/h3>\n        <p>Global stats for dashboards and reporting.<\/p>\n        <p>Use this for quick aggregate counts without pulling full lists.<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"stats-request\">Copy<\/button>\n          <pre id=\"stats-request\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/stats\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"stats-response\">Copy<\/button>\n          <pre id=\"stats-response\"><code class=\"language-json\">{\n  \"success\": true,\n  \"total_projects\": 256,\n  \"total_releases\": 4021,\n  \"total_security_fixes\": 82,\n  \"releases_last_7d\": 45,\n  \"releases_last_30d\": 178,\n  \"releases_last_90d\": 534\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>GET \/recent-releases<\/h3>\n        <p>Highlight recent releases for landing pages and newsletters. Supports filtering by category and security status.<\/p>\n        <p>Use this to show what is new without scanning the entire catalog, with optional filters for security-focused monitoring or category-specific updates.<\/p>\n        <p><strong>Query params<\/strong>:<\/p>\n        <ul>\n          <li><code>limit<\/code> (integer, default 2, max 20) &#8211; Number of releases to return<\/li>\n          <li><code>category<\/code> (string, optional) &#8211; Filter by project category (e.g., &#8220;CI\/CD&#8221;, &#8220;Networking&#8221;, &#8220;Storage&#8221;)<\/li>\n          <li><code>security_only<\/code> (string, optional) &#8211; Set to &#8220;1&#8221; to show only releases with security fixes<\/li>\n        <\/ul>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"recent-request\">Copy<\/button>\n          <pre id=\"recent-request\"><code class=\"language-bash\"># Basic recent releases\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/recent-releases?limit=2\"\n\n# Security releases only\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/recent-releases?limit=10&security_only=1\"\n\n# Recent CI\/CD tool releases\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/recent-releases?limit=10&category=CI\/CD\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"recent-response\">Copy<\/button>\n          <pre id=\"recent-response\"><code class=\"language-json\">{\n  \"success\": true,\n  \"releases\": [\n    {\n      \"id\": 12,\n      \"name\": \"Argo CD\",\n      \"version\": \"v2.10.4\",\n      \"published_at\": \"2024-06-02 10:35:20\"\n    }\n  ]\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>GET \/popular-projects<\/h3>\n        <p>Most followed projects for discovery and onboarding.<\/p>\n        <p>Use this to surface trending tools or recommend popular projects.<\/p>\n        <p><strong>Query params<\/strong>: <code>limit<\/code> (default 6)<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"popular-request\">Copy<\/button>\n          <pre id=\"popular-request\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/popular-projects?limit=5\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"popular-response\">Copy<\/button>\n          <pre id=\"popular-response\"><code class=\"language-json\">{\n  \"success\": true,\n  \"projects\": [\n    {\n      \"id\": 12,\n      \"name\": \"Argo CD\",\n      \"subscriber_count\": 220\n    }\n  ]\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>GET \/subscriptions<\/h3>\n        <p>Return the projects the authenticated user is tracking.<\/p>\n        <p>Use this to build a user dashboard or sync tracked projects to another system.<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"subs-request\">Copy<\/button>\n          <pre id=\"subs-request\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/subscriptions\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"subs-response\">Copy<\/button>\n          <pre id=\"subs-response\"><code class=\"language-json\">{\n  \"success\": true,\n  \"subscriptions\": [\n    {\n      \"product_id\": 12,\n      \"name\": \"Argo CD\"\n    }\n  ]\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>GET \/feed<\/h3>\n        <p>Return recent releases from your subscriptions.<\/p>\n        <p>Use this to drive notifications or a personalized activity stream.<\/p>\n        <p><strong>Query params<\/strong>: <code>days<\/code> (default 7)<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"feed-request\">Copy<\/button>\n          <pre id=\"feed-request\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/feed?days=7\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"feed-response\">Copy<\/button>\n          <pre id=\"feed-response\"><code class=\"language-json\">{\n  \"success\": true,\n  \"releases\": [\n    {\n      \"product_id\": 12,\n      \"name\": \"Argo CD\",\n      \"version\": \"v2.10.4\",\n      \"published_at\": \"2024-06-02 10:35:20\"\n    }\n  ]\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>GET \/dashboard<\/h3>\n        <p>Account metadata for the dashboard (plan, limits, counts).<\/p>\n        <p>Use this to show plan status and limits in your UI.<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"dashboard-request\">Copy<\/button>\n          <pre id=\"dashboard-request\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/dashboard\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"dashboard-response\">Copy<\/button>\n          <pre id=\"dashboard-response\"><code class=\"language-json\">{\n  \"success\": true,\n  \"plan\": \"Pro\",\n  \"subscription_count\": 8,\n  \"limit\": 10\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>GET \/api-keys<\/h3>\n        <p>List application passwords for the authenticated user.<\/p>\n        <p>Use this to display active keys and allow rotation workflows.<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"api-keys-list\">Copy<\/button>\n          <pre id=\"api-keys-list\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/api-keys\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"api-keys-list-response\">Copy<\/button>\n          <pre id=\"api-keys-list-response\"><code class=\"language-json\">{\n  \"keys\": [\n    {\n      \"uuid\": \"08f5c3f1-1f1c-4b3f-9c6f-7a9a1f0ddf7a\",\n      \"name\": \"Staging\",\n      \"created\": \"2024-06-02 10:35:20\"\n    }\n  ],\n  \"limit\": 3,\n  \"count\": 1,\n  \"remaining\": 2\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>POST \/api-keys<\/h3>\n        <p>Create a new application password for your account.<\/p>\n        <p>Use this when your user needs a new token for CI\/CD or an integration.<\/p>\n        <p><strong>Body<\/strong>: <code>{ \"name\": \"Staging\" }<\/code><\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"api-keys-create\">Copy<\/button>\n          <pre id=\"api-keys-create\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d \"{\\\"name\\\":\\\"Staging\\\"}\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/api-keys\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"api-keys-create-response\">Copy<\/button>\n          <pre id=\"api-keys-create-response\"><code class=\"language-json\">{\n  \"success\": true,\n  \"password\": \"abcd efgh ijkl mnop\",\n  \"item\": {\n    \"uuid\": \"08f5c3f1-1f1c-4b3f-9c6f-7a9a1f0ddf7a\",\n    \"name\": \"Staging\",\n    \"created\": \"2024-06-02 10:35:20\"\n  }\n}<\/code><\/pre>\n        <\/div>\n\n        <h3>DELETE \/api-keys\/{uuid}<\/h3>\n        <p>Revoke an application password so it can no longer be used.<\/p>\n        <p>Use this to disable compromised keys or clean up unused credentials.<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"api-keys-delete\">Copy<\/button>\n          <pre id=\"api-keys-delete\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  -X DELETE \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/api-keys\/08f5c3f1-1f1c-4b3f-9c6f-7a9a1f0ddf7a\"<\/code><\/pre>\n        <\/div>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"api-keys-delete-response\">Copy<\/button>\n          <pre id=\"api-keys-delete-response\"><code class=\"language-json\">{\n  \"success\": true\n}<\/code><\/pre>\n        <\/div>\n      <\/section>\n\n      <section id=\"api-key-management\" class=\"kb-docs-section\">\n        <h2>API key management &#038; security<\/h2>\n        \n        <h3>Key Management Overview<\/h3>\n        <ul>\n          <li><code>GET \/api-keys<\/code> returns keys for the logged-in user only (cannot view other users&#8217; keys)<\/li>\n          <li>New keys are shown once at creation time &#8211; store them securely immediately<\/li>\n          <li>Keys are WordPress Application Passwords tied to your user account<\/li>\n          <li>Each key has a UUID for management and a friendly name for identification<\/li>\n        <\/ul>\n\n        <h3>Key Limits by Plan<\/h3>\n        <ul>\n          <li><strong>Free:<\/strong> No API key access (requires Pro or Pro Plus)<\/li>\n          <li><strong>Pro:<\/strong> 3 active keys<\/li>\n          <li><strong>Pro Plus:<\/strong> 10 active keys<\/li>\n        <\/ul>\n\n        <h3>Security Best Practices<\/h3>\n        <div class=\"kb-docs-callout\" style=\"background: #f8f9fa; border-left: 4px solid #0d6efd; padding: 1rem; margin: 1rem 0;\">\n          <h4 style=\"margin-top: 0;\">&#x1f512; Key Security Guidelines<\/h4>\n          <ul style=\"margin-bottom: 0;\">\n            <li><strong>Never commit keys to git<\/strong> &#8211; Use environment variables or secret managers<\/li>\n            <li><strong>Use separate keys per integration<\/strong> &#8211; Makes rotation and revocation easier<\/li>\n            <li><strong>Rotate keys regularly<\/strong> &#8211; Create new key, update integration, revoke old key<\/li>\n            <li><strong>Revoke unused keys immediately<\/strong> &#8211; Reduce attack surface<\/li>\n            <li><strong>Use descriptive names<\/strong> &#8211; &#8220;Production CI&#8221;, &#8220;Staging Server&#8221;, etc.<\/li>\n            <li><strong>Monitor key usage<\/strong> &#8211; Check dashboard logs for suspicious activity<\/li>\n            <li><strong>Store securely<\/strong> &#8211; Use password managers or secrets vaults (1Password, HashiCorp Vault, AWS Secrets Manager)<\/li>\n          <\/ul>\n        <\/div>\n\n        <h3>Key Rotation Example<\/h3>\n        <p>Automated key rotation workflow:<\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"key-rotation\">Copy<\/button>\n          <pre id=\"key-rotation\"><code class=\"language-bash\"># 1. Create new key with current credentials\ncurl -u \"$CURRENT_USER:$CURRENT_KEY\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{\"name\":\"Production CI - New\"}' \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/api-keys\"\n\n# 2. Extract new password from response\nNEW_KEY=\"rVkQ yW8m...\"\n\n# 3. Test new key\ncurl -u \"$CURRENT_USER:$NEW_KEY\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/dashboard\"\n\n# 4. Update your CI\/CD environment variable\n# (implementation depends on your CI system)\n\n# 5. Revoke old key\ncurl -u \"$CURRENT_USER:$NEW_KEY\" \\\n  -X DELETE \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/api-keys\/OLD_UUID\"<\/code><\/pre>\n        <\/div>\n      <\/section>\n\n      <section id=\"best-practices\" class=\"kb-docs-section\">\n        <h2>Performance Best Practices<\/h2>\n        <ul>\n          <li><strong>Use pagination<\/strong>: Don&#8217;t fetch all projects at once. Use <code>per_page=100<\/code> and iterate through pages.<\/li>\n          <li><strong>Use server-side filtering<\/strong>: Use <code>search<\/code>, <code>cncf_status<\/code>, <code>category<\/code>, and <code>security_only<\/code> parameters to filter data on the server rather than fetching everything and filtering client-side.<\/li>\n          <li><strong>Conditional release data<\/strong>: Only request <code>include_releases=true<\/code> when you need full history. Omit it for listing pages.<\/li>\n          <li><strong>Cache responses<\/strong>: Catalog responses are cached server-side. Cache on your side for 1-5 minutes for better performance.<\/li>\n          <li><strong>Filter early<\/strong>: Use query parameters to filter data server-side rather than fetching everything and filtering client-side.<\/li>\n          <li><strong>Batch requests<\/strong>: If you need data for multiple projects, consider using <code>\/projects<\/code> with filters instead of multiple single-project requests.<\/li>\n          <li><strong>Monitor security efficiently<\/strong>: Use <code>security_only=1<\/code> on <code>\/recent-releases<\/code> for focused security monitoring instead of scanning all releases.<\/li>\n        <\/ul>\n      <\/section>\n\n      <section id=\"errors\" class=\"kb-docs-section\">\n        <h2>Error Responses<\/h2>\n        <p><strong>401 Unauthorized<\/strong><br>You are not authenticated.<\/p>\n        <p><strong>403 Forbidden<\/strong><br>You are authenticated but not allowed (plan or role restriction).<\/p>\n        <p><strong>429 Too Many Requests<\/strong><br>Rate limit exceeded on authenticated endpoints.<\/p>\n      <\/section>\n\n      <section id=\"examples\" class=\"kb-docs-section\">\n        <h2>Quick Examples<\/h2>\n        \n        <h3>Basic cURL Examples<\/h3>\n        <p><strong>Catalog endpoint (auth required):<\/strong><\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"curl-catalog\">Copy<\/button>\n          <pre id=\"curl-catalog\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects?per_page=3\"<\/code><\/pre>\n        <\/div>\n\n        <p><strong>Search and filter projects:<\/strong><\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"curl-search\">Copy<\/button>\n          <pre id=\"curl-search\"><code class=\"language-bash\"># Search for Kubernetes-related projects\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects?search=kubernetes&per_page=10\"\n\n# Get only CNCF graduated projects\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects?cncf_status=graduated&per_page=20\"<\/code><\/pre>\n        <\/div>\n\n        <p><strong>Filter recent releases:<\/strong><\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"curl-releases\">Copy<\/button>\n          <pre id=\"curl-releases\"><code class=\"language-bash\"># Get recent security releases only\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/recent-releases?limit=10&security_only=1\"\n\n# Get recent CI\/CD tool releases\ncurl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/recent-releases?limit=10&category=CI\/CD\"<\/code><\/pre>\n        <\/div>\n\n        <p><strong>Authenticated endpoint:<\/strong><\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"curl-auth\">Copy<\/button>\n          <pre id=\"curl-auth\"><code class=\"language-bash\">curl -u \"username:app_password\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/feed?days=7\"<\/code><\/pre>\n        <\/div>\n\n        <h3>PowerShell Example<\/h3>\n        <p><strong>Catalog endpoints (auth required):<\/strong><\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"powershell-catalog\">Copy<\/button>\n          <pre id=\"powershell-catalog\"><code class=\"language-powershell\">$base = \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\"\n$user = \"your_username\"\n$pass = \"your application password\"\n$token = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(\"$user`:$pass\"))\n$headers = @{ Authorization = \"Basic $token\" }\n\n# Search for projects\n$projects = Invoke-RestMethod -Uri \"$base\/projects?search=kubernetes&per_page=10\" -Headers $headers\n$projects.items | ForEach-Object { Write-Host \"$($_.name) - $($_.category)\" }\n\n# Get CNCF graduated projects\n$graduated = Invoke-RestMethod -Uri \"$base\/projects?cncf_status=graduated&per_page=20\" -Headers $headers\nWrite-Host \"Found $($graduated.total) graduated projects\"\n\n# Get recent security releases\n$security = Invoke-RestMethod -Uri \"$base\/recent-releases?limit=10&security_only=1\" -Headers $headers\n$security.releases | ForEach-Object { Write-Host \"$($_.name) $($_.version) - $($_.security_severity)\" }<\/code><\/pre>\n        <\/div>\n\n        <p><strong>Authenticated endpoints:<\/strong><\/p>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"powershell-auth\">Copy<\/button>\n          <pre id=\"powershell-auth\"><code class=\"language-powershell\">$base = \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\"\n$user = \"your_username\"\n$pass = \"your application password\"\n\n$token = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(\"$user`:$pass\"))\n$headers = @{ Authorization = \"Basic $token\" }\n\nInvoke-RestMethod -Uri \"$base\/feed?days=7\" -Headers $headers<\/code><\/pre>\n        <\/div>\n\n        <h3>Python Example<\/h3>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"python-example\">Copy<\/button>\n          <pre id=\"python-example\"><code class=\"language-python\">import requests\nfrom requests.auth import HTTPBasicAuth\n\nbase_url = \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\"\nauth = HTTPBasicAuth(\"your_username\", \"your_app_password\")\n\n# Get your subscriptions\nresponse = requests.get(f\"{base_url}\/subscriptions\", auth=auth)\ndata = response.json()\n\nfor sub in data.get('subscriptions', []):\n    print(f\"{sub['name']} - {sub['latest_version']}\")<\/code><\/pre>\n        <\/div>\n\n        <h3>Node.js Example<\/h3>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"nodejs-example\">Copy<\/button>\n          <pre id=\"nodejs-example\"><code class=\"language-javascript\">const axios = require('axios');\n\nconst baseURL = 'https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1';\nconst auth = {\n  username: 'your_username',\n  password: 'your_app_password'\n};\n\nasync function getRecentReleases() {\n  try {\n    const response = await axios.get(`${baseURL}\/feed?days=7`, { auth });\n    console.log(response.data);\n  } catch (error) {\n    console.error('Error:', error.response?.data || error.message);\n  }\n}\n\ngetRecentReleases();<\/code><\/pre>\n        <\/div>\n\n        <h3>Real-World Use Cases<\/h3>\n        \n        <h4>Use Case 1: Slack Bot for Release Notifications<\/h4>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"usecase-slack\">Copy<\/button>\n          <pre id=\"usecase-slack\"><code class=\"language-bash\"># Run every 15 minutes via cron\n#!\/bin\/bash\nUSER=\"your_username\"\nPASS=\"your_app_password\"\nSLACK_WEBHOOK=\"https:\/\/hooks.slack.com\/services\/YOUR\/WEBHOOK\"\n\n# Get releases from last 30 minutes\nRESPONSE=$(curl -s -u \"$USER:$PASS\" \\\n  \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/feed?days=1\")\n\n# Parse and post to Slack\necho \"$RESPONSE\" | jq -r '.releases[] | \n  select(.published_at > (now - 1800 | todate)) | \n  \"New release: \\(.name) \\(.version)\"' | \\\nwhile read line; do\n  curl -X POST -H 'Content-type: application\/json' \\\n    --data \"{\\\"text\\\":\\\"$line\\\"}\" \\\n    \"$SLACK_WEBHOOK\"\ndone<\/code><\/pre>\n        <\/div>\n\n        <h4>Use Case 2: Dashboard Widget<\/h4>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"usecase-widget\">Copy<\/button>\n          <pre id=\"usecase-widget\"><code class=\"language-javascript\">\/\/ Fetch and display tracked projects in a web dashboard\nasync function loadTrackedProjects() {\n  const response = await fetch(\n    'https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/subscriptions',\n    {\n      headers: {\n        'Authorization': 'Basic ' + btoa('username:password')\n      }\n    }\n  );\n  \n  const data = await response.json();\n  const container = document.getElementById('projects');\n  \n  data.subscriptions.forEach(project => {\n    container.innerHTML += `\n      <div class=\"project-card\">\n        <h3>${project.name}<\/h3>\n        <span class=\"version\">${project.latest_version}<\/span>\n      <\/div>\n    `;\n  });\n}<\/code><\/pre>\n        <\/div>\n\n        <h4>Use Case 3: CI\/CD Pipeline Check<\/h4>\n        <div class=\"kb-docs-code\">\n          <button class=\"kb-docs-copy\" data-copy-target=\"usecase-cicd\">Copy<\/button>\n          <pre id=\"usecase-cicd\"><code class=\"language-bash\"># GitHub Actions workflow to check if dependency has new release\n- name: Check Argo CD Version\n  run: |\n    LATEST=$(curl -s -u \"$USER:$PASS\" \\\n      \"https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1\/projects\/12\" | \\\n      jq -r '.project.releases.app[0].version')\n    CURRENT=$(cat .argocd-version)\n    \n    if [ \"$LATEST\" != \"$CURRENT\" ]; then\n      echo \"::warning::New Argo CD version available: $LATEST (current: $CURRENT)\"\n      echo \"latest_version=$LATEST\" >> $GITHUB_OUTPUT\n    fi<\/code><\/pre>\n        <\/div>\n      <\/section>\n\n      <section id=\"faq\" class=\"kb-docs-section\">\n        <h2>FAQ<\/h2>\n        \n        <h3>Authentication &#038; Keys<\/h3>\n        <p><strong>Do Free accounts get API keys?<\/strong><br>\n          API key management (creating\/listing\/deleting keys) requires a Pro or Pro Plus subscription. However, all users (including free accounts) can authenticate using browser sessions to access catalog endpoints like \/projects, \/stats, and \/recent-releases.<\/p>\n        <p><strong>Where do I find my username?<\/strong><br>\n          It is shown in Account \u2192 Developer API Access. This is your WordPress username (user_login), not your email.<\/p>\n        \n        <p><strong>Can I use my email address for authentication?<\/strong><br>\n          No. You must use your WordPress username (shown in your account dashboard).<\/p>\n        \n        <p><strong>Why does my key only show once?<\/strong><br>\n          For security. Application passwords are hashed and cannot be retrieved later. Store it safely when created, or revoke and create a new one.<\/p>\n        \n        <p><strong>What happens if I lose my API key?<\/strong><br>\n          Revoke it and create a new one. Old keys cannot be recovered.<\/p>\n        \n        <p><strong>Can I see other users&#8217; API keys?<\/strong><br>\n          No. You can only view and manage your own keys. This prevents unauthorized access.<\/p>\n\n        <h3>API Usage<\/h3>\n        <p><strong>How do I get all projects with their releases?<\/strong><br>\n          Use <code>GET \/projects?include_releases=true&per_page=100<\/code> and paginate through all pages.<\/p>\n        \n        <p><strong>What&#8217;s the difference between \/projects and \/projects?include_releases=true?<\/strong><br>\n          Without the parameter, you get basic metadata only (faster, smaller). With it, you get full release history (slower, larger). Use the basic version for listings, full version for detail views.<\/p>\n        <p><strong>Are responses cached?<\/strong><br>\n          Catalog responses are cached server-side with WordPress transients. Browser sessions also cache privately for a short TTL.<\/p>\n        \n        <p><strong>Can I filter projects by category or CNCF status?<\/strong><br>\n          Yes! Use <code>?cncf_status=graduated<\/code> on <code>\/projects<\/code>, <code>?category=CI\/CD<\/code> on <code>\/recent-releases<\/code>, and <code>?security_only=1<\/code> for security-focused queries.<\/p>\n\n        <h3>Caching &#038; Performance<\/h3>\n        <p><strong>How can I optimize API performance?<\/strong><br>\n          <ul>\n            <li>Use pagination instead of fetching all data<\/li>\n            <li>Only request <code>include_releases=true<\/code> when needed<\/li>\n            <li>Cache responses on your end for 5-15 minutes<\/li>\n            <li>Use conditional requests with ETag headers<\/li>\n          <\/ul>\n        <\/p>\n\n        <h3>Troubleshooting<\/h3>\n        <p><strong>I&#8217;m getting 401 Unauthorized errors<\/strong><br>\n          Check that: (1) You&#8217;re using your WordPress username, not email. (2) Your application password is correct. (3) The Authorization header is properly formatted.<\/p>\n        \n        <p><strong>I&#8217;m getting 403 Forbidden errors<\/strong><br>\n          You&#8217;re authenticated but don&#8217;t have permission. This usually means: (1) Your plan doesn&#8217;t include this feature. (2) You&#8217;ve hit your subscription limit.<\/p>\n        \n        <p><strong>My requests are timing out<\/strong><br>\n          Reduce <code>per_page<\/code> size or don&#8217;t use <code>include_releases=true<\/code> for large datasets. Break requests into smaller chunks.<\/p>\n      <\/section>\n\n      <section id=\"help\" class=\"kb-docs-section\">\n        <h2>Need help?<\/h2>\n        <p>If something doesn&#8217;t work, contact support and include any error details.<\/p>\n        <p><a href=\"\/support\/#kb-support-form\">Contact support<\/a><\/p>\n        <p><a class=\"kb-docs-back\" href=\"\/docs\/\">\u2190 Back to Docs<\/a><\/p>\n      <\/section>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>KubeBuddy Radar API \u2190 Back to Docs KubeBuddy Radar API Track releases and automate your DevOps workflows with the KubeBuddy Radar API. On this page Base URL Authentication Response format Endpoint matrix Endpoint details API key management Best practices Errors Quick examples FAQ Need help Base URL https:\/\/radar.kubebuddy.io\/api\/kb-radar\/v1 Authentication All endpoints require authentication. Use HTTP &#8230; <a title=\"api\" class=\"read-more\" href=\"https:\/\/radar.kubebuddy.io\/docs\/api\/\" aria-label=\"Read more about api\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":608,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-615","page","type-page","status-publish"],"_links":{"self":[{"href":"https:\/\/radar.kubebuddy.io\/api\/wp\/v2\/pages\/615","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/radar.kubebuddy.io\/api\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/radar.kubebuddy.io\/api\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/radar.kubebuddy.io\/api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/radar.kubebuddy.io\/api\/wp\/v2\/comments?post=615"}],"version-history":[{"count":16,"href":"https:\/\/radar.kubebuddy.io\/api\/wp\/v2\/pages\/615\/revisions"}],"predecessor-version":[{"id":878,"href":"https:\/\/radar.kubebuddy.io\/api\/wp\/v2\/pages\/615\/revisions\/878"}],"up":[{"embeddable":true,"href":"https:\/\/radar.kubebuddy.io\/api\/wp\/v2\/pages\/608"}],"wp:attachment":[{"href":"https:\/\/radar.kubebuddy.io\/api\/wp\/v2\/media?parent=615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}