ParseForge Scrapers

GAO Reports Scraper

parseforge/gao-reports-scraper

OtherNews & media

Scrapes GAO reports, testimony, bid protests, legal decisions, and open recommendations from the official feed. Returns each record as a flat row with title, date, summary, and report number.

Run this scraper See the API call
Total users
1
Monthly active
0
Total runs
95
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

GAO Reports Scraper

Scrape GAO reports, testimony, bid protests, legal decisions, and open recommendations from the official feed. Each record includes the title, publication date, summary, and report number. No API key or login. Export to CSV, JSON, Excel, or XML.

The GAO website offers no bulk download, and its search interface is built for one query at a time. This Actor reads the public GAO feeds directly, filters by publication type and keyword, and returns every match in one flat schema. It is the fastest way to build a dataset of federal oversight documents for research, compliance, or news monitoring.

Who uses it What they scrape GAO for
Policy researchers Tracking which federal programs the GAO is auditing this quarter
Government contractors Monitoring bid protest decisions that affect their industry
Journalists Finding GAO reports on a specific agency or topic for an investigation
Compliance officers Collecting open recommendations to prepare for an audit
Data analysts Building a time series of GAO publications for trend analysis

What it does

This Actor collects GAO publications by feed type and optional keyword, and returns each one as a flat row with title, publication date, summary, and report number.

  • ๐Ÿ“„ Five publication feeds: reports, congressional testimony, bid protests, legal decisions, and open recommendations.
  • ๐Ÿ” Keyword filter: match the title or description, case-insensitive, so only relevant records reach your dataset.
  • ๐Ÿ“ฆ Flat output: every record is one row with the same fields, ready for CSV, JSON, Excel, or XML.
  • โšก No API key: the Actor reads the public GAO feeds directly, with no registration or rate limits.
  • ๐Ÿ”ข Scalable runs: pull up to 1,000,000 records on a paid plan, or 10 on the free tier.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with GAO data

๐Ÿ“ˆ Track oversight trends.

A policy researcher runs the Actor weekly on the reports feed with no keyword, then charts publication counts by agency to see where oversight is intensifying.

โš–๏ธ Monitor bid protest outcomes.

A government contractor runs the bidProtests feed with a keyword for their industry, then reviews each decision to adjust their proposal strategy.

๐Ÿ“ฐ Find stories in federal audits.

A journalist runs the reports feed with a keyword for a specific agency, then reads the summaries to identify reports worth a deeper look.

๐Ÿงพ Prepare for an audit.

A compliance officer runs the openRecommendations feed with a keyword for their program, then compiles the list of unresolved recommendations to address before the next review.

๐Ÿ“Š Build a research dataset.

A data analyst runs the legalDecisions feed with no keyword, then exports the full history to CSV for statistical analysis of decision patterns.

Why choose this scraper

What you get
Official source Data comes straight from the GAO public feeds, not a third-party mirror
One fixed schema Every record has the same fields, so you can merge runs without cleaning
No code required Set the feed and keyword in the input, then download the result
Export anywhere CSV, JSON, Excel, or XML, ready for your existing workflow

How it compares

No other Store actor targets GAO the same way, so the honest comparison is with the alternatives teams actually weigh.

GAO Reports Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When GAO changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor from a publication feed and an optional keyword, and the filter runs as each record is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "maxItems": 10
}

A larger pull:

{
  "maxItems": 200
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.10
1,000 results $21.00
10,000 results $210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the GAO Reports Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to GAO through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/gao-reports-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your keyword. It is matched case-insensitively against the title and description, but if it is too specific or misspelled, no records will match. Try a broader keyword or leave it empty.

Why did I only get 10 records?

Free users are limited to 10 records per run. Upgrade to a paid plan and set maxItems higher to get more.

Why is the run slow?

The Actor reads the GAO feed in pages. If you set maxItems very high, it may take a few minutes. Reduce maxItems or narrow the keyword to speed it up.

Why are some fields empty?

Not every GAO record has every field. For example, some records may not have a summary or a report number. Empty fields are normal and are returned as blank in the output.

Can I get the full text of each report?

No. The Actor returns the metadata from the feed, including the summary, but not the full PDF text. You can use the report URL in the output to download the full document.

FAQ

Question Answer
What is the GAO? The U.S. Government Accountability Office is an independent agency that audits federal programs and spending. Its reports, testimony, bid protest decisions, and legal opinions are public records.
Do I need an API key or login? No. The Actor reads the public GAO feeds directly, so there is no registration, OAuth, or rate limit to manage.
What is the difference between the five feeds? Reports are formal audit reports. Testimony is prepared statements for congressional hearings. Bid protests are decisions on contract award challenges. Legal decisions are GAO legal opinions. Open recommendations are unresolved suggestions to agencies.
How does the keyword filter work? The keyword is matched case-insensitively against the title and description of each record. Only records that contain the keyword are returned.
Can I scrape all GAO reports? Yes. Set the feed to reports and leave the keyword empty, then set maxItems to a high number on a paid plan. The Actor will return every report in the feed.
What fields are in the output? Each record includes the title, publication date, summary, report number, and other metadata from the GAO feed. The exact field list is shown in the sample output.
How many records can I get? Free users can get up to 10 records per run. Paid users can set maxItems up to 1,000,000.
Can I filter by date? The current input schema does not have a date filter. You can filter by feed and keyword, then sort or filter the exported data by date in your own tool.
Is this legal? Yes. GAO publications are U.S. government works and are in the public domain. The Actor only reads publicly available feeds.
Can I schedule this Actor? Yes. On Apify, you can schedule the Actor to run daily, weekly, or on any cron schedule, so your dataset stays current.

Related actors

  • gao-reports-scraper: Use this Actor to scrape GAO reports, testimony, bid protests, legal decisions, and open recommendations.

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. Government Accountability Office. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer Free users: 10. Paid: up to 1,000,000 10
feed string (5 options) GAO publication type reports
keyword string Match title or description (case-insensitive) not set

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.019 to $0.021

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~gao-reports-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run GAO Reports Scraper on Apify All scrapers