> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/google-trends/interest-over-time>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/google-trends/interest-over-time.mdx>

---

# Google Trends Interest Over Time API

One to five terms as a time series, relative to the peak in the request, with the resolution and notes that explain it.

`GET /v1/google-trends/interest-over-time` takes `query` (one to five terms, comma-separated or repeated), `geo`, `time`, and optional `category`, `source` and `language`. A term is plain text or `id:/m/...` from the suggestions route. `time` is one named range, a custom range, or two comma-separated ranges for a single term.

`data.points[]` is oldest first. Each point has `time` in ISO 8601 UTC, `label` as written on the axis, `values[]` and `hasData[]` with one entry per term, `isPartial` (false except the last point of a live range), and a `period` (0 or 1) in a two-period answer or null for one range. Values are 0 to 100 relative to the peak inside this request, so they are not comparable across requests. `data.resolution` says the granularity, `data.averages` carries one average per term or period, and `data.notes` carries data-change notes. When no point has data, `lookupStatus` is `no_data`; the rows are still returned with their false `hasData` flags.

## Request

- **Endpoint:** `GET /v1/google-trends/interest-over-time`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by one to five terms and a time range
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/google-trends/interest-over-time/get)
- **Platform page:** [/platforms/google-trends](https://www.socialfetch.dev/platforms/google-trends)

## FAQ

### How do I compare two periods?

Send one term and two time ranges, for example query=coffee&time=2024-01-01 2024-03-01,2025-01-01 2025-03-01. Every point carries period 0 or 1. Two named ranges are accepted only when they are the same length and the two ranges differ; use custom date ranges to compare periods of different lengths. Two ranges with more than one term are refused, and a range that ends before January 2004 is refused because Google Trends has no data there.

### Can I compare different request values?

No. Values are normalised inside each request. Compare shapes and order within one response, not the number from one request with the number from another.

### What does hasData mean?

hasData has one boolean per term at each point. A false entry means there was no figure for that term at that point; the value is still present so the arrays stay aligned.

### What are resolution and notes?

resolution is the granularity the answer used, such as MINUTE, HOUR, DAY, WEEK or MONTH. notes holds any data-change text the answer carried, up to ten entries.

### What does no_data mean here?

The request was valid but no point carries data, for example for a tiny place or a term with no series. HTTP is 200 and lookupStatus is no_data; the rows are kept with false hasData flags.

### How much does an interest lookup cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.
