What does "primary source" mean for machine-readable data?
A primary source is the body that creates the record and publishes it itself. For machine-readable data that means reading SEC EDGAR rather than a finance site quoting it, or the USGS feed rather than a news story about the quake. Each hop away from the issuer adds delay, editing, and a chance to be wrong.
/mcp. Nothing here needs an API key or a signup.
The word gets used loosely in API marketing, where "primary source data" often means "we scraped the primary source". Those are different products with different failure modes, and the difference matters most exactly when the data matters most.
The test: who would be wrong if the record were wrong?
Run that question against any feed. If a filing is misstated, the SEC is not wrong, the filer is, and EDGAR faithfully carries what was filed. If a news article about that filing is wrong, the outlet is wrong and the filing is fine.
The body that would be answerable for the record is the primary source. Everyone downstream is repeating, and repetition is where the errors enter.
Three tiers, and what each costs you
| Tier | Example | Delay | Failure mode |
|---|---|---|---|
| Primary | SEC EDGAR, USGS, Federal Register | Publication delay only | The issuer's own errors, corrected in place |
| Syndicated | A newswire carrying the same item | Editorial lag, minutes to hours | Selection: it carries what it judges newsworthy |
| Derived | A summary, a scrape, a model's recollection | Hours or unbounded | Silent transformation and stale caches |
The middle tier is where most data products live, and it is not useless. A wire service adds editorial judgement, cross-referencing and plain-language context that raw filings do not have. The point is knowing which one you bought.
The third tier is where agents get into trouble, because a derived source reproduces the shape of a fact without carrying its provenance. The mechanics of that failure are covered in why AI agents hallucinate recent events.
What a primary source gives you that an aggregator cannot
Four things, and all four are the kind an agent needs rather than a reader.
Identifiers. EDGAR gives you a CIK and an accession number. USGS gives you an event ID. Those keys let an agent deduplicate across runs, join to other records, and check later whether the same item changed. An aggregator's headline has no key at all.
Timestamps that mean something. A primary source timestamp is when the body published. An aggregator timestamp is when the aggregator noticed, which is a fact about the aggregator.
A citation URL that will resolve in five years. An agent producing an answer for a person should be able to hand over the document, not a link to a page that described the document.
Correction behaviour you can reason about. Issuers amend records through their own process, and the amendment is itself a record. A derived copy usually just quietly changes, or does not.
Speed is usually the surprise
The assumption that primary sources are slow and aggregators are fast is backwards more often than not. The SEC states that its submissions API is updated in real time as filings are disseminated, with a typical processing delay of less than a second, and its XBRL APIs under a minute. USGS updates its earthquake GeoJSON feeds every minute.
Nothing downstream can beat that, because everything downstream starts by reading it. What aggregators actually add is not speed, it is coverage across sources and editorial framing, both of which are real and neither of which is freshness.
Reading primary sources directly
The cost of going direct is that every source has its own format, rate limits and quirks: EDGAR wants a declared user agent, the Federal Register paginates differently from the courts, and half of them still speak XML. That is the work a data wire absorbs. This service reads 40 primary and curated feeds into 58 wires on one route shape, and the source list behind every wire is published rather than described.
# a primary-source wire: SEC filings, free preview curl "https://thebotwire.com/sec/preview?q=8-K" # paid call, returns filing identifiers and the source document URL curl -i "https://thebotwire.com/sec/latest?q=8-K&since=3d" # which sources sit behind every wire curl "https://thebotwire.com/sources"
The build-it-yourself version of the same job, and when it is the right call, is in scraping versus primary-source APIs. The lighter question of whether the source's own feed is enough is in RSS versus a data API.
FAQ
Is a government API always a primary source?
Usually, but not automatically. A government API is primary for records that agency creates, and secondary when it republishes another body's data. USASpending is primary for its own award records and downstream of agency reporting systems for the underlying detail, which is why reporting lag exists there at all.
Does primary source mean the data is correct?
No. It means the data is authentic: this is what the issuer actually published. Issuers file wrong numbers, amend them, and occasionally withdraw them. Primary means you see those corrections as records rather than as silent edits.
Is a scrape of a primary source a primary source?
The content is, the pipeline is not. A scrape inherits everything the source got right and adds parser breakage, silent field drift and its own schedule. It is a reasonable way to reach a source with no API, and it should be labelled as what it is rather than as direct access.
How do I check what a data provider is actually reading?
Ask for the source list and a document URL in the response. A provider reading primary sources can hand you the filing, the alert or the docket entry. One that cannot produce a resolvable link to the underlying record is a tier further out than it says.
Sources
Update behaviour for the SEC submissions and XBRL APIs, including the real-time dissemination model and the sub-second and sub-minute processing delays quoted above, is documented at SEC EDGAR application programming interfaces. Feed update cadence for earthquake data is stated in the USGS GeoJSON summary feed documentation. The wire and feed counts for this service are published at thebotwire.com/health.
Related: Web scraping vs primary-source APIs for AI agents · RSS vs a data API for real-time agent data