Skip to content

Data sources and licences

Verdict’s index holds only open-licensed or public-domain data. Every source records a licence that permits caching and derived use. No LinkedIn data enters the index from any source. Vendor data (phase 2) is never stored; it passes through at the vendor’s price under the vendor’s terms.

The table below is the reference data behind GET /v1/sources. Live freshness (the last successful run) comes from the API.

Source Name Licence Refresh cadence Rate limit Attribution
sec_edgar SEC EDGAR public_domain Daily: submissions API and full-index (8-K, Form D, Form 4, S-1, 13F); Form ADV via the IAPD bulk file monthly and the daily feed. Under 10 requests per second with a declared User-Agent (SEC fair access). Source: U.S. Securities and Exchange Commission (EDGAR and IAPD).
gleif GLEIF cc0 Golden copy plus daily deltas (LEI records and direct and ultimate parents). none published Source: Global Legal Entity Identifier Foundation (GLEIF), LEI data under CC0.
companies_house UK Companies House ogl_v3 Streaming API for filings, officers and PSC changes; monthly bulk download for the base. none published Contains public sector information licensed under the Open Government Licence v3.0.
wikidata Wikidata cc0 Weekly dump extract; SPARQL for deltas. none published Source: Wikidata, under CC0.

Phase 2 adds USPTO, GDELT, CourtListener, EU national registers, the Australian ABN bulk file, GitHub org-level activity and Indeed Hiring Lab aggregates, each with its licence recorded here before it ships.

GET /v1/sources. Free. Scope index:read. Use it to show attribution or to check how fresh a source is (freshness_seconds).

Request
curl -X GET 'https://api.askverdict.io/v1/sources' \
-H "Authorization: Bearer $VERDICT_API_KEY"
Response 200
{
"data": [
{
"id": "src_01JC3Z4Y8R9K2M5N7P1Q3S5T7V",
"source": "gleif",
"name": "GLEIF LEI golden copy",
"phase": 1,
"license": {
"kind": "cc0",
"name": "CC0 1.0 Universal",
"url": "https://creativecommons.org/publicdomain/zero/1.0/",
"attribution": null
},
"refresh_cadence": "daily",
"rate_limit": null,
"last_successful_run": {
"id": "run_01JC3Z4Y8R9K2M5N7P1Q3S5T7V",
"status": "succeeded",
"started_at": "2026-11-07T03:00:00Z",
"finished_at": "2026-11-07T03:21:40Z",
"events_upserted": 1874
},
"last_run": {
"id": "run_01JC3Z4Y8R9K2M5N7P1Q3S5T7V",
"status": "succeeded",
"started_at": "2026-11-07T03:00:00Z",
"finished_at": "2026-11-07T03:21:40Z",
"events_upserted": 1874
},
"freshness_seconds": 7200
}
],
"next_cursor": null,
"has_more": false
}
Field Type Required Description
id string yes The source id.
source enum: “sec_edgar”, “gleif”, “companies_house”, “wikidata” yes Stable source slug, as cited in evidence[].source.
name string yes Human name.
phase integer yes Release phase that ships the source.
license object yes The source’s license.
license.kind enum: “public_domain”, “cc0”, “ogl_v3”, “cc_by_4_0”, “cc_by_3_0_au” yes License kind.
license.name string yes License name.
license.url string (uri) yes License text.
license.attribution string or null yes Attribution text to show when you display the data, if required.
refresh_cadence string yes How often Verdict refreshes it, for example daily.
rate_limit string or null yes The source’s fair-access limit Verdict observes.
last_successful_run object or null yes Latest successful ingestion, or null if none yet.
last_successful_run.id string yes The run id.
last_successful_run.status enum: “running”, “succeeded”, “partial”, “failed” yes Run status.
last_successful_run.started_at string (date-time) yes When the run started.
last_successful_run.finished_at string or null (date-time) yes When the run finished.
last_successful_run.events_upserted integer yes Events inserted or updated.
last_run object or null yes Latest ingestion run of any status (it may still be running or have failed), or null if none yet.
last_run.id string yes The run id.
last_run.status enum: “running”, “succeeded”, “partial”, “failed” yes Run status.
last_run.started_at string (date-time) yes When the run started.
last_run.finished_at string or null (date-time) yes When the run finished.
last_run.events_upserted integer yes Events inserted or updated.
freshness_seconds integer or null yes Seconds since the latest successful run finished: how fresh this source’s data is. null if it has never succeeded.

Generated from each adapter’s SOURCE.md in the index package. Sources without one are not ingested yet.

Publisher Global Legal Entity Identifier Foundation: LEI golden copy and delta files
Licence CC0 1.0 Universal; https://www.gleif.org/en/meta/lei-data-terms-of-use and https://creativecommons.org/publicdomain/zero/1.0/
Attribution “Source: Global Legal Entity Identifier Foundation (GLEIF), LEI data under CC0.” (not required; shown at GET /v1/sources)
Rate limit None published for the golden copy files. Verdict fetches four files a day at most (two publish manifests, two zips) and holds the client to 4 requests per second, User-Agent: Verdict/0.1 (+https://askverdict.io).
Cadence gleif_golden 01:00 UTC on Sundays (full golden copy); gleif_delta 03:00 UTC daily (LastDay delta); canary_gleif 05:35 UTC (live only with CANARY_ENABLED=true).
Format LEI-CDF 3.1 XML (lei2) and RR-CDF XML (rr), one XML file per zip, from `https://goldencopy.gleif.org/api/v2/golden-copies/publishes/<lei2
Firm keys LEI; the Companies House number when the registration authority is RA000585.
  • LEI records: firm facts (legal name, other names, headquarters country, region and city, entity status, fund category) and lei_change events: issued, renewed (keyed by the next renewal date, once renewed), lapsed, retired. Duplicate and annulled registrations are skipped.
  • Relationship records: direct parents (IS_DIRECTLY_CONSOLIDATED_BY) and ultimate parents (IS_ULTIMATELY_CONSOLIDATED_BY) only, as an ownership_change (control_changed) and a lei_change (parent_changed) on the child, both with parent_lei. Fund management, sub-fund, feeder and branch relationships are skipped.

The zips are streamed into the blob store and parsed as streams, record by record; the 3.5-million-record golden copy never sits in memory.

Real records from the GLEIF delta files published 2026-11-08, downloaded that day; see packages/index/test/fixtures/gleif/FIXTURES.md.

Publisher U.S. Securities and Exchange Commission: EDGAR (filings) and IAPD (Form ADV)
Licence Public domain: works of the U.S. government (17 U.S.C. 105); https://www.sec.gov/os/accessing-edgar-data
Attribution “Source: U.S. Securities and Exchange Commission (EDGAR and IAPD).” (not required; shown at GET /v1/sources)
Rate limit SEC fair access: under 10 requests per second, declared User-Agent. Verdict sends User-Agent: Verdict/0.1 (<SEC_CONTACT_EMAIL>) and Accept-Encoding: gzip, deflate, and a token bucket holds every SEC client to 8 requests per second, with retries on 429 and 5xx that honour Retry-After.
Cadence sec_daily 06:00 UTC (previous day’s daily index); iapd_daily 07:00 UTC; iapd_monthly 05:00 UTC on the 1st; sec_full_index and sec_submissions on demand; canary_sec_edgar 05:30 UTC (live only with CANARY_ENABLED=true).
Firm keys CIK (every EDGAR filing), CRD (Form ADV, 13F cover page), LEI and web domain (Form ADV Item 1, submissions API when listed).
Job Endpoint Produces
sec_daily https://www.sec.gov/Archives/edgar/daily-index/<yyyy>/QTR<n>/form.<yyyymmdd>.idx, then one document per filing filing events (sec_8k, sec_form_d, sec_form_4, sec_s1, sec_13f), officer_change (8-K 5.02), ownership_change (8-K 5.01), fund_raise (Form D), insider_trade (Form 4)
sec_full_index https://www.sec.gov/Archives/edgar/full-index/<yyyy>/QTR<n>/form.idx (backfill) as sec_daily
sec_submissions https://data.sec.gov/submissions/CIK##########.json firm facts (name, former names, HQ, type, website, LEI) and the events of the company’s recent filings, 8-K items included
iapd_daily, iapd_monthly https://reports.adviserinfo.sec.gov/reports/CompilationReports/IA_FIRM_SEC_Feed_<mm_dd_yyyy>.xml.gz (from the manifest) adviser facts (type, size band from employees, HQ, domain, LEI), filing (sec_adv), registration

Documents per form: 8-K and S-1 from <accession>.hdr.sgml; Form D and 13F from primary_doc.xml; Form 4 from <accession>.txt (ADR-0020). Forms and amendments: 8-K, 8-K/A, D, D/A, 4, 4/A, S-1, S-1/A, 13F-HR, 13F-HR/A.

Personal data is minimised (spec 7.3): a Form 4 reporting person’s name and address are not read, only the relationship to the issuer; Form D related persons are not read; IAPD social-profile URLs are dropped (LinkedIn never enters the index).

Real files downloaded on 2026-11-08 (UTC) with the declared User-Agent, one request at a time, trimmed to the smallest slice that exercises each parser path; see packages/index/test/fixtures/sec_edgar/FIXTURES.md for each file’s origin URL and what was removed.

Show the attribution string when you display data from a source that requires it. Evidence in every decision names its source slug in evidence[].source and links the original record.