# Proof points (/docs/proof-points)



**Proof points** are the underlying records behind Trendtracker signals: patents, news articles, research papers, earnings-call transcripts, PDFs, and grant projects. They come from document indexes, not the knowledge graph.

Use proof points when you need **traceability**, citations, or document-level filters. For structured deals and company records, use [Facts](/docs/facts). For grouped real-world events assembled from both, use [Manifestations](/docs/core-concepts/manifestations).

Every proof-point dataset exposes the same three shapes:

* **Search** — a page of enriched documents (`skip` / `take`, max 100).
* **Time series** — counts (and sometimes amounts) per time bucket at a `resolution` of `day`, `week`, `month`, `quarter`, or `year`.
* **Correlation matrix** — co-occurrence of topics and/or organizations. See [Correlation matrix](/docs/proof-points/correlation-matrix).

All of these are `POST` with a JSON body. Date filters apply to **published date**.

## Shared request fields [#shared-request-fields]

| Field                          | Purpose                                                                |
| ------------------------------ | ---------------------------------------------------------------------- |
| `query`                        | Optional Lucene-lite text search (see below)                           |
| `topicIds` / `organizationIds` | Scope to topics and resolved organizations                             |
| `topicFields`                  | Document fields used for topic matching (default title, summary, body) |
| `languages`                    | ISO language codes                                                     |
| `sourceIds`                    | Restrict to specific indexed sources                                   |
| `start` / `end`                | Published-date window (ISO datetimes)                                  |
| `skip` / `take`                | Offset paging; `take` max 100                                          |
| `sortColumn`                   | `published_at` (default) or `score`                                    |
| `sortDirection`                | `desc` (default) or `asc`                                              |

## Query syntax [#query-syntax]

`query` is a closed Lucene-lite expression over document text. Unprefixed words run a loose match on `title`, `summary`, and `body`. Use quotes for a phrase, `field:` to restrict a clause, and uppercase `AND` / `OR` / `NOT` (or `-term`) to combine them.

| Example                                           | Meaning                                                |
| ------------------------------------------------- | ------------------------------------------------------ |
| `lithium`                                         | Loose match on title, summary, and body                |
| `solid state battery`                             | One loose multi-word match (not an AND of three terms) |
| `"solid state battery"`                           | Phrase match on title, summary, and body               |
| `title:lithium`                                   | Loose match on title only                              |
| `title:"solid state battery"`                     | Phrase match on title                                  |
| `title:(solid state battery)`                     | Loose multi-word match on title                        |
| `document:"quantum sensing"`                      | Phrase match on title, summary, and body               |
| `title:"ssb" AND (body:lithium OR summary:anode)` | Boolean combination                                    |
| `(foo OR bar) baz`                                | Implicit AND of already-delimited clauses              |

Fields: `title`, `summary`, `body`, and `document` (all three). After `field:` use one token, one `"phrase"`, or `(...)`. `title:solid state` is rejected (a field prefix cannot be followed by extra bare tokens). Wildcards (`*`), fuzzy (`~`), and boost (`^`) are not supported. Lowercase `and` is a search token, not an operator. Unknown `foo:bar` is treated as a literal token so values like `covid-19` stay valid.

## Datasets [#datasets]

* [News articles](/docs/proof-points/news-articles) — media coverage; optional `mentionsEvents` for partnerships and product launches
* [Patents](/docs/proof-points/patents) — filings and grants
* [Research articles](/docs/proof-points/research-articles) — scientific publications
* [Earnings calls](/docs/proof-points/earnings-calls) — transcripts from finance sources
* [PDFs](/docs/proof-points/pdfs) — consulting reports and other PDF documents
* [Projects](/docs/proof-points/projects) — grant and R\&D projects (replaces grants indicators)

Interactive schemas live in the [API reference](/docs/api-reference).
