# Correlation matrix (/docs/proof-points/correlation-matrix)



A correlation matrix counts how often row entities and column entities appear together in matching proof points. Use it to see which organizations cluster around which topics, or how two topic groups overlap in the same documents.

**Endpoints:**

* `POST /proof-points/correlation-matrix` — all document types — [playground](/docs/api-reference/endpoints/proof_points_correlation_matrix_proof_points_correlation_matrix_post)
* `POST /proof-points/news-articles/correlation-matrix`
* `POST /proof-points/patents/correlation-matrix`
* `POST /proof-points/research-articles/correlation-matrix`
* `POST /proof-points/earnings-calls/correlation-matrix`
* `POST /proof-points/pdfs/correlation-matrix`
* `POST /proof-points/projects/correlation-matrix`

Type-specific routes apply the same matrix request on one dataset. Shared proof-point filters (`query`, `topicIds`, `start` / `end`, and so on) still apply.

## Axes [#axes]

Each of `rows` and `cols` is:

| Field    | Purpose                                                                                      |
| -------- | -------------------------------------------------------------------------------------------- |
| `kind`   | `topic` or `organization`                                                                    |
| `groups` | Non-empty list of UUID groups. Each inner list is **one bucket** (IDs in a group are OR-ed). |

## Request Pattern [#request-pattern]

```json
{
  "start": "2023-01-01T00:00:00Z",
  "end": "2024-12-31T23:59:59Z",
  "rows": {
    "kind": "topic",
    "groups": [
      ["11111111-1111-1111-1111-111111111111"],
      ["22222222-2222-2222-2222-222222222222"]
    ]
  },
  "cols": {
    "kind": "organization",
    "groups": [
      ["aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"],
      ["bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"]
    ]
  }
}
```

## Validation Notes [#validation-notes]

* Every group must contain at least one UUID.
* Use the all-types route when you want a single matrix across datasets; use a type-specific route to isolate patents, news, or another corpus.
