Three surfaces. One auth. 90+ tools.
Build with the MCP server for AI agents (Claude Code, Cursor, Codex), the CLI for scripts and CI, or the REST API for everything else. Same auth, same data, same 90+ tools.
Here's your campaign performance this week:
VP Sales Outreach - 23 replies, 68% acceptance rate
Series B Founders - 12 replies, 45% acceptance rate
Agency Owners - 8 replies, 72% acceptance rate
tools called: list-campaigns, get-campaign-analytics
Pick your surface. Same 90+ tools, three ways in.
Same auth, same data, same actions. Choose the surface that fits how you build.
For AI agents
Talk to your pipeline from Claude Code, Cursor, Codex.
Drop into any MCP-aware IDE. 129 tools across 20 categories, exposed natively to your agent.
npx -y pipeline-mcp \
--api-key YOUR_API_KEYFor scripts and CI
Same 90+ tools. Zero tokens. Pipe-friendly.
Every command supports --json and --csv. Generated from the live tool catalog - new tools show up automatically.
npm i -g @pipeline/cli
pipeline login
pipeline list-campaigns --jsonFor everything else
Standard HTTP. Bearer auth. JSON in, JSON out.
OpenAPI spec, predictable status codes, idempotency keys on writes. Use from any language.
curl https://pipeline.help/api/campaigns \
-H "Authorization: Bearer YOUR_API_KEY"MCP, CLI, or REST? Pick by job, not by hype.
Same data, same auth - they just shine in different situations. Here's the cheat-sheet.
Five primitives, every outbound motion.
Connect your LinkedIn accounts in the Pipeline UI. Everything after that - push, automate, query, enrich, agentic - is API-accessible.
Push leads in
Send prospects from Clay, Apollo, or any source directly into Pipeline campaigns - one POST per row, or bulk in batches of 1,000.
- Single + bulk endpoints with idempotency keys
- Auto-deduplicates by LinkedIn URL or email
- Triggers ICP scoring + research on insert
curl -X POST https://pipeline.help/api/campaigns/{id}/prospects \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{ "linkedinUrl": "linkedin.com/in/johndoe", "firstName": "John" }'Automate operations
Start, pause, and resume campaigns programmatically. Manage prospects, swap workflows, rotate accounts. Build the orchestration layer your team wants.
- Lifecycle endpoints: start / pause / resume / clone
- Webhooks for reply, meeting, and signal events
- Per-account daily-usage caps and cooldowns
pipeline start-campaign --campaign-id <id>
pipeline pause-campaign --campaign-id <id>
pipeline list-campaigns --status active --jsonPull data out
Query campaign analytics, export conversations, track reply rates and sentiment from your own dashboards or warehouse.
- Per-campaign, per-account, per-workspace metrics
- Conversation export with sentiment + stage tags
- Funnel analytics: sent → accepted → replied → booked
curl https://pipeline.help/api/analytics/campaign?campaign_id={id} \
-H "Authorization: Bearer YOUR_API_KEY"Enrich and scrape
Build prospect lists from LinkedIn post engagers, company followers, or profile followers. Run waterfall enrichments to find emails and firmographics.
- Scrape: post engagers, company + profile followers
- Waterfall providers: Apollo, Hunter, Anymailfinder
- Deduplicate, score, and ship straight to a campaign
pipeline scrape-post-engagers \
--post-url "https://linkedin.com/posts/..." \
--linkedin-account-id <id> \
--campaign-id <id>AI-native access
Use the MCP server to manage your outreach from Claude Code, Cursor, or ChatGPT. Talk to your pipeline in plain English.
- 129 tools exposed through the MCP server
- Works with any MCP-aware agent or IDE
- Same auth + same data as the REST API
> Scrape engagers from this LinkedIn post and add them to my table
> Run email enrichment on all rows, then send them to my campaign
> Who replied to my campaigns this week?Typed clients, or bring your own language.
First-class TypeScript and Python SDKs. For everything else, point your generator at our OpenAPI spec.
npm i @pipeline/sdkpip install pipeline-sdkGET /docs/openapi.json