API review

OutFlo AI API review

Cloud LinkedIn outreach for many sender accounts: priced per connected LinkedIn account (Growth) or in 25/50/100-account bundles (Booster), with a dedicated residential IP per sender, a unified inbox, a 91-operation public API, webhooks, a CLI and an OAuth MCP server on every plan. Best for agencies and teams running many LinkedIn sender accounts from one workspace, with per-client workspaces.

Verified 25 Oct 2026 · 91 endpoints listed · Official MCP server

What a call costs

The actions you pay for, as OutFlo AI prices them.

ActionCostPer
One connected LinkedIn account on Growth$49 a month billed monthly ($37/mo yearly)per account

Pricing, plan by plan

US dollars, as OutFlo AI's pricing page shows them on 25 Oct 2026. Monthly and annual billing are shown apart.

Free tier 8-day free trial of Growth for up to 3 connected LinkedIn accounts, no credit card.

Growth

$49/mo

billed monthly

$37/mo

billed annually

per connected LinkedIn account (one seat = one LinkedIn account running outreach); $126 billed quarterly ($42/mo), $444 billed yearly ($37/mo).

API included
Plan details

Pricing page shows a Year-End Offer: $49 instead of the regular $59, kept while the subscription stays active. Unlimited campaigns, unified inbox, AI messaging, MCP, CLI, API and webhooks, multi-workspace.

Booster (25 accounts)

$699/mo

billed monthly

$525/mo

billed annually

flat bundle of 25 LinkedIn accounts; $1,785 billed quarterly ($595/mo), $6,300 billed yearly ($525/mo).

API included
Plan details

Add-on packs of 5 accounts at $125/mo (max 4 packs). Everything in Growth plus priority support, white-label, custom requirements.

5-account add-on pack $125 monthly / $318.75 quarterly / $1,125 yearly

Booster (50 accounts)

$999/mo

billed monthly

$750/mo

billed annually

50 accounts; $2,550 quarterly ($850/mo), $9,000 yearly ($750/mo)

API included

Booster (100 accounts)

$1,499/mo

billed monthly

$1,125/mo

billed annually

100 accounts; $3,825 quarterly ($1,275/mo), $13,500 yearly ($1,125/mo)

API included

Scale

$2,199/mo

billed monthly

$1,650/mo

billed annually

flat, unlimited accounts under fair use up to 300; $5,610 quarterly ($1,870/mo), $19,800 yearly ($1,650/mo).

API included
Plan details

Everything in Booster plus done-for-you onboarding and migration, custom integrations, dedicated manager, extended white-label.

Billing and credits: 'Account seats, subscription charges and usage credits are separate' (llms-full.txt); usage-credit prices are not published. Refunds: monthly plans none; annual plans pro-rated refund less a 15% fee if cancelled within 30 days.

Rate limits

Set per operation as sliding windows that apply together, keyed per organization (or client IP when no organization context).

More on limitsLess

Examples from the docs: GET /campaigns and GET /lead-lists 50 req/s and 50 req/min; POST add lead 50 req/s; POST /campaigns/exclude-leads 50 req/s and 20 req/min; GET /accounts and GET /conversations 10 req/s. Successful responses carry X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset; 429 carries Retry-After (seconds). Only the first operation on each guide page shows its limits, so most operations' numbers were not read.

How to get an API key

OutFlo AI uses API key. The steps below follow OutFlo AI's own docs.

  1. Create a OutFlo AI account. API access starts on the Growth plan.
  2. Workspace key from Integrations & API (Integration settings) in the OutFlo app. Keys are scoped; new keys get posts.read, posts.write, posts.approve and posts.publish by default for the Posting API.
  3. Send it with every request: header x-api-key (plus x-workspace-id when a key is authorized for more than one workspace); MCP: OAuth 2.0 (authorization server api.outflo.io/oidc) or a Personal Access Token as Authorization: Bearer.
  4. Make a first call: Verify API credentials and inspect granted scopes. Keep the key in an environment variable, never in the command.
    curl -X GET "https://api.outflo.io/api/public/ping" \
      -H "Authorization: Bearer $OUTFLO_API_KEY"

Where the docs live

WhatWhere
Documentationreach.outflo.io/docs
API referencereach.outflo.io/docs/reference
OpenAPI specreach.outflo.io/api-docs.json
llms.txtreach.outflo.io/llms.txt
Base URLhttps://api.outflo.io
MCP serverhttps://mcp.outflo.io/mcp

Strengths and limits

Where it fits

  • Agencies and teams running many LinkedIn sender accounts from one workspace, with per-client workspaces
  • Building, launching and pausing campaigns from code or an AI assistant: campaign create, sequence update, launch/pause/resume and lead add are in the public API and MCP
  • LinkedIn post scheduling and client approval through the same API (25-operation Posting API)
  • Teams moving off HeyReach: a HeyReach import of campaigns, lead lists and conversation history is listed

Where it falls short

  • Email sending itself: email steps are handed to Smartlead or Instantly campaigns
  • A contact database or email finder: none is listed; leads come from LinkedIn/Sales Navigator searches, CSV, posts, events, HubSpot or the API
  • Buyers needing a published security certification: none is stated; the DPA offers documentation and audits instead

Worth knowing

  • The Growth price on the pricing page is a Year-End Offer ($49 instead of $59 a month, locked while subscribed). The catalog and JSON-LD carry $49; the regular rate is $59.
  • Two base hosts appear: the reference header shows live.outflo.in while every sample and the console use https://api.outflo.io.
  • The OpenAPI link in reach.outflo.io/llms.txt returned the app HTML shell on 2026-10-25; the docs are a JS app, so a plain fetch gets nothing (rendered with headless Chrome).
  • Rate limits differ per operation and several apply at once; GET /accounts and GET /conversations are 10 req/s (/docs/message).
  • Adding a lead that already exists by normalized LinkedIn URL updates its fields but never reassigns its sender; a senderUrl that is not an eligible campaign sender falls back to least-loaded assignment.
2 moreShow fewer
  • Posting API publish calls return 202 Accepted: queued, not posted. Free organizations get 25 successful publications per UTC month.
  • Account limits are shared by every campaign using a sender; the product enforces a 40 a day connection-request ceiling that campaigns cannot override.

Who should use it

Use OutFlo AI for
Agencies and teams running many LinkedIn sender accounts from one workspace, with per-client workspaces
Look elsewhere for
Email sending itself: email steps are handed to Smartlead or Instantly campaigns

If OutFlo AI is not the answer

Other Email sending tools in this directory, each with its own review.

Before you build

Four things to settle first, each read off OutFlo AI's own pages.

  • Confirm the API is on your planAPI access starts on the Growth plan. Free tier: 8-day free trial of Growth for up to 3 connected LinkedIn accounts, no credit card.
  • Keep the key out of your codeAPI key. It is sent as: header x-api-key (plus x-workspace-id when a key is authorized for more than one workspace); MCP: OAuth 2.0 (authorization server api.outflo.io/oidc) or a Personal Access Token as Authorization: Bearer.
  • Design around the rate limitSet per operation as sliding windows that apply together, keyed per organization (or client IP when no organization context).
  • Know the catch before you scaleThe Growth price on the pricing page is a Year-End Offer ($49 instead of $59 a month, locked while subscribed). The catalog and JSON-LD carry $49; the regular rate is $59.

Want us to build it for you?

Tell us what you want OutFlo AI to do in your stack. We will show you how we would wire it into your data, outbound or CRM, and what we would check first.

Read from outflo.io/pricing-catalog.json, reach.outflo.io/docs/reference and reach.outflo.io/docs/campaigns. Verified 25 Oct 2026.

All 91 endpointsFor developers: method, path, what it does and what it costs.

Base URL: https://api.outflo.io

Bulk and async: POST /api/public/lead-lists/leads takes a JSON leads array or a CSV file; no per-request cap is published. Conversation batch actions take 1 to 100 conversation ids; campaign allocations up to 100.

Webhooks: Configured in the app with event plus sender/campaign scope, with a test send. The webhooks guide documents 3 events with payload samples. The workflow guide says not to assume a retry or ordering guarantee. Slack notifications are a separate native integration. Events: CONNECTION_ACCEPTED, FIRST_REPLY_FROM_A_LEAD_IN_OUTFLO_CAMPAIGN, EVERY_MESSAGE_OR_INMAIL_RECEIVED, posting webhooks (signed; event list not published on the pages read), campaign action event subscriptions (selected action types or sequence nodes)

91 endpoints
MethodPathWhat it doesCost
GET/api/public/pingVerify API credentials and inspect granted scopesNot stated
GET/api/public/accountsList connected LinkedIn accountsNot stated
GET/api/public/accounts/limit-policyGet account limit policyNot stated
GET/api/public/accounts/{accountId}Get a connected LinkedIn accountNot stated
DELETE/api/public/accounts/{accountId}Delete a connected LinkedIn accountNot stated
PATCH/api/public/accounts/{accountId}/deactivate-seatDeactivate a LinkedIn account seatNot stated
PUT/api/public/accounts/{accountId}/reactivateReactivate an inactive LinkedIn account seatNot stated
GET/api/public/accounts/{accountId}/healthGet account healthNot stated
GET/api/public/accounts/{accountId}/limitsGet effective account limitsNot stated
PATCH/api/public/accounts/{accountId}/limitsUpdate account limitsNot stated
PUT/api/public/accounts/{accountId}/campaign-limitsReplace campaign-specific account limitsNot stated
GET/api/public/accounts/{accountId}/automationGet account automation settingsNot stated
PATCH/api/public/accounts/{accountId}/automationUpdate account automation settingsNot stated
GET/api/public/accounts/{accountId}/conversation-sync-policyGet account conversation sync policyNot stated
POST/api/public/accounts/loginStart a LinkedIn account loginNot stated
POST/api/public/accounts/checkpoint/solveSubmit an account login checkpointNot stated
POST/api/public/accounts/checkpoint/resendResend an account login checkpointNot stated
GET/api/public/accounts/status/{id}Get LinkedIn account connection statusNot stated
GET/api/public/conversationsList conversationsNot stated
POST/api/public/conversations/queryQuery conversations with advanced filtersNot stated
GET/api/public/conversations/tagsList conversation tagsNot stated
POST/api/public/conversations/batchesApply a bounded conversation tag or star actionNot stated
GET/api/public/conversations/{id}/contextGet conversation contextNot stated
GET/api/public/conversations/{id}/messagesList messages in a conversationNot stated
POST/api/public/conversations/{id}/tagsApply tags to a conversationNot stated
DELETE/api/public/conversations/{id}/tags/{tagId}Remove a tag from a conversationNot stated
PATCH/api/public/conversations/{id}/starUpdate a conversation starNot stated
PATCH/api/public/conversations/{id}/archiveUpdate a conversation archive stateNot stated
PATCH/api/public/conversations/{id}/readUpdate a conversation read stateNot stated
PATCH/api/public/conversations/{id}/draftSave a conversation draftNot stated
PATCH/api/public/conversations/{id}/reply-tagUpdate a conversation reply tagNot stated
POST/api/public/conversations/replySend or reply to a LinkedIn messageNot stated
GET/api/public/campaignsList campaignsNot stated
POST/api/public/campaignsCreate a campaignNot stated
GET/api/public/sequence-templatesList available sequence templatesNot stated
GET/api/public/sequence-templates/{templateId}Get a sequence templateNot stated
POST/api/public/sequence-templatesCreate an organization sequence templateNot stated
GET/api/public/campaigns/{campaignId}Get campaign detailNot stated
GET/api/public/campaigns/{campaignId}/ai-contextGet campaign AI contextNot stated
PUT/api/public/campaigns/{campaignId}/ai-contextUpdate campaign AI contextNot stated