GET /v1/sources
| Call | GET /v1/sources |
| Price | free |
| Scope | index:read |
| Operation id | listSources |
What it does
Section titled “What it does”The sources behind Verdict’s index: license and attribution, refresh cadence, and the last successful run. Call it to check data freshness or the attribution to show. Free. Scope: index:read.
Example request
Section titled “Example request”Copy it as curl. Set VERDICT_API_KEY first; uuidgen makes a fresh Idempotency-Key.
curl -X GET 'https://api.askverdict.io/v1/sources' \ -H "Authorization: Bearer $VERDICT_API_KEY"Example response
Section titled “Example response”200: A page of sources.
{ "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}Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
cursor |
query | string | no | Opaque cursor from the next_cursor of the previous page. Omit it for the first page. |
limit |
query | integer | no | Page size, 1 to 200. Default 50. |
x-verdict-version |
header | string | no | API version to use, a date. Defaults to the version current when the key was created. The current version is 2026-11-01. |
Response fields (200)
Section titled “Response fields (200)”| Field | Type | Required | Description |
|---|---|---|---|
data |
array of Source | yes | Sources. |
data[].id |
string | yes | The source id. |
data[].source |
enum: “sec_edgar”, “gleif”, “companies_house”, “wikidata” | yes | Stable source slug, as cited in evidence[].source. |
data[].name |
string | yes | Human name. |
data[].phase |
integer | yes | Release phase that ships the source. |
data[].license |
object | yes | The source’s license. |
data[].license.kind |
enum: “public_domain”, “cc0”, “ogl_v3”, “cc_by_4_0”, “cc_by_3_0_au” | yes | License kind. |
data[].license.name |
string | yes | License name. |
data[].license.url |
string (uri) | yes | License text. |
data[].license.attribution |
string or null | yes | Attribution text to show when you display the data, if required. |
data[].refresh_cadence |
string | yes | How often Verdict refreshes it, for example daily. |
data[].rate_limit |
string or null | yes | The source’s fair-access limit Verdict observes. |
data[].last_successful_run |
object or null | yes | Latest successful ingestion, or null if none yet. |
data[].last_successful_run.id |
string | yes | The run id. |
data[].last_successful_run.status |
enum: “running”, “succeeded”, “partial”, “failed” | yes | Run status. |
data[].last_successful_run.started_at |
string (date-time) | yes | When the run started. |
data[].last_successful_run.finished_at |
string or null (date-time) | yes | When the run finished. |
data[].last_successful_run.events_upserted |
integer | yes | Events inserted or updated. |
data[].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. |
data[].last_run.id |
string | yes | The run id. |
data[].last_run.status |
enum: “running”, “succeeded”, “partial”, “failed” | yes | Run status. |
data[].last_run.started_at |
string (date-time) | yes | When the run started. |
data[].last_run.finished_at |
string or null (date-time) | yes | When the run finished. |
data[].last_run.events_upserted |
integer | yes | Events inserted or updated. |
data[].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. |
next_cursor |
string or null | yes | Pass as cursor to fetch the next page. null when this is the last page. |
has_more |
boolean | yes | Whether another page follows. |
Errors
Section titled “Errors”Errors are RFC 9457 problem details and are never billed. Branch on type. See Errors.
| Status | Meaning |
|---|---|
400 |
Invalid request: malformed JSON, an unknown field, a failed constraint or a size limit (invalid_request). |
401 |
Missing, malformed, revoked or expired API key, or a bad webhook signature (unauthorized). |
403 |
The key lacks the scope this operation needs (forbidden_scope). |
429 |
Rate limited (rate_limited). Wait Retry-After seconds. |
500 |
Unexpected server error (internal). Not billed; retry with the same Idempotency-Key. |
Try it
Section titled “Try it”Open the interactive reference to send this request from the browser. The full document is at /openapi.json.