# Andru Revenue Intelligence — Complete API Reference > Headless revenue intelligence platform for technical SaaS founders ($500K-$5M ARR). > 15 MCP tools, 3 MCP resources, 7 A2A skills. Intelligence consumed via MCP Server, > Chrome Extension, A2A Protocol, and REST API. --- ## Authentication ### Platform API Keys All API access uses platform API keys. Keys have a prefix for environment detection: - `sk_live_...` — Production key (real data, real intelligence) - `sk_test_...` — Test key (sandbox mode) **Authentication methods:** ``` # Bearer token (preferred) Authorization: Bearer sk_live_xxxxxxxxxxxx # X-API-Key header (alternative) X-API-Key: sk_live_xxxxxxxxxxxx ``` **Rate limits:** - Tool execution: 50 requests / 15 minutes - Read operations: 100 requests / 15 minutes - A2A task submission: 50 requests / 15 minutes **Scopes:** `icp:read`, `syndication:read`, `syndication:write`, `calendar:read` --- ## MCP Server ### Setup — Claude Desktop Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows): ```json { "mcpServers": { "andru-intelligence": { "command": "npx", "args": ["-y", "mcp-server-andru-intelligence"], "env": { "ANDRU_API_KEY": "sk_live_xxxxxxxxxxxx" } } } } ``` ### Setup — Claude Code ```bash claude mcp add andru-intelligence -- npx -y mcp-server-andru-intelligence ``` Set the API key: ```bash export ANDRU_API_KEY=sk_live_xxxxxxxxxxxx ``` ### Cold Start Mode Most tools support cold start — they work without prior pipeline data. Provide these optional parameters: - `productDescription`: What your product does and who it's for - `vertical`: Industry you sell into (e.g., "fintech", "healthcare") - `targetRole`: Buyer role (e.g., "CFO", "CTO", "VP Sales") If these aren't provided, tools will ask you for them. --- ## MCP Tools ### get_icp_fit_score Score a company against ICP criteria across 5 dimensions. No AI calls, instant results. **Category:** scoring | **Cost:** free | **Latency:** <100ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | companyName | string | no | Company name to evaluate | | domain | string | no | Company website domain | | industry | string | no | Industry vertical | | employeeCount | number | no | Number of employees | | revenue | string | no | Revenue range (e.g., "$1M-$5M") | | geography | string | no | HQ location | | techStack | string[] | no | Technologies the company uses | | painPoints | string[] | no | Known pain points or challenges | | triggerEvents | string[] | no | Recent trigger events (e.g., "just raised Series B") | | productDescription | string | no | What your product does and who it's for (cold start) | | vertical | string | no | Industry you sell into (cold start) | | targetRole | string | no | Buyer role being evaluated (cold start) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_icp_fit_score", "arguments": { "companyName": "Acme Corp", "industry": "fintech", "employeeCount": 150, "revenue": "$5M-$10M", "techStack": ["React", "AWS", "PostgreSQL"], "productDescription": "API platform for payment orchestration", "vertical": "fintech", "targetRole": "CTO" } }' ``` **Example — Python:** ```python import requests response = requests.post( "https://platform.andru-ai.com/api/mcp/tools/call", headers={"Authorization": "Bearer sk_live_xxxxxxxxxxxx"}, json={ "tool": "get_icp_fit_score", "arguments": { "companyName": "Acme Corp", "industry": "fintech", "employeeCount": 150 } } ) result = response.json() ``` **Response example:** ```json { "content": [{ "type": "text", "text": "{\"companyName\":\"Acme Corp\",\"totalScore\":78,\"tier\":\"B\",\"breakdown\":{\"firmographics\":{\"score\":85,\"details\":\"Strong industry match\"},\"technographics\":{\"score\":70,\"details\":\"Partial tech overlap\"},\"painPoints\":{\"score\":80,\"details\":\"2 of 3 pain points match\"},\"budgetFit\":{\"score\":65,\"details\":\"Revenue suggests adequate budget\"},\"behavioralSignals\":{\"score\":90,\"details\":\"Recent hiring surge detected\"}},\"recommendation\":\"Good fit — worth pursuing\"}" }] } ``` --- ### get_persona_profile Look up buyer persona with MBTI distribution, pain points, empathy map, and messaging angles. **Category:** intelligence | **Cost:** free | **Latency:** <50ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | title | string | **yes** | Job title (e.g., "VP Engineering", "CTO", "Head of Sales") | | industry | string | no | Industry context | | companySize | string | no | Company size range | | productDescription | string | no | What your product does (cold start) | | vertical | string | no | Industry you sell into (cold start) | | targetRole | string | no | Buyer role being evaluated (cold start) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_persona_profile", "arguments": { "title": "VP Engineering", "industry": "fintech", "companySize": "50-200" } }' ``` **Response example:** ```json { "content": [{ "type": "text", "text": "{\"persona\":{\"title\":\"VP Engineering\",\"archetype\":\"Technical Decision Maker\",\"mbtiDistribution\":{\"INTJ\":35,\"ISTJ\":25,\"ENTJ\":20,\"INTP\":20},\"painPoints\":[\"Technical debt slowing delivery\",\"Scaling engineering team\",\"Build vs buy decisions\"],\"empathyMap\":{\"thinks\":\"Is this technically sound?\",\"feels\":\"Pressure to deliver faster\",\"says\":\"Show me the architecture\",\"does\":\"Evaluates technical documentation first\"},\"messagingAngle\":\"Lead with architecture and integration story, not features\"}}" }] } ``` --- ### get_disqualification_signals 3-layer disqualification check: ICP fit + anti-patterns + churn patterns. Returns a 4-tier classification. **Category:** scoring | **Cost:** free | **Latency:** <200ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | companyName | string | no | Company name | | industry | string | no | Industry | | employeeCount | number | no | Number of employees | | revenue | string | no | Revenue range | | geography | string | no | Location | | techStack | string[] | no | Technologies used | | dealContext | object | no | Current deal context | | dealContext.dealValue | number | no | Deal value | | dealContext.stage | string | no | Current deal stage | | dealContext.daysInPipeline | number | no | Days since deal entered pipeline | | dealContext.championIdentified | boolean | no | Has a champion been identified? | | productDescription | string | no | What your product does (cold start) | | vertical | string | no | Industry you sell into (cold start) | | targetRole | string | no | Buyer role (cold start) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_disqualification_signals", "arguments": { "companyName": "SmallCo", "employeeCount": 5, "revenue": "<$100K", "dealContext": { "daysInPipeline": 90, "championIdentified": false } } }' ``` --- ### get_messaging_framework MBTI-adapted messaging with value props, objection responses, voice variants, and outbound templates. **Category:** intelligence | **Cost:** free | **Latency:** <50ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | segment | string | no | Target segment or vertical | | stage | string | no | Buyer journey stage: `awareness`, `consideration`, `decision` | | channel | string | no | Channel: email, linkedin, phone, etc. | | personaType | string | no | Target persona title | | mbtiCategory | string | no | MBTI category: `Analytical`, `Driver`, `Expressive`, `Amiable` | | productDescription | string | no | What your product does (cold start) | | vertical | string | no | Industry you sell into (cold start) | | targetRole | string | no | Buyer role (cold start) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_messaging_framework", "arguments": { "segment": "fintech", "stage": "consideration", "channel": "email", "personaType": "CTO", "mbtiCategory": "Analytical" } }' ``` --- ### get_competitive_positioning Battlecard for a specific competitor — where you win, where they attack, questions to plant. **Category:** competitive | **Cost:** free | **Latency:** <100ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | competitorName | string | **yes** | Name of the competitor | | competitorFeatures | string[] | no | Known competitor features/capabilities | | context | string | no | Deal context or situation | | productDescription | string | no | What your product does (cold start) | | vertical | string | no | Industry you sell into (cold start) | | targetRole | string | no | Buyer role (cold start) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_competitive_positioning", "arguments": { "competitorName": "CompetitorX", "context": "Enterprise deal, CTO evaluation" } }' ``` --- ### classify_opportunity Full opportunity classification combining fit scoring, persona matching, disqualification, and risk assessment. **Category:** scoring | **Cost:** free | **Latency:** <200ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | companyName | string | **yes** | Company name | | contactTitle | string | no | Primary contact job title | | industry | string | no | Industry | | employeeCount | number | no | Number of employees | | revenue | string | no | Revenue range | | geography | string | no | Location | | dealValue | number | no | Estimated deal value | | dealStage | string | no | Current deal stage | | techStack | string[] | no | Technologies used | | painPoints | string[] | no | Known pain points | | triggerEvents | string[] | no | Trigger events | | championIdentified | boolean | no | Has a champion been identified? | | competitorInvolved | string | no | Known competitor in the deal | | productDescription | string | no | What your product does (cold start) | | vertical | string | no | Industry you sell into (cold start) | | targetRole | string | no | Buyer role (cold start) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "classify_opportunity", "arguments": { "companyName": "LogiTech Solutions", "contactTitle": "VP Operations", "industry": "logistics", "employeeCount": 200, "dealValue": 85000 } }' ``` --- ### get_account_plan Structured account plan with stakeholder map, per-person messaging, MEDDICC gaps, and unified story. **Category:** intelligence | **Cost:** free | **Latency:** <100ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | accountName | string | **yes** | Account/company name | | domain | string | no | Company website domain | | industry | string | no | Industry | | stakeholders | object[] | no | Array of stakeholders (each with name, title, role) | | dealContext | object | no | Deal context (stage, value, nextMeeting) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_account_plan", "arguments": { "accountName": "LogiTech Solutions", "stakeholders": [ {"name": "Sarah Chen", "title": "VP Operations", "role": "champion"}, {"name": "James Liu", "title": "CFO", "role": "economic_buyer"} ], "dealContext": {"stage": "evaluation", "value": 85000} } }' ``` --- ### get_capability_profile Machine-readable product capability snapshot for buyer-side agent evaluation. **Category:** intelligence | **Cost:** free | **Latency:** <50ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | includeOutcomes | boolean | no | Include verified outcomes | | includeTrustSignals | boolean | no | Include trust signals | | forceRefresh | boolean | no | Force refresh from pipeline data | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_capability_profile", "arguments": { "includeOutcomes": true, "includeTrustSignals": true } }' ``` --- ### get_evaluation_criteria 6-dimension alignment scoring: pain coverage, outcome clarity, capability fit, and more. Returns 0-100 per dimension. **Category:** scoring | **Cost:** free | **Latency:** <100ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | buyerPainPoints | string[] | no | Buyer's known pain points | | buyerIndustry | string | no | Buyer's industry | | buyerSize | string | no | Buyer's company size | | requiredCapabilities | string[] | no | Capabilities the buyer requires | | productDescription | string | no | What your product does (cold start) | | vertical | string | no | Industry you sell into (cold start) | | targetRole | string | no | Buyer role (cold start) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_evaluation_criteria", "arguments": { "buyerPainPoints": ["slow deployment", "compliance risk"], "buyerIndustry": "healthcare", "requiredCapabilities": ["HIPAA compliance", "SSO", "audit trail"] } }' ``` --- ### get_icp_profile Full Pure Signal ICP with all 5 intelligence layers, 7 critical buyer questions, and anti-patterns. **Category:** intelligence | **Cost:** free | **Latency:** <100ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | layers | number[] | no | Filter to specific layers (1-5). Omit for all layers. | | includeSevenAnswers | boolean | no | Include the 7 critical buyer questions | | includeAntiPatterns | boolean | no | Include anti-patterns and churn indicators | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_icp_profile", "arguments": { "layers": [1, 2], "includeSevenAnswers": true, "includeAntiPatterns": true } }' ``` --- ### discover_prospects AI-powered web search for companies showing buying signals similar to your best customers. **Category:** discovery | **Cost:** ai_call | **Latency:** 15-30s | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | companyName | string | **yes** | Your company name | | productDescription | string | **yes** | What your product does | | coreCapability | string | no | Core capability to match against | | industry | string | no | Target industry | | targetMarket | string | no | Target market description | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "discover_prospects", "arguments": { "companyName": "Nexus AI", "productDescription": "AI-powered data pipeline platform for enterprise", "industry": "fintech", "targetMarket": "Series A-B SaaS companies with data engineering teams" } }' ``` --- ### get_pre_brief Pre-call prep with talk track, discovery questions tuned to the buyer, and anticipated objections. **Category:** intelligence | **Cost:** ai_call | **Latency:** 10-20s | **Scopes:** icp:read, calendar:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | eventId | string | no | Calendar event ID (for calendar-linked briefs) | | dealId | string | no | Deal ID (for deal-linked briefs) | | briefType | string | no | Brief type: `general`, `discovery`, `demo`, `negotiation`, `renewal`, `expansion` | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "get_pre_brief", "arguments": { "eventId": "cal_abc123", "briefType": "discovery" } }' ``` --- ### get_syndication_status Check CRM sync status — shows whether your CRM has current intelligence or stale data. **Category:** syndication | **Cost:** free | **Latency:** <200ms | **Scopes:** syndication:read **Parameters:** None required. **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"tool": "get_syndication_status", "arguments": {}}' ``` --- ### trigger_syndication Push latest intelligence into CRM platforms. Detects stale data and updates only what's needed. **Category:** syndication | **Cost:** free | **Latency:** 5-15s | **Scopes:** syndication:write **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | platforms | string[] | no | Specific platforms to sync (omit for all connected) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "trigger_syndication", "arguments": { "platforms": ["hubspot"] } }' ``` --- ### batch_fit_score Score up to 50 companies at once with individual scores and aggregate statistics. **Category:** scoring | **Cost:** free | **Latency:** <500ms | **Scopes:** icp:read **Parameters:** | Name | Type | Required | Description | |------|------|----------|-------------| | companies | object[] | **yes** | Array of companies (each with companyName, domain, industry, employeeCount, revenue, geography, techStack, painPoints, triggerEvents) | **Example — curl:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/tools/call \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "tool": "batch_fit_score", "arguments": { "companies": [ {"companyName": "Acme Corp", "industry": "fintech", "employeeCount": 150}, {"companyName": "Beta Inc", "industry": "healthcare", "employeeCount": 500}, {"companyName": "Gamma Ltd", "industry": "fintech", "employeeCount": 30} ] } }' ``` --- ## MCP Resources ### andru://icp/profile Your canonical Pure Signal ICP — all 5 layers of intelligence, 7 critical answers, and anti-patterns. **MIME type:** application/json **Read via MCP:** Automatically available when the MCP server is connected. Claude can access it directly. **Read via REST:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/resources/read \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"uri": "andru://icp/profile"}' ``` --- ### andru://pipeline/runs Your GTM pipeline runs — lists all completed pipeline runs with their stage outputs. **MIME type:** application/json **Read via REST:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/resources/read \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"uri": "andru://pipeline/runs"}' ``` --- ### andru://accounts Your account plans — company summaries, tiers, pipeline values, stakeholder counts. **MIME type:** application/json **Read via REST:** ```bash curl -X POST https://platform.andru-ai.com/api/mcp/resources/read \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"uri": "andru://accounts"}' ``` --- ## A2A Protocol ### Agent Discovery ```bash curl https://platform.andru-ai.com/.well-known/agent.json ``` Returns the Andru AgentCard with skills, capabilities, and authentication requirements. ### Task Submission (JSON-RPC 2.0) ```bash curl -X POST https://platform.andru-ai.com/api/a2a/tasks \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "method": "tasks/send", "params": { "message": { "role": "user", "parts": [{"type": "text", "text": "Score Acme Corp against our ICP"}] } }, "id": "req-1" }' ``` ### Task Status ```bash curl https://platform.andru-ai.com/api/a2a/tasks/task-id-here \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" ``` ### Task Streaming (SSE) ```bash curl -N https://platform.andru-ai.com/api/a2a/tasks/task-id-here/stream \ -H "Authorization: Bearer sk_live_xxxxxxxxxxxx" ``` Events: `working`, `progress`, `complete`, `error` ### Skills #### buyer-understanding ICP qualification, persona profiling, empathy terrain mapping. **Tags:** icp, persona, qualification, empathy **Mapped tools:** get_icp_fit_score, get_persona_profile, get_disqualification_signals, get_icp_profile, classify_opportunity, batch_fit_score **Examples:** - "Score this company against our ICP" - "Who is the buyer persona for this deal?" - "Should we disqualify this opportunity?" #### tech-to-value-translation Converts technical capabilities into buyer-language value propositions. **Tags:** messaging, value-prop, positioning, translation **Mapped tools:** get_messaging_framework, get_competitive_positioning **Examples:** - "How should we position against Competitor X?" - "What messaging framework fits this persona?" #### buyer-journey-stages Maps deals to the buyer's actual purchasing journey. **Tags:** pipeline, deal-stage, buyer-journey, process **Mapped tools:** classify_opportunity, get_account_plan **Examples:** - "Classify this opportunity" - "Generate an account plan for this prospect" #### mutual-champion-selling Champion identification, development, and coalition building strategy. **Tags:** champion, stakeholder, relationship, coalition **Mapped tools:** get_account_plan, get_persona_profile, get_pre_brief **Examples:** - "Prepare a pre-meeting brief for this call" - "Who should be our champion in this deal?" #### buying-committee-navigation Multi-threading strategy, stakeholder translation, veto identification. **Tags:** committee, multi-thread, stakeholder, veto **Mapped tools:** get_account_plan, get_persona_profile, get_messaging_framework, get_evaluation_criteria **Examples:** - "Map the buying committee for this account" - "What evaluation criteria matter to this buyer?" #### multi-agent-collaboration Batch operations for CRM agents and multi-agent workflows. **Tags:** batch, crm, salesforce, hubspot, multi-agent **Mapped tools:** batch_fit_score **Examples:** - "Score these 20 leads against our ICP" - "Batch qualify companies from our CRM" #### customer-value-realization Post-close outcome engineering, expansion triggers, advocacy generation. **Tags:** success, retention, expansion, advocacy, nrr **Mapped tools:** get_disqualification_signals, get_evaluation_criteria, get_capability_profile **Examples:** - "What churn signals exist for this account?" - "Generate a capability profile for buyer evaluation" --- ## REST API Endpoints ### MCP Proxy | Method | Path | Description | |--------|------|-------------| | POST | /api/mcp/tools/list | List all available MCP tools with schemas | | POST | /api/mcp/tools/call | Execute a tool by name with arguments | | POST | /api/mcp/resources/list | List available MCP resources | | POST | /api/mcp/resources/read | Read a resource by URI | **Tool call body format:** ```json { "tool": "get_icp_fit_score", "arguments": { "companyName": "Acme Corp", "industry": "fintech" } } ``` **Resource read body format:** ```json { "uri": "andru://icp/profile" } ``` ### A2A Protocol | Method | Path | Description | |--------|------|-------------| | GET | /.well-known/agent.json | Agent card discovery (public) | | POST | /api/a2a/tasks | Submit a new task (JSON-RPC 2.0) | | GET | /api/a2a/tasks | List tasks for authenticated user | | GET | /api/a2a/tasks/:taskId | Get task status and result | | POST | /api/a2a/tasks/:taskId/cancel | Cancel a running task | | GET | /api/a2a/tasks/:taskId/stream | SSE stream for task updates | ### Platform | Method | Path | Description | |--------|------|-------------| | POST | /api/platform/api-keys | Generate a new API key | | GET | /api/platform/api-keys | List user's API keys | | DELETE | /api/platform/api-keys/:id | Revoke an API key | | GET | /api/health | Platform health check | --- ## Chrome Extension ### LinkedIn Signal Badge Classifies LinkedIn prospects as Decision Maker, Influencer, or Gatekeeper. Shows confidence score, 2-3 evaluation criteria, and one actionable signal. ### Gmail Tone Check Analyzes email drafts for B2B positioning and tone. Provides context-aware suggestions based on the recipient's company and role. ### ICP Rater Scores any company website against your ICP criteria. Shows fit score and tier on any domain. ### Setup 1. Install from Chrome Web Store 2. Generate an extension token in Settings 3. Paste the token in the extension options page