Skip to content

API reference

API: Business profile

Markdown version

MethodPathWhat it doesScope
GET/v1/business-profileYour own site, the latest crawl (claims with sources, what changed) and the proposals for the knowledge baseknowledge:read
POST/v1/business-profile/apply-icpApply the profile's ICP rules to an ICP (merged; its exclusions kept) or to a new one (owner): this is how the profile feeds scoringsettings:write
GET/v1/business-profile/crawls/:idOne crawl: pages read, claims with their quotes, what changed, the traceknowledge:read
GET/v1/business-profile/icp-draftThe ICP rules your accepted profile proposes (roles, industries, sizes) and what applying them to an ICP would changeknowledge:read
GET/v1/business-profile/proposalsProposals for knowledge-base sections, pending first, each with its sources and a diff against the section as it is nowknowledge:read
POST/v1/business-profile/proposals/:id/acceptAccept a proposal, as is or edited: the section is saved in the knowledge base as a new version (owners, from the app) (web app only)settings:write
POST/v1/business-profile/proposals/:id/rejectReject a proposal (the section stays as it is)settings:write
POST/v1/business-profile/rebuildRead your site again and propose changes (owner; runs in the background; nothing reaches the knowledge base until a person accepts it)settings:write
PUT/v1/business-profile/siteSet your organization's own website (owner)settings:write
GET/v1/knowledge-proposalsEvery proposal for the knowledge base in one queue (your site, brand voice, proof points, interview syntheses), each with its sources and the route that decides itknowledge:read

Examples

GET /v1/business-profile

Your own site, the latest crawl (claims with sources, what changed) and the proposals for the knowledge base

curl -s "https://api.closefinch.com/v1/business-profile" \
  -H "Authorization: Bearer $RA_API_KEY"
const res = await fetch(`https://api.closefinch.com/v1/business-profile`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();

POST /v1/business-profile/apply-icp

Apply the profile's ICP rules to an ICP (merged; its exclusions kept) or to a new one (owner): this is how the profile feeds scoring

curl -s -X POST "https://api.closefinch.com/v1/business-profile/apply-icp" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
const res = await fetch(`https://api.closefinch.com/v1/business-profile/apply-icp`, {
  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/business-profile/crawls/$ID

One crawl: pages read, claims with their quotes, what changed, the trace

curl -s "https://api.closefinch.com/v1/business-profile/crawls/$ID" \
  -H "Authorization: Bearer $RA_API_KEY"
const res = await fetch(`https://api.closefinch.com/v1/business-profile/crawls/${id}`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();

GET /v1/business-profile/icp-draft

The ICP rules your accepted profile proposes (roles, industries, sizes) and what applying them to an ICP would change

curl -s "https://api.closefinch.com/v1/business-profile/icp-draft" \
  -H "Authorization: Bearer $RA_API_KEY"
const res = await fetch(`https://api.closefinch.com/v1/business-profile/icp-draft`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();

GET /v1/business-profile/proposals

Proposals for knowledge-base sections, pending first, each with its sources and a diff against the section as it is now

curl -s "https://api.closefinch.com/v1/business-profile/proposals" \
  -H "Authorization: Bearer $RA_API_KEY"
const res = await fetch(`https://api.closefinch.com/v1/business-profile/proposals`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
const data = await res.json();

POST /v1/business-profile/proposals/$ID/reject

Reject a proposal (the section stays as it is)

curl -s -X POST "https://api.closefinch.com/v1/business-profile/proposals/$ID/reject" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
const res = await fetch(`https://api.closefinch.com/v1/business-profile/proposals/${id}/reject`, {
  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/business-profile/rebuild

Read your site again and propose changes (owner; runs in the background; nothing reaches the knowledge base until a person accepts it)

curl -s -X POST "https://api.closefinch.com/v1/business-profile/rebuild" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
const res = await fetch(`https://api.closefinch.com/v1/business-profile/rebuild`, {
  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();

PUT /v1/business-profile/site

Set your organization's own website (owner)

curl -s -X PUT "https://api.closefinch.com/v1/business-profile/site" \
  -H "Authorization: Bearer $RA_API_KEY" \
  -H "content-type: application/json" \
  -d '{}'
const res = await fetch(`https://api.closefinch.com/v1/business-profile/site`, {
  method: "PUT",
  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/knowledge-proposals

Every proposal for the knowledge base in one queue (your site, brand voice, proof points, interview syntheses), each with its sources and the route that decides it

curl -s "https://api.closefinch.com/v1/knowledge-proposals" \
  -H "Authorization: Bearer $RA_API_KEY"
const res = await fetch(`https://api.closefinch.com/v1/knowledge-proposals`, {
  method: "GET",
  headers: { authorization: `Bearer ${process.env.RA_API_KEY}` },
});
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.