---
title: "List the pages an engine showed the brand on"
method: GET
path: "/projects/{id}/corroboration-candidates"
tags: ["Corroborations"]
---

# List the pages an engine showed the brand on

`GET /projects/{id}/corroboration-candidates`

## Request

- Base URL: `https://api.epovest.com/v1`
- URL: `https://api.epovest.com/v1/projects/{id}/corroboration-candidates`
- Auth: HTTP bearer

The MENTIONS an engine has shown the brand in: pages found in the text the engine itself
returned next to each address, read from raw payloads already in store over the latest
surveys (`surveys_scanned` says how many). Each row carries no id, because the list is
recomputed on every read. `matched_by` is the strength of the proof, and `suggested` names
the registry the filing is proposed in: it is a suggestion, never a filing, and the customer
decides. To accept one, record it with `POST /projects/{id}/corroborations`.

## Response `200`

The candidates, and how many surveys were read.

- object
  - `candidates` CorroborationCandidate[], required
    - `url` string, required
    - `domain` string, required
    - `excerpt` string, nullable, required
    - `matched_by` 'website' | 'name', required: The strength of the proof: `website` means the full domain of the brand appears in the excerpt, which is near proof; `name` means only the name did, so read the page before recording it.
    - `engines` Engine[], required
    - `seen_on` string, date, required
    - `published_on` string, date, nullable, required
    - `suggested` 'surface' | 'ask' | 'corroboration', required: The registry the filing is proposed in: `surface` when the host is a known profile place, `ask` when the address looks like a listing on a place outside that catalogue, so it can be either side, and `corroboration` otherwise. On an `ask`, the test that settles it is the criterion itself: if they change that page, does the change stay?
    - `page_check` object: Present when the page was read.
      - `result` string, nullable
      - `excerpt` string, nullable
      - `checked_at` string, date-time
  - `surveys_scanned` integer, required

## Other responses

- `401`: `unauthenticated`: missing, unknown or revoked key.
- `403`: `insufficient_scope`: the credential may not do this, either because the key lacks the scope, or, on a one-click connection, because the person lacks the role the action needs (manager, or owner to start, pause and top up). On that path, read it as "this person may not do this" and tell them which role the action needs.
- `404`: `not_found`: unknown for this account.
- `429`: `rate_limited`: 120 requests per minute per credential, sliding window. Retry after `Retry-After` seconds.

---

[API](https://skmtc.dev/epovest/apis/epovest-api.md) · [All operations](https://skmtc.dev/epovest/apis/epovest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/epovest/apis/epovest-api/revisions/7a78ee27ecbb?raw)
