API review

Aimfox API review

Cloud LinkedIn outreach sequencer priced per seat ($49/mo) with native rented LinkedIn profiles ('Avatars'), unified inbox, an 84-endpoint v3 REST API, webhooks and an official OAuth MCP server. Best for multi-account LinkedIn outreach where you want to rent extra sender profiles natively.

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

What a call costs

The actions you pay for, as Aimfox prices them.

ActionCostPer
Extra agency seat$20per seat per month
Extra agency seat (yearly billing)$180per seat per year

Pricing, plan by plan

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

Free tier 14-day free trial on Outreach seat, no credit card

Outreach seat

$49/mo

billed monthly

$40.83/mo

billed annually

per seat (assignable to any connected LinkedIn account); Yearly toggle on the live pricing page: $490/seat/year (crossed-out $600), i.e. ~$40.83/mo; help article 9400307 still says $390/year; campaigns, unified inbox, integrations

API included
Plan details

add seats

Outreach avatar

$387/mo

billed monthly

$322.50/mo

billed annually

3 rented, customisable LinkedIn profiles with 3 outreach seats included; Yearly toggle: $3,870/year (crossed-out $4,642), i.e. $322.50/mo; no free trial; each order a separate subscription

API included
Plan details

additional orders

Agency

$499/mo

billed monthly

$374.17/mo

billed annually

pool of 20 seats across workspaces, +$20/seat/month beyond 20 (20-seat minimum); Yearly toggle: from $4,490/year for 20 seats (crossed-out $6,000), i.e. ~$374.17/mo, +$180 per extra seat per year; full white label; Slack onboarding

API included
Plan details

$20 per extra seat per month ($180 per seat per year on yearly billing)

Rate limits

60 requests per minute across all endpoints; 429 when exceeded.

More on limitsLess

A 500 often means the wrong key type (master vs normal) for the route.

How to get an API key

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

  1. Create a Aimfox account. API access starts on the Outreach seat plan.
  2. Workspace Settings -> Integrations -> Create API Key (name + permission 'All' or 'Read-only' = GET only; shown once; unlimited keys; never expire). A separate Master API key is required for 7 agency routes: create/list workspaces, create/get workspace tokens, assign lifetime and agency seats, generate client token. Create Client and Generate Login Token use a normal key.
  3. Send it with every request: header (Authorization: Bearer <key>).
  4. Make a first call: Assign LTD Seats, This POST request assigns lifetime seats to a specific workspace. NOTE: ⚠️ Warning: This request sets the total number of seats for the workspace, it does not add to the existing count. For example, i. Keep the key in an environment variable, never in the command.
    curl -X POST "https://api.aimfox.com/api/v3/workspaces/:workspace_id/seats/lifetime" \
      -H "Authorization: Bearer $AIMFOX_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{}'

Where the docs live

WhatWhere
Documentationdocs.aimfox.com
API referencedocs.aimfox.com
llms.txthelp.aimfox.com/llms.txt
Base URLhttps://api.aimfox.com
MCP serverhttps://mcp.aimfox.com

Strengths and limits

Where it fits

  • Multi-account LinkedIn outreach where you want to rent extra sender profiles natively (Avatars)
  • Bulk extraction of leads and full conversation histories into a warehouse (we pulled 19k prospects and 6.9k conversations)
  • Agencies: master-key workspace creation, per-workspace tokens, white-label clients, seat pools
  • Recipient-time-zone sending

Where it falls short

  • High-throughput API syncs: 60 req/min across all endpoints
  • Email sending (it integrates with Instantly/Smartlead/EmailBison instead)
  • Group-message sends: multiple recipients create one group conversation, not individual DMs

Worth knowing

  • The API is now v3. Many v2 GETs became POST...:search with filters and account_ids in a JSON body. Our July KB copy documents v2.
  • There are two key types. Seven agency routes (create/list workspaces, create/get workspace tokens, assign lifetime/agency seats, generate client token) need the Master API key; Create Client and Generate Login Token take a normal key. Using the wrong type often returns a 500, not a 401/403.
  • The seat-assignment endpoints SET the total seat count rather than adding to it, so sending 5 when you have 3 gives you 5, not 8.
  • Start Conversation with multiple recipients creates ONE group conversation, not individual messages.
  • Voice notes are not supported in Sales Navigator conversations; upload-file identifiers are single-use; LinkedIn file URLs must be percent-encoded for Get Account File.
4 moreShow fewer
  • The help center still says full campaign setup needs the dashboard, but v3 has POST /campaigns (create). Trust the API reference and test.
  • Avatars are now sold only as a 3-profile pack at $387/month (= $129/profile, the same unit price as our July note, which recorded $129/profile billed quarterly); no free trial, each order is its own subscription. The pricing page contradicts itself: one block says '$387/month, 3 profiles included', another says '$387 per profile / month'; the help article confirms the 3-pack.
  • 60 req/min across all endpoints is the only budget, so plan pagination and backoff for full-workspace extractions.
  • Annual price conflict: the help article (9400307) says the Outreach seat annual plan is $390/year, but the live pricing page Yearly toggle shows $490/seat/year (crossed-out $600). The live page is what a buyer is charged today.

Our take

We run a B2B software client's LinkedIn outreach on Aimfox, which was chosen for that client because it sends in each recipient's time zone. We used Aimfox's MCP server to pull the client's full workspace history, every prospect with its conversation threads, into a database.

Who should use it

Use Aimfox for
Multi-account LinkedIn outreach where you want to rent extra sender profiles natively (Avatars)
Look elsewhere for
High-throughput API syncs: 60 req/min across all endpoints

If Aimfox is not the answer

Other LinkedIn outreach tools in this directory, each with its own review.

Before you build

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

  • Confirm the API is on your planAPI access starts on the Outreach seat plan. Free tier: 14-day free trial on Outreach seat, no credit card.
  • Keep the key out of your codeAPI key. It is sent as: header (Authorization: Bearer <key>).
  • Design around the rate limit60 requests per minute across all endpoints; 429 when exceeded.
  • Know the catch before you scaleThe API is now v3. Many v2 GETs became POST...:search with filters and account_ids in a JSON body. Our July KB copy documents v2.

Want us to build it for you?

Tell us what you want Aimfox 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 aimfox.com/pricing and docs.aimfox.com. Verified 25 Oct 2026.

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

Base URL: api.aimfox.com

Bulk and async: Add many targets to a campaign in one call (v3 merged v2 single + multiple); export campaign targets; bulk blacklist add; list sources.

Webhooks: Payload fields: id, event_type, workspace, event. Optional auth header (Basic or Bearer). Multiple events per endpoint. Labelled beta. Events: account_logged_in, account_logged_out, campaign_created, campaign_started, campaign_ended, campaign_reply, new_reply, inmail_reply, new_connection, lead_label_added, inbox_event. Retries: Up to 6 retries with backoff: 1 min, 5 min, 30 min, 1 h, 6 h, 1 day.

84 endpoints
MethodPathWhat it doesCost
POST/api/v3/workspaces/:workspace_id/seats/lifetimeAssign LTD Seats, This POST request assigns lifetime seats to a specific workspace. NOTE: ⚠️ Warning: This request sets the total number of seats for the workspace, it does not add to the existing count. For example, iSETS total seats (does not add); master key
POST/api/v3/workspaces/:workspace_id/seats/agencyAssign Agency Seats, This POST request assigns Agency Plan seats to a specific workspace. NOTE: ⚠️ Warning: This request sets the total number of seats for the workspace, it does not add to the existing count. For exampleSETS total seats (does not add); master key; billable
POST/api/v3/workspacesCreate Workspace, This POST request creates a new workspace. NOTE: ℹ️ Note: This route requires the Master API key.Not stated
POST/api/v3/workspaces/:workspace_id/tokensCreate Workspace Token, This POST request creates an API token for a specific workspace. NOTE: ℹ️ Note: This route requires the Master API key.Not stated
GET/api/v3/workspaces/:workspace_id/tokensGet Workspace Tokens, This GET request returns all API tokens of a specific workspace. NOTE: ℹ️ Note: This route requires the Master API key.Not stated
GET/api/v3/workspacesList Workspaces, This GET request returns all workspaces associated with the provided Master API key. NOTE: ℹ️ Note: This route requires the Master API key.Not stated
POST/api/v3/clients/tokenGenerate Client Token, This POST request generates a login token for a client using their email address. The token can be appended to your whitelabel login URL to authenticate the client directly. NOTE: ℹ️ Note: This routeNot stated
POST/api/v3/clientsCreate Client, This POST request creates a new client. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
POST/api/v3/tokenGenerate Login Token, This POST request generates a login token that can be appended to your whitelabel login URL to authenticate a user directly. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
GET/api/v3/accountsList Accounts, This GET request retrieves all LinkedIn accounts in a specific workspace. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
GET/api/v3/accounts/:account_id/profileGet Account, This GET request retrieves the details of a specific account. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
GET/api/v3/accounts/:account_id/limitsGet Account Limits, This GET request retrieves the interaction limits for an account: its Connect and InMail limits (the workspace default unless set for this account) and its warm-up state. NOTE: ℹ️ Note: This route reqNot stated
PATCH/api/v3/accounts/:account_id/limitsSet Account Limits, This PATCH request updates the interaction limits for a specific account. Send only the fields you want to change; the response is the account's limits after the update (as in Get Account Limits). NOTNot stated
GET/api/v3/accounts/:account_id/fileGet Account File, This GET request fetches a file from the given LinkedIn URL using the specified account and streams it back. NOTE: ⚠️ The url value must be URL-encoded (percent-encoded). LinkedIn file URLs contain thNot stated
POST/api/v3/analytics/recent-leadsList Recent Leads, This POST request retrieves the workspace's most recent leads: campaign targets that recently became leads (for example by accepting a connection request), with the campaign and the lead's profile. NONot stated
POST/api/v3/analytics/interactionsList Interactions, This POST request retrieves all interactions for a specific workspace. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
POST/api/v3/blacklist:searchSearch Blacklisted Profiles, This POST request searches the LinkedIn profiles blacklisted in your workspace and returns one page of results. NOTE: ℹ️ Note: This route requires a normal API key. | ℹ️ v3 change: replaces v2 GET /blNot stated
GET/api/v3/blacklist-companiesList Blacklisted Companies, This GET request retrieves one page of the LinkedIn companies blacklisted in your workspace. NOTE: ℹ️ Note: This route requires a normal API key. | ℹ️ v3 change: this endpoint is now paginated.Not stated
POST/api/v3/blacklist-companiesAdd Companies To Blacklist, This POST request blacklists multiple LinkedIn companies. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
POST/api/v3/blacklist/:urnAdd Profile To Blacklist, This POST request adds a LinkedIn profile to your workspace blacklist using their URN, preventing any further interactions or campaign operations from targeting that profile. NOTE: ℹ️ Note: This routeNot stated
POST/api/v3/blacklistAdd Profiles To Blacklist, This POST request adds one or more LinkedIn profiles to your workspace blacklist using their LinkedIn URLs, preventing any further interactions or campaign operations from targeting those profiles. NONot stated
DELETE/api/v3/blacklist/:urnRemove Profile From Blacklist, This DELETE request removes a LinkedIn profile from your workspace blacklist using their URN. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
DELETE/api/v3/blacklist-companies/:company_urnRemove Company From Blacklist, This DELETE request removes a LinkedIn company from your workspace blacklist using their URN. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
POST/api/v3/campaigns:searchList Campaigns, This POST request retrieves all campaigns in your workspace, including each campaign's details and current status. NOTE: ℹ️ Note: This route requires a normal API key. | ℹ️ v3 change: replaces v2 GETNot stated
POST/api/v3/campaignsCreate Campaign, This POST request creates a new Aimfox campaign in the INIT state. NOTE: ℹ️ Note: This route requires a normal API key. | ℹ️ Changed with lists: type, audience_size and miner are no longer used and arNot stated
GET/api/v3/campaigns/:campaign_idGet Campaign, This GET request retrieves detailed information about a specific campaign, including its attributes, current status, and associated data. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
POST/api/v3/campaigns/:campaign_id/targets:searchSearch Campaign Targets, This POST request searches the targets of an Aimfox campaign and returns a page of matching targets together with facet counts. NOTE: ℹ️ Note: This route requires a normal API key. | ℹ️ v3 change: repNot stated
DELETE/api/v3/campaigns/:campaign_idDelete Campaign, This DELETE request deletes a campaign from your workspace and cancels all of its targets. It can't be undone through the API; the campaign's list is kept. To stop a campaign but keep it, set its statNot stated
POST/api/v3/campaigns/:campaign_id/metricsGet Campaign Metrics, This POST request retrieves the interaction metrics for a specific campaign. NOTE: ℹ️ Note: This route requires a normal API key. | ℹ️ v3 change: replaces v2 GET /api/v2/campaigns/:campaign_id/metricsNot stated
POST/api/v3/campaigns/:campaign_id/targetsAdd Targets to Campaign, This POST request adds one or more LinkedIn profiles as targets to an Aimfox campaign, each with its own custom variables. NOTE: ℹ️ Note: This route requires a normal API key. | ℹ️ v3 change: replacesNot stated
DELETE/api/v3/campaigns/:campaign_id/targets/:public_identifierRemove Target from Campaign, This DELETE request removes a specific target from an Aimfox campaign using their Public Identifier. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
PATCH/api/v3/campaigns/:campaign_idUpdate Campaign, This PATCH request updates a campaign's settings or changes its state. Send only the fields you want to change; the response is the updated campaign (as in Get Campaign). NOTE: ℹ️ Note: This route reqNot stated
POST/api/v3/campaigns/:campaign_id/targets:deleteDelete Campaign Targets, This POST request removes targets from an Aimfox campaign, either by an explicit list of URNs or by filter. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
POST/api/v3/campaigns/:campaign_id/targets:exportExport Campaign Targets, This POST request exports the targets of an Aimfox campaign, either by an explicit list of URNs or by filter, without pagination. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
GET/api/v3/campaigns/:campaign_id/cancelledList Cancelled Campaign Targets, This GET request lists the targets that were cancelled in a campaign and why, oldest first. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
GET/api/v3/campaigns/:campaign_id/custom-variablesGet Campaign Custom Variables, This GET request retrieves all custom variables associated with a specific campaign. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
GET/api/v3/campaigns/:campaign_id/custom-variables/:urnGet Campaign Target Custom Variables, This GET request retrieves all custom variables associated with a specific target within an Aimfox campaign. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
POST/api/v3/campaigns/:campaign_id/custom-variablesAdd Custom Variables to Target, This POST request adds custom variables to a specific target within an Aimfox campaign. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
GET/api/v3/labelsList Workspace Labels, This GET request retrieves all labels associated with your workspace. NOTE: ℹ️ Note: This route requires a normal API key.Not stated
POST/api/v3/labelsAdd Label To Workspace, This POST request adds a new label to your workspace. NOTE: ℹ️ Note: This route requires a normal API key.Not stated