# API: Proof points

| Method | Path | What it does | Scope |
|---|---|---|---|
| GET | `/v1/proof-points` | Proof points from closed-won deals (pending, approved or rejected), each with its exact quote, speaker, date, metric and source; `public` is what may be used outside the deal | `knowledge:read` |
| PATCH | `/v1/proof-points/:id` | Approve or reject a proof point, allow the customer's name, or fix its labels (owners, from the app; the quote can't be edited) (web app only) | `settings:write` |
| POST | `/v1/proof-points/kb-proposal` | Offer approved proof points (chosen ones, or all) to the knowledge base's proof_points section, as a proposal a person accepts | `knowledge:write` |
| GET | `/v1/proof-points/mine` | Whether a mining run is queued or running | `knowledge:read` |
| POST | `/v1/proof-points/mine` | Mine a closed-won deal (or deals won in the last N days, up to 10) for quantified outcomes, in the background (one run per organization at a time; poll the list); each new point is pending | `knowledge:write` |

## Examples

### GET /v1/proof-points

Proof points from closed-won deals (pending, approved or rejected), each with its exact quote, speaker, date, metric and source; `public` is what may be used outside the deal

```bash
curl -s "https://api.closefinch.com/v1/proof-points" \
  -H "Authorization: Bearer $RA_API_KEY"
```

```js
const res = await fetch(`https://api.closefinch.com/v1/proof-points`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();
```

### POST /v1/proof-points/kb-proposal

Offer approved proof points (chosen ones, or all) to the knowledge base's proof_points section, as a proposal a person accepts

```bash
curl -s -X POST "https://api.closefinch.com/v1/proof-points/kb-proposal" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/proof-points/kb-proposal`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
  body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();
```

### GET /v1/proof-points/mine

Whether a mining run is queued or running

```bash
curl -s "https://api.closefinch.com/v1/proof-points/mine" \
  -H "Authorization: Bearer $RA_API_KEY"
```

```js
const res = await fetch(`https://api.closefinch.com/v1/proof-points/mine`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();
```

### POST /v1/proof-points/mine

Mine a closed-won deal (or deals won in the last N days, up to 10) for quantified outcomes, in the background (one run per organization at a time; poll the list); each new point is pending

```bash
curl -s -X POST "https://api.closefinch.com/v1/proof-points/mine" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/proof-points/mine`, {
  method: "POST",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}`, "content-type": "application/json" },
  body: JSON.stringify({}), // fields: see the OpenAPI schema
});
const data = await res.json();
```

Request and response schemas: [https://www.closefinch.com/openapi.json](https://www.closefinch.com/openapi.json). All resources: [API reference](https://www.closefinch.com/docs/api).
