
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
3 monthly users

Scrape Google Trends for a search term or explore URL. Each result includes interest over time, interest by country or region, and the related queries Trends returns.
Get Google Trends data as clean JSON, one row per search term. Each result holds interest over time, interest by country or region, and the top and rising related queries, with no Google account and no API key. Compare up to five terms on one chart, or paste an explore URL you already have.
| Field | Type | What it does |
|---|---|---|
searchTerms | array | One result per term. With isMultiple, a comma splits a row into a comparison of up to five terms. |
startUrls | array | Explore URLs from trends.google.com. Geography, date, and category in the URL override the filter fields. |
maxItems | integer | Maximum results. 0 means no limit. Default 10. |
timeRange | string | A preset: now 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 5-y, all. Empty means the past 12 months. |
customTimeRange | string | YYYY-MM-DD YYYY-MM-DD. Wins over timeRange. |
geo | string | Country code such as US, or empty for worldwide. |
category | string | Optional Trends category id. |
isMultiple | boolean | Compare comma-separated terms on one chart. |
spreadsheetId | string | A public Google Sheet. The first column lists terms and row 1 is skipped. |
maxConcurrency / maxRequestRetries | integer | Parallel terms (default 3) and retries when Trends rate-limits (default 4). |
proxyConfiguration | object | Residential by default. Datacenter addresses are rate-limited. |
{
"searchTerms": ["bitcoin"],
"timeRange": "now 7-d",
"geo": "US",
"maxItems": 10,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": ["RESIDENTIAL"]
}
}
Compare two terms:
{ "searchTerms": ["coffee, tea"], "isMultiple": true, "timeRange": "today 5-y" }
One dataset item per term (or per comparison). The Output tab opens on interest over time, with one row per time point. Other views list related queries, related topics, countries, and regions.
| Field | Description |
|---|---|
inputUrlOrTerm, searchTerm, geo, timeRange, url | What was searched and the explore URL. |
interestOverTime_timelineData | Points with time, formattedTime, value, hasData, formattedValue. |
interestOverTime_averages | Per-term averages in comparison mode. |
interestBy | Interest by country (worldwide searches). |
interestBySubregion, interestByCity, interestByMetro | Finer breakdowns when you pick a country and Trends publishes them. |
relatedQueries_top, relatedQueries_rising | Top and rising related queries with links. |
relatedTopics_top, relatedTopics_rising | Top and rising related topics, when Trends returns any. |
Real item from a test run (lists trimmed to one entry):
{
"inputUrlOrTerm": "web scraping",
"searchTerm": "web scraping",
"geo": "",
"timeRange": "today 12-m",
"url": "https://trends.google.com/trends/explore?q=web+scraping&date=today+12-m",
"interestOverTime_timelineData": [
{
"time": "1760227200",
"formattedTime": "Oct 12 – 18, 2025",
"formattedAxisTime": "Oct 12, 2025",
"value": [52],
"hasData": [true],
"formattedValue": ["52"]
}
],
"interestOverTime_averages": [],
"interestBy": [
{ "geoName": "St. Helena", "geoCode": "SH", "value": [100], "formattedValue": ["100"], "maxValueIndex": 0, "hasData": [true] }
],
"interestBySubregion": [],
"relatedTopics_top": [],
"relatedQueries_top": [
{
"query": "web data scraping",
"value": 100,
"formattedValue": "100",
"hasData": true,
"link": "https://trends.google.com/trends/explore?q=web+data+scraping&date=today+12-m"
}
],
"relatedQueries_rising": [
{
"query": "eiffel tower height",
"value": 24600,
"formattedValue": "Breakout",
"link": "https://trends.google.com/trends/explore?q=eiffel+tower+height&date=today+12-m"
}
]
}
$2 per 1,000 results, which is $0.002 per result. A result is one search term, one comparison, or one Trends URL, never one time point.
Worked example: 100 terms cost $0.20 in result fees. Compute and residential proxy traffic ($2 per GB) are billed separately at standard rates; a single-term run at the default 256 MB costs about $0.003 in total including the $0.002 result fee.
Is it legal? The actor reads publicly visible Google Trends pages. You are responsible for using the data in line with Google's terms and local law.
Do I need a Google account or a proxy? No account. Residential proxy is selected by default because Google Trends rate-limits datacenter addresses.
Can I compare terms?
Yes. Tick Multiple terms and enter coffee, tea, or paste an explore URL whose q parameter already lists several terms.
Why are some geography lists empty? Worldwide searches fill interest by country. A country search fills subregions, and cities or metros when Trends has them. A list stays empty when Trends does not publish that breakdown.
How many results can I get?
As many as you set in Max items; 0 means no limit. Each term or URL is one result.
Can I schedule it or call it from code? Yes. Use schedules in the console or start runs through the API.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchTermsarrayOptionalSearch terms
Terms to look up on Google Trends. Each term becomes one result. With Multiple terms checked, a comma splits one row into a comparison of up to five terms.
startUrlsarrayOptionalGoogle Trends URLs
Explore URLs from trends.google.com. Query, geography, date, and category in the URL override the fields below.
maxItemsintegerOptionaldefault 10Max items
Maximum number of results. Each search term or URL counts as one result. Zero means no limit.
Geography, dates, and category apply to search terms. A Trends URL keeps the filters encoded in that URL.
timeRangeenumOptionaldefault ""Time range
Predefined range. Ignored when Custom time range is set.
customTimeRangestringOptionalCustom time range
Optional inclusive range that replaces Time range. Format: YYYY-MM-DD YYYY-MM-DD.
geoenumOptionaldefault ""Geo area
Limit interest to a country. Worldwide returns interest by country. A country returns subregions, and cities or metros when Trends publishes them.
categoryenumOptionaldefault ""Category
Limit the search to one Trends category. All categories leaves the filter off.
isMultiplebooleanOptionaldefault falseMultiple terms
Treat a comma inside a search term as a separator and compare those terms on one chart.
Load extra search terms from a public sheet. They use the same filters as the terms above.
spreadsheetIdstringOptionalGoogle Sheet ID
Optional public Google Sheet whose first column lists search terms. Row 1 is the header and is skipped. The sheet must be viewable by anyone with the link.
Lower concurrency if requests start getting rate limited.
maxConcurrencyintegerOptionaldefault 3Max concurrency
How many terms to fetch at the same time.
maxRequestRetriesintegerOptionaldefault 4Max request retries
How many times to retry a term when Trends rate-limits the request.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Residential proxies are the default. Datacenter addresses are rate-limited by Google Trends.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| inputUrlOrTerm | string | |
| searchTerm | string | |
| geo | string | |
| timeRange | string | |
| url | string | |
| interestOverTime_timelineData | array | |
| interestOverTime_averages | array | |
| interestBy | array | |
| interestBySubregion | array | |
| interestByCity | array | |
| interestByMetro | array | |
| relatedTopics_top | array | |
| relatedTopics_rising | array | |
| relatedQueries_top | array | |
| relatedQueries_rising | array |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One Google Trends result for a search term or URL. | $0.002 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/google-trends-scraper').call({
"searchTerms": [
"webscraping"
],
"startUrls": [],
"maxItems": 10,
"timeRange": "",
"customTimeRange": "",
"geo": "",
"category": "",
"spreadsheetId": "",
"maxConcurrency": 3,
"maxRequestRetries": 4,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/google-trends-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/google-trends-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Interest over the last 3 months for two terms.
Google Trends data for the last 7 days.
Trends data from a pasted Google Trends link.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.