{"id":30105,"date":"2026-04-17T13:00:59","date_gmt":"2026-04-17T13:00:59","guid":{"rendered":"urn:uuid:baee7673-3557-46ed-ab56-c8b7f13042b4"},"modified":"2026-04-17T13:10:29","modified_gmt":"2026-04-17T13:10:29","slug":"saas-analytics-dashboards-with-highcharts-and-morningstar","status":"publish","type":"post","link":"https:\/\/www.highcharts.com\/blog\/tutorials\/saas-analytics-dashboards-with-highcharts-and-morningstar\/","title":{"rendered":"SaaS analytics dashboards with Highcharts and Morningstar"},"content":{"rendered":"<p>Building effective financial SaaS platforms requires more than just data storage. Users need instant visibility into their investment portfolios, risk metrics, and financial goals. <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> combined with Morningstar&#8217;s financial data connector provides a powerful solution for creating responsive, data-rich financial analytics dashboards.<\/p>\n<p>With Highcharts for <a href=\"https:\/\/www.highcharts.com\/integrations\/react\/\">React<\/a>, developers get first-class charting with hooks, TypeScript support, and optimized rendering out of the box. Highcharts also integrates with Angular, Vue, and Svelte, as well as server-side languages like Python, R, PHP, and Java, and mobile platforms including iOS and Android.<\/p>\n<p>To explore Highcharts further, visit the interactive <a href=\"https:\/\/www.highcharts.com\/demo\">demo gallery<\/a> to see real-world examples, or consult the comprehensive <a href=\"https:\/\/www.highcharts.com\/docs\/index\">documentation<\/a>. You can also review the full <a href=\"https:\/\/api.highcharts.com\/highcharts\/\">API reference<\/a> or learn more about <a href=\"https:\/\/www.highcharts.com\/products\/highcharts\/\">Highcharts products and features<\/a>.<\/p>\n<p><h2>Why financial SaaS platforms need modern dashboards<\/h2>\n<p>Financial decision-making depends on clear, actionable data. Portfolio managers, wealth advisors, and individual investors all benefit from consolidated views of their holdings, performance metrics, and risk exposure. A well-designed dashboard serves multiple purposes:<\/p>\n<ul>\n<li><strong>Real-time KPIs:<\/strong> Track current portfolio value, gains\/losses, and asset allocation at a glance<\/li>\n<li><strong>Historical performance:<\/strong> Visualize portfolio growth over time with interactive stock charts<\/li>\n<li><strong>Risk assessment:<\/strong> Display risk scores and volatility metrics for informed decisions<\/li>\n<li><strong>Goal tracking:<\/strong> Monitor progress toward financial objectives with projections<\/li>\n<li><strong>Data tables:<\/strong> Provide detailed breakdowns of holdings, allocations, and performance<\/li>\n<\/ul>\n<p>Traditional spreadsheets and static reports cannot meet these demands. <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> solves this by providing a responsive layout engine, pre-built components, and seamless data connectors that transform raw financial data into compelling visualizations.<\/p>\n<p><h2>Understanding Highcharts Dashboards architecture<\/h2>\n<p><a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> is built on a flexible architecture that separates layout, components, and data management. Here&#8217;s how it works:<\/p>\n<ul>\n<li><strong>Layout engine:<\/strong> Responsive grid system that adapts to mobile, tablet, and desktop screens automatically<\/li>\n<li><strong>Components:<\/strong> Reusable UI elements including KPI cards, charts (via Highcharts), <a href=\"https:\/\/www.highcharts.com\/products\/grid\/\">Highcharts Grid<\/a> tables, and gauges<\/li>\n<li><strong>Data pool:<\/strong> Central data management system that connects to multiple sources simultaneously<\/li>\n<li><strong>Connectors:<\/strong> Bridge between external APIs (like Morningstar) and dashboard components with automatic data transformation<\/li>\n<li><strong>Synchronization:<\/strong> Components automatically update when data changes, enabling reactive dashboards without manual refresh<\/li>\n<\/ul>\n<p>This architecture means developers can focus on business logic rather than reinventing dashboard infrastructure. The Morningstar connector integration is particularly valuable, as it handles OAuth authentication, API calls, and data formatting automatically.<\/p>\n<p><h2>The Morningstar Personal Portfolio Dashboard example<\/h2>\n<p>Highcharts provides a complete working example called the Morningstar Personal Portfolio Dashboard. This demo showcases a realistic investment tracking scenario where users can monitor a diversified portfolio of stocks, track their accumulated wealth, and analyze risk metrics.<\/p>\n<p>The dashboard demonstrates several practical financial SaaS features: a running KPI displaying current portfolio holding value, a stock performance chart showing how the portfolio accumulates over time, a detailed grid listing individual stock holdings with allocation percentages, a risk score gauge powered by Morningstar data, and goal analysis components showing progress toward savings targets.<\/p>\n<p>All components remain synchronized. When underlying data updates from Morningstar&#8217;s live feed, the KPIs, charts, and tables refresh instantly without page reload. This creates a seamless user experience where financial decisions are based on current information.<\/p>\n<p><h2>Code structure and implementation<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-30107\" src=\"https:\/\/www.highcharts.com\/blog\/wp-content\/uploads\/2026\/04\/SaaS-analytics-dashboards-with-Highcharts-and-Morningstar.jpg\" alt=\"SaaS analytics dashboards with Highcharts and Morningstar\" width=\"1160\" height=\"831\" srcset=\"https:\/\/www.highcharts.com\/blog\/wp-content\/uploads\/2026\/04\/SaaS-analytics-dashboards-with-Highcharts-and-Morningstar.jpg 1160w, https:\/\/www.highcharts.com\/blog\/wp-content\/uploads\/2026\/04\/SaaS-analytics-dashboards-with-Highcharts-and-Morningstar-560x401.jpg 560w, https:\/\/www.highcharts.com\/blog\/wp-content\/uploads\/2026\/04\/SaaS-analytics-dashboards-with-Highcharts-and-Morningstar-760x544.jpg 760w, https:\/\/www.highcharts.com\/blog\/wp-content\/uploads\/2026\/04\/SaaS-analytics-dashboards-with-Highcharts-and-Morningstar-768x550.jpg 768w\" sizes=\"auto, (max-width: 1160px) 100vw, 1160px\" \/><\/p>\n<p><strong>Note that this example uses several Highcharts products together: <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> for layout and component management, Highcharts Stock for the portfolio performance chart, <a href=\"https:\/\/www.highcharts.com\/products\/grid\/\">Highcharts Grid<\/a> for the data table, and the Morningstar connector for live financial data.<\/strong><\/p>\n<p><h3><\/h3>\n<p><h3>1. Load the required files and create a container to hold the dashboard<\/h3>\n<pre><code>&lt;script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@highcharts\/grid-pro\/grid-pro.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/code.highcharts.com\/stock\/highstock.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/code.highcharts.com\/highcharts-more.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/code.highcharts.com\/modules\/solid-gauge.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/code.highcharts.com\/dashboards\/dashboards.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/code.highcharts.com\/dashboards\/modules\/layout.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/code.highcharts.com\/modules\/accessibility.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/code.highcharts.com\/connectors\/morningstar\/connectors-morningstar.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"https:\/\/code.highcharts.com\/dashboards\/modules\/math-modifier.js\"&gt;&lt;\/script&gt;\n\n&lt;div id=\"container\"&gt;&lt;\/div&gt;<\/code><\/pre>\n<p>Start by loading the core Highcharts Dashboards library alongside specialized modules: Grid for data tables, Stock for financial charts, Morningstar connector for API integration, and math-modifier for calculated columns. The container div holds the entire dashboard and is referenced in JavaScript initialization.<\/p>\n<p><h3><\/h3>\n<p><h3>2. Add some CSS to control the styling of the dashboard<\/h3>\n<pre><code>@import url(\"https:\/\/code.highcharts.com\/css\/highcharts.css\");\n@import url(\"https:\/\/code.highcharts.com\/dashboards\/css\/dashboards.css\");\n@import url(\"https:\/\/cdn.jsdelivr.net\/npm\/@highcharts\/grid-pro\/css\/grid-pro.css\");\n\n.highcharts-dashboards-component-kpi-value {\n    font-size: 1.8rem;\n    font-weight: 600;\n}\n\n.highcharts-dashboards-component-title {\n    font-size: 0.9rem;\n    font-weight: 500;\n}\n\n.dotted-line {\n    stroke-dasharray: 2, 12;\n}\n\n@media (max-width: 800px) {\n    #grid,\n    #kpi-gauge-risk {\n        flex: 1 1 100%;\n    }\n}<\/code><\/pre>\n<p>CSS imports provide baseline styling for dashboard components. Custom rules adjust KPI values to be prominent and readable, while media queries ensure the dashboard remains usable on mobile devices by making grid and risk gauge components full-width on small screens.<\/p>\n<p><h3><\/h3>\n<p><h3>3. Implement the JavaScript<\/h3>\n<pre><code>\/\/ Morningstar API configuration\nconst commonMSOptions = {\n    api: {\n        url: 'https:\/\/demo-live-data.highcharts.com',\n        access: {\n            url: 'https:\/\/demo-live-data.highcharts.com\/token\/oauth',\n            token: 'your-access-token'\n        }\n    }\n};\n\nconst basicInvestmentPlan = {\n    interval: 30, \/\/ Every 30 days\n    amount: 200   \/\/ Amount in EUR\n};\n\nconst stockCollection = [{\n    tradingSymbol: 'NFLX',\n    ISIN: 'US64110L1061',\n    SecID: '0P000003UP'\n}, {\n    tradingSymbol: 'MSFT',\n    ISIN: 'US5949181045',\n    SecID: '0P000003MH'\n}, {\n    tradingSymbol: 'AMZN',\n    ISIN: 'US0231351067',\n    SecID: '0P000000B7'\n}, {\n    tradingSymbol: 'GOOGL',\n    ISIN: 'US02079K3059',\n    SecID: '0P000002HD'\n}];\n\n\/\/ Portfolio simulation: calculate holdings and invested amounts\nconst generatePortfolio = (investmentPlan, stockPrices) =&gt; {\n    const { interval, amount } = investmentPlan,\n        holding = [],\n        investedAmount = [];\n    let totalUnits = 0,\n        investedSoFar = 0;\n    stockPrices.forEach((priceData, day) =&gt; {\n        if ((day % interval) === 0) {\n            totalUnits += amount \/ priceData[1];\n            investedSoFar += amount;\n        }\n        holding.push(totalUnits * priceData[1]);\n        investedAmount.push(investedSoFar);\n    });\n    return { holding, investedAmount };\n};\n\n\/\/ Build the dashboard\nconst board = await Dashboards.board('container', {\n    dataPool: {\n        connectors: [{\n            id: 'holding-data',\n            type: 'JSON',\n            data: [dates, ...holdings],\n            orientation: 'columns',\n            firstRowAsNames: false,\n            dataModifier: {\n                type: 'Math',\n                columnFormulas: [{\n                    column: 'holdingAccumulation',\n                    formula: '=SUM(B1:ZZ1)'\n                }]\n            }\n        }, {\n            id: 'stock-grid',\n            type: 'JSON',\n            columnIds: ['Name', 'ISIN', 'Percentage'],\n            firstRowAsNames: false,\n            data: gridData\n        }, {\n            id: 'risk-score',\n            type: 'MorningstarRiskScore',\n            ...commonMSOptions,\n            portfolios: [portfolio]\n        }, {\n            id: 'goal-analysis',\n            type: 'MorningstarGoalAnalysis',\n            ...commonMSOptions,\n            annualInvestment,\n            currentSavings: lastHoldingTotal,\n            target: 100000,\n            timeHorizon: 5\n        }]\n    },\n    gui: {\n        layouts: [{\n            rows: [{\n                cells: [{ id: 'kpi-wrapper',\n                    layout: {\n                        rows: [{\n                            cells: [\n                                { id: 'kpi-holding' },\n                                { id: 'kpi-invested' }\n                            ]\n                        }]\n                    }\n                }]\n            }, {\n                cells: [{ id: 'wallet-chart' }]\n            }, {\n                cells: [\n                    { id: 'grid' },\n                    { id: 'kpi-gauge-risk' }\n                ]\n            }, {\n                cells: [{ id: 'goal-analysis-wrapper',\n                    layout: {\n                        rows: [{\n                            cells: [\n                                { id: 'kpi-gauge-goal' },\n                                { id: 'kpi-goal-target' },\n                                { id: 'kpi-goal-years' },\n                                { id: 'kpi-goal-annual' }\n                            ]\n                        }]\n                    }\n                }]\n            }]\n        }]\n    },\n    components: [{\n        type: 'KPI',\n        renderTo: 'kpi-holding',\n        value: lastHoldingTotal,\n        valueFormat: '\u20ac{value:,.2f}',\n        title: 'Holding'\n    }, {\n        type: 'Highcharts',\n        chartConstructor: 'stockChart',\n        renderTo: 'wallet-chart',\n        connector: [{\n            id: 'holding-data',\n            columnAssignment: [{\n                seriesId: 'holding',\n                data: ['0', 'holdingAccumulation']\n            }]\n        }],\n        chartOptions: walletChartOptions\n    }, {\n        type: 'Grid',\n        connector: { id: 'stock-grid' },\n        renderTo: 'grid'\n    }, {\n        renderTo: 'kpi-gauge-risk',\n        type: 'KPI',\n        connector: { id: 'risk-score' },\n        chartOptions: riskScoreKPIOptions\n    }]\n}, true);<\/code><\/pre>\n<p>The JavaScript core configures the Morningstar API connection, defines the stock collection and investment plan, then uses <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> to orchestrate the entire system. The dataPool manages four connectors: two JSON sources for calculated portfolio data, and two Morningstar connectors for risk scoring and goal analysis. The gui property defines the responsive layout, while components bind data sources to visual elements.<\/p>\n<p><h2>Key dashboard components explained<\/h2>\n<p><strong>KPI cards:<\/strong> Simple, prominent number displays showing current portfolio value, invested amount, and goal progress. These provide instant snapshots of key metrics without requiring chart interaction.<\/p>\n<p><strong>Stock performance chart:<\/strong> Built with Highcharts Stock, this interactive chart shows portfolio accumulation over time. Users can zoom, pan, and hover for detailed values. The responsive design scales smoothly from mobile to desktop.<\/p>\n<p><strong>Holdings grid:<\/strong> <a href=\"https:\/\/www.highcharts.com\/products\/grid\/\">Highcharts Grid<\/a> displays a sortable, searchable table of individual stock holdings with names, ISINs, and allocation percentages. Investors can quickly identify their top positions and understand portfolio composition.<\/p>\n<p><strong>Risk score gauge:<\/strong> Powered by Morningstar data, this solid-gauge visualization translates numerical risk scores into intuitive visual feedback. A needle pointing to low, medium, or high risk immediately communicates portfolio volatility.<\/p>\n<p><strong>Goal analysis:<\/strong> Displays target savings amount, current progress, years remaining, and annual contribution needed. This forward-looking component helps investors understand whether their current investment plan will achieve their financial goals.<\/p>\n<p>All components share the same underlying data sources. When investment amounts change or market prices update via the Morningstar connector, every visualization updates automatically without manual intervention.<\/p>\n<p><h2>Best practices for financial SaaS dashboards<\/h2>\n<ul>\n<li><strong>Responsive design first:<\/strong> Investors access portfolios on phones, tablets, and desktops. <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> layout engine handles this automatically, but test across devices.<\/li>\n<li><strong>Live data integration:<\/strong> Use connectors like Morningstar to pull live prices and metrics. Stale data undermines user confidence. Set appropriate refresh intervals based on your service tier.<\/li>\n<li><strong>Clear KPI hierarchy:<\/strong> Users scan dashboards in seconds. Place the most important metrics (portfolio value, performance %) above supporting detail like individual holdings.<\/li>\n<li><strong>Interactive, not static:<\/strong> Charts should support zoom, pan, and hover interactions. <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> components are interactive by default.<\/li>\n<li><strong>Data synchronization:<\/strong> All components must reflect the same underlying data. Conflicting numbers damage user trust. Dashboards handle this automatically through the dataPool.<\/li>\n<li><strong>Accessibility:<\/strong> Include alt text for charts, ensure sufficient color contrast, and support keyboard navigation. Highcharts provides built-in accessibility modules.<\/li>\n<li><strong>Performance optimization:<\/strong> Limit visible data points on charts (use date ranges), lazy-load off-screen components, and cache Morningstar API responses to reduce API calls.<\/li>\n<li><strong>Security:<\/strong> Morningstar connector handles OAuth authentication. Never expose API tokens in client-side code. Use backend proxies for API calls when possible.<\/li>\n<\/ul>\n<p><h2>Conclusion<\/h2>\n<p>Financial SaaS platforms require sophisticated dashboards that balance simplicity with depth. <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> combined with Morningstar data integration eliminates the need to build dashboard infrastructure from scratch. The Morningstar Personal Portfolio Dashboard example demonstrates a production-ready approach to portfolio visualization, risk assessment, and goal tracking.<\/p>\n<p>By leveraging pre-built components, responsive layout systems, and proven data connectors, development teams can focus on differentiating their products rather than reinventing visualization layers. The result is faster time-to-market, reduced maintenance burden, and better user experience across all devices.<\/p>\n<p>Start exploring <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> today and build the financial analytics platform your users deserve.<\/p>\n<p><h2>Explore more dashboard examples<\/h2>\n<p>The Personal Portfolio dashboard is just one of many ready-made examples built with <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a>. The library ships with a growing collection of demos that showcase different use cases and capabilities. The <a href=\"https:\/\/www.highcharts.com\/demo\/dashboards\/accounting\">Accounting dashboard<\/a> presents financial results alongside forecasts, comparing revenue and costs against budgets using gauge and column chart components with the built-in Math modifier for automatic calculations. For project teams, the <a href=\"https:\/\/www.highcharts.com\/demo\/dashboards\/project-management\">Project Management dashboard<\/a> tracks task completion, assignee workloads, and burndown progress with synchronized KPI cards, pie charts, and Gantt-style timelines.<\/p>\n<p>On the technical side, several demos illustrate the powerful synchronization features that set Highcharts Dashboards apart. The <a href=\"https:\/\/www.highcharts.com\/demo\/dashboards\/sync-cursor\">Sync of highlight cursor<\/a> demo shows how hovering over a data point in one chart automatically highlights the corresponding point across all other components, including bar charts, line charts, and data grids. The <a href=\"https:\/\/www.highcharts.com\/demo\/dashboards\/sync-extremes\">Sync panning<\/a> demo demonstrates synchronized zooming across multiple chart components, keeping axis ranges aligned as users explore different time periods. For developers getting started, the <a href=\"https:\/\/www.highcharts.com\/demo\/dashboards\/minimal\">Minimal dashboard<\/a> provides a clean starting point with KPI components, a Highcharts chart, and a Grid component sharing a single data source, all in under 75 lines of JavaScript.<\/p>\n<p>Each of these examples can be opened in JSFiddle or CodePen for immediate experimentation, forked, and adapted to your own data sources and branding. Together they demonstrate the breadth of what <a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards<\/a> can achieve across finance, operations, analytics, and beyond.<\/p>\n<p><h2>Resources<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.highcharts.com\/docs\/index\">Documentation &#8211; Getting started with Highcharts<\/a><\/li>\n<li><a href=\"https:\/\/www.highcharts.com\/demo\">Demo\/example section<\/a><\/li>\n<li><a href=\"https:\/\/api.highcharts.com\/highcharts\/\">Highcharts API reference<\/a><\/li>\n<li><a href=\"https:\/\/www.highcharts.com\/products\/highcharts\/\">Highcharts Core product page<\/a><\/li>\n<li><a href=\"https:\/\/www.highcharts.com\/products\/dashboards\">Highcharts Dashboards product page<\/a><\/li>\n<li><a href=\"https:\/\/www.highcharts.com\/products\/grid\/\">Highcharts Grid product page<\/a><\/li>\n<\/ul>\n<p><h2>Related posts<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.highcharts.com\/blog\/dashboards\/dashboard-examples-using-highcharts-dashboards\/\">Dashboard examples using Highcharts Dashboards<\/a><\/li>\n<li><a href=\"https:\/\/www.highcharts.com\/blog\/inspirations\/javascript-dashboards-with-highcharts\/\">JavaScript dashboards with Highcharts<\/a><\/li>\n<li><a href=\"https:\/\/www.highcharts.com\/blog\/inspirations\/highcharts-dashboards-with-react\/\">Highcharts Dashboards with React<\/a><\/li>\n<li><a href=\"https:\/\/www.highcharts.com\/blog\/tutorials\/real-time-data-visualization-using-highcharts\/\">Real-time data visualization using Highcharts<\/a><\/li>\n<li><a href=\"https:\/\/www.highcharts.com\/blog\/inspirations\/financial-charts-with-highcharts\/\">Financial charts with Highcharts<\/a><\/li>\n<li><a href=\"https:\/\/www.highcharts.com\/blog\/post\/javascript-chart-examples-using-highcharts\/\">JavaScript chart examples using Highcharts<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Building effective financial SaaS platforms requires more than just data storage. Users need instant visibility into their investment portfolios, risk metrics, and financial goals. Highcharts Dashboards combined with Morningstar&#8217;s financial data connector provides a powerful solution for creating responsive, data-rich financial analytics dashboards. With Highcharts for React, developers get first-class charting with hooks, TypeScript support, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":30107,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"meta_title":"","meta_description":"","hc_selected_options":[],"footnotes":""},"categories":[210],"tags":[1010],"coauthors":[695],"class_list":["post-30105","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-highcharts-dashboards"],"_links":{"self":[{"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/posts\/30105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/comments?post=30105"}],"version-history":[{"count":3,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/posts\/30105\/revisions"}],"predecessor-version":[{"id":30113,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/posts\/30105\/revisions\/30113"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/media\/30107"}],"wp:attachment":[{"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/media?parent=30105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/categories?post=30105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/tags?post=30105"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.highcharts.com\/blog\/wp-json\/wp\/v2\/coauthors?post=30105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}