> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gdeltcloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reference

> The generated tier — every value, parameter, code and formula, emitted from the objects the server imports at request time.

This section is the machine-readable half of the docs: every value a filter accepts, every
parameter, every event code, and every metric formula.

**You can build against these pages directly.** They are generated from the same objects the API
imports when it handles your request, so a page here cannot list a value the API rejects or omit
one it accepts. A closed vocabulary listed here is complete; a parameter absent from here is one
the server ignores. If a reference page and the API ever disagree, that is a bug in us, not a
stale doc.

## What is where

| Page                                                    | Answers                                                                            |
| ------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| [Endpoint index](/reference/endpoints)                  | What operations exist, on one page.                                                |
| [Parameter reference](/reference/parameters)            | What each endpoint accepts, its aliases, bounds, and what it deliberately rejects. |
| [Value reference](/reference/enums)                     | Every value a filter validates against, and whether that list is exhaustive.       |
| [Event metrics](/reference/metrics)                     | What each number measures, its published formula, and what it does **not** claim.  |
| [Complete event taxonomy](/reference/taxonomy-complete) | The full code tree — every family, category and code, with Goldstein anchors.      |
| [Event code definitions](/reference/codes-conflict)     | What each individual code **means**: definition, inclusions, exclusions.           |

## Closed, observed, identifier — the distinction that matters most

[Value reference](/reference/enums) labels every vocabulary as one of three kinds, and mixing them
up is the difference between a filter that is exhaustive and one that quietly is not.

<Info>
  **Closed** — the complete, authoritative set. Anything else returns `400` with
  `details.accepted_values`, so a caller can self-correct without reading a page.
</Info>

<Warning>
  **Observed** — a dated *measurement* of what the corpus currently holds, never an allowlist. The API
  accepts values outside the list; you may just get no rows. We publish these because guessing is
  worse, and we date them because an undated measurement is indistinguishable from a promise.
</Warning>

<Info>
  **Identifier** — a key with a format and a resolver, not a list. Resolve one through the endpoint
  named on its entry.
</Info>

Treating an observed list as closed is the most common way to build a filter that quietly misses
data — the values it omits are real, and the API will accept them.

## Pinning against a version

The whole value tier is available machine-readable at `GET /api/v2/meta/enums`, including a
`sha256` you can pin against and diff in CI. It is **unmetered**: checking a value before you spend
a query unit on a request that would fail should not itself cost a query unit.

```bash theme={null}
curl -s https://gdeltcloud.com/api/v2/meta/enums | jq -r '.sha256'
```
