# API: Packs: fundraising

| Method | Path | What it does | Scope |
|---|---|---|---|
| GET | `/v1/packs/fundraising/briefs/:id` | One pre-meeting brief (the link in its notification) | `packs:read` |
| PATCH | `/v1/packs/fundraising/captures/:id` | Mark a captured commitment or next step done (or open again) | `packs:write` |
| PATCH | `/v1/packs/fundraising/faq/:id` | Write the best current answer to a question (the founder) | `settings:write` |
| GET | `/v1/packs/fundraising/investors/:id` | An investor: stage history, captured questions, objections, commitments and next steps, briefs | `packs:read` |
| PATCH | `/v1/packs/fundraising/investors/:id` | Change an investor's stage or details (the founder) | `settings:write` |
| POST | `/v1/packs/fundraising/investors/:id/brief` | A brief for a meeting with this investor (optionally a calendar meeting), now | `packs:read` |
| POST | `/v1/packs/fundraising/investors/:id/intro` | Ask for an intro along a warm path (the founder): a task for the teammate, or an email from their mailbox that waits for their approval | `settings:write` |
| GET | `/v1/packs/fundraising/investors/:id/warm-paths` | Warm paths to an investor: a teammate who knows them, or someone they know who's been in meetings and threads with the investor | `packs:read` |
| POST | `/v1/packs/fundraising/proposals/decide` | Approve (optionally edited, one at a time) or reject proposals (the founder); an approved one is written now | `settings:write` |
| GET | `/v1/packs/fundraising/raises` | Raises you can see | `packs:read` |
| POST | `/v1/packs/fundraising/raises` | Start a raise (the founder): round, target, team, investor-fit profile, scope | `settings:write` |
| GET | `/v1/packs/fundraising/raises/:id` | A raise with its dashboard: pipeline by stage, committed, proposals waiting, overdue next steps, open commitments | `packs:read` |
| PATCH | `/v1/packs/fundraising/raises/:id` | Change a raise, its team, fit profile or scope (turning recurring sync, capture, briefs or the digest on or off) (the founder) | `settings:write` |
| POST | `/v1/packs/fundraising/raises/:id/bookface/export` | The approved pipeline as a CSV for Bookface (pending proposals aren't included) (the founder) | `settings:write` |
| POST | `/v1/packs/fundraising/raises/:id/bookface/import` | Read your Bookface Fundraising CRM CSV into proposals (new investors, stage and field changes); nothing changes until you approve (the founder) | `settings:write` |
| GET | `/v1/packs/fundraising/raises/:id/briefs` | Pre-meeting briefs | `packs:read` |
| POST | `/v1/packs/fundraising/raises/:id/capture` | Capture a meeting with an investor: questions, objections, commitments, next steps (questions go into the FAQ) | `packs:write` |
| POST | `/v1/packs/fundraising/raises/:id/digest` | Make today's digest and deliver it privately (to you, and the team if you chose) (the founder) | `settings:write` |
| GET | `/v1/packs/fundraising/raises/:id/digests` | Private digests already made | `packs:read` |
| GET | `/v1/packs/fundraising/raises/:id/faq` | The raise's FAQ: each question investors asked, how often, by whom, and your best current answer | `packs:read` |
| GET | `/v1/packs/fundraising/raises/:id/investors` | The raise's investors (by stage), with fit and last contact | `packs:read` |
| POST | `/v1/packs/fundraising/raises/:id/investors` | Add an investor to the pipeline (the founder) | `settings:write` |
| POST | `/v1/packs/fundraising/raises/:id/mailbox` | Opt your own mail and calendar into (or out of) this raise's evidence; an owner can take someone else's out | `packs:write` |
| GET | `/v1/packs/fundraising/raises/:id/proposals` | Proposed changes and prospects, with their evidence | `packs:read` |
| POST | `/v1/packs/fundraising/raises/:id/prospects/edgar` | New venture funds from SEC Form D filings, as prospects to approve (the founder) | `settings:write` |
| POST | `/v1/packs/fundraising/raises/:id/prospects/team` | Investors your team already knows (two-way relationships), as prospects to approve (the founder) | `settings:write` |
| POST | `/v1/packs/fundraising/raises/:id/reconcile` | Sync the pipeline with email, calendar and meeting evidence now: last contact, and stage proposals for you to approve (the founder) | `settings:write` |

## Examples

### GET /v1/packs/fundraising/briefs/$ID

One pre-meeting brief (the link in its notification)

```bash
curl -s "https://api.closefinch.com/v1/packs/fundraising/briefs/$ID" \
  -H "Authorization: Bearer $RA_API_KEY"
```

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

### PATCH /v1/packs/fundraising/captures/$ID

Mark a captured commitment or next step done (or open again)

```bash
curl -s -X PATCH "https://api.closefinch.com/v1/packs/fundraising/captures/$ID" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/captures/${id}`, {
  method: "PATCH",
  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();
```

### PATCH /v1/packs/fundraising/faq/$ID

Write the best current answer to a question (the founder)

```bash
curl -s -X PATCH "https://api.closefinch.com/v1/packs/fundraising/faq/$ID" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/faq/${id}`, {
  method: "PATCH",
  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/packs/fundraising/investors/$ID

An investor: stage history, captured questions, objections, commitments and next steps, briefs

```bash
curl -s "https://api.closefinch.com/v1/packs/fundraising/investors/$ID" \
  -H "Authorization: Bearer $RA_API_KEY"
```

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

### PATCH /v1/packs/fundraising/investors/$ID

Change an investor's stage or details (the founder)

```bash
curl -s -X PATCH "https://api.closefinch.com/v1/packs/fundraising/investors/$ID" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/investors/${id}`, {
  method: "PATCH",
  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();
```

### POST /v1/packs/fundraising/investors/$ID/brief

A brief for a meeting with this investor (optionally a calendar meeting), now

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/investors/$ID/brief" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/investors/${id}/brief`, {
  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();
```

### POST /v1/packs/fundraising/investors/$ID/intro

Ask for an intro along a warm path (the founder): a task for the teammate, or an email from their mailbox that waits for their approval

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/investors/$ID/intro" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/investors/${id}/intro`, {
  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/packs/fundraising/investors/$ID/warm-paths

Warm paths to an investor: a teammate who knows them, or someone they know who's been in meetings and threads with the investor

```bash
curl -s "https://api.closefinch.com/v1/packs/fundraising/investors/$ID/warm-paths" \
  -H "Authorization: Bearer $RA_API_KEY"
```

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

### POST /v1/packs/fundraising/proposals/decide

Approve (optionally edited, one at a time) or reject proposals (the founder); an approved one is written now

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

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/proposals/decide`, {
  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/packs/fundraising/raises

Raises you can see

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

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

### POST /v1/packs/fundraising/raises

Start a raise (the founder): round, target, team, investor-fit profile, scope

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

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises`, {
  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/packs/fundraising/raises/$ID

A raise with its dashboard: pipeline by stage, committed, proposals waiting, overdue next steps, open commitments

```bash
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID" \
  -H "Authorization: Bearer $RA_API_KEY"
```

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

### PATCH /v1/packs/fundraising/raises/$ID

Change a raise, its team, fit profile or scope (turning recurring sync, capture, briefs or the digest on or off) (the founder)

```bash
curl -s -X PATCH "https://api.closefinch.com/v1/packs/fundraising/raises/$ID" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}`, {
  method: "PATCH",
  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();
```

### POST /v1/packs/fundraising/raises/$ID/bookface/export

The approved pipeline as a CSV for Bookface (pending proposals aren't included) (the founder)

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/bookface/export" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}/bookface/export`, {
  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();
```

### POST /v1/packs/fundraising/raises/$ID/bookface/import

Read your Bookface Fundraising CRM CSV into proposals (new investors, stage and field changes); nothing changes until you approve (the founder)

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/bookface/import" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}/bookface/import`, {
  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/packs/fundraising/raises/$ID/briefs

Pre-meeting briefs

```bash
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/briefs" \
  -H "Authorization: Bearer $RA_API_KEY"
```

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

### POST /v1/packs/fundraising/raises/$ID/capture

Capture a meeting with an investor: questions, objections, commitments, next steps (questions go into the FAQ)

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/capture" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}/capture`, {
  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();
```

### POST /v1/packs/fundraising/raises/$ID/digest

Make today's digest and deliver it privately (to you, and the team if you chose) (the founder)

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/digest" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}/digest`, {
  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/packs/fundraising/raises/$ID/digests

Private digests already made

```bash
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/digests" \
  -H "Authorization: Bearer $RA_API_KEY"
```

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

### GET /v1/packs/fundraising/raises/$ID/faq

The raise's FAQ: each question investors asked, how often, by whom, and your best current answer

```bash
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/faq" \
  -H "Authorization: Bearer $RA_API_KEY"
```

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

### GET /v1/packs/fundraising/raises/$ID/investors

The raise's investors (by stage), with fit and last contact

```bash
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/investors" \
  -H "Authorization: Bearer $RA_API_KEY"
```

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

### POST /v1/packs/fundraising/raises/$ID/investors

Add an investor to the pipeline (the founder)

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/investors" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}/investors`, {
  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();
```

### POST /v1/packs/fundraising/raises/$ID/mailbox

Opt your own mail and calendar into (or out of) this raise's evidence; an owner can take someone else's out

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/mailbox" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}/mailbox`, {
  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/packs/fundraising/raises/$ID/proposals

Proposed changes and prospects, with their evidence

```bash
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/proposals" \
  -H "Authorization: Bearer $RA_API_KEY"
```

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

### POST /v1/packs/fundraising/raises/$ID/prospects/edgar

New venture funds from SEC Form D filings, as prospects to approve (the founder)

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/prospects/edgar" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}/prospects/edgar`, {
  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();
```

### POST /v1/packs/fundraising/raises/$ID/prospects/team

Investors your team already knows (two-way relationships), as prospects to approve (the founder)

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/prospects/team" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}/prospects/team`, {
  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();
```

### POST /v1/packs/fundraising/raises/$ID/reconcile

Sync the pipeline with email, calendar and meeting evidence now: last contact, and stage proposals for you to approve (the founder)

```bash
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/reconcile" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
```

```js
const res = await fetch(`https://api.closefinch.com/v1/packs/fundraising/raises/${id}/reconcile`, {
  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).
