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

Extract news and blog articles from any site: paste home pages, sections, RSS feeds or sitemaps and get title, author, publish date, clean text, LLM-ready markdown, lead image, language and tags. Date and keyword filters, only-new mode for monitoring.
Turn any news site, blog, RSS feed or sitemap into clean, structured articles. Paste a home page such as theguardian.com and get the latest articles with title, author, publish date, full text, LLM-ready markdown, lead image, language and tags in seconds. No login, no coding, and you pay per article.
24 hours.| Field | What it does |
|---|---|
startUrls | Home pages, section pages, RSS/Atom feeds or XML sitemaps. The type is detected automatically. |
articleUrls | Direct article links. All of them are extracted. |
maxArticles | Maximum number of articles taken from the start URLs (0 = no limit). |
maxArticlesPerSite | Optional cap per start URL. |
dateFrom / dateTo | Publish date window: YYYY-MM-DD or relative values such as 24 hours, 3 days, 2 weeks. |
onlyArticlesForLastDays | A moving window for scheduled runs. |
keywords | Keep only articles that mention one of these words. |
minWords | Skip discovered pages with less text (default 100). |
onlyNewArticles | Skip articles delivered in earlier runs. |
useFeeds, useSitemaps, maxSectionPages | How articles are discovered. |
includeMarkdown, includeText, includeHtml, includeLinks | Which content fields to save. |
browserFallback | Use a real browser for JavaScript-rendered or blocked pages. |
{
"startUrls": ["https://www.theguardian.com", "https://techcrunch.com"],
"articleUrls": ["https://techcrunch.com/2024/05/13/openais-newest-model-is-gpt-4o/"],
"maxArticles": 20,
"dateFrom": "3 days",
"keywords": ["AI", "climate"]
}
One row per article.
| Field | Description |
|---|---|
url, loadedUrl, canonicalUrl | Article address, the address after redirects, and the canonical URL |
title | Headline |
author, authors | Author names |
publishedAt, modifiedAt | Publish and update time (ISO 8601, UTC) |
description | Summary or meta description |
siteName, publisher, domain | Where it was published |
language | Language code (en, de, fr, ...) |
section, categories, tags | Section, categories and keywords |
image, videos | Lead image and embedded videos |
text, markdown | Article body as plain text and markdown |
wordCount, readingTimeMinutes | Length |
isPaywalled, copyright, favicon, pageType, schemaTypes | Extra metadata |
discoveredFrom, startUrl | How the article was found (feed, sitemap, page, section, direct) |
extractedWith | http or browser |
status, error | ok, or why an article URL you listed failed, e.g. http_error, no_article_text (failed rows are free) |
{
"url": "https://techcrunch.com/2026/10/15/ramp-reaches-60b-valuation-as-it-pushes-deeper-into-ai/",
"canonicalUrl": "https://techcrunch.com/2026/10/15/ramp-reaches-60b-valuation-as-it-pushes-deeper-into-ai/",
"title": "Ramp reaches $60B valuation as it pushes deeper into AI",
"author": "Ram Iyer",
"authors": ["Ram Iyer"],
"publishedAt": "2026-10-15T14:47:09Z",
"modifiedAt": "2026-10-15T15:29:11Z",
"description": "The funding comes as Ramp's annualized revenue crosses $2B, and its customer count reaches 85,000.",
"siteName": "TechCrunch",
"publisher": "TechCrunch",
"domain": "techcrunch.com",
"language": "en",
"section": "Fintech",
"categories": ["Fintech", "Fundraising", "Startups"],
"tags": ["ai tokens", "expense management", "Ramp"],
"image": "https://techcrunch.com/wp-content/uploads/2026/10/eric-glyman.jpg",
"wordCount": 541,
"readingTimeMinutes": 3,
"text": "Expense management company Ramp said on Thursday that it had raised $1.85 billion in a new funding round ...",
"markdown": "Expense management company Ramp said on Thursday that it had raised $1.85 billion in a new funding round ...",
"isPaywalled": null,
"pageType": "article",
"status": "ok",
"discoveredFrom": "page",
"startUrl": "https://techcrunch.com/",
"extractedWith": "http",
"scrapedAt": "2026-10-15T20:53:20Z"
}
You pay $0.90 per 1,000 articles ($0.0009 per article), plus a small amount of platform usage (compute and proxy traffic). Only extracted articles are charged. Pages that turn out not to be articles, articles outside your date range or keywords, and failed URLs are free.
Example: 1,000 articles ≈ $0.90 in article fees plus about $0.07 of proxy traffic and compute (measured on a 1,000-article run), so about $0.97 in total. A typical 20-article run costs about $0.02. Pages that need the browser fallback add browser usage for those pages only.
Is it legal to extract articles? Collecting publicly available pages is generally allowed, but articles are protected by copyright. Check each site's terms before you republish content. Use the data for analysis, monitoring and research.
Do I need a login, API key or proxy? No. The actor uses datacenter proxies by default and retries blocked pages over a residential proxy automatically.
How many articles can I get? As many as the site exposes. Home pages and feeds give the newest 20 to 200 articles; sitemaps let you go back thousands of articles. Set Max articles to 0 for no limit.
What if a field is empty? Fields such as author, tags or section are filled only when the site publishes them. The publish date is taken from structured data, meta tags, the page or the URL; if a site shows none it stays empty (or enable "Must have a publish date").
Does it work on paywalled sites?
It extracts what the site sends to a normal visitor. On hard paywalls that is often the teaser only, and isPaywalled is set when the site declares it. Some sites serve more to the Googlebot user agent option.
Can I schedule it or use the API? Yes. Schedule runs with "Only new articles" and a date window for hourly monitoring, and read the results through the API, webhooks or integrations.
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.
startUrlsarrayOptionalStart URLs (sites, sections, feeds, sitemaps)
News sites, section pages (e.g. https://techcrunch.com/category/artificial-intelligence/), RSS/Atom feeds or XML sitemaps. Articles are found automatically: from the page's links, the site's RSS feeds, its (news) sitemaps and a few section pages. Each type is detected from the content, so you can mix them.
articleUrlsarrayOptionalArticle URLs
Direct links to articles. Every listed article is extracted (Max articles does not apply to them) and no other pages are crawled from them.
maxArticlesintegerOptionaldefault 20Max articles
Maximum number of articles taken from the start URLs in total. 0 means no limit (stops when no more articles are found). Article URLs are always all extracted.
maxArticlesPerSiteintegerOptionalMax articles per start URL
Optional cap per start URL, so one big site cannot use up the whole limit. 0 means no per-site cap.
Date, length and keyword filters. Filtered articles are never charged.
dateFromstringOptionalPublished from
Only articles published on or after this date. Use YYYY-MM-DD or a relative value such as '24 hours', '3 days' or '2 weeks'. Feed and sitemap dates are used to skip old articles before they are downloaded.
dateTostringOptionalPublished until
Only articles published on or before this date (YYYY-MM-DD, inclusive, or a relative value such as '1 day').
onlyArticlesForLastDaysintegerOptionalOnly articles from the last X days
Shortcut for a moving window, handy for scheduled runs. Combined with Published from, the later date wins.
keywordsarrayOptionalKeywords
Keep only articles whose title, description or text contains at least one of these words or phrases (not case sensitive). Leave empty for all articles.
minWordsintegerOptionaldefault 100Minimum words
Discovered pages with fewer words of article text are skipped (filters out galleries, teasers and index pages). Article URLs you list are kept down to 20 words.
mustHaveDatebooleanOptionaldefault falseMust have a publish date
Skip articles whose publish date cannot be found.
onlyNewArticlesbooleanOptionaldefault falseOnly new articles (skip ones from earlier runs)
Remembers the articles delivered per site in a named key-value store in your account ('article-extractor-seen') and skips them on the next runs. Ideal for scheduled news monitoring.
How articles are found on the start URLs.
useFeedsbooleanOptionaldefault trueUse RSS/Atom feeds
Read the RSS/Atom feeds a site advertises to find its newest articles (with dates).
useSitemapsbooleanOptionaldefault trueUse sitemaps
When the home page, feeds and sections do not give enough articles, read the site's news and post sitemaps (from robots.txt), newest first. Applies to home page start URLs.
maxSectionPagesintegerOptionaldefault 5Max section pages per site
How many section or category pages (e.g. /world, /technology) to open per start URL to find more articles once the start page is used up. 0 turns this off.
onlySameDomainbooleanOptionaldefault trueOnly articles on the same domain
Ignore links to other websites (subdomains of the same site are allowed). Feeds and sitemaps you list are always followed.
includeUrlPatternsarrayOptionalOnly article URLs matching
Only take discovered articles whose URL matches one of these regular expressions or text fragments, e.g. /politics/ or /2026/.
excludeUrlPatternsarrayOptionalSkip article URLs matching
Never take discovered articles whose URL matches one of these regular expressions or text fragments, e.g. /live/ or /video/.
Which content fields to save.
includeMarkdownbooleanOptionaldefault trueInclude markdown
Add the article body as markdown (headings, lists, bold, tables), ready for LLMs and RAG.
includeTextbooleanOptionaldefault trueInclude plain text
Add the article body as plain text.
includeHtmlbooleanOptionaldefault falseInclude cleaned HTML
Add the article body as cleaned HTML (with links and images). Makes the dataset larger.
includeLinksbooleanOptionaldefault falseInclude links in the article
Add the links found inside the article body.
browserFallbackbooleanOptionaldefault trueBrowser fallback for JavaScript pages
Open a page in a real browser when plain HTTP gets no article text (JavaScript-rendered sites) or is blocked. Browser time is billed as platform usage, only for the pages that need it.
useGooglebotHeadersbooleanOptionaldefault falseUse Googlebot user agent
Send a Googlebot user agent. Some sites then serve the full article; others block it. Off by default.
maxConcurrencyintegerOptionaldefault 16Max concurrency
How many pages are downloaded at the same time (at most 8 per website).
requestTimeoutSecsintegerOptionaldefault 20Request timeout (seconds)
Time limit for each download.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work for most news sites. Blocked pages are retried once over a residential proxy automatically.
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 |
|---|---|---|
| url | string | null | Article address as given or discovered |
| loadedUrl | string | null | Address after redirects |
| canonicalUrl | string | null | Canonical URL declared by the page |
| title | string | null | Article headline |
| author | string | null | Author names joined with commas |
| authors | array | null | Author names |
| publishedAt | string | null | Publish date and time (ISO 8601, UTC) |
| modifiedAt | string | null | Last update (ISO 8601, UTC) |
| description | string | null | Summary or meta description |
| siteName | string | null | Site name |
| publisher | string | null | Publisher |
| domain | string | null | Website domain |
| language | string | null | Language code (en, de, fr, ...) |
| section | string | null | Section or category given by the site |
| categories | array | null | Categories |
| tags | array | null | Tags and keywords |
| image | string | null | Lead image URL |
| videos | array | null | Embedded video URLs |
| wordCount | number | null | Words in the article body |
| readingTimeMinutes | number | null | Estimated reading time at 230 words per minute |
| text | string | null | Article body as plain text |
| markdown | string | null | Article body as markdown |
| html | string | null | Cleaned article HTML (optional) |
| links | array | null | Links inside the article (optional) |
| isPaywalled | boolean | null | true when the site marks the article as not free to read |
| copyright | string | null | Copyright holder |
| favicon | string | null | Site icon URL |
| pageType | string | null | Open Graph or schema.org page type |
| schemaTypes | array | null | schema.org types on the page |
| status | string | null | ok, or invalid_url, http_error, network_error, not_html, no_article_text, not_processed for article URLs that failed (not charged) |
| error | string | null | Reason when an article URL could not be extracted |
| statusCode | number | null | HTTP status |
| discoveredFrom | string | null | direct, feed, sitemap, page or section |
| startUrl | string | null | Start URL the article was found from |
| extractedWith | string | null | http or browser |
| scrapedAt | string | null | When the article was extracted (ISO 8601) |
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 |
|---|---|---|
| Extracted article | One article successfully extracted (pages that are not articles, filtered articles and failed URLs are free). | $0.0009 |
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/article-extractor').call({
"startUrls": [
"https://www.theguardian.com",
"https://techcrunch.com"
],
"maxArticles": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// 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/article-extractorPaste 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/article-extractor"
}
}
}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.
Article text and metadata from a section page.
Clean text and metadata from direct article links.
Articles from an RSS feed with HTML and links.
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.