GET/v1/outreach/settings
Get outreach settings
Working hours and workspace-wide caps. Nothing is sent outside these hours.
Credit cost. Free.
Parameters
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/settings" \ \
-H "authorization: Bearer $KEY"
Example response
Settings.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
PATCH/v1/outreach/settings
Update outreach settings
Workspace caps can only be lowered here. Working hours stay inside the platform window.
Credit cost. Free.
Parameters
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
timezone
body · string · optional
start_hour
body · integer · optional
end_hour
body · integer · optional
morning_days
body · array of integer · optional
afternoon_days
body · array of integer · optional
approve_every_message
body · boolean · optional
lowered_limits
body · object · optional
Workspace-wide caps, lower than the platform defaults.
| Field | In | Type | Required | What it is |
|---|
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
| timezone | body | string | no | |
| start_hour | body | integer | no | |
| end_hour | body | integer | no | |
| morning_days | body | array of integer | no | |
| afternoon_days | body | array of integer | no | |
| approve_every_message | body | boolean | no | |
| lowered_limits | body | object | no | Workspace-wide caps, lower than the platform defaults. |
Example request
curl -sS -X PATCH "https://api.recruitmcp.com/v1/outreach/settings" \ \
-H "authorization: Bearer $KEY" \
-H "content-type: application/json" \
-d '{"timezone":"Europe/Brussels","start_hour":9,"end_hour":17}'
Example response
Updated.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/templates
List sequence templates
Scope: `outreach:read`.
Credit cost. Free.
Parameters
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/templates" \ \
-H "authorization: Bearer $KEY"
Example response
Templates.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
POST/v1/outreach/accounts
Connect a LinkedIn account
Returns a connect_url for the recruiter to sign in. Call it from the recruiter's browser (or pass their IP) so traffic stays in their country. account.connected is emitted when sign-in finishes. Billed per connected account per month.
Credit cost. Free.
Parameters
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
seat
body · "classic" | "recruiter" | "sales" · optional
LinkedIn seat type. Default classic.
| Field | In | Type | Required | What it is |
|---|
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
| seat | body | "classic" | "recruiter" | "sales" | no | LinkedIn seat type. Default classic. |
Example request
curl -sS -X POST "https://api.recruitmcp.com/v1/outreach/accounts" \ \
-H "authorization: Bearer $KEY"
Example response
Pending until the recruiter signs in.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 428 Error.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
- 503 Error.
GET/v1/outreach/accounts
List outreach accounts
Scope: `outreach:read`.
Credit cost. Free.
Parameters
limit
query · integer · optional
Page size. Default 25, at most 100.
cursor
query · string · optional
next_cursor from the previous page.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| limit | query | integer | no | Page size. Default 25, at most 100. |
| cursor | query | string | no | next_cursor from the previous page. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/accounts" \ \
-H "authorization: Bearer $KEY"
Example response
Accounts.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/accounts/{account_id}
Get an outreach account
Scope: `outreach:read`.
Credit cost. Free.
Parameters
account_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| account_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/accounts/account_id_example" \ \
-H "authorization: Bearer $KEY"
Example response
The account.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
DELETE/v1/outreach/accounts/{account_id}
Disconnect an outreach account
Stops every open enrollment on the account, archives its sequences, and removes it. Nothing more is sent from it.
Credit cost. Free.
Parameters
account_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| account_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X DELETE "https://api.recruitmcp.com/v1/outreach/accounts/account_id_example" \ \
-H "authorization: Bearer $KEY"
Example response
Disconnected.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/accounts/{account_id}/limits
Get today's limits for an account
What was sent, what is scheduled, the caps, and when the next invite can go out.
Credit cost. Free.
Parameters
account_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| account_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/accounts/account_id_example/limits" \ \
-H "authorization: Bearer $KEY"
Example response
Limits.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
PATCH/v1/outreach/accounts/{account_id}/limits
Change an account's caps
Lowering is always allowed. Raising above a default needs risk_acknowledged true and is recorded.
Credit cost. Free.
Parameters
account_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
limits
body · object · required
Cap overrides. Lowering is always allowed; raising needs risk_acknowledged.
limits.invitations_per_day
body · integer · optional
limits.invitations_per_week
body · integer · optional
limits.invitations_per_week_no_note
body · integer · optional
limits.outreaches_started_per_day
body · integer · optional
limits.profile_views_per_day
body · integer · optional
risk_acknowledged
body · boolean · optional
| Field | In | Type | Required | What it is |
|---|
| account_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
| limits | body | object | yes | Cap overrides. Lowering is always allowed; raising needs risk_acknowledged. |
| limits.invitations_per_day | body | integer | no | |
| limits.invitations_per_week | body | integer | no | |
| limits.invitations_per_week_no_note | body | integer | no | |
| limits.outreaches_started_per_day | body | integer | no | |
| limits.profile_views_per_day | body | integer | no | |
| risk_acknowledged | body | boolean | no | |
Example request
curl -sS -X PATCH "https://api.recruitmcp.com/v1/outreach/accounts/account_id_example/limits" \ \
-H "authorization: Bearer $KEY" \
-H "content-type: application/json" \
-d '{"limits":{"invitations_per_day":10}}'
Example response
Updated account.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/sequences
List sequences
Scope: `outreach:read`.
Credit cost. Free.
Parameters
account_id
query · string · optional
Only sequences on this account.
status
query · "active" | "paused" | "archived" · optional
Only sequences in this status.
limit
query · integer · optional
Page size. Default 25, at most 100.
cursor
query · string · optional
next_cursor from the previous page.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| account_id | query | string | no | Only sequences on this account. |
| status | query | "active" | "paused" | "archived" | no | Only sequences in this status. |
| limit | query | integer | no | Page size. Default 25, at most 100. |
| cursor | query | string | no | next_cursor from the previous page. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/sequences" \ \
-H "authorization: Bearer $KEY"
Example response
Sequences, newest first.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
POST/v1/outreach/sequences
Create a sequence
Steps from a template or your own. Creating a sequence sends nothing.
Credit cost. Free.
Parameters
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
account_id
body · string · optional
name
body · string · optional
template
body · string · optional
Template id from GET /v1/outreach/templates. Ignored when steps are sent.
steps
body · array of Step · optional
daily_pace_limit
body · integer | null · optional
Most new enrollments started per day. Null uses the account limit.
approve_every_message
body · boolean · optional
status
body · "active" | "paused" | "archived" · optional
| Field | In | Type | Required | What it is |
|---|
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
| account_id | body | string | no | |
| name | body | string | no | |
| template | body | string | no | Template id from GET /v1/outreach/templates. Ignored when steps are sent. |
| steps | body | array of Step | no | |
| daily_pace_limit | body | integer | null | no | Most new enrollments started per day. Null uses the account limit. |
| approve_every_message | body | boolean | no | |
| status | body | "active" | "paused" | "archived" | no | |
Example request
curl -sS -X POST "https://api.recruitmcp.com/v1/outreach/sequences" \ \
-H "authorization: Bearer $KEY" \
-H "content-type: application/json" \
-d '{"account_id":"oa_1a2b3c4d5e6f7a8b9c","name":"Backend Ghent","steps":[{"channel":"linkedin","type":"invite","note":"Hi {{first_name}}, ..."},{"channel":"linkedin","type":"message","wait_days":3,"only_after_accept":true,"body":"Thanks for connecting, {{first_name}}."}]}'
Example response
Created.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 409 Conflict: idempotency_key_reused, idempotency_in_progress, or a state conflict.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/sequences/{sequence_id}
Get a sequence
Scope: `outreach:read`.
Credit cost. Free.
Parameters
sequence_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| sequence_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/sequences/sequence_id_example" \ \
-H "authorization: Bearer $KEY"
Example response
The sequence.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
PATCH/v1/outreach/sequences/{sequence_id}
Update a sequence
New steps apply to enrollments that have not reached them yet. account_id and template cannot be changed; unknown fields are refused.
Credit cost. Free.
Parameters
sequence_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
account_id
body · string · optional
name
body · string · optional
template
body · string · optional
Template id from GET /v1/outreach/templates. Ignored when steps are sent.
steps
body · array of Step · optional
daily_pace_limit
body · integer | null · optional
Most new enrollments started per day. Null uses the account limit.
approve_every_message
body · boolean · optional
status
body · "active" | "paused" | "archived" · optional
| Field | In | Type | Required | What it is |
|---|
| sequence_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
| account_id | body | string | no | |
| name | body | string | no | |
| template | body | string | no | Template id from GET /v1/outreach/templates. Ignored when steps are sent. |
| steps | body | array of Step | no | |
| daily_pace_limit | body | integer | null | no | Most new enrollments started per day. Null uses the account limit. |
| approve_every_message | body | boolean | no | |
| status | body | "active" | "paused" | "archived" | no | |
Example request
curl -sS -X PATCH "https://api.recruitmcp.com/v1/outreach/sequences/sequence_id_example" \ \
-H "authorization: Bearer $KEY" \
-H "content-type: application/json" \
-d '{"status":"paused"}'
Example response
Updated.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
DELETE/v1/outreach/sequences/{sequence_id}
Delete a sequence
Refused with 409 while it has open enrollments; stop them or archive the sequence.
Credit cost. Free.
Parameters
sequence_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| sequence_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X DELETE "https://api.recruitmcp.com/v1/outreach/sequences/sequence_id_example" \ \
-H "authorization: Bearer $KEY"
Example response
Deleted.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 409 Conflict: idempotency_key_reused, idempotency_in_progress, or a state conflict.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/enrollments
List enrollments
Scope: `outreach:read`.
Credit cost. Free.
Parameters
status
query · "scheduled" | "active" | "waiting" | "awaiting_approval" | "replied" | "completed" | "paused" | "failed" | "stopped" · optional
Only enrollments in this status.
sequence_id
query · string · optional
Only this sequence.
account_id
query · string · optional
Only this account.
profile_id
query · string · optional
Only this person.
limit
query · integer · optional
Page size. Default 25, at most 100.
cursor
query · string · optional
next_cursor from the previous page.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| status | query | "scheduled" | "active" | "waiting" | "awaiting_approval" | "replied" | "completed" | "paused" | "failed" | "stopped" | no | Only enrollments in this status. |
| sequence_id | query | string | no | Only this sequence. |
| account_id | query | string | no | Only this account. |
| profile_id | query | string | no | Only this person. |
| limit | query | integer | no | Page size. Default 25, at most 100. |
| cursor | query | string | no | next_cursor from the previous page. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/enrollments" \ \
-H "authorization: Bearer $KEY"
Example response
Enrollments, newest first.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
POST/v1/outreach/enrollments
Enroll people in a sequence
People from candidates, a run (run_id), a list (list_id), or fetched profiles (profile_ids), de-duplicated. Up to 500.
?dry_run=true renders every message and shows when each first step would go out, without enrolling anyone. People who are suppressed, marked do_not_contact, or already contacted are skipped.
Credit cost. No credits. A connected outreach account is €49 per month.
Parameters
Idempotency-Key
header · string · optional
Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
sequence_id
body · string · required
candidates
body · array of CandidateRef · optional
run_id
body · string · optional
Enroll the run's delivered candidates.
list_id
body · string · optional
Enroll a list's items.
profile_ids
body · array of string · optional
Profile ids from search or a list.
limit
body · integer · optional
At most this many people from run_id or list_id. Default 100.
| Field | In | Type | Required | What it is |
|---|
| Idempotency-Key | header | string | no | Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
| sequence_id | body | string | yes | |
| candidates | body | array of CandidateRef | no | |
| run_id | body | string | no | Enroll the run's delivered candidates. |
| list_id | body | string | no | Enroll a list's items. |
| profile_ids | body | array of string | no | Profile ids from search or a list. |
| limit | body | integer | no | At most this many people from run_id or list_id. Default 100. |
Example request
curl -sS -X POST "https://api.recruitmcp.com/v1/outreach/enrollments?dry_run=true" \ \
-H "authorization: Bearer $KEY" \
-H "content-type: application/json" \
-H "idempotency-key: example-1" \
-d '{"sequence_id":"seq_1a2b3c4d5e6f7a8b9c","run_id":"run_3c4d5e6f7a8b9c0d1e"}'
Example response
{
"cost": {
"credits": 1,
"cached_items": 0,
"live_items": 1,
"upstream_calls": 1
}
}
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 409 Conflict: idempotency_key_reused, idempotency_in_progress, or a state conflict.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/enrollments/{enrollment_id}
Get an enrollment
Scope: `outreach:read`.
Credit cost. Free.
Parameters
enrollment_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| enrollment_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/enrollments/enrollment_id_example" \ \
-H "authorization: Bearer $KEY"
Example response
The enrollment.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
POST/v1/outreach/enrollments/{enrollment_id}/pause
Pause an enrollment
Scope: `outreach:write`.
Credit cost. Free.
Parameters
enrollment_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| enrollment_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X POST "https://api.recruitmcp.com/v1/outreach/enrollments/enrollment_id_example/pause" \ \
-H "authorization: Bearer $KEY"
Example response
Paused.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
POST/v1/outreach/enrollments/{enrollment_id}/resume
Resume an enrollment
?dry_run=true shows when the next step would go out.
Credit cost. No credits. A connected outreach account is €49 per month.
Parameters
enrollment_id
path · string · required
Idempotency-Key
header · string · optional
Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| enrollment_id | path | string | yes | |
| Idempotency-Key | header | string | no | Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X POST "https://api.recruitmcp.com/v1/outreach/enrollments/enrollment_id_example/resume?dry_run=true" \ \
-H "authorization: Bearer $KEY" \
-H "idempotency-key: example-1"
Example response
With ?dry_run=true, a ResumePreview; nothing is charged or sent. Otherwise the Enrollment.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 409 Conflict: idempotency_key_reused, idempotency_in_progress, or a state conflict.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
POST/v1/outreach/enrollments/{enrollment_id}/stop
Stop an enrollment
Final. Nothing more is sent to this person from this enrollment.
Credit cost. Free.
Parameters
enrollment_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| enrollment_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X POST "https://api.recruitmcp.com/v1/outreach/enrollments/enrollment_id_example/stop" \ \
-H "authorization: Bearer $KEY"
Example response
Stopped.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/actions
List outreach actions
Every scheduled, sent, failed, or held step. outcome=awaiting_approval lists messages waiting for approval.
Credit cost. Free.
Parameters
outcome
query · "scheduled" | "sent" | "skipped" | "refused" | "failed" | "awaiting_approval" · optional
Only actions with this outcome.
enrollment_id
query · string · optional
Only this enrollment.
account_id
query · string · optional
Only this account.
limit
query · integer · optional
Page size. Default 25, at most 100.
cursor
query · string · optional
next_cursor from the previous page.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| outcome | query | "scheduled" | "sent" | "skipped" | "refused" | "failed" | "awaiting_approval" | no | Only actions with this outcome. |
| enrollment_id | query | string | no | Only this enrollment. |
| account_id | query | string | no | Only this account. |
| limit | query | integer | no | Page size. Default 25, at most 100. |
| cursor | query | string | no | next_cursor from the previous page. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/actions" \ \
-H "authorization: Bearer $KEY"
Example response
Actions, most recent first.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/actions/{action_id}
Get an outreach action
Scope: `outreach:read`.
Credit cost. Free.
Parameters
action_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| action_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/actions/action_id_example" \ \
-H "authorization: Bearer $KEY"
Example response
The action.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
POST/v1/outreach/actions/{action_id}/approve
Approve a held message
?dry_run=true returns the message that would be released.
Credit cost. No credits. A connected outreach account is €49 per month.
Parameters
action_id
path · string · required
Idempotency-Key
header · string · optional
Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| action_id | path | string | yes | |
| Idempotency-Key | header | string | no | Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X POST "https://api.recruitmcp.com/v1/outreach/actions/action_id_example/approve?dry_run=true" \ \
-H "authorization: Bearer $KEY" \
-H "idempotency-key: example-1"
Example response
With ?dry_run=true, a Action; nothing is charged or sent. Otherwise the Action.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
POST/v1/outreach/sends
Send one LinkedIn action
One invite, message, profile visit, or invite withdrawal outside a sequence. Same caps, working hours, and suppression checks as a sequence.
Credit cost. No credits. A connected outreach account is €49 per month.
Parameters
Idempotency-Key
header · string · optional
Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
account_id
body · string · required
channel
body · "linkedin" · optional
type
body · "invite" | "message" | "profile_visit" | "withdraw_invite" · required
candidate
body · CandidateRef · required
A person to contact. Needs profile_id or profile_url.
candidate.profile_id
body · string | null · optional
Profile id from search, a run, or a list.
candidate.profile_url
body · string | null · optional
Public profile URL.
candidate.full_name
body · string | null · optional
candidate.first_name
body · string | null · optional
candidate.company
body · string | null · optional
body
body · string · optional
note
body · string · optional
| Field | In | Type | Required | What it is |
|---|
| Idempotency-Key | header | string | no | Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
| account_id | body | string | yes | |
| channel | body | "linkedin" | no | |
| type | body | "invite" | "message" | "profile_visit" | "withdraw_invite" | yes | |
| candidate | body | CandidateRef | yes | A person to contact. Needs profile_id or profile_url. |
| candidate.profile_id | body | string | null | no | Profile id from search, a run, or a list. |
| candidate.profile_url | body | string | null | no | Public profile URL. |
| candidate.full_name | body | string | null | no | |
| candidate.first_name | body | string | null | no | |
| candidate.company | body | string | null | no | |
| body | body | string | no | |
| note | body | string | no | |
Example request
curl -sS -X POST "https://api.recruitmcp.com/v1/outreach/sends?dry_run=true" \ \
-H "authorization: Bearer $KEY" \
-H "content-type: application/json" \
-H "idempotency-key: example-1" \
-d '{"account_id":"oa_1a2b3c4d5e6f7a8b9c","channel":"linkedin","type":"invite","candidate":{"profile_url":"https://www.linkedin.com/in/ada-peeters","first_name":"Ada"},"note":"Hi Ada, quick question about your Go work."}'
Example response
{
"cost": {
"credits": 1,
"cached_items": 0,
"live_items": 1,
"upstream_calls": 1
}
}
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 409 Conflict: idempotency_key_reused, idempotency_in_progress, or a state conflict.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/conversations
List conversations
One conversation per enrollment with messages. Inbound text is returned as untrusted_text.
Credit cost. Free.
Parameters
needs_reply
query · boolean · optional
Only conversations whose last message is an inbound one that needs a reply.
sentiment
query · string · optional
Only conversations whose last inbound message has this sentiment.
limit
query · integer · optional
Page size. Default 25, at most 100.
cursor
query · string · optional
next_cursor from the previous page.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| needs_reply | query | boolean | no | Only conversations whose last message is an inbound one that needs a reply. |
| sentiment | query | string | no | Only conversations whose last inbound message has this sentiment. |
| limit | query | integer | no | Page size. Default 25, at most 100. |
| cursor | query | string | no | next_cursor from the previous page. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/conversations" \ \
-H "authorization: Bearer $KEY"
Example response
Conversations, most recent first.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
GET/v1/outreach/conversations/{conversation_id}
Get a conversation with its messages
Scope: `outreach:read`.
Credit cost. Free.
Parameters
conversation_id
path · string · required
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
| Field | In | Type | Required | What it is |
|---|
| conversation_id | path | string | yes | |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
Example request
curl -sS -X GET "https://api.recruitmcp.com/v1/outreach/conversations/conversation_id_example" \ \
-H "authorization: Bearer $KEY"
Example response
The conversation.
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.
POST/v1/outreach/conversations/{conversation_id}/replies
Reply in a conversation
Queued for the next slot inside working hours and the account spacing. ?dry_run=true shows when it would go out.
Credit cost. No credits. A connected outreach account is €49 per month.
Parameters
conversation_id
path · string · required
Idempotency-Key
header · string · optional
Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours.
RecruitMCP-Version
header · "2026-11-01" · optional
API version. Defaults to the version the key was created with. Supported: 2026-11-01.
RecruitMCP-Customer
header · string · optional
Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs.
body
body · string · required
Reply text.
| Field | In | Type | Required | What it is |
|---|
| conversation_id | path | string | yes | |
| Idempotency-Key | header | string | no | Required to execute (not with dry_run). At most 128 characters. A retry with the same key and body replays the first response for 24 hours. |
| RecruitMCP-Version | header | "2026-11-01" | no | API version. Defaults to the version the key was created with. Supported: 2026-11-01. |
| RecruitMCP-Customer | header | string | no | Act inside this customer (cus_…). Ignored for keys bound to a customer, which always act inside theirs. |
| body | body | string | yes | Reply text. |
Example request
curl -sS -X POST "https://api.recruitmcp.com/v1/outreach/conversations/conversation_id_example/replies?dry_run=true" \ \
-H "authorization: Bearer $KEY" \
-H "content-type: application/json" \
-H "idempotency-key: example-1" \
-d '{"body":"Thanks Ada, does Thursday at 10:00 work for a call?"}'
Example response
{
"cost": {
"credits": 1,
"cached_items": 0,
"live_items": 1,
"upstream_calls": 1
}
}
Errors
- 400 Invalid request. See error.code: invalid_request, unsupported_filter, idempotency_key_required, unsupported_version.
- 401 Missing, invalid, or expired key.
- 403 insufficient_scope or forbidden.
- 404 not_found, not_cached, or feature_disabled.
- 409 Conflict: idempotency_key_reused, idempotency_in_progress, or a state conflict.
- 429 rate_limited, a daily cap, or upstream_busy. Wait for Retry-After.