🔥Fireflies Pipeline API

Sales Call Intelligence API

Programmatic access to every Fireflies call recorded by TRES — enriched with AI summaries, action items, client domains, meeting types, ICP verticals, and HubSpot CRM data. Plus the full TRES Knowledge Base: 171 documents across products, ICPs, pitches, competitors, and more. Updated daily at 08:00 UTC.

fireflies-api.vercel.app·7,267+ calls indexed·171 KB documents·JSON · REST

Authentication

All endpoints require an API key issued by the TRES Marketing Hub. Pass it in the x-api-key header.

request header
x-api-key: tres_sk_live_YOUR_KEY

Don't have a key? Go to tres.marketing/admin → API Keys → + New API key → set App to Fireflies Pipeline.

Base URL

https://fireflies-api.vercel.app

Call Endpoints

Query, filter, and retrieve enriched Fireflies call records.

Knowledge Base

Send a query, get back the most relevant TRES knowledge base documents — products, ICPs, pitches, competitors, and sales playbooks. Powered by vector similarity search (VoyageAI + pgvector): each of the 19 master documents has its manifest description embedded as a 512-dim vector. At query time the prompt is embedded and cosine-compared against all 19 — top 4 are returned with full content. Perfect for RAG in downstream services like the copywriter and 1-pager generator.

How the Semantic Router Works

1 · Send a query

Pass a natural-language topic as the query param — e.g. "VC fund accounting" or "FinOS vs Cryptio". Be specific: a focused phrase routes better than a vague keyword.

2 · Haiku scores & selects

Claude Haiku reads the manifest of 19 master documents and returns the 1–6 most relevant ones for your query. If routing fails or no query is provided, all 19 masters are returned as a fallback.

3 · Inject as context

Each doc is ~30k chars of synthesized TRES knowledge. Concatenate docs[].content directly into your system prompt — no chunking or embeddings needed.

Available Master Documents (19)

DocumentCategoryWhat it covers
master-finosProductCore FinOS product — accounting, GL, month-end close
master-proof-of-fundsProductPoF product — customer wallet balance proofs
master-stakingProductNative staking rewards tracking
master-reconciliationProductMulti-source reconciliation
master-erp-integrationsProductQuickBooks, Xero, NetSuite, SAP integrations
master-1099-taxProductTax reporting and 1099 forms
master-icp-exchangesICP / SalesSales guide: crypto exchanges
master-icp-funds-vcICP / SalesSales guide: funds, VCs, hedge funds
master-icp-web3-nativeICP / SalesSales guide: DeFi protocols, DAOs, foundations
master-icp-banksICP / SalesSales guide: banks and neobanks
master-icp-igamingICP / SalesSales guide: iGaming and crypto casinos
master-icp-prop-tradingICP / SalesSales guide: prop trading firms
master-icp-paymentsICP / SalesSales guide: payment processors
master-vs-cryptioCompetitiveBattle card vs Cryptio
master-vs-bitwaveCompetitiveBattle card vs Bitwave
master-vs-integralCompetitiveBattle card vs Integral
master-vs-lukkaCompetitiveBattle card vs Lukka
master-sales-playbookSalesFull sales process, discovery, objections
master-social-proofSalesCustomer case studies and proof points

Usage Pattern — RAG with Claude

TypeScript
const BASE = "https://intelligence.tres.marketing";

// 1. Fetch routed KB context for your topic
async function getKbContext(topic: string): Promise<string> {
  const res = await fetch(
    `${BASE}/api/kb/masters?query=${encodeURIComponent(topic)}`,
    { headers: { "x-api-key": process.env.TRES_API_KEY! } }
  );
  const { docs } = await res.json() as {
    docs: { title: string; content: string }[];
  };
  // Concatenate into a single context block
  return docs.map((d) => `## ${d.title}\n\n${d.content}`).join("\n\n---\n\n");
}

// 2. Inject into your Claude prompt
const kbContext = await getKbContext("VC fund accounting pitch");

const response = await anthropic.messages.create({
  model: "claude-sonnet-4-6",
  system: `You are a TRES sales expert.\n\n<knowledge_base>\n${kbContext}\n</knowledge_base>`,
  messages: [{ role: "user", content: "Draft an outbound email for a Series B fund CFO." }],
});

Tip: pass the user's intent or call summary as the query — the router will select the 3–5 most relevant master docs so you never over-fill the context window.

Call Object Reference

FieldTypeDescription
fireflies_idstringUnique Fireflies call UUID
datestringCall date — YYYY-MM-DD
time_utcstringStart time in UTC — HH:MM
titlestringAuto-generated call title from Fireflies
duration_minstringDuration in minutes
typestringClassification: External · Internal · Demo · Other
client_domainsstringComma-separated client email domains
client_emailsstringComma-separated client email addresses
tres_participantsstringTRES team members on the call
meeting_typestringStage: Discovery · Demo · Follow-up · QBR …
keywordsstringAI-extracted topic keywords
overviewstringClaude-generated call summary
action_itemsstringClaude-extracted next steps
transcript_urlstringLink to full transcript on Fireflies
verticalstringICP vertical (Exchange · VC · Custodian …)
hubspot_company_idstringHubSpot company ID — matched via CRM Bridge
hubspot_company_namestringHubSpot company name — matched by domain or email

Error Codes

StatusMeaning
200OK — request succeeded
401Missing or invalid API key
404Call ID not found
500Server error — retry or contact TRES