API reference
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)
curl -s "https://api.closefinch.com/v1/packs/fundraising/briefs/$ID" \
-H "Authorization: Bearer $RA_API_KEY"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)
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 '{}'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)
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 '{}'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
curl -s "https://api.closefinch.com/v1/packs/fundraising/investors/$ID" \
-H "Authorization: Bearer $RA_API_KEY"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)
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 '{}'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
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 '{}'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
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 '{}'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
curl -s "https://api.closefinch.com/v1/packs/fundraising/investors/$ID/warm-paths" \
-H "Authorization: Bearer $RA_API_KEY"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
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 '{}'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
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises" \
-H "Authorization: Bearer $RA_API_KEY"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
curl -s -X POST "https://api.closefinch.com/v1/packs/fundraising/raises" \
-H "Authorization: Bearer $RA_API_KEY" \
-H "content-type: application/json" \
-d '{}'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
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID" \
-H "Authorization: Bearer $RA_API_KEY"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)
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 '{}'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)
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 '{}'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)
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 '{}'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
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/briefs" \
-H "Authorization: Bearer $RA_API_KEY"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)
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 '{}'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)
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 '{}'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
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/digests" \
-H "Authorization: Bearer $RA_API_KEY"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
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/faq" \
-H "Authorization: Bearer $RA_API_KEY"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
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/investors" \
-H "Authorization: Bearer $RA_API_KEY"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)
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 '{}'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
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 '{}'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
curl -s "https://api.closefinch.com/v1/packs/fundraising/raises/$ID/proposals" \
-H "Authorization: Bearer $RA_API_KEY"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)
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 '{}'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)
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 '{}'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)
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 '{}'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. All resources: API reference.