SearchApi is a reasonable first call for Google Trends JSON: pick the trends engine, send a query, get a mirror of the web surface back. The shape makes sense for a catalog that sells search results, where every Google page is one engine among many. Trends API starts from the other end. One POST, three modes, and the same key reads 16 keyword sources and 24 live feeds. A Google-only question gets the same first answer here. The difference shows up on the second question, when TikTok or Amazon enters the same pipeline. The side-by-side sits on Trends API vs SearchApi.
One endpoint instead of one engine per surface
A trends job on a per-engine API touches the trends endpoint for history and the trending endpoint for the board, each with its own parameters. Here the mode field selects the payload: get_time_series for weekly points, get_growth for percent change over windows such as 3M and 12M, and get_top_trends for boards. The source string changes, the contract does not.
The buying-criteria version of this comparison sits on Best Google Trends API. This page stays on request shape and coverage.
Data rows instead of page mirrors
The response envelope is {"statusCode": int, "body": string}. Parse body again and the inner object holds rows: date, 0-100 value, and volume where the source publishes it. Nothing in the payload maps to a widget, a related-queries block, or a layout region. A schema change on a web property is therefore not an incident for trend jobs built on this endpoint.
Where the coverage gap opens
Google Trends is the overlap. Past it, the sources diverge. Amazon product demand, TikTok keyword curves, npm and PyPI package adoption, Steam player counts, and Wikipedia attention sit behind the same key and the same 0-100 scale. A content team tracking a launch reads search interest and Amazon orders in one table. The source list sits on the sources reference, and caps sit on pricing. Teams on the other large SERP vendor get the parallel read on SerpApi alternative.