Grafana charts time. Trends API weekly points are date plus a 0-100 value. There is no first-party plugin. The Infinity datasource (community) can POST https://api.trendsapi.ai/api. A cleaner path is a BigQuery table that cron or Airflow already filled. Fields: the API reference. Caps: pricing.
HTTP plugin versus warehouse
Infinity (or another JSON API plugin) needs:
POST https://api.trendsapi.ai/api
Authorization: Bearer <api_key>
Content-Type: application/json
{"mode":"get_time_series","source":"google search","keyword":"bitcoin"}
The plugin parses the envelope. body is still a string. Configure a second JSON parse, or a JSONata/UQL step, before the panel sees date. That rule is on parse the body. Each dashboard refresh is a 200 if the plugin hits /api.
A BigQuery or Postgres datasource reads date, value, keyword, source. No Bearer header. No second parse. Prefer that when more than one dashboard shows the same keyword.
date is the time field
After the inner parse, points look like {date, value, keyword, source}. Set date as Time. Set value as the metric. 100 is the peak of that series, not a volume count. Mode notes sit on get_time_series.
get_growth is a bar or stat of period vs growth. It is not a line. get_top_trends is a table of rank and label at as_of_ts. Do not force those two modes into a time series panel.
Alerts sit on the warehouse
Grafana alerting on a plugin that POSTs on every evaluate will spend lookups. Alert on the series table instead. Caps stay on pricing. 401 on a plugin is a bad header, on authentication.