Reviews, ratings, replies, review requests and scores as flat tables, for every location in one request. Power BI, Excel, Tableau, Looker Studio, Google Sheets, BigQuery and agency dashboards read them.
Coming soonToday: the BigQuery export on Pro and Premium
Review report: all locations
New reviews1,284
Average rating4.6
Reply rate92%
New reviews by month
review-metricsinterval=monthCSV or JSON
Four ways in
Pick the one your tool reads. All four only read: none of them can change anything in Grades.com.
Reports API Coming soon
Flat tables at https://app.grades.com/api/v1/reports/*, as JSON or with ?format=csv. For Power BI, Excel, Tableau, Supermetrics, Coupler.io, Databox and Klipfolio. Key: a secret key with only reviews:read.
Google Sheets
A synced export in your own Drive with a reporting layout Coming soon, or the add-on Coming soon. For every tool that reads a Google Sheet: AgencyAnalytics, DashThis, Swydo, Whatagraph and more. How →
Looker Studio connector Coming soon
Our own connector, "grades.com Reviews": reviews and AI Reputation as data sources. Key: companies:read and reviews:read. How it works →
BigQuery export
Pro and Premium: reviews, scores, AI Reputation and a daily summary in your own BigQuery dataset. No key: you grant access to your dataset. How →
Grades.com makes its own connector only for Looker Studio and its own add-on only for Google Sheets. Every other tool on this page works with Grades.com through its own generic web, JSON, CSV or Google Sheets source; we have no partnership with those tools.
Which report
Every report covers every business your key reaches, each row with location_id and location. GET https://app.grades.com/api/v1/reports lists them all with their columns.
Report
One row per
Typical chart
/reports/locations
business (location)
The table to join the others on location_id: plan, totals, latest Score
/reports/reviews
review
Rating distribution, reviews per platform, response time
/reports/review-metrics
business and day, week or month (and platform with breakdown=platform)
New reviews, average rating, reply rate, median response hours, running totals
/reports/review-requests
business and period
Requests sent, opened, clicked and reviewed
/reports/scores
business and day
Grades.com Score over time
/reports/ai-reputation
AI assistant answer
Sentiment and "mentioned" over time, per assistant
/reports/competitors
month and competitor
Competitor rank and score over time
Dates are YYYY-MM-DD in UTC (from and to, or start_date and end_date); time series take interval=day, week or month (without dates: the last 90 days by month), with a row for every period so charts have no gaps. Up to 10,000 rows a request. Paging: send meta.next_cursor back as cursor (CSV: the X-Next-Cursor header), or page=1, 2, ... for tools that cannot follow a cursor.
In your dashboard, Connect your AI > Reporting and BI tools. It makes a secret key (gk_live_...) with only reviews:read, for all your businesses or only the ones you pick, shown once.
Send it in a header
Every tool that can send a header gets the header, and every recipe below uses it where the tool allows: Authorization: Bearer gk_live_...
A URL key, only if the tool cannot send headers
For Google Sheets IMPORTDATA, Supermetrics' JSON/CSV/XML connector and possibly Windsor.ai: in the same window, switch on Usable in a URL. That makes a URL key (gk_live_url_...): it only reads, covers only the businesses you picked, and is the only key the reports accept as key= in a URL. Any other key in a URL is refused.
Anyone with this link can read your review data. Use a URL key limited to the businesses you need, and rotate it if the link is shared. To rotate a URL key: create a new one under Connect your AI > Reporting and BI tools with Usable in a URL, paste the new link, then revoke the old key under API keys (it stops at once). Grades.com can switch URL keys off; while they are off, use the header or the Google Sheets export. Never use a publishable key (gk_pub_) for reports.
Native: Looker Studio and Google Sheets
The two tools Grades.com builds for itself.
Looker Studio Coming soon
Add a data source, pick grades.com Reviews, authorize it, paste a key with companies:read and reviews:read, then choose a business and a table (Reviews or AI Reputation) and create the report. Looker Studio's data freshness setting decides how often it refreshes.
Best: the synced export with the reporting layout Coming soon. One spreadsheet in your own Drive, three tabs, synced hourly or daily by Grades.com, and no key: it uses your Google account. Dates are real dates, numbers real numbers, every day of the last 365 has a row, and an HQ export holds every location.
Create it with the API: POST https://app.grades.com/api/v1/companies/{uuid}/exports/sheets with {"sync": "daily", "layout": "reporting", "all_locations": true} (a key with companies:write, after connecting Google once in the dashboard). The dashboard's export dialog does not offer the layout yet. Do not rename the tabs: the sync writes to them by name.
The add-onComing soon imports a business's reviews into a sheet and refreshes them hourly or daily. The Google Sheets add-on →
Tab
One row per
Columns
Daily metrics
day and location
Date, Location, Location ID, New reviews, Average rating, Five-star reviews, 1-2 star reviews, Replied reviews, Reply rate, Median response hours, Total reviews, Overall rating, Requests sent, Requests clicked, Requests reviewed
By platform
day, location and platform
Date, Location, Location ID, Platform, New reviews, Average rating, Replied reviews, Reply rate, Total reviews, Overall rating
Reviews
review
Review ID, Date, Site, Rating, Reviewer, Review, Reply, Replied at, Location, Link, Removed (the sync keeps your rows and notes)
Or a CSV report with IMPORTDATAComing soon
IMPORTDATA reads a CSV URL and recalculates about every hour, but it cannot send a header, so it needs a URL key (The key, step 3). One formula reads one page (up to 10,000 rows), and every editor of the sheet can see the key. To keep the key out of the sheet, an Apps Script with UrlFetchApp, the header and an hourly trigger can fetch the same report.
Anyone with this link can read your review data. Use a URL key limited to the businesses you need, and rotate it if the link is shared.
Verified against Google's documentation, November 2026.
Recipes for BI and reporting tools
Each recipe says whether we checked it against the tool's current public documentation (November 2026). We did not test inside these products. Replace gk_live_... with your key.
BigQuery export
Pro and Premium: your reviews, review versions, daily scores, AI Reputation answers and a daily summary in your own BigQuery dataset, synced nightly (hourly on Premium). Set it up in Company Settings > Notifications & exports > BigQuery export. Tables grades_reviews, grades_review_versions, grades_scores, grades_ai_reputation and grades_summary_daily (the warehouse twin of review-metrics?interval=day). Any tool that reads BigQuery reads them directly.
Excel (Power Query)
Data > Get Data > From Other Sources > Blank Query > Advanced Editor, and paste the Power BI query below. From Web only takes a URL or a fixed list of headers, without Authorization. Refresh with Refresh All, on open, or every few minutes while the workbook is open.
Verified against Microsoft's documentation (timed refresh: not verified).
Power BI
Get Data > Blank query > Advanced Editor (the Web connector's dialog cannot send Authorization). Keep the base URL fixed and the path and query in RelativePath and Query: that lets the Power BI service refresh it on a schedule. Credential: Anonymous, because the key travels in the header. Use JSON, not CSV: Power Query cannot read the X-Next-Cursor header. The key is saved in the .pbix, so use a read-only key.
let
Key = "gk_live_...",
GetPage = (cursor as nullable text) =>
Json.Document(Web.Contents("https://app.grades.com", [
RelativePath = "api/v1/reports/review-metrics",
Query = [interval = "month", from = "2026-01-01", limit = "10000"]
& (if cursor = null then [] else [cursor = cursor]),
Headers = [Authorization = "Bearer " & Key, Accept = "application/json"]
])),
Pages = List.Generate(
() => GetPage(null),
each _ <> null,
each if _[meta][has_more] then GetPage(_[meta][next_cursor]) else null
),
Rows = List.Combine(List.Transform(Pages, each _[data])),
Table = Table.FromRecords(Rows)
in
Table
Verified against Microsoft's documentation (Power Query Web connector, Web.Contents, refresh limits: up to 8 refreshes a day on Pro, 48 on Premium). Anonymous plus a header in the Power BI service: not verified; it works in Power BI Desktop.
Tableau
Use Tableau's REST API Connector (Tableau Exchange, Tableau 2023.3 and later, extracts only): GET https://app.grades.com/api/v1/reports/review-metrics?interval=month&limit=10000, authentication Bearer with your key, records at $.data[*]. Its paging is by offset, so use page numbers (page=1, 2, ...) or keep a request under 10,000 rows. Web Data Connector 3.0 is deprecated: do not build on it. Without the connector, connect to a CSV report saved to a file or a Google Sheet.
Verified against Tableau's documentation (Tableau Cloud refresh of this connector: not verified).
Supermetrics
Connector builder (a paid add-on of your Supermetrics account): headers and cursor paging are built in, as below. Custom data import (Supermetrics Hub): fetch a URL with the header Authorization: Bearer gk_live_..., for example a report with ?format=csv. JSON/CSV/XML connector: source URL plus JSONPath data.*; it has no header field, so it needs a URL key (key=gk_live_url_...). Prefer the connector builder or custom data import, which send the header.
JSON/CSV/XML connector: Anyone with this link can read your review data. Use a URL key limited to the businesses you need, and rotate it if the link is shared.
Source JSON: URL https://app.grades.com/api/v1/reports/review-metrics?interval=day&limit=10000, method GET, request header Authorization: Bearer gk_live_..., path data. It does not page: keep a request under 10,000 rows, or add one source per page (&page=2, ...) and join them with Append. Schedules run from every 15 minutes to monthly, by plan.
Verified against Coupler.io's documentation.
Databox
Data Manager > Custom Integration (beta): base URL https://app.grades.com/api/v1, header Authorization: Bearer gk_live_..., cursor paging with cursor from meta.next_cursor (or page numbers with page). Each sync replaces the data, so ask for the whole date range every time.
Verified against Databox's documentation.
Klipfolio
A REST/URL data source: the URL of a report, the header Authorization: Bearer gk_live_..., format JSON. No cursor paging: use limit=10000 or page numbers. Sources refresh only while the account has active users.
Not verified: Klipfolio's help pages were not available to us.
Other tools with a generic web source work the same way: send the header, read the rows at $.data and the next cursor at $.meta.next_cursor (it is null on the last page), or use ?format=csv.
Agency reporting tools, through Google Sheets
These tools read a Google Sheet and do not pull an arbitrary API URL. Point each at the synced export with the reporting layout: Daily metrics for KPIs and trends, By platform for a per-site table, Reviews for a review list.
Tool
Recipe
Checked
AgencyAnalytics
Google Sheets integration: connect the Google account that owns the export, pick the spreadsheet and the Daily metrics tab; date column Date; New reviews and Requests as sums, Average rating and Reply rate as averages; segment by Location.
Not verified (help pages unavailable to us)
DashThis
Add a Google Sheets source, then the Daily metrics tab (read every hour). Our headers are fixed, so pick sum or average in the widget, or copy the tab with your own headers on a second tab with =QUERY('Daily metrics'!A:O).
Verified
Swydo
Google Sheets data source, then the Daily metrics tab (date = Date). Google Sheets is Swydo's only generic source.
Verified (Sheets only); field mapping not verified
Whatagraph
Google Sheets source, then Daily metrics; on Pro and Premium the BigQuery export's grades_summary_daily works too. Its Custom API only receives pushed data.
Verified
Funnel
Google Sheets connector, then Daily metrics (it replaces the data on each hourly read).
Partly verified
Windsor.ai
Google Sheets connector, then Daily metrics (recommended). Only if its file/URL connector fetches a CSV report URL: a URL key (key=gk_live_url_...), with the warning under The key.
Not verified
What you need
A Grades.com account (14-day free trial of Pro, no card needed)
Your reporting tool, with a web, JSON, CSV, Google Sheets or BigQuery source
A reporting key with only reviews:read, for all your businesses or only the ones you pick, from Connect your AI (not needed for the Sheets export or BigQuery)
Every plan from Starter
The reports API, the Sheets export and the Looker Studio connector come with every plan. The BigQuery export is on Pro and Premium.
Is there a Grades.com connector for Power BI, Tableau or Supermetrics?
No. Those tools read the reports API through their own generic web, JSON or CSV source, with your key. Grades.com makes its own connector for Looker Studio and an add-on for Google Sheets; everything else works through the generic source.
Which key should I use?
A secret key with only reviews:read, for all your businesses or only the ones you pick, from Connect your AI > Reporting and BI tools in your dashboard, sent in the Authorization header. It reads reports and cannot change anything. A publishable key (gk_pub_) does not work for reports.
Can I put the key in the URL?
Only with a URL key (gk_live_url_...), made with Usable in a URL, and only for a tool that cannot send a header; any other key in a URL is refused. Anyone with this link can read your review data. Use a URL key limited to the businesses you need, and rotate it if the link is shared. To rotate it, create a new URL key, paste the new link and revoke the old key. Grades.com can switch URL keys off, so use the header wherever the tool allows it.
Does one report cover all my locations?
Yes. Every report covers every business the key reaches in one request, such as an agency's clients or an HQ's locations, and each row names its location_id and location. Add company= with one or more business IDs to narrow it.
How often should a report refresh?
Once a day is enough, hourly at most: the data changes at most hourly. Each key can make 120 requests a minute.
Is the review text included?
Only in the reviews report, and only when you add include_text=1. It is never included for healthcare businesses, because reports go to third-party tools.
Which plan do I need?
Every plan from Starter can create the key and read the reports. The AI Reputation and competitor reports include only the businesses whose plan has those features; the others are listed as skipped. The BigQuery export is on Pro and Premium.
Google Sheets, Looker Studio and BigQuery are trademarks of Google LLC. Grades.com is not affiliated with or endorsed by Google or by any other tool named on this page.