Your ideas.
Connected to BooSend.

Connect your apps to BooSend. Read your data, manage contacts and keep your knowledge bases in sync with a simple request.

01

Get your key

In Settings, open API Access and click Generate API Key. Your existing key works too.

Open settings
02

Choose an action

Find an operation on the left. Each page tells you exactly which fields to send.

03

Make a request

Use an HTTP Request step in Make, n8n, or Zapier. Or download the agent skill and give it to your coding agent.

Your first request

Start safely: this example lists contacts. It does not change anything.

POST/v1/operations/list_contacts
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_contacts' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "limit": 10
}'

Using a no-code tool

Choose POST, paste the full URL, add an Authorization header with Bearer YOUR_API_KEY, and set the body type to JSON. Use the fields from the operation page. You do not need an MCP client.

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Your key is a password.

Keep it on your server or in your no-code tool’s secret store. Never paste it into public browser code or chat. Regenerating it in Settings revokes the old key immediately.

Errors, limits & safe retries

401Key missing, invalid, or regenerated.

422A field is missing, has the wrong type, or is not supported.

429Rate limit reached. Wait for the Retry-After header.

500 / 503Unexpected error or temporary unavailability. Save the request_id.

Requests are limited to 64 KB and 60 per minute per account per server instance. Long automation builds can take longer than ordinary reads. AI operations use the same credits and confirmation rules as MCP. Never automatically retry writes: this API does not add a general idempotency layer.

List Automations

Search and list automations by name, status, or folder.

POST/v1/operations/list_automations
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_automations' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

searchstringOptional

Search in name and description

statusstringOptional

e.g. 'active', 'draft'

folder_namestringOptional

Filter by folder name

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Contacts

Search and list contacts by name, email, tags, or status. Searches across username, name, email, phone, and company.

POST/v1/operations/list_contacts
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_contacts' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

searchstringOptional

Search by username, name, email, phone, or company

statusstringOptional

active, blocked, or archived

tagstringOptional

Filter by tag

account_namestringOptional

Instagram account name to scope contacts. Uses primary account if not provided.

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Dashboard Stats

Get dashboard overview stats (conversations, contacts, AI costs).

POST/v1/operations/get_dashboard_stats
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_dashboard_stats' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

account_namestringOptional

Instagram username. Uses primary account if not provided.

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Conversations

List recent Instagram DM conversations with last message preview and contact info. Optionally search by contact name or username.

POST/v1/operations/list_conversations
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_conversations' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

searchstringOptional

Search by contact name or Instagram username

account_namestringOptional

Instagram account name. Uses primary account if not provided.

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Messages

Get Instagram DM messages. Search by contact name to get a specific conversation, or search by message content (keyword + semantic meaning) across all conversations.

POST/v1/operations/get_messages
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_messages' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

contact_namestringOptional

Contact name or username to get messages for

searchstringOptional

Search within messages — finds keyword matches and similar meaning

directionstringOptional

'in' (received) or 'out' (sent)

account_namestringOptional

Instagram account name. Only provide to filter results to a specific account — searches all accounts by default.

days_backnumberOptional

How many days back to search (default 30, max 90)

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Automation Executions

Get historical execution runs for automations — all past runs including completed, failed, and currently running. Use to diagnose failures or see run history.

POST/v1/operations/get_automation_executions
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_automation_executions' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

automation_namestringOptional

Automation name to search for

automation_idstringOptional

Automation ID (use if name is ambiguous)

statusstringOptional

running, paused, done, failed, or completed

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Instagram Accounts

List all connected Instagram accounts with follower counts and status.

POST/v1/operations/list_instagram_accounts
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_instagram_accounts' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

No fields needed. Send {}.

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Analytics

Get messaging analytics — messages sent/received, automated responses, response rate.

POST/v1/operations/get_analytics
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_analytics' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

account_namestringOptional

Instagram username. Uses primary account if not provided.

date_fromstringOptional

Start date (YYYY-MM-DD)

date_tostringOptional

End date (YYYY-MM-DD)

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 30

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Scheduled Posts

List scheduled Instagram posts by caption content or status.

POST/v1/operations/list_scheduled_posts
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_scheduled_posts' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

searchstringOptional

Search in post caption

statusstringOptional

scheduled, published, or failed

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Automation Sessions

Get automation conversation sessions — see which contacts are in an automation flow and their state (open, handoff to human, or closed).

POST/v1/operations/get_automation_sessions
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_automation_sessions' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

automation_namestringOptional

Automation name

automation_idstringOptional

Automation ID (use if name is ambiguous)

contact_namestringOptional

Contact name or username

statestringOptional

open, handoff, or closed

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Usage Analytics

Get AI usage analytics — tokens used, costs, usage by automation and by day.

POST/v1/operations/get_usage_analytics
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_usage_analytics' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

periodstringOptional

'day', 'week', or 'month' (default: month)

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Automation Triggers

See how automations are wired — what keywords, events, or conditions trigger them.

POST/v1/operations/list_automation_triggers
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_automation_triggers' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

automation_namestringOptional

Automation name to filter by

automation_idstringOptional

Automation ID (use if name is ambiguous)

typestringOptional

Trigger type: message, comment, story_reply, follow, etc.

searchstringOptional

Search within trigger keywords

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Contact Segments

List audience segment definitions and their AI/filter prompts.

POST/v1/operations/list_contact_segments
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_contact_segments' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

searchstringOptional

Search by segment name

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Team Members

List all team members on your account with their roles, access levels, and activity. Optionally filter by email, role, or status.

POST/v1/operations/list_team_members
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_team_members' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

searchstringOptional

Filter by email

rolestringOptional

Filter by role

statusstringOptional

Filter by status

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Workspaces

List workspaces.

POST/v1/operations/list_workspaces
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_workspaces' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

searchstringOptional

Search by workspace name

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Telegram Messages

Get Telegram messages. Search by bot name, message text, or direction.

POST/v1/operations/get_telegram_messages
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_telegram_messages' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

bot_namestringOptional

Bot username to filter by

searchstringOptional

Search in message text

directionstringOptional

inbound or outbound

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 30

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Telegram Bots

List all connected Telegram bots with status and health info.

POST/v1/operations/list_telegram_bots
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_telegram_bots' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

No fields needed. Send {}.

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Whatsapp Messages

Get WhatsApp messages. Search by account, message text, or direction.

POST/v1/operations/get_whatsapp_messages
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_whatsapp_messages' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

account_namestringOptional

WhatsApp account display name or phone number

searchstringOptional

Search in message text

directionstringOptional

Message direction

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 30

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Whatsapp Accounts

List all connected WhatsApp Business accounts.

POST/v1/operations/list_whatsapp_accounts
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_whatsapp_accounts' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

No fields needed. Send {}.

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Ai Credit Usage

See AI credit balance, spending, and per-automation costs.

POST/v1/operations/get_ai_credit_usage
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_ai_credit_usage' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

typestringOptional

topup, usage, auto_topup, or initial_credit

Allowed: topup, usage, auto_topup, initial_credit

searchstringOptional

Search in description or model used

date_fromstringOptional

Start date (YYYY-MM-DD)

date_tostringOptional

End date (YYYY-MM-DD)

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 30

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Automation Stats

Get per-automation performance stats (execution counts, success rate, unique contacts).

POST/v1/operations/get_automation_stats
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_automation_stats' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

automation_namestringOptional

Automation name to get stats for

automation_idstringOptional

Automation ID (use if name is ambiguous)

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Integrations

See all connected third-party tools and integrations.

POST/v1/operations/list_integrations
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_integrations' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

No fields needed. Send {}.

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Update Contact

Update a contact — change tags, status, notes, email, phone, company, or custom fields.

POST/v1/operations/update_contact
curl --request POST 'https://mcp.boosend.ai/v1/operations/update_contact' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "contact_name": "REPLACE_ME"
}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

contact_namestringRequired

Contact name or username to update

tagsarrayOptional

Replace tags with these values

View nested schema
{
  "description": "Replace tags with these values",
  "type": "array",
  "items": {
    "type": "string"
  }
}
statusstringOptional

active, blocked, or archived

notesstringOptional

Update notes

emailstringOptional

Update email

phonestringOptional

Update phone

companystringOptional

Update company

custom_fieldsvalueOptional

Update custom fields (JSONB)

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Toggle Automation

Activate or deactivate an automation by name or ID.

POST/v1/operations/toggle_automation
curl --request POST 'https://mcp.boosend.ai/v1/operations/toggle_automation' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "action": "REPLACE_ME"
}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

automation_namestringOptional

Automation name

automation_idstringOptional

Automation ID (use if name is ambiguous)

actionstringRequired

'activate' or 'deactivate'

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Duplicate Automation

Clone an existing automation — copies the full graph (nodes, edges) and compiles to generate proper triggers.

POST/v1/operations/duplicate_automation
curl --request POST 'https://mcp.boosend.ai/v1/operations/duplicate_automation' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

automation_namestringOptional

Name of the automation to duplicate

automation_idstringOptional

Automation ID (use if name is ambiguous)

new_namestringOptional

Name for the copy (default: "Copy of <original name>")

instagram_accountstringOptional

Instagram username to attach the copy to. Defaults to same account as the original.

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Update Automation Triggers

Create or update trigger keywords/settings on an automation. If the automation has no triggers yet, creates one. Edits the trigger node in the graph and recompiles so triggers are properly synced to the database.

POST/v1/operations/update_automation_triggers
curl --request POST 'https://mcp.boosend.ai/v1/operations/update_automation_triggers' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

automation_namestringOptional

Automation name

automation_idstringOptional

Automation ID (use if name is ambiguous)

condition_indexnumberOptional

Index of the trigger condition to update (0-based). If omitted, updates all conditions. Ignored when creating a new trigger.

trigger_typestringOptional

Trigger type: 'message', 'comment', 'story_reply', 'follow', 'live_comment', 'telegram_message', 'whatsapp_message', 'web_chat'. Required when creating a new trigger, defaults to 'message'.

keywordsarrayOptional

New keywords array (replaces existing keywords)

View nested schema
{
  "description": "New keywords array (replaces existing keywords)",
  "type": "array",
  "items": {
    "type": "string"
  }
}
add_keywordsarrayOptional

Keywords to add to the existing list

View nested schema
{
  "description": "Keywords to add to the existing list",
  "type": "array",
  "items": {
    "type": "string"
  }
}
remove_keywordsarrayOptional

Keywords to remove from the existing list

View nested schema
{
  "description": "Keywords to remove from the existing list",
  "type": "array",
  "items": {
    "type": "string"
  }
}
message_detection_typestringOptional

Detection type: 'keywords', 'intent', or 'advanced_intent'

intent_descriptionstringOptional

AI intent description (for intent-based detection)

media_targetstringOptional

'all', 'specific', or 'next'

media_idstringOptional

Specific media ID (when media_target is specific)

story_targetstringOptional

'all' or 'specific'

story_idstringOptional

Specific story ID (when story_target is specific)

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

List Knowledge Bases

List the user's knowledge bases (active and inactive). "active" means the automations may use it.

POST/v1/operations/list_knowledge_bases
curl --request POST 'https://mcp.boosend.ai/v1/operations/list_knowledge_bases' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

searchstringOptional

Search in name and description

limitnumberOptional

See the OpenAPI schema for the full definition.

Default: 20

offsetnumberOptional

See the OpenAPI schema for the full definition.

Default: 0

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Get Knowledge Base

Read a knowledge base's full text (what the AI agents see).

POST/v1/operations/get_knowledge_base
curl --request POST 'https://mcp.boosend.ai/v1/operations/get_knowledge_base' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "knowledge_base_name": "REPLACE_ME"
}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

knowledge_base_namestringRequired

Knowledge base name

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Set Knowledge Base

Replace a knowledge base's entire text. Use this to re-publish — it overwrites, so it can never create duplicates.

POST/v1/operations/set_knowledge_base
curl --request POST 'https://mcp.boosend.ai/v1/operations/set_knowledge_base' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "knowledge_base_name": "REPLACE_ME",
  "content": "REPLACE_ME"
}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

knowledge_base_namestringRequired

Knowledge base name

contentstringRequired

The full new text for the knowledge base

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Append To Knowledge Base

Add a block of text to the end of a knowledge base (kept separate by a blank line). To avoid duplicates when re-publishing, prefer set_knowledge_base.

POST/v1/operations/append_to_knowledge_base
curl --request POST 'https://mcp.boosend.ai/v1/operations/append_to_knowledge_base' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "knowledge_base_name": "REPLACE_ME",
  "text": "REPLACE_ME"
}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

knowledge_base_namestringRequired

Knowledge base name

textstringRequired

The block to append

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Create Knowledge Base

Create a new knowledge base. Pass `content` to give it text now, or add it later with set_knowledge_base.

POST/v1/operations/create_knowledge_base
curl --request POST 'https://mcp.boosend.ai/v1/operations/create_knowledge_base' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "REPLACE_ME"
}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

namestringRequired

Name for the knowledge base

descriptionstringOptional

What this knowledge base is for

contentstringOptional

Initial text

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Update Knowledge Base

Rename a knowledge base or turn it on/off for automations (status active | inactive).

POST/v1/operations/update_knowledge_base
curl --request POST 'https://mcp.boosend.ai/v1/operations/update_knowledge_base' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "knowledge_base_name": "REPLACE_ME"
}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

knowledge_base_namestringRequired

Current knowledge base name

new_namestringOptional

Rename to this

descriptionstringOptional

New description

statusstringOptional

"active" = automations may use it

Allowed: active, inactive

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.

Delete Knowledge Base

Permanently delete a knowledge base. This cannot be undone.

POST/v1/operations/delete_knowledge_base
curl --request POST 'https://mcp.boosend.ai/v1/operations/delete_knowledge_base' \
  --header "Authorization: Bearer $BOOSEND_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{
  "knowledge_base_name": "REPLACE_ME",
  "confirm": true
}'

Request fields

Send a JSON object. Unknown fields are rejected so typos never silently disappear.

knowledge_base_namestringRequired

Knowledge base name

confirmbooleanRequired

Must be true to actually delete

The response

{
  "data": "The result of your operation",
  "request_id": "A unique ID for support"
}

Response data varies by operation. This envelope is always the same; request_id helps support trace a request.