Skip to content

API reference

API: Packs: fundraising

Markdown version

MethodPathWhat it doesScope
GET/v1/packs/fundraising/briefs/:idOne pre-meeting brief (the link in its notification)packs:read
PATCH/v1/packs/fundraising/captures/:idMark a captured commitment or next step done (or open again)packs:write
PATCH/v1/packs/fundraising/faq/:idWrite the best current answer to a question (the founder)settings:write
GET/v1/packs/fundraising/investors/:idAn investor: stage history, captured questions, objections, commitments and next steps, briefspacks:read
PATCH/v1/packs/fundraising/investors/:idChange an investor's stage or details (the founder)settings:write
POST/v1/packs/fundraising/investors/:id/briefA brief for a meeting with this investor (optionally a calendar meeting), nowpacks:read
POST/v1/packs/fundraising/investors/:id/introAsk for an intro along a warm path (the founder): a task for the teammate, or an email from their mailbox that waits for their approvalsettings:write
GET/v1/packs/fundraising/investors/:id/warm-pathsWarm paths to an investor: a teammate who knows them, or someone they know who's been in meetings and threads with the investorpacks:read
POST/v1/packs/fundraising/proposals/decideApprove (optionally edited, one at a time) or reject proposals (the founder); an approved one is written nowsettings:write
GET/v1/packs/fundraising/raisesRaises you can seepacks:read
POST/v1/packs/fundraising/raisesStart a raise (the founder): round, target, team, investor-fit profile, scopesettings:write
GET/v1/packs/fundraising/raises/:idA raise with its dashboard: pipeline by stage, committed, proposals waiting, overdue next steps, open commitmentspacks:read
PATCH/v1/packs/fundraising/raises/:idChange 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/exportThe approved pipeline as a CSV for Bookface (pending proposals aren't included) (the founder)settings:write
POST/v1/packs/fundraising/raises/:id/bookface/importRead 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/briefsPre-meeting briefspacks:read
POST/v1/packs/fundraising/raises/:id/captureCapture a meeting with an investor: questions, objections, commitments, next steps (questions go into the FAQ)packs:write
POST/v1/packs/fundraising/raises/:id/digestMake 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/digestsPrivate digests already madepacks:read
GET/v1/packs/fundraising/raises/:id/faqThe raise's FAQ: each question investors asked, how often, by whom, and your best current answerpacks:read
GET/v1/packs/fundraising/raises/:id/investorsThe raise's investors (by stage), with fit and last contactpacks:read
POST/v1/packs/fundraising/raises/:id/investorsAdd an investor to the pipeline (the founder)settings:write
POST/v1/packs/fundraising/raises/:id/mailboxOpt your own mail and calendar into (or out of) this raise's evidence; an owner can take someone else's outpacks:write
GET/v1/packs/fundraising/raises/:id/proposalsProposed changes and prospects, with their evidencepacks:read
POST/v1/packs/fundraising/raises/:id/prospects/edgarNew venture funds from SEC Form D filings, as prospects to approve (the founder)settings:write
POST/v1/packs/fundraising/raises/:id/prospects/teamInvestors your team already knows (two-way relationships), as prospects to approve (the founder)settings:write
POST/v1/packs/fundraising/raises/:id/reconcileSync 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.

Send feedback

Tell us what's broken, confusing or missing on this page, or an idea. It goes to the team that builds the product.

Please don't include passwords or card numbers.
Only to reply about this. Never added to any mailing list.