API REST | eesier
API REST

todas as ferramentas, por HTTP puro

Sem SDK, sem cliente MCP, sem protocolo novo para aprender. Um endereço, um token e curl. As mesmas ferramentas que o seu agente de IA usa — acessíveis de um script, de um cron ou de qualquer plataforma no-code.

202 endpoints 33 grupos
Prefere conectar um agente de IA? Veja a referência MCP

sua primeira chamada

Dois minutos, um token, nenhuma dependência.

1. Quem sou eu?

curl https://mcp.eesier.com/api/v1/call/whoami \
  -H "Authorization: Bearer $EESIER_TOKEN"

Ferramentas de leitura podem ser chamadas direto por uma URL.

2. Buscar seus leads

curl -X POST https://mcp.eesier.com/api/v1/tools/search_leads \
  -H "Authorization: Bearer $EESIER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"status": "Interested", "page_size": 5}'

Todo o resto é um POST com um objeto JSON de parâmetros nomeados.

3. Descobrir todas as ferramentas

curl https://mcp.eesier.com/api/v1/tools \
  -H "Authorization: Bearer $EESIER_TOKEN"

A versão legível por máquina desta página, direto do servidor em execução.

Uma ferramenta sem parâmetros não precisa de corpo nenhum — corpo ausente, {} e null significam a mesma coisa: sem argumentos.

os endpoints

Quatro rotas. Todo o resto é um nome de ferramenta.

POST /api/v1/tools/{tool_name} Executa uma ferramenta. O corpo é um objeto JSON de parâmetros nomeados.
GET /api/v1/call/{tool_name} Executa uma ferramenta de leitura pela query string. Qualquer outra devolve 405.
GET /api/v1/tools O catálogo completo: { version, server_version, tool_count, tools[] }.
GET /api/v1/tools/{tool_name} O schema de uma ferramenta — o mesmo objeto que o catálogo lista.

autenticação

O mesmo token da superfície MCP. Todas as rotas exigem ele, inclusive as de descoberta.

Endereço base https://mcp.eesier.com
Cabeçalho Authorization: Bearer <token>
Como obter o token Console do eesier → Conta → Agentes Externos (MCP) → Gerar Token. O mesmo token serve para REST e MCP; revogar derruba os dois.
Alcance O token age como a sua conta e nada além disso — os mesmos dados e os mesmos limites que você tem no console.

Token ausente ou inválido devolve 401 com um corpo que diz o que fazer:

{
  "error": "...",
  "how_to_fix": "...",
  "documentation": "https://mcp.eesier.com/SKILL.md"
}

respostas

O status HTTP diz se a chamada foi aceita, nunca se a resposta foi uma boa notícia.

O resultado da ferramenta é sempre 200

Se a chamada chegou na ferramenta, você recebe 200 e o JSON dela, byte a byte — sucesso, um {"error": ...} de negócio ou uma recusa por plano, tudo igual. Isso impede que uma lógica de repetir-no-5xx fique martelando uma chamada que nunca vai passar. Leia o corpo, não só o status.

Todo o resto é nível de transporte

Status Quando acontece
200 A ferramenta rodou. O JSON dela é o corpo — inclusive erros de negócio.
400 Os argumentos não servem: JSON malformado, corpo que não é objeto, parâmetro desconhecido, obrigatório ausente ou valor que não converte.
401 Token ausente, malformado, expirado ou revogado.
404 Não existe ferramenta com esse nome. O corpo sugere a mais próxima.
405 Verbo errado — quase sempre um GET em uma ferramenta que não é de leitura.
500 O despachante falhou, fora do corpo da ferramenta. A culpa é nossa, não da sua requisição.

Corpo das recusas

Todo 4xx e 5xx traz os mesmos três campos, então um único trecho de código no cliente dá conta de todos:

{
  "error": "unknown parameter 'lead_ids' for tool 'get_lead'",
  "type": "UnknownParameter",
  "detail": "accepted parameters: lead_id"
}
type Significado
UnknownTool Esse nome de ferramenta não existe. Veja a sugestão em detail.
UnknownParameter Você mandou um parâmetro que a ferramenta não aceita — um erro de digitação é recusado, nunca ignorado.
MissingParameter Faltou um parâmetro obrigatório.
ParameterTypeMismatch O valor não pode ser convertido para o tipo do parâmetro.
InvalidRequestBody O corpo é JSON válido, mas não é um objeto de parâmetros nomeados.
NotReadOnly Você tentou chamar por GET uma ferramenta que escreve. Use POST.
JsonException O corpo não é JSON válido.

como os valores são lidos

Todo parâmetro é um escalar, e a conversão usa cultura invariante em todos os casos. Qualquer coisa que perderia informação é recusada em vez de adivinhada.

string

O texto vai literal. Um número ou booleano JSON chega como o literal dele. Objetos e listas são recusados — nenhum parâmetro aceita.

integer

Um número JSON ou a forma textual dele. Um valor fracionário como 3.7, ou fora da faixa, é recusado — nunca truncado, nunca estourado.

number

O separador decimal é '.', nunca ','. "1,5" falha alto, com um detail dizendo isso, em vez de virar 15 silenciosamente.

boolean

Aceita true/false, "true"/"false", 1/0 e "1"/"0". "sim" é recusado.

Parâmetro desconhecido é recusado

Mais rígido que o MCP de propósito: um parâmetro digitado errado e descartado em silêncio devolveria uma chamada bem-sucedida com resultado estranho. O 400 lista todos os nomes aceitos.

null e omissão são coisas diferentes

Omita o parâmetro e vale o padrão da própria ferramenta. null explícito só é aceito por parâmetro que admite nulo. Query string não expressa null — use POST quando precisar.

Nomes diferenciam maiúsculas

O despacho é exato, igual ao MCP. get_lead funciona; GET_LEAD devolve 404 com o nome certo em detail.

Datas em UTC ISO 8601

Toda data volta como 2026-01-31T14:05:00Z. Os filtros aceitam datas ISO. Chame whoami para saber o fuso da conta.

Listas paginam explicitamente

page começa em 0 e page_size vale 20 por padrão, com teto de 100. O total volta junto com as linhas.

todos os endpoints

As 202 ferramentas, agrupadas pelo que tocam. Abra uma para ver as chamadas HTTP e os parâmetros.

Sessão

Identifica a conta conectada e lê as notificações pendentes. whoami é a primeira chamada de toda sessão — devolve o perfil, o plano e o fuso horário da conta.

4 endpoints
acknowledge_notification escrita Acknowledge a notification you have already surfaced to the user — it stops appearing in list_pending_notifications for you. This is an agent-side bookmark only: the platform's own delivery of the notification to the user is unaffected.

Como chamar

POST /api/v1/tools/acknowledge_notification

Parâmetros

notification_id integer obrigatório Notification ID (from list_pending_notifications)
list_notification_history leitura List the customer's past and pending system notifications (newest first, paginated) — including ones already processed by the platform or already acknowledged. Use list_pending_notifications for just the new, unseen ones.

Como chamar

POST /api/v1/tools/list_notification_history GET /api/v1/call/list_notification_history

Parâmetros

page integer opcional padrão 0 Page number (0-based, default 0)
page_size integer opcional padrão 20 Notifications per page (default 20, max 100)
list_pending_notifications leitura List all pending (unprocessed) system notifications queued for the customer. These are heads-up messages the platform wants the user to see — platform updates or action confirmations that haven't been surfaced yet. Surface them to the user; you cannot mark them as processed — they remain in the queue until the platform clears them internally. Sorted by oldest first. After surfacing one, call acknowledge_notification so it stops reappearing here; for past notifications use list_notification_history.

Como chamar

POST /api/v1/tools/list_pending_notifications GET /api/v1/call/list_pending_notifications

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

whoami leitura Returns the authenticated customer's profile information including name, phone, email, language, timezone offset from UTC (in hours, may be null if not set), subscription plan, and prospecting eligibility.

Como chamar

POST /api/v1/tools/whoami GET /api/v1/call/whoami

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

Leads

Busca, lê, cadastra e atualiza leads. Assume um lead do agente, devolve para ele, interrompe, ou lista tudo que está esperando por uma pessoa agora.

10 endpoints
get_lead leitura Get a lead's full profile including contact info, company data, prospecting status, and conversation history. Email thread bodies are included inline (latest 50 per direction); WhatsApp and voice activity appear as counts — use get_lead_conversation for the full merged cross-channel timeline.

Como chamar

POST /api/v1/tools/get_lead GET /api/v1/call/get_lead

Parâmetros

lead_id integer obrigatório Lead ID
list_lead_emails leitura List the emails exchanged with a specific lead (outbound and inbound), oldest first. Paginated — outbound_total/inbound_total report the full thread size. Set include_bodies=false for a lightweight metadata-only view (dates, subjects, attachment names).

Como chamar

POST /api/v1/tools/list_lead_emails GET /api/v1/call/list_lead_emails

Parâmetros

lead_id integer obrigatório Lead ID
page integer opcional padrão 0 Page number (0-based, default 0)
page_size integer opcional padrão 20 Emails per direction per page (default 20, max 100)
include_bodies boolean opcional padrão true Include full email bodies (default true); false returns metadata only
list_pending_review leitura List leads that have been flagged for human review by the prospecting agent.

Como chamar

POST /api/v1/tools/list_pending_review GET /api/v1/call/list_pending_review

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

register_lead escrita Manually register a new lead so Blue Button can prospect it. A valid email is required for the lead to actually be contacted (phone alone only enables WhatsApp/voice). Deduplicates: if a lead with the same email or phone already exists, returns that lead's id instead of creating a duplicate. To bring in many leads at once use import_leads; for a lead referred by another lead use register_referral_lead.

Como chamar

POST /api/v1/tools/register_lead

Parâmetros

name string obrigatório Contact name
email string opcional Email address
phone string opcional Phone number
company string opcional Company name
status string opcional Initial status: Cold (default) or Confirmed
campaign string opcional Campaign name or numeric campaign_id to assign lead to
return_lead_to_pipeline escrita Return a lead to the autonomous prospecting pipeline with optional instructions for the next touch.

Como chamar

POST /api/v1/tools/return_lead_to_pipeline

Parâmetros

lead_id integer obrigatório Lead ID
instructions string opcional Instructions for the agent's next touch
next_touch_date string opcional When to make the next touch (ISO date, default: now)
search_leads leitura Search leads by query, status, campaign, date range, or last prospecting message date. Supports sorting by date_created (default), last_prospecting_message, or status. Returns paginated results. Each result includes last_outbound_at (date of last outbound message sent to this lead) and last_inbound_at (date of last reply from this lead) so you can triage activity without opening the thread.

Como chamar

POST /api/v1/tools/search_leads GET /api/v1/call/search_leads

Parâmetros

query string opcional Search query (matches name, company name, email)
status string opcional Filter by status: Pending, Cold, Confirmed, Aware, NotInterested, Interested, Frozen, Closed, Unqualified, Rejected, Gatekeeper
campaign string opcional Filter by campaign name or numeric campaign_id
created_after string opcional Only leads created on or after this date (ISO format, e.g. 2026-01-01)
created_before string opcional Only leads created on or before this date (ISO format, e.g. 2026-03-31)
last_prospecting_message_after string opcional Only leads that received a prospecting message on or after this date (ISO format)
sort_by string opcional Sort order: date_created (default, newest first), last_prospecting_message (most recent activity first), status (by status then date). Unrecognized values default to date_created.
page integer opcional padrão 0 Page number (0-based, default 0)
page_size integer opcional padrão 20 Page size (default 20, max 100)
has_linkedin boolean opcional Filter by LinkedIn presence: true returns only leads that have a LinkedIn profile URL, false only leads without one. Omit for all leads.
send_message_to_lead escrita Send a direct email to a lead from the customer's Blue Button address. SIDE-EFFECT: this takes the lead over (removes it from the autonomous pipeline, same as take_over_lead) — the customer owns the conversation from then on. The email is queued for delivery, not sent instantly. If the customer only wants to steer the approach without taking over, use return_lead_to_pipeline with instructions instead. For WhatsApp use send_whatsapp_message_to_lead.

Como chamar

POST /api/v1/tools/send_message_to_lead

Parâmetros

lead_id integer obrigatório Lead ID
subject string obrigatório Email subject
body string obrigatório Email body
stop_lead destrutiva Stop prospecting a lead — Blue Button finishes the lead and sends nothing further. Reversible: recover_lead_to_pipeline puts it back in the pipeline with re-engagement framing. Contrast: take_over_lead means the customer will personally handle the lead; stop_lead means nobody will. To record WHY (won/lost/gave up, deal value) use register_lead_outcome instead — it stops prospecting AND keeps the outcome history.

Como chamar

POST /api/v1/tools/stop_lead

Parâmetros

lead_id integer obrigatório Lead ID
reason string opcional Reason for stopping
take_over_lead escrita Take over a lead — marks it as user-controlled, removing it from the autonomous prospecting pipeline (Blue Button stops contacting it; the customer handles it through their own channels). To hand the lead back to Blue Button later, use recover_lead_to_pipeline (gentle re-engagement). Contrast: stop_lead ends prospecting without implying the customer will handle it; send_message_to_lead also takes over as a side-effect; return_lead_to_pipeline is the post-human-review resume.

Como chamar

POST /api/v1/tools/take_over_lead

Parâmetros

lead_id integer obrigatório Lead ID
update_lead escrita Update a lead's status, goal, or background. Pass only the fields you want to change. Note: setting a status here does NOT stop or pause prospecting — to remove the lead from the pipeline use stop_lead (finish permanently) or take_over_lead (customer handles it personally).

Como chamar

POST /api/v1/tools/update_lead

Parâmetros

lead_id integer obrigatório Lead ID
status string opcional New status: Pending, Cold, Confirmed, Aware, NotInterested, Interested, Frozen, Closed, Unqualified, Rejected, Gatekeeper
goal string opcional Lead-specific outreach goal
background string opcional Background context about this lead

Operações de lead

Age sobre um lead: envia mensagem de WhatsApp, importa uma lista, reagenda o próximo contato, registra uma indicação ou gera uma apresentação para um lead específico.

5 endpoints
create_lead_presentation escrita Generate a personalized strategic presentation (PDF) for a specific lead, based on the customer's business and the lead's context. Runs synchronously and can take a minute. Returns the PDF URL. If the lead already has a presentation, returns the existing one. Respects the customer/campaign 'generate custom presentations' toggle.

Como chamar

POST /api/v1/tools/create_lead_presentation

Parâmetros

lead_id integer obrigatório Lead ID
import_leads escrita Import many leads at once. Provide EITHER an existing customer_file_id (an uploaded CSV/Excel/TXT file) OR inline rows (rows_json: a JSON array of objects with name, email, phone, company — email or phone required per row). The import is queued and processed in the background (deduped against existing leads); new leads enter prospecting automatically. For a single lead use register_lead.

Como chamar

POST /api/v1/tools/import_leads

Parâmetros

customer_file_id integer opcional Id of an already-uploaded customer file (.csv, .xlsx, .xls, .txt) to import from
rows_json string opcional Inline leads as a JSON array, e.g. [{"name":"Ana","email":"ana@acme.com","phone":"+5511999999999","company":"Acme"}]. Max 500 rows per call.
instructions string opcional Special instructions for extraction (column mappings, filters)
status string opcional Initial status for imported leads (e.g. Cold, Confirmed)
preferred_channel string opcional First-contact channel: Email or WhatsApp (applied per lead only when it has that contact info)
first_message_instructions string opcional Instructions for the first prospecting message to imported leads
prospecting_background string opcional Background about the imported leads (e.g. 'Leads from TechConf 2026 workshop on AI')
prospecting_goal string opcional Outreach goal for the imported leads, overriding the customer-level goal
campaign string opcional Campaign name or numeric campaign_id to assign the imported leads to
register_referral_lead escrita Register a NEW lead that an existing lead referred ('talk to X'). Goes through the shared referral pipeline: dedupe, email verification, company-data copy when same_company, enrichment, and automatic entry into prospecting. Needs at least an email or a phone for the referred person. Requires an active paid plan.

Como chamar

POST /api/v1/tools/register_referral_lead

Parâmetros

referring_lead_id integer obrigatório ID of the existing lead who made the referral
lead_name string obrigatório Name of the referred person
lead_email string opcional Email of the referred person
lead_phone string opcional Phone of the referred person
same_company boolean opcional padrão false True when the referred person works at the SAME company as the referring lead (company data is copied over)
status string opcional Initial status (e.g. Cold, Confirmed)
instructions_for_first_touch string opcional Instructions for the first touch to the referred lead
reschedule_lead_touch escrita Update the next prospecting touch date and/or preferred channel for one or more actively-prospected leads, selected by explicit lead IDs and/or by the file they were imported from. Setting next_touch_date to now makes each lead be contacted as soon as possible. Leads the prospecting queue would not pick up (never started, finished, pending review, taken over, rejected, or frozen without a newer reply) are skipped and reported.

Como chamar

POST /api/v1/tools/reschedule_lead_touch

Parâmetros

lead_ids string opcional Comma-separated lead IDs to update (optional if imported_from_file_id is provided)
imported_from_file_id integer opcional Update every actively-prospected lead imported from this customer file id
next_touch_date string opcional New next-touch date/time in UTC (ISO format). Pass the current UTC time to contact ASAP. Omit to keep each lead's schedule.
preferred_channel string opcional New preferred first-contact channel: Email or WhatsApp (applied only where the lead is reachable on that channel)
send_whatsapp_message_to_lead escrita Send a direct WhatsApp message to a lead on the customer's prospecting number. Behavior mirrors the in-app agent: if the lead is NOT taken over, the message is parked as next-touch instructions and delivered on the lead's next natural prospecting touch (the lead is NOT taken over). If the lead IS taken over and its 24h WhatsApp service window is open (the lead messaged within the last 24h), the message is sent now, verbatim; if the window is closed, the send is refused (WhatsApp policy) — use email via send_message_to_lead instead. Requires a live WhatsApp prospecting line (register_whatsapp_line).

Como chamar

POST /api/v1/tools/send_whatsapp_message_to_lead

Parâmetros

lead_id integer obrigatório Lead ID
message string obrigatório The message to deliver, written exactly as it should reach the lead
attachment_url string opcional Optional absolute https URL of a file to send as a WhatsApp media message after the text

Desfechos

Fecha o ciclo: registra o que aconteceu com um lead, responde a uma pergunta que ele fez, recupera ele para o pipeline ou lê o histórico do seu ciclo de vida.

5 endpoints
answer_lead_question escrita Save the customer's answer to a question a lead previously asked that the platform couldn't answer (price, delivery area, specs, process...). The answer is stored in the business FAQ so EVERY future lead gets it, and if the asking lead is still in the pipeline the answer is relayed on the next touch. Pass open_question_id when known; otherwise pass question_text.

Como chamar

POST /api/v1/tools/answer_lead_question

Parâmetros

answer_text string obrigatório The customer's answer, in their own words
open_question_id integer opcional ID of the open question being answered, when known
question_text string opcional The question text — required when no open_question_id is provided
list_lead_lifecycle_events leitura List the lifecycle/outcome history of a specific lead (outcome recorded, recovered, check-ins muted, questions answered, meeting outcomes...), newest first. The append-only audit trail behind register_lead_outcome and its siblings.

Como chamar

POST /api/v1/tools/list_lead_lifecycle_events GET /api/v1/call/list_lead_lifecycle_events

Parâmetros

lead_id integer obrigatório Lead ID
limit integer opcional padrão 50 Max events to return (default 50, max 200)
mute_lead_check_ins escrita Stop the periodic 'how did it go with this lead?' check-in questions for a specific lead, when the customer asks not to be reminded about it anymore. Does NOT change the lead's status or pipeline state.

Como chamar

POST /api/v1/tools/mute_lead_check_ins

Parâmetros

lead_id integer obrigatório Lead ID
reason string opcional Why the customer wants to stop hearing about this lead, in their own words
recover_lead_to_pipeline escrita Bring a lead the customer had taken over (or given up on) BACK into the autonomous prospecting pipeline with gentle re-engagement framing (the lead already knows the business). Use this — NOT return_lead_to_pipeline — when the customer PERSONALLY took over or stopped pursuing the lead and now wants Blue Button to resume it. Refuses unsubscribed leads and leads with a recorded won/lost outcome. The first re-engagement touch happens after a short delay.

Como chamar

POST /api/v1/tools/recover_lead_to_pipeline

Parâmetros

lead_id integer obrigatório Lead ID
owner_context string opcional Context the customer gave for the recovery, in their words (e.g. 'he asked to talk after the holidays')
register_lead_outcome escrita Record the FINAL outcome of a lead as reported by the customer: 'won' (closed the sale), 'lost' (competitor, gave up, no budget), or 'gave_up' (the customer will no longer pursue this lead). Use for ANY update on how a lead's story ended — including casual positive announcements ('fechei com o X'). Also stops prospecting for the lead. Only pass reason/deal_value_brl when the customer volunteered them — NEVER ask for a deal value. Contrast: stop_lead ends prospecting without recording why; this keeps the outcome history.

Como chamar

POST /api/v1/tools/register_lead_outcome

Parâmetros

lead_id integer obrigatório Lead ID
outcome string obrigatório The outcome: 'won', 'lost', or 'gave_up'
reason string opcional The customer's own words about why/how it ended — only when volunteered
deal_value_brl number opcional Deal value in BRL — ONLY when the customer explicitly mentioned an amount

Reuniões

Lista as reuniões marcadas com leads, confirma ou cancela, e registra quem realmente compareceu.

4 endpoints
cancel_lead_meeting destrutiva Cancel a meeting on the customer's side and send the lead back into the prospecting pipeline so the executor communicates the cancellation on the next touch.

Como chamar

POST /api/v1/tools/cancel_lead_meeting

Parâmetros

meeting_id integer obrigatório Id of the meeting to cancel
next_touch_date string obrigatório When the executor should re-engage the lead about the cancellation (ISO 8601 UTC, usually within a few hours)
reason string opcional Optional cancellation reason — appended to the meeting notes and included in the next-touch instructions
additional_instructions string opcional Optional extra next-touch instructions for the executor, written in the customer's language
confirm_lead_meeting escrita Confirm a meeting on the customer's side (call when the customer accepts a meeting the lead proposed). Stamps the customer's acceptance.

Como chamar

POST /api/v1/tools/confirm_lead_meeting

Parâmetros

meeting_id integer obrigatório Id of the meeting the customer is confirming
list_lead_meetings leitura List meetings between the customer and their leads. Optionally filter by a specific lead, include cancelled meetings, or include past meetings.

Como chamar

POST /api/v1/tools/list_lead_meetings GET /api/v1/call/list_lead_meetings

Parâmetros

lead_id integer opcional Optional lead id to filter by
include_cancelled boolean opcional padrão false Include cancelled meetings (default false)
include_past boolean opcional padrão true Include past meetings from the last 30 days (default true). Set false for upcoming only.
update_lead_meeting_attendance escrita Record attendance for a meeting that already happened — whether the customer and/or the lead showed up, plus optional outcome notes. Pass at least one field.

Como chamar

POST /api/v1/tools/update_lead_meeting_attendance

Parâmetros

meeting_id integer obrigatório Id of the meeting to update
has_customer_attended boolean opcional Whether the customer attended
has_lead_attended boolean opcional Whether the lead attended
notes string opcional Optional outcome notes — appended to existing notes

Inteligência de timing

Lê os sinais de timing coletados para um lead — quando esse tipo de contato costuma responder.

1 endpoints
get_lead_timing_intelligence leitura Get a lead's timing intelligence: the best times to reach out (by day of week, in the lead's local time), when the lead historically responds, and their average response time. Built from this lead's history, falling back to their sector, this customer, then platform-wide data (the source field says which). Use it to time send_message_to_lead / return_lead_to_pipeline touches.

Como chamar

POST /api/v1/tools/get_lead_timing_intelligence GET /api/v1/call/get_lead_timing_intelligence

Parâmetros

lead_id integer obrigatório Lead ID

Conversas

Lê o que foi realmente dito. Linha do tempo completa de um lead em todos os canais, a thread de WhatsApp isolada, ou uma busca por significado em todas as conversas de uma vez.

4 endpoints
get_lead_conversation leitura Get a lead's full cross-channel conversation timeline — email, WhatsApp, and voice calls — merged chronologically, each item tagged with its channel and direction. Paginated. This is the one tool that shows the WHOLE conversation as the lead experienced it; for a single channel use list_lead_emails or list_lead_whatsapp_messages.

Como chamar

POST /api/v1/tools/get_lead_conversation GET /api/v1/call/get_lead_conversation

Parâmetros

lead_id integer obrigatório Lead ID
page integer opcional padrão 0 Page number (0-based, default 0)
page_size integer opcional padrão 30 Items per page (default 30, max 100)
order string opcional padrão newest_first Ordering: newest_first (default) or oldest_first
include_transcripts boolean opcional padrão false Include full voice-call transcripts (default false — only the outcome summary)
list_lead_whatsapp_messages leitura List the WhatsApp messages exchanged with a specific lead (outbound and inbound), oldest first. Paginated — outbound_total/inbound_total report the full thread size. Set include_bodies=false for a lightweight metadata-only view. For the lead's emails use list_lead_emails; for the merged email+WhatsApp+voice timeline use get_lead_conversation.

Como chamar

POST /api/v1/tools/list_lead_whatsapp_messages GET /api/v1/call/list_lead_whatsapp_messages

Parâmetros

lead_id integer obrigatório Lead ID
page integer opcional padrão 0 Page number (0-based, default 0)
page_size integer opcional padrão 20 Messages per direction per page (default 20, max 100)
include_bodies boolean opcional padrão true Include full message bodies (default true); false returns metadata only
search_lead_conversations leitura Semantic search ACROSS ALL the customer's LEAD conversations — lead emails and lead WhatsApp messages — by meaning, not keywords (e.g. 'leads who asked about pricing', 'objections about contract length'). Returns snippets with lead_id; fetch full threads via get_lead_conversation / list_lead_emails / list_lead_whatsapp_messages. Optionally scope to one lead or one channel. NOT for the customer's own chat with their Blue Button agent — that is search_my_agent_conversation.

Como chamar

POST /api/v1/tools/search_lead_conversations GET /api/v1/call/search_lead_conversations

Parâmetros

query string obrigatório What to search for, phrased by meaning (any language)
lead_id integer opcional Restrict to one lead's conversation (optional)
channel string opcional Restrict channel: email, whatsapp, email_inbound, email_outbound, whatsapp_inbound, whatsapp_outbound (optional; default = all)
top_k integer opcional padrão 10 Max results (default 10, max 25)
min_score number opcional Minimum similarity score 0..1 (optional)
search_my_agent_conversation leitura Semantic search over the customer's OWN past conversation with their Blue Button agent (the WhatsApp assistant they talk to) — use it to recall what the customer previously discussed, decided, or asked for. NOT for lead conversations — that is search_lead_conversations.

Como chamar

POST /api/v1/tools/search_my_agent_conversation GET /api/v1/call/search_my_agent_conversation

Parâmetros

query string obrigatório What to search for, phrased by meaning (any language)
top_k integer opcional padrão 5 Max results (default 5, max 10)

Campanhas

Roda trilhas de prospecção separadas para produtos ou mercados diferentes: cria, pausa, retoma, renomeia, arquiva, compara resultados e move leads entre elas.

11 endpoints
archive_campaign destrutiva Archives a campaign permanently. Every lead in it has its campaign link cleared and goes back to default prospecting, and the campaign stops appearing in campaign lists. Use pause_campaign instead for a temporary stop.

Como chamar

POST /api/v1/tools/archive_campaign

Parâmetros

name string obrigatório Campaign name or numeric campaign_id
compare_campaigns leitura Compare two campaigns side-by-side: configuration and lead stats.

Como chamar

POST /api/v1/tools/compare_campaigns GET /api/v1/call/compare_campaigns

Parâmetros

name_a string obrigatório First campaign name
name_b string obrigatório Second campaign name
create_campaign escrita Creates a new prospecting campaign. Name and business_name are required. Each campaign is ISOLATED — it does NOT inherit any field from the customer-level defaults, so populate every field that matters at creation time.

Como chamar

POST /api/v1/tools/create_campaign

Parâmetros

name string obrigatório Campaign name (unique per customer)
business_name string obrigatório Business name for this campaign
business_description string opcional Business description for this campaign — the product/service it represents. REQUIRED when the campaign represents a different product than the customer's main business, otherwise prospecting copy will have no product context.
business_website string opcional Business website URL for this campaign
icp string opcional Ideal customer profile
cnae_filter string opcional Comma-separated CNAE codes to include
cnae_exclusion_filter string opcional Comma-separated CNAE codes to exclude
instructions string opcional Prospecting instructions
email_instructions string opcional Email-channel instructions overlay — extra guidance applied ONLY when reaching a lead by email for THIS campaign, layered on top of the campaign's general instructions (raw replace of the email overlay).
whatsapp_instructions string opcional WhatsApp-channel instructions overlay — extra guidance applied ONLY when reaching a lead on WhatsApp for THIS campaign, layered on top of the campaign's general instructions (raw replace of the WhatsApp overlay).
voice_instructions string opcional Voice-channel instructions overlay — extra guidance applied ONLY on outbound calls for THIS campaign, layered on top of the campaign's general instructions (raw replace of the voice overlay).
goal string opcional Outreach goal
lead_qualification_instructions string opcional Lead qualification instructions — rules for HOW to evaluate leads against the ICP (hard requirements vs. flexible preferences, override conditions, leniency rules, disqualification thresholds)
human_review_criteria string opcional Human review criteria — when to flag a lead for manual review instead of auto-advancing
email_display_name string opcional Email display name override for this campaign (e.g. 'Carlos from PrimeAssist'). Leave blank to use the customer-level display name.
uf_filter string opcional Comma-separated Brazilian state codes (e.g. 'SP,RJ,MG')
city_filter string opcional Comma-separated city names
country_filter string opcional ISO country codes
min_employee_count integer opcional Minimum employee count
max_employee_count integer opcional Maximum employee count
min_annual_revenue number opcional Minimum annual revenue
max_annual_revenue number opcional Maximum annual revenue
company_size_filter string opcional Comma-separated company sizes: Micro,Small,Medium,Large
company_type_filter string opcional Comma-separated company types to include in lead searches: Private, Individual, Government, StateOwned, NonProfit. Empty = inherit the customer's company type filter (customer default = Private only — MEI / individual entrepreneurs, government, state-owned and non-profit entities excluded).
lead_generation_active boolean opcional Whether to auto-generate NEW leads for this track. Defaults to true. Set to false ONLY when the campaign should ONLY work on a list the user imports themselves and never receive auto-generated leads. Existing leads still get prospected — only new lead acquisition is paused when false.
get_campaign leitura Returns full configuration and lead stats for a specific campaign. Accepts the campaign name or its numeric campaign_id (as returned by list_campaigns, search_leads, get_lead).

Como chamar

POST /api/v1/tools/get_campaign GET /api/v1/call/get_campaign

Parâmetros

name string obrigatório Campaign name or numeric campaign_id
list_campaigns leitura Lists all prospecting campaigns for the customer with their lead stats (total, interested, confirmed, cold, aware, frozen, not interested, taken over, pending review) and email metrics (emails sent, replies received, reply rate).

Como chamar

POST /api/v1/tools/list_campaigns GET /api/v1/call/list_campaigns

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

move_leads_to_campaign escrita Move leads from one campaign to another, or remove them from their campaign and return them to default (no-campaign) prospecting. Pass the target campaign name, or 'default' to remove the leads from any campaign. Optionally filter by lead status.

Como chamar

POST /api/v1/tools/move_leads_to_campaign

Parâmetros

target_campaign string obrigatório Target campaign name or numeric campaign_id, or 'default' (or 'none') to remove the leads from their campaign and return them to default prospecting
lead_ids string obrigatório Comma-separated lead IDs to move
status_filter string opcional Only move leads with this status (optional)
pause_campaign escrita Pauses a campaign. Leads in this campaign will not be processed until resumed.

Como chamar

POST /api/v1/tools/pause_campaign

Parâmetros

name string obrigatório Campaign name or numeric campaign_id
rename_campaign escrita Renames a campaign.

Como chamar

POST /api/v1/tools/rename_campaign

Parâmetros

old_name string obrigatório Current campaign name
new_name string obrigatório New campaign name
resume_campaign escrita Resumes a paused campaign.

Como chamar

POST /api/v1/tools/resume_campaign

Parâmetros

name string obrigatório Campaign name or numeric campaign_id
set_campaign_lead_generation_active escrita Toggles whether the system AUTO-GENERATES new leads for a campaign. true = generate new leads (default). false = stop generating new leads — only work the existing list. INDEPENDENT from pause/resume: a campaign with lead_generation_active=false but is_active=true still prospects its existing leads, just no new lead acquisition. Use this when the user wants a campaign to work ONLY on a list they imported themselves.

Como chamar

POST /api/v1/tools/set_campaign_lead_generation_active

Parâmetros

name string obrigatório Campaign name or numeric campaign_id
active boolean obrigatório true to keep generating new leads, false to stop generating new leads (existing leads still get prospected)
update_campaign escrita Updates an existing campaign's configuration. Pass only the fields you want to change. For numeric filters (employee count, revenue), set to -1 to clear.

Como chamar

POST /api/v1/tools/update_campaign

Parâmetros

name string obrigatório Current campaign name
business_name string opcional New business name
business_description string opcional Business description
business_website string opcional Business website
icp string opcional Ideal customer profile
cnae_filter string opcional CNAE inclusion filter
cnae_exclusion_filter string opcional CNAE exclusion filter
uf_filter string opcional Comma-separated Brazilian state codes (e.g. 'SP,RJ,MG')
city_filter string opcional Comma-separated city names
country_filter string opcional Country filter
instructions string opcional Prospecting instructions
email_instructions string opcional Email-channel instructions overlay — extra guidance applied ONLY when reaching a lead by email for THIS campaign, layered on top of the campaign's general instructions (raw replace of the email overlay).
whatsapp_instructions string opcional WhatsApp-channel instructions overlay — extra guidance applied ONLY when reaching a lead on WhatsApp for THIS campaign, layered on top of the campaign's general instructions (raw replace of the WhatsApp overlay).
voice_instructions string opcional Voice-channel instructions overlay — extra guidance applied ONLY on outbound calls for THIS campaign, layered on top of the campaign's general instructions (raw replace of the voice overlay).
goal string opcional Outreach goal
strategy string opcional Strategy
human_review_criteria string opcional Human review criteria
lead_qualification_instructions string opcional Lead qualification instructions — rules for HOW to evaluate leads against the ICP (hard requirements vs. flexible preferences, override conditions, leniency rules, disqualification thresholds)
email_display_name string opcional Email display name
min_employee_count integer opcional Minimum employee count (-1 to clear)
max_employee_count integer opcional Maximum employee count (-1 to clear)
min_annual_revenue number opcional Minimum annual revenue (-1 to clear)
max_annual_revenue number opcional Maximum annual revenue (-1 to clear)
company_size_filter string opcional Comma-separated company sizes: Micro,Small,Medium,Large (empty to clear)
company_type_filter string opcional Comma-separated company types to include in lead searches: Private, Individual, Government, StateOwned, NonProfit. Empty string clears the campaign override and inherits the customer's company type filter (customer default = Private only — MEI / individual entrepreneurs, government, state-owned and non-profit entities excluded).
lead_generation_active boolean opcional Whether to auto-generate NEW leads for this track. true = generate new leads (default for new campaigns). false = stop generating new leads, only work the existing list. Independent from pause/resume — when false the campaign keeps prospecting its existing leads, just doesn't acquire new ones.
is_active boolean opcional Whether this campaign is running at all. false pauses the whole track (same as pause_campaign), true resumes it.
voice_calling_active boolean opcional Per-track outbound voice calling. true calls this track's leads, false never calls them, omit to keep the current setting. Cleared to inherit the customer-level toggle via clear_voice_calling_active.
generate_custom_presentations boolean opcional Whether to generate a per-lead custom presentation for this track (true/false)
notify_on_interested boolean opcional Alert when a lead of this track shows interest (true/false)
notify_on_confirmed boolean opcional Alert when a lead of this track is confirmed (true/false)
min_founding_date string opcional Earliest company founding date to include, as 'yyyy-MM-dd' (empty to clear)
max_founding_date string opcional Latest company founding date to include, as 'yyyy-MM-dd' (empty to clear)

Configurações de prospecção

A chave geral mais tudo que define quem é contatado e como: segmentação, regras e preferências.

6 endpoints
get_prospecting_config leitura Returns all prospecting configuration: filters (CNAE, location), instructions, goal, strategy, human review criteria, lead qualification instructions, notification settings, mode, and activation status.

Como chamar

POST /api/v1/tools/get_prospecting_config GET /api/v1/call/get_prospecting_config

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

set_allow_template_whatsapp_messages escrita Allows or blocks agent-initiated WhatsApp template messages to leads. When blocked the agent may only reply to leads who wrote first, inside WhatsApp's 24-hour window, and never opens a conversation by template. Free-form replies are unaffected.

Como chamar

POST /api/v1/tools/set_allow_template_whatsapp_messages

Parâmetros

allowed boolean obrigatório true to allow agent-initiated template messages, false to reply-only
set_prospecting_active escrita Activates or deactivates autonomous prospecting. Returns the new status and eligibility information.

Como chamar

POST /api/v1/tools/set_prospecting_active

Parâmetros

active boolean obrigatório true to activate, false to deactivate
set_prospecting_preferences escrita Updates prospecting preferences: mode (Active/Passive), custom presentations, and notification settings. Pass only the fields you want to change.

Como chamar

POST /api/v1/tools/set_prospecting_preferences

Parâmetros

mode string opcional Prospecting mode: 'Active' (searching for leads) or 'Passive' (paused until review)
generate_presentations boolean opcional Whether to generate custom presentations per lead (true/false)
notification_email string opcional Email address to receive prospecting notifications
notify_on_interested boolean opcional Notify (in-app/WhatsApp) when leads show interest (true/false)
notify_on_confirmed boolean opcional Notify (in-app/WhatsApp) when leads are confirmed (true/false)
notify_on_interested_via_email boolean opcional Send the branded EMAIL when leads show interest (true/false) — independent of the in-app/WhatsApp alert
notify_on_confirmed_via_email boolean opcional Send the branded EMAIL when leads are confirmed (true/false) — independent of the in-app/WhatsApp alert
notify_on_first_whatsapp_message boolean opcional Notify (one-time heads-up) when a lead sends their first WhatsApp message (true/false)
cc_on_interested_lead_emails boolean opcional Copy the customer on the interested-lead emails sent to the notification addresses (true/false)
set_prospecting_rules escrita Updates prospecting rules: instructions for the agent, outreach goal, strategy, human review criteria, and lead qualification instructions. Pass only the fields you want to change.

Como chamar

POST /api/v1/tools/set_prospecting_rules

Parâmetros

instructions string opcional Instructions for how the agent should prospect (raw replace)
goal string opcional Desired outreach goal (e.g. 'schedule a demo', 'book a meeting')
strategy string opcional Prospecting strategy document
human_review_criteria string opcional Criteria for when to escalate leads to human review
lead_qualification_instructions string opcional Rules for HOW to evaluate leads against the ICP — which characteristics are hard requirements vs. flexible preferences, override conditions, leniency rules, disqualification thresholds. Distinct from the ICP itself (who to target).
email_instructions string opcional Email-channel instructions overlay — extra guidance applied ONLY when reaching a lead by email, layered on top of the general instructions (raw replace of the email overlay).
whatsapp_instructions string opcional WhatsApp-channel instructions overlay — extra guidance applied ONLY when reaching a lead on WhatsApp, layered on top of the general instructions (raw replace of the WhatsApp overlay).
voice_instructions string opcional Voice-channel instructions overlay — extra guidance applied ONLY on outbound calls, layered on top of the general instructions (raw replace of the voice overlay).
email_signature string opcional Exact signature block appended verbatim to every prospecting email. When set, the copywriter writes no signature of its own. Pass an empty string to clear it and go back to the default name-only signature.
set_targeting escrita Updates prospecting targeting filters. Pass only the fields you want to change. Comma-separated values for multi-value fields. For numeric filters (employee count, revenue), set to -1 to clear.

Como chamar

POST /api/v1/tools/set_targeting

Parâmetros

cnae_filter string opcional Comma-separated CNAE codes to include (e.g. '6201,6202,6311')
cnae_exclusion_filter string opcional Comma-separated CNAE codes to exclude
uf_filter string opcional Comma-separated Brazilian state codes (e.g. 'SP,RJ,MG')
city_filter string opcional Comma-separated city names
country_filter string opcional Comma-separated ISO country codes (e.g. 'BR,US')
min_employee_count integer opcional Minimum employee count (-1 to clear)
max_employee_count integer opcional Maximum employee count (-1 to clear)
min_annual_revenue number opcional Minimum annual revenue (-1 to clear)
max_annual_revenue number opcional Maximum annual revenue (-1 to clear)
company_size_filter string opcional Comma-separated company sizes: Micro,Small,Medium,Large (empty to clear)
company_type_filter string opcional Comma-separated company types to include in lead searches: Private, Individual, Government, StateOwned, NonProfit. Default (empty) = Private only — MEI / individual entrepreneurs, government, state-owned and non-profit entities are excluded.
min_founding_date string opcional Earliest company founding date to include, as 'yyyy-MM-dd' (empty to clear)
max_founding_date string opcional Latest company founding date to include, as 'yyyy-MM-dd' (empty to clear)

Arquivos de prospecção

O catálogo de arquivos que o agente pode enviar para um lead — apresentações, tabelas de preço, guias — no escopo de uma campanha ou da conta inteira.

4 endpoints
list_prospecting_files leitura List the prospecting files catalog — the materials the prospecting agent can offer and send to leads, with each file's title, description, url and campaign scope.

Como chamar

POST /api/v1/tools/list_prospecting_files GET /api/v1/call/list_prospecting_files

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

register_prospecting_file escrita Register a file in the prospecting files catalog — the materials the prospecting agent can offer and SEND TO LEADS during outreach (price table, institutional presentation, onboarding guide), via email attachments and WhatsApp documents. Provide either customer_file_id (an already-uploaded customer file — preferred) or a direct url. If no description is given, one is auto-generated from the file's content so the agent knows when to send it. NOT for business knowledge the agent answers questions from (register_business_file) and NOT the per-lead AI-generated custom guide.

Como chamar

POST /api/v1/tools/register_prospecting_file

Parâmetros

title string obrigatório Short lead-facing title, e.g. 'Tabela de precos'
description string opcional What the file contains and when to send it to a lead (1-3 sentences). Leave empty to auto-generate from the file's content.
customer_file_id integer opcional Id of an existing customer file to register (preferred over a raw url)
url string opcional Direct public URL of the file (alternative to customer_file_id)
campaign string opcional Optional campaign name to make the file sendable ONLY to that campaign's leads. Leave empty for a customer-wide file sendable to every lead.
sort_order integer opcional padrão 0 Catalog display/prompt order (lower first, default 0)
remove_prospecting_file destrutiva Remove a file from the prospecting files catalog so the prospecting agent stops offering and sending it to leads. Find the id with list_prospecting_files.

Como chamar

POST /api/v1/tools/remove_prospecting_file

Parâmetros

prospecting_file_id integer obrigatório Id of the prospecting file to remove
update_prospecting_file escrita Update a prospecting file's title, description, campaign scope or display order. Find the id with list_prospecting_files. To change the file itself, remove the entry and register a new one.

Como chamar

POST /api/v1/tools/update_prospecting_file

Parâmetros

prospecting_file_id integer obrigatório Id of the prospecting file to update
title string opcional New lead-facing title
description string opcional New description of what the file contains and when to send it
campaign string opcional Campaign name to scope the file to, or 'all' to make it customer-wide
sort_order integer opcional New catalog display/prompt order (lower first)

Relatórios

Os números: relatório principal de prospecção, funil por setor e por estado, tendências de performance, performance das mensagens, estimativas de volume e um resumo narrativo do que mudou.

10 endpoints
estimate_lead_volume leitura Returns a benchmark of what a typical PAID Blue Button customer (and paid customers with a similar ICP) produces in the last 30 days: new leads found, confirmed responses (real conversations), interested (hot) leads, and messages sent — each shown as a range from median (typical customer) to top (more active ones) per week and per month. Free-trial-only users are excluded. The tool picks the most relevant benchmark automatically — Similar (CNAE-overlapping paid customers) when available, Global (all paid customers) otherwise.

Como chamar

POST /api/v1/tools/estimate_lead_volume GET /api/v1/call/estimate_lead_volume

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

get_funnel_by_industry leitura Get a funnel breakdown by industry. For Brazilian customers, groups by CNAE division. For international customers, groups by the CompanyIndustry field from Apollo/Lusha data. Optionally filter by campaign.

Como chamar

POST /api/v1/tools/get_funnel_by_industry GET /api/v1/call/get_funnel_by_industry

Parâmetros

campaign string opcional Filter by campaign name or numeric campaign_id (optional, omit for global funnel)
get_funnel_timeline leitura Count of leads ENTERING each funnel stage per time bucket (day or week). Stages tracked: cold (DateProspectingStarted), confirmed (DateConfirmedProspectingQualification), interested (DateConfirmedInterest), closed (DateStatusChanged while current Status=Closed — APPROXIMATION: a lead that was Closed and later moved to another status will not be counted, because the platform does not store status history). Aware is not exposed — the platform does not reliably track entry into that stage. Missing buckets gap-filled with zeros, newest-first. Optionally filter by campaign.

Como chamar

POST /api/v1/tools/get_funnel_timeline GET /api/v1/call/get_funnel_timeline

Parâmetros

days integer opcional padrão 30 Number of days to look back (default 30, max 365)
bucket string opcional padrão day Bucket size: 'day' (default) or 'week' (Monday-aligned)
campaign string opcional Filter by campaign name or numeric campaign_id (optional, omit for global timeline)
get_message_performance leitura Reply rate broken down by campaign and/or message type over a time window. Returns total sent, replied (distinct outbound emails with at least one reply), reply_rate_pct, plus a breakdown. Breakdown shape depends on group_by: 'campaign' returns one row per campaign (message types collapsed); 'type' returns one row per message type (campaigns collapsed); 'both' (default) returns one row per campaign×type combination (a matrix — NOT two separate lists — so expect up to N_campaigns × N_types rows). Message types: first_contact (AutonomousFirstTouch), follow_up (AutonomousFollowUp), response (AutonomousResponse to inbound), direct (DirectMessage sent on user's behalf), user_written (UserWrittenMessage sent manually by user). Defaults to 30 days.

Como chamar

POST /api/v1/tools/get_message_performance GET /api/v1/call/get_message_performance

Parâmetros

days integer opcional padrão 30 Number of days to look back (default 30, max 365)
campaign string opcional Filter by campaign name or numeric campaign_id (optional, omit for all campaigns)
group_by string opcional padrão both How to group the breakdown: 'campaign', 'type', or 'both' (default)
get_metrics_by_state_and_industry leitura Breaks down every prospecting metric by Brazilian STATE and by INDUSTRY (CNAE description) over a time window, so you can compare which states/industries are performing best. For each dimension it returns the top groups by lead volume — each with new_leads, emails_sent, responses, whatsapp_sent, whatsapp_responses, conscientizados, interested (became interested in the window), confirmed_aware_interested_or_takenover, referrals, and meeting counts (invitations made/received, booked, made) — plus the top-performing group per metric category. Leads with no state/CNAE fall into 'Não informado' and are excluded from the top-performer picks. interested is counted by DateConfirmedInterest (the moment the lead converted). Optionally filter by campaign.

Como chamar

POST /api/v1/tools/get_metrics_by_state_and_industry GET /api/v1/call/get_metrics_by_state_and_industry

Parâmetros

days integer opcional padrão 30 Number of days to look back (default 30, max 365)
campaign string opcional Filter by campaign name or numeric campaign_id (optional, omit for whole account)
get_prospecting_report leitura Get an overall prospecting report: total leads, leads by status, emails sent, response rate, and pipeline summary. Also returns WhatsApp activity: whatsapp_sent (prospecting WhatsApp messages sent), whatsapp_responses (WhatsApp replies received, counted separately from email responses), and leads_talked_to_on_whatsapp (distinct leads with any WhatsApp message in either direction). Optionally filter by campaign.

Como chamar

POST /api/v1/tools/get_prospecting_report GET /api/v1/call/get_prospecting_report

Parâmetros

campaign string opcional Filter by campaign name or numeric campaign_id (optional, omit for global report)
get_whatsapp_message_performance leitura WhatsApp reply performance broken down by campaign and/or message type over a time window. NOTE: unlike get_message_performance (email), WhatsApp reply rate is reported at the LEAD level — WhatsApp inbound has no per-message link to a specific outbound, so 'replied' cannot be attributed per message. Returns total sent (message count), leads_messaged (distinct leads contacted), leads_replied (distinct leads who sent at least one inbound on/after their first outbound of that type in the window), lead_reply_rate_pct (leads_replied / leads_messaged), plus a breakdown. group_by: 'campaign' (one row per campaign), 'type' (one row per message type), 'both' (default, campaign×type matrix). Message types: first_contact (AutonomousFirstTouch), follow_up (AutonomousFollowUp), response (AutonomousResponse), direct (DirectMessage), user_written (UserWrittenMessage). Defaults to 30 days.

Como chamar

POST /api/v1/tools/get_whatsapp_message_performance GET /api/v1/call/get_whatsapp_message_performance

Parâmetros

days integer opcional padrão 30 Number of days to look back (default 30, max 365)
campaign string opcional Filter by campaign name or numeric campaign_id (optional, omit for all campaigns)
group_by string opcional padrão both How to group the breakdown: 'campaign', 'type', or 'both' (default)
list_prospecting_optimizations leitura Lists the autonomous prospecting optimization history in reverse-chronological order (newest first). Paginated. Each entry shows when the prospecting reviewer agent ran and what targeting/configuration changes it made and why. Optionally filter by campaign.

Como chamar

POST /api/v1/tools/list_prospecting_optimizations GET /api/v1/call/list_prospecting_optimizations

Parâmetros

campaign string opcional Filter by campaign name or numeric campaign_id (optional, omit for all optimizations)
page integer opcional padrão 0 Page number (0-based, default 0)
page_size integer opcional padrão 20 Page size (default 20, max 100)
what_changed_since leitura Full digest of what happened in the prospecting operation since a given date — built for the 'I've been away for months, what happened?' case. Blocks: (1) activity_summary — the engine's raw work in the window: new_leads, emails_sent, email_replies, whatsapp_sent, whatsapp_replies; (2) funnel_progress — leads that reached each stage in the window: reached_confirmed, became_interested; (3) new_interested_leads — the interested leads themselves (up to 100, plus total_count); (4) outcomes — deals closed in the window: won_count, lost_count, gave_up_count, total_deal_value_brl, and won_items; (5) meetings — booked, cancelled, held, no_show counts in the window plus items; (6) pending_human_review — the CURRENT pile of leads waiting on the owner (a live snapshot, NOT limited to the window): total_count plus items; (7) support_answered — support requests the team answered in the window (message + answer); (8) campaign_performance_changes — campaigns whose reply rate shifted by at least 3 percentage points (30-day window ending on since_date vs since_date→now, skipping windows with fewer than 50 sent); (9) optimizer_adjustments — prospecting-optimizer changes persisted since that date (capped at 500 items; total_count/returned_count/truncated report the true total). All windowed counts cover since_date→now; timestamps are UTC.

Como chamar

POST /api/v1/tools/what_changed_since GET /api/v1/call/what_changed_since

Parâmetros

since_date string obrigatório ISO date in YYYY-MM-DD format (e.g. 2026-01-15)

Ligações

Faz uma ligação com objetivo definido para um lead, lê as ligações já realizadas e liga ou desliga as chamadas por conta ou por campanha.

7 endpoints
get_campaign_voice_calling_active leitura Read a campaign's voice-calling toggle. A null value means the campaign inherits the customer-level toggle.

Como chamar

POST /api/v1/tools/get_campaign_voice_calling_active GET /api/v1/call/get_campaign_voice_calling_active

Parâmetros

campaign string obrigatório Name of the campaign
get_voice_call leitura Get the status and outcome of a goal-driven phone call placed with place_goal_driven_call: lifecycle status, whether a person picked up, whether the goal was achieved, the outcome summary, and the full transcript.

Como chamar

POST /api/v1/tools/get_voice_call GET /api/v1/call/get_voice_call

Parâmetros

voice_call_request_id integer obrigatório The voice_call_request_id returned by place_goal_driven_call
get_voice_calling_active leitura Read whether autonomous outbound voice calling to leads is active at the customer level.

Como chamar

POST /api/v1/tools/get_voice_calling_active GET /api/v1/call/get_voice_calling_active

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

list_voice_calls leitura List the customer's goal-driven phone calls (newest first) with status and outcome summary. Use get_voice_call for the full transcript of one call.

Como chamar

POST /api/v1/tools/list_voice_calls GET /api/v1/call/list_voice_calls

Parâmetros

page integer opcional padrão 0 Page number (0-based, default 0)
page_size integer opcional padrão 20 Page size (default 20, max 100)
place_goal_driven_call escrita Place a REAL phone call to a number the customer gives you, to accomplish a stated goal (e.g. 'call this restaurant and ask if they have a table tonight'). A real-time voice assistant makes the call in the background; this only enqueues the request — the call is placed shortly after and cannot be recalled once dialing. Poll get_voice_call with the returned voice_call_request_id for the outcome (status, goal_achieved, summary, transcript); the result also arrives as a platform notification.

Como chamar

POST /api/v1/tools/place_goal_driven_call

Parâmetros

phone_number string obrigatório The phone number to call, international format e.g. +5511999999999
goal string obrigatório The goal of the call in plain language and the customer's language — exactly what to accomplish or find out
context string opcional Optional background/context: who is being called and any helpful info
set_campaign_voice_calling_active escrita Enable or disable autonomous outbound voice calls for a specific campaign, overriding the customer-level toggle for that campaign only.

Como chamar

POST /api/v1/tools/set_campaign_voice_calling_active

Parâmetros

campaign string obrigatório Name of the campaign
active boolean obrigatório True to enable, false to disable, for this campaign
set_voice_calling_active escrita Enable or disable autonomous outbound voice calls to leads at the customer level. Separate from email prospecting.

Como chamar

POST /api/v1/tools/set_voice_calling_active

Parâmetros

active boolean obrigatório True to enable, false to disable

Linha de WhatsApp

Cadastra e consulta a linha de WhatsApp de prospecção, define os tetos de custo mensal e diário e atualiza o perfil comercial.

6 endpoints
get_whatsapp_line leitura Get the customer's WhatsApp prospecting line — the one-stop status/diagnostic read: whether it is live/ready to send, its number, quality rating, full WhatsApp business profile, the pending one-click Meta signup link (when the customer still needs to connect their WhatsApp Business Account), any ACTIVE HEALTH ISSUE with the exact fix the customer must apply (payment method, reconnect link, Meta restriction), and the day- and month-to-date WhatsApp spend vs the customer's daily and monthly cost caps. Refreshes the live snapshot from Meta first.

Como chamar

POST /api/v1/tools/get_whatsapp_line GET /api/v1/call/get_whatsapp_line

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

register_whatsapp_line escrita Register a dedicated WhatsApp prospecting line (a real WhatsApp number). Provisioning is automatic and takes a few minutes. If the customer already has a line, returns that line instead of creating another (one line per customer). Requires an active paid plan that includes WhatsApp prospecting. By default Eesier provides a brand-new number; pass use_own_number=true when the customer wants to prospect from their OWN WhatsApp number — they then receive a one-click Meta link whose official popup connects their WhatsApp Business Account (or creates one), lets them pick which of their numbers to use, or verifies a new number on the spot.

Como chamar

POST /api/v1/tools/register_whatsapp_line

Parâmetros

use_own_number boolean opcional padrão false True when the customer wants to use their OWN WhatsApp number instead of a new Eesier-provided one. Default false.
set_whatsapp_daily_cost_cap escrita Set (or clear) the customer's daily WhatsApp prospecting spending cap, in BRL. Meta bills WhatsApp conversation fees to the customer's own account, so this cap lets the customer decide the maximum they want to spend per day. When the cap is reached, paid (conversation-opening) WhatsApp messages pause until the next day — replies to leads who message first keep working, and email prospecting is unaffected. Pass 0 or a negative value to remove the cap. The current spend and cap are visible on get_whatsapp_line.

Como chamar

POST /api/v1/tools/set_whatsapp_daily_cost_cap

Parâmetros

daily_cap_brl number obrigatório Maximum daily WhatsApp spend in BRL (e.g. 20.00). 0 or negative removes the cap.
set_whatsapp_line_profile_picture escrita Set the WhatsApp line's profile picture from a public image URL or an already-uploaded customer file. Square JPG/PNG, at least 192x192, under 5MB. The line must already be live.

Como chamar

POST /api/v1/tools/set_whatsapp_line_profile_picture

Parâmetros

image_url string opcional Public URL of the image (square JPG/PNG, >=192x192, <=5MB)
customer_file_id integer opcional Id of an already-uploaded customer file to use as the picture. Preferred when the user uploaded an image.
set_whatsapp_monthly_cost_cap escrita Set (or clear) the customer's monthly WhatsApp prospecting spending cap, in BRL. Meta bills WhatsApp conversation fees to the customer's own account, so this cap lets the customer decide the maximum they want to spend per calendar month. When the cap is reached, paid (conversation-opening) WhatsApp messages pause until the 1st of the next month — replies to leads who message first keep working, and email prospecting is unaffected. Pass 0 or a negative value to remove the cap. The current spend and cap are visible on get_whatsapp_line.

Como chamar

POST /api/v1/tools/set_whatsapp_monthly_cost_cap

Parâmetros

monthly_cap_brl number obrigatório Maximum monthly WhatsApp spend in BRL (e.g. 150.00). 0 or negative removes the cap.
update_whatsapp_line_profile escrita Update the WhatsApp line's business profile. Only provided fields change. The line must already be live. Display name is not managed here.

Como chamar

POST /api/v1/tools/update_whatsapp_line_profile

Parâmetros

about string opcional Short 'about' text (max 139 chars)
description string opcional Business description (max 512 chars)
address string opcional Business street address
email string opcional Business contact email
websites string opcional Business website URLs, comma-separated (WhatsApp shows at most 2)
vertical string opcional Business category (WhatsApp vertical), e.g. PROF_SERVICES, RETAIL, EDU, HEALTH, FINANCE, RESTAURANT, OTHER

Perfil do negócio

O que a conta vende e para quem. Lê o perfil, lê a avaliação que o agente faz dele e reescreve.

3 endpoints
get_business leitura Returns the customer's business profile: name, description, website, ideal customer profile, and default presentation URL.

Como chamar

POST /api/v1/tools/get_business GET /api/v1/call/get_business

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

get_business_assessment leitura Read the last business-fundamentals assessment Blue Button's internal advisor recorded for this customer: verdict, results probability, the full assessment JSON, when it was made, and the customer's known paying-client examples. Read-only data — bring your own analysis on top of it; there is no tool to re-run the assessment.

Como chamar

POST /api/v1/tools/get_business_assessment GET /api/v1/call/get_business_assessment

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

set_business escrita Updates the customer's business profile. Pass only the fields you want to change. Fields: business_name, business_description, business_website, ideal_customer_profile, paying_customer_examples. For the files the prospecting agent sends to leads (presentation, price table, ...), use the prospecting-file tools (register_prospecting_file / list_prospecting_files).

Como chamar

POST /api/v1/tools/set_business

Parâmetros

business_name string opcional Business name
business_description string opcional Business description
business_website string opcional Business website URL
ideal_customer_profile string opcional Ideal customer profile text
paying_customer_examples string opcional Real paying-customer examples the ICP and the business advisor reason from

Arquivos do negócio

O material de referência que o agente lê para entender o negócio — cadastra, lista e remove.

3 endpoints
list_business_files leitura List the business-knowledge files registered for this customer, with each file's indexing state and campaign scope.

Como chamar

POST /api/v1/tools/list_business_files GET /api/v1/call/list_business_files

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

register_business_file escrita Register text (or an already-uploaded customer file) as business knowledge so the prospecting agents can answer questions about the business (services, processes, pricing, FAQs). The content is chunked + embedded in the background and becomes searchable shortly. Provide either text or customer_file_id.

Como chamar

POST /api/v1/tools/register_business_file

Parâmetros

title string obrigatório Short descriptive title, e.g. 'Tabela de precos 2026'
text string opcional Raw text to register as business knowledge (use when the content was pasted directly)
customer_file_id integer opcional Id of an existing customer file to register (find it with list_business_files or the file list)
campaign string opcional Optional campaign name to scope this knowledge to one campaign. Leave empty for customer-level knowledge shared across every campaign.
remove_business_file destrutiva Remove a registered business-knowledge file and its indexed chunks so the agents stop answering from it. Find the id with list_business_files.

Como chamar

POST /api/v1/tools/remove_business_file

Parâmetros

business_file_id integer obrigatório Id of the business knowledge file to remove

Perguntas frequentes

As perguntas que os leads sempre fazem: o FAQ já respondido do negócio e as que continuam em aberto esperando resposta.

2 endpoints
list_business_faq leitura List the business FAQ — every question-and-answer pair the platform has accumulated about this business (each answer given via answer_lead_question lands here, and the prospecting agents use it to answer leads). Read it before asking the user something that may already be answered.

Como chamar

POST /api/v1/tools/list_business_faq GET /api/v1/call/list_business_faq

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

list_open_lead_questions leitura List the questions LEADS asked that the agent could not answer and that are still waiting for the business owner's input. High-value loop: surface these to the user, get the answers, then record each via answer_lead_question (pass the open_question_id) — every answer improves all future lead conversations.

Como chamar

POST /api/v1/tools/list_open_lead_questions GET /api/v1/call/list_open_lead_questions

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

Sugestões

Pede para a plataforma montar a segmentação: um perfil de cliente ideal, ou os CNAEs a incluir e a excluir.

3 endpoints
generate_cnae_exclusion_suggestion leitura Generate suggested CNAE exclusion codes based on an ideal customer profile and business description. These codes identify competitors and bad-fit industries to exclude from prospecting. Only works for Brazilian customers. Returns codes without saving — use set_targeting to save.

Como chamar

POST /api/v1/tools/generate_cnae_exclusion_suggestion GET /api/v1/call/generate_cnae_exclusion_suggestion

Parâmetros

icp_text string opcional ICP text to analyze. If omitted, uses the customer's current ICP.
generate_cnae_suggestion leitura Generate suggested CNAE inclusion codes based on an ideal customer profile. CNAE codes are used to target specific industries in Brazilian lead prospecting. Only works for Brazilian customers. Returns codes without saving — use set_targeting to save.

Como chamar

POST /api/v1/tools/generate_cnae_suggestion GET /api/v1/call/generate_cnae_suggestion

Parâmetros

icp_text string opcional ICP text to analyze. If omitted, uses the customer's current ICP.
generate_icp_suggestion leitura Generate an ideal customer profile (ICP) suggestion based on the customer's business information. Uses AI to analyze the business and suggest who the ideal customers are. Returns the suggestion without saving it — use set_business to save.

Como chamar

POST /api/v1/tools/generate_icp_suggestion GET /api/v1/call/generate_icp_suggestion

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

Consultas de referência

Busca na base de conhecimento da própria plataforma antes de responder qualquer pergunta sobre como ela funciona, e resolve CNAEs e cidades.

3 endpoints
lookup_city leitura Look up a Brazilian city code (código IBGE) from a city name. Only works for Brazilian customers. Returns matching cities. Used for city-based prospecting filters.

Como chamar

POST /api/v1/tools/lookup_city GET /api/v1/call/lookup_city

Parâmetros

city_name string obrigatório City name to search for (e.g. 'São Paulo', 'Curitiba')
lookup_cnae leitura Look up a CNAE code's name and description. CNAE (Classificação Nacional de Atividades Econômicas) is the Brazilian industry classification system. Only works for Brazilian customers. Provide a code to get its name at division (2-digit), group (3-digit), class (5-digit), or subclass (7-digit) level.

Como chamar

POST /api/v1/tools/lookup_cnae GET /api/v1/call/lookup_cnae

Parâmetros

code string obrigatório CNAE code (e.g. '62' for IT division, '6201' for software development group, '6201501' for software development subclass)
search_knowledge leitura Search the Blue Button knowledge base for authoritative answers about how the platform works — pricing, plans, onboarding, targeting capabilities, email sending, takeovers, reports, privacy, cancellation, and every other platform-specific question. Uses semantic RAG (embedding similarity) over curated knowledge pieces, so the query can be a natural-language question, a keyword, or a topic. ALWAYS call this tool whenever the user asks anything specific about Blue Button — never improvise from general knowledge. Returns the top matches with title, content, and similarity score.

Como chamar

POST /api/v1/tools/search_knowledge GET /api/v1/call/search_knowledge

Parâmetros

query string obrigatório Natural-language query describing what the user wants to know about Blue Button (e.g. 'how much does it cost', 'can I target by company size', 'what happens when I take over a lead', 'international prospecting').
top_k integer opcional padrão 3 Number of top results to return. Default 3. Use a higher value (up to 10) when the question is broad or you want multiple angles.
min_score number opcional padrão 0.7 Minimum similarity score threshold (0.0–1.0). Default 0.7. Lower values return more results but may be less relevant.

Lista de bloqueio

Nunca mais contatar: bloqueia e desbloqueia e-mails, domínios inteiros e telefones.

7 endpoints
add_blacklisted_domain escrita Add a whole DOMAIN to the blacklist. Every email at that domain (e.g. anyone@acme.com) is blocked. Do not pass a full email address — use add_blacklisted_email for that.

Como chamar

POST /api/v1/tools/add_blacklisted_domain

Parâmetros

domain string obrigatório The domain to blacklist, e.g. 'acme.com'. Subdomains are not auto-included.
reason string opcional Reason: Competitor, Client, or Other
add_blacklisted_email escrita Add a single email address to the blacklist. Blacklisted emails never receive prospecting messages. To block an entire company, use add_blacklisted_domain instead.

Como chamar

POST /api/v1/tools/add_blacklisted_email

Parâmetros

email string obrigatório The email address to blacklist
reason string opcional Reason: Competitor, Client, or Other
add_blacklisted_phone escrita Add a PHONE NUMBER to the blacklist. The number never receives a WhatsApp message or a voice call. Digits are kept and everything else is stripped, so any formatting is accepted.

Como chamar

POST /api/v1/tools/add_blacklisted_phone

Parâmetros

phone string obrigatório The phone number to blacklist, in any format (e.g. '+55 11 99999-9999')
reason string opcional Reason: Competitor, Client, or Other
list_blacklisted_emails leitura List blacklisted entries (individual emails, whole domains and phone numbers) with their reason and times-blocked count. Paginated — 'total' reports the full list size.

Como chamar

POST /api/v1/tools/list_blacklisted_emails GET /api/v1/call/list_blacklisted_emails

Parâmetros

page integer opcional padrão 0 Page number (0-based, default 0)
page_size integer opcional padrão 50 Entries per page (default 50, max 200)
remove_blacklisted_domain destrutiva Remove a whole DOMAIN from the blacklist, allowing addresses at that domain to receive prospecting messages again.

Como chamar

POST /api/v1/tools/remove_blacklisted_domain

Parâmetros

domain string obrigatório The domain to remove from the blacklist, e.g. 'acme.com'
remove_blacklisted_email destrutiva Remove a single email address from the blacklist, allowing it to receive prospecting messages again.

Como chamar

POST /api/v1/tools/remove_blacklisted_email

Parâmetros

email string obrigatório The email address to remove from the blacklist
remove_blacklisted_phone destrutiva Remove a PHONE NUMBER from the blacklist, allowing it to receive WhatsApp messages and voice calls again.

Como chamar

POST /api/v1/tools/remove_blacklisted_phone

Parâmetros

phone string obrigatório The phone number to remove from the blacklist, in any format

Configurações da conta

Fuso horário, nome do usuário, preferências, permissão de ligação, e-mails de notificação, configurações de envio, domínio remetente e dados fiscais.

15 endpoints
get_email_settings leitura Get the customer's Blue Button email settings: the full address, handle, display name, and notification instructions.

Como chamar

POST /api/v1/tools/get_email_settings GET /api/v1/call/get_email_settings

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

get_general_settings leitura Get the customer's general account settings: voice mode, autonomous-message sending, account email, and timezone offset.

Como chamar

POST /api/v1/tools/get_general_settings GET /api/v1/call/get_general_settings

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

get_notification_emails leitura Get the email addresses currently set for autonomous prospecting notifications and daily reports.

Como chamar

POST /api/v1/tools/get_notification_emails GET /api/v1/call/get_notification_emails

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

lookup_municipality_code leitura Look up the 7-digit IBGE municipality code for a Brazilian city. Returns all matches when the city exists in multiple states. Use before update_tax_info.

Como chamar

POST /api/v1/tools/lookup_municipality_code GET /api/v1/call/lookup_municipality_code

Parâmetros

city_name string obrigatório Brazilian city name (accent-insensitive)
state string opcional Optional state — 2-letter UF (RS, SP...) or full Portuguese name — to disambiguate
set_agent_phone_call_permission escrita Get or set whether the agent may place outbound phone calls to the customer. Omit 'enabled' to read the current value; pass true/false to change it.

Como chamar

POST /api/v1/tools/set_agent_phone_call_permission

Parâmetros

enabled boolean opcional True to allow calls, false to block. Omit to just read the current value.
set_email_notification_instructions escrita Set the free-text rules that decide which inbound emails deserve an immediate notification to the customer. Pass an empty string to clear them and fall back to the default behaviour.

Como chamar

POST /api/v1/tools/set_email_notification_instructions

Parâmetros

instructions string obrigatório Rules describing which inbound emails warrant an immediate heads-up (empty to clear)
set_personal_email escrita Set the account's own personal email address — the single address tied to the account itself, distinct from the comma-separated prospecting notification list managed by update_notification_emails.

Como chamar

POST /api/v1/tools/set_personal_email

Parâmetros

email string obrigatório The account owner's personal email address
set_timezone escrita Set the customer's timezone by telling the agent the current local hour (0-23, 24h format). The offset is computed from UTC.

Como chamar

POST /api/v1/tools/set_timezone

Parâmetros

current_hour integer obrigatório Hour part of the customer's current local time, 0-23 (24h format)
setup_custom_domain escrita Set up, verify, or remove a custom-domain email address (e.g. sales@yourcompany.com). Requires an active paid plan. action: 'activate' (needs email_address), 'verify', or 'remove'.

Como chamar

POST /api/v1/tools/setup_custom_domain

Parâmetros

action string obrigatório 'activate' to set a new custom email, 'verify' to check DNS, 'remove' to remove it
email_address string opcional The full custom email address, e.g. 'sales@yourcompany.com'. Required for 'activate'.
setup_email_subdomain escrita Set up or verify a custom email subdomain (e.g. yourcompany.eesiermail.com). Requires an active paid plan. action: 'activate' (needs subdomain) or 'verify'.

Como chamar

POST /api/v1/tools/setup_email_subdomain

Parâmetros

action string obrigatório 'activate' to set a new subdomain, 'verify' to check DNS verification status
subdomain string opcional The subdomain name, e.g. 'mycompany'. Required for 'activate'.
update_email_settings escrita Update the Blue Button email handle (the part before @, max 20 chars, unique) and/or the display name shown in outgoing emails. Pass at least one field.

Como chamar

POST /api/v1/tools/update_email_settings

Parâmetros

handle string opcional New email handle (lowercase, no spaces, max 20 chars). Accents/invalid chars are stripped.
display_name string opcional New display name for outgoing emails (the 'From' name recipients see)
update_notification_emails escrita Set the email address(es) for autonomous prospecting notifications and daily reports (comma-separated). The first address also becomes the account email.

Como chamar

POST /api/v1/tools/update_notification_emails

Parâmetros

emails string obrigatório Email address(es) for notifications, comma-separated
update_preferences escrita Update customer preferences: language, whether to show the business on the Blue Button website, and push notifications. Pass at least one field.

Como chamar

POST /api/v1/tools/update_preferences

Parâmetros

language_key string opcional Language key, e.g. pt-BR, en-US, es-AR
show_on_website boolean opcional Whether to show the business on the Blue Button website
push_notifications boolean opcional Whether push (console) notifications are enabled
update_tax_info escrita Update tax/invoice information. Pass whichever fields need updating. Tax document must be CPF (11 digits) or CNPJ (14 digits); CEP must be 8 digits; municipality code must be a valid 7-digit IBGE code (use lookup_municipality_code first).

Como chamar

POST /api/v1/tools/update_tax_info

Parâmetros

tax_name string opcional Tax-registered name (company or person)
tax_document string opcional Tax document, digits only: CPF (11) or CNPJ (14)
street string opcional Street name
number string opcional Address number
neighborhood string opcional Neighborhood
cep string opcional Postal code (CEP, 8 digits)
municipality_code integer opcional IBGE municipality code (7 digits)
update_user_name escrita Update the customer's display name.

Como chamar

POST /api/v1/tools/update_user_name

Parâmetros

name string obrigatório The new name for the customer

Membros da equipe

Quem mais está na conta — adiciona, lista e remove membros.

3 endpoints
add_member escrita Add another person (an additional phone number) to this account. They get their own conversation with the agent but full shared access to the same company, settings, and prospecting. Fails if the phone number already belongs to any account.

Como chamar

POST /api/v1/tools/add_member

Parâmetros

name string obrigatório The person's name
phone_number string obrigatório The person's phone number in international format, e.g. +5511999999999
email string opcional Optional email — when set, they receive copies of email notifications (interested/confirmed-lead emails)
list_members leitura List everyone on this account: the account owner plus any additional people that were added.

Como chamar

POST /api/v1/tools/list_members GET /api/v1/call/list_members

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

remove_member destrutiva Remove an additional person from this account, identified by name or phone number. The account owner cannot be removed.

Como chamar

POST /api/v1/tools/remove_member

Parâmetros

name_or_phone string obrigatório The name or phone number of the person to remove

Tokens de acesso

Gerencia os tokens que autenticam esta conexão: lista, cria um novo, revoga.

3 endpoints
generate_mcp_token escrita Create a new MCP access token for this account. The token value is returned ONCE and never again — pass it to the caller immediately and tell them to store it securely.

Como chamar

POST /api/v1/tools/generate_mcp_token

Parâmetros

label string opcional A short label naming what will use this token, e.g. 'n8n workflow'
list_mcp_tokens leitura List the account's MCP access tokens. The token values themselves are never returned — only the id, label, creation date, last-used date and whether the token has been revoked.

Como chamar

POST /api/v1/tools/list_mcp_tokens GET /api/v1/call/list_mcp_tokens

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

revoke_mcp_token destrutiva Revoke an MCP access token so it can no longer connect. Use list_mcp_tokens to find the token_id. Revoking the token the caller is currently authenticated with immediately ends their own access.

Como chamar

POST /api/v1/tools/revoke_mcp_token

Parâmetros

token_id integer obrigatório The id of the token to revoke, from list_mcp_tokens

Eventos e webhooks

O feed de eventos da conta com cursor, mais as assinaturas de webhook de saída — cria, lista, testa e remove.

5 endpoints
create_webhook_subscription escrita Register an HTTPS webhook endpoint that receives account events as they happen (signed POSTs) — for automation systems the customer runs (Agent SDK apps, n8n, Zapier, custom backends). The signing secret is returned ONCE in this response — store it securely. Note: this does NOT push into this MCP session; agents that can only poll should use list_account_events instead.

Como chamar

POST /api/v1/tools/create_webhook_subscription

Parâmetros

url string obrigatório The HTTPS endpoint to POST events to
event_types string opcional Comma-separated event types to deliver (optional; default = all). Same values as list_account_events.
description string opcional A short label for this subscription (e.g. 'my n8n flow')
delete_webhook_subscription destrutiva Delete a webhook subscription — deliveries to its endpoint stop immediately. Irreversible (create a new subscription to resume; it will get a new secret).

Como chamar

POST /api/v1/tools/delete_webhook_subscription

Parâmetros

subscription_id integer obrigatório Subscription ID (from list_webhook_subscriptions)
list_account_events leitura Poll the account's event feed — new lead replies (email/WhatsApp), leads flagged for review, leads becoming interested/confirmed, meetings booked/cancelled, voice calls finished, imports finished, support answered. Cursor-paged: pass the next_cursor from the previous call to get only what happened since. This is about ACCOUNT ACTIVITY — not calendar events (list_calendar_events / list_calendly_upcoming_events) and not one lead's history (list_lead_lifecycle_events).

Como chamar

POST /api/v1/tools/list_account_events GET /api/v1/call/list_account_events

Parâmetros

since_cursor integer opcional padrão 0 Return only events with id greater than this (0 = from the beginning of the feed). Use the next_cursor from the previous call.
event_types string opcional Comma-separated event types to include (optional; default = all). Valid: lead_replied_email, lead_replied_whatsapp, lead_sent_for_human_review, lead_became_interested, lead_confirmed, meeting_booked, meeting_cancelled, voice_call_finished, import_finished, support_request_answered
limit integer opcional padrão 50 Max events to return (default 50, max 200)
list_webhook_subscriptions leitura List the account's webhook subscriptions with delivery health (last success/failure, consecutive failures, disabled state). Secrets are never shown again.

Como chamar

POST /api/v1/tools/list_webhook_subscriptions GET /api/v1/call/list_webhook_subscriptions

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

test_webhook_subscription escrita Send a signed test 'ping' event to a webhook subscription's endpoint so the customer can verify their receiver and signature check. The delivery result appears in list_webhook_subscriptions (date_last_success / last_failure_reason) within ~1 minute.

Como chamar

POST /api/v1/tools/test_webhook_subscription

Parâmetros

subscription_id integer obrigatório Subscription ID (from list_webhook_subscriptions)

Integrações de CRM

Conecta e desconecta um CRM, consulta o status de sincronização, força uma nova sincronização, mapeia campos personalizados e gerencia as integrações Apollo, Lusha e RD Station.

10 endpoints
connect_crm escrita Connect a CRM integration. Each CRM needs different credentials: Pipedrive (api_key), RdStation (marketing_api_key and/or crm_token), HubSpot (access_token), Odoo (url + database + username + api_key), Omie (app_key + app_secret), Agendor/ExactSales/Piperun/Venttra (api_token), SystemeIo (api_key). Requires an active paid plan. The credential is LIVE-VERIFIED against the provider before being stored (a bad key returns an error and stores nothing); the response's 'verified' field says whether verification was possible — ExactSales, Piperun, Venttra, and the RdStation marketing key are write-only APIs and are stored unverified.

Como chamar

POST /api/v1/tools/connect_crm

Parâmetros

crm_name string obrigatório CRM name: Pipedrive, RdStation, HubSpot, Odoo, Omie, Agendor, ExactSales, Piperun, SystemeIo, Venttra
api_key string opcional API key (Pipedrive, Odoo, SystemeIo)
api_token string opcional API token (Agendor, ExactSales, Piperun, Venttra)
access_token string opcional Access token (HubSpot)
url string opcional URL (Odoo)
database string opcional Database name (Odoo)
username string opcional Username (Odoo)
app_key string opcional App key (Omie)
app_secret string opcional App secret (Omie)
marketing_api_key string opcional Marketing API key (RdStation)
crm_token string opcional CRM token (RdStation)
pipeline_id integer opcional Pipeline id deals are created in (Pipedrive)
funnel_id integer opcional Funnel id deals are created in (Agendor)
disconnect_crm destrutiva Disconnect a CRM integration by clearing its credentials.

Como chamar

POST /api/v1/tools/disconnect_crm

Parâmetros

crm_name string obrigatório CRM name: Pipedrive, RdStation, HubSpot, Odoo, Omie, Agendor, ExactSales, Piperun, SystemeIo, Venttra
get_crm_sync_status leitura Show how many leads have been synced to each connected CRM: synced, pending, and stuck counts, the last sync time, and a few recently-synced lead names.

Como chamar

POST /api/v1/tools/get_crm_sync_status GET /api/v1/call/get_crm_sync_status

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

list_crm_integrations leitura List all CRM integrations with their connection status, the minimum lead status filter for CRM sync, and the configured custom fields.

Como chamar

POST /api/v1/tools/list_crm_integrations GET /api/v1/call/list_crm_integrations

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

manage_apollo_integration escrita Connect or disconnect the Apollo lead-source integration. Requires an active paid plan. action: 'connect' (needs api_key) or 'disconnect'. The api_key is live-verified against Apollo before being stored — a bad key returns an error and stores nothing.

Como chamar

POST /api/v1/tools/manage_apollo_integration

Parâmetros

action string obrigatório Action: connect or disconnect
api_key string opcional Apollo API key (required for connect)
list_id string opcional Apollo list id to sync leads from (optional)
manage_crm_custom_fields escrita Manage custom fields sent with every lead to CRM integrations. action: 'list', 'add' (needs field_name + field_value), or 'remove' (needs field_id).

Como chamar

POST /api/v1/tools/manage_crm_custom_fields

Parâmetros

action string obrigatório Action: list, add, or remove
field_name string opcional Field name (required for 'add')
field_value string opcional Field value (required for 'add')
field_id integer opcional Field id (required for 'remove')
manage_lusha_integration escrita Connect or disconnect the Lusha lead-source integration. Requires an active paid plan. action: 'connect' (needs api_key) or 'disconnect'. The api_key is live-verified against Lusha before being stored — a bad key returns an error and stores nothing.

Como chamar

POST /api/v1/tools/manage_lusha_integration

Parâmetros

action string obrigatório Action: connect or disconnect
api_key string opcional Lusha API key (required for connect)
list_id string opcional Lusha list id to sync leads from (optional)
manage_rd_station_crm_lead_source escrita Enable or disable importing RD Station CRM contacts as prospecting leads. Requires an active paid plan and the RD Station CRM token to already be connected (use connect_crm). action: 'enable' (optionally scoped by pipeline_id and deal_stage_id so only contacts attached to deals there are imported) or 'disable'. Enabling live-verifies the stored token against RD Station CRM first. Does not affect the outbound lead-to-CRM sync.

Como chamar

POST /api/v1/tools/manage_rd_station_crm_lead_source

Parâmetros

action string obrigatório Action: enable or disable
pipeline_id string opcional RD Station CRM deal pipeline id to limit the import to (optional; omit to import all contacts)
deal_stage_id string opcional RD Station CRM deal stage id inside the pipeline to limit the import to (optional; requires pipeline_id)
resync_crm_leads escrita Manually re-queue eligible leads that have not yet been sent to the CRM so the background sync retries them. Already-synced leads are never re-sent (no duplicates). The send happens in the background within a few minutes.

Como chamar

POST /api/v1/tools/resync_crm_leads

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

update_crm_minimum_status escrita Set the minimum lead status required before a lead is synced to the CRM (Pending, Cold, Confirmed, Aware, NotInterested, Interested). Omit 'status' to clear the filter and sync all leads.

Como chamar

POST /api/v1/tools/update_crm_minimum_status

Parâmetros

status string opcional Minimum lead status for CRM sync. Omit to sync all leads.

Calendly

Conecta o Calendly, escolhe o tipo de evento em que os leads são agendados e lê os próximos agendamentos.

7 endpoints
disconnect_calendly destrutiva Disconnects the customer's Calendly account: deletes the webhook subscription on Calendly's side, revokes the access token, and clears all stored Calendly fields. Pass user_has_confirmed=true only when the user has explicitly confirmed they want to disconnect.

Como chamar

POST /api/v1/tools/disconnect_calendly

Parâmetros

user_has_confirmed boolean obrigatório Must be true — the agent must have explicit user confirmation before disconnecting.
get_calendly_connection_url leitura Returns the URL the user must click to connect their Calendly account to Eesier. Share this URL with the user — they open it, sign into Calendly, click Authorize, and the connection is established server-side. After the user completes the flow, call get_calendly_status again to confirm. Idempotent: returns the same URL whether or not Calendly is already connected (so the user can reconnect a different account).

Como chamar

POST /api/v1/tools/get_calendly_connection_url GET /api/v1/call/get_calendly_connection_url

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

get_calendly_event leitura Returns full details for a specific scheduled Calendly event, including the list of invitees with their names, emails, status, and any answers they gave to scheduling questions. Use this for follow-up questions about a specific meeting after list_calendly_upcoming_events.

Como chamar

POST /api/v1/tools/get_calendly_event GET /api/v1/call/get_calendly_event

Parâmetros

event_uri string obrigatório Full Calendly scheduled event URI (e.g. 'https://api.calendly.com/scheduled_events/<uuid>'). Get it from list_calendly_upcoming_events.
get_calendly_status leitura Returns the current Calendly connection status for the customer: whether OAuth is connected, the connected Calendly account email, and which event type (if any) is selected as the default for prospecting links.

Como chamar

POST /api/v1/tools/get_calendly_status GET /api/v1/call/get_calendly_status

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

list_calendly_event_types leitura Lists all active event types in the customer's Calendly account (e.g. '15-min intro call', '30-min consultation'). Each entry includes uri (use this when calling set_calendly_default_event_type), name, slug, duration_minutes, scheduling_url, and is_default. Required: Calendly must be connected first.

Como chamar

POST /api/v1/tools/list_calendly_event_types GET /api/v1/call/list_calendly_event_types

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

list_calendly_upcoming_events leitura Lists scheduled Calendly events on the customer's calendar within a date range. Use this for 'what's on my agenda' / 'do I have any meetings tomorrow' style requests. Returned `start_utc`/`end_utc` come back in UTC — pull `timezone_offset_utc_hours` from `whoami` and convert before showing them to the user. Calendly imposes a 100-day max range.

Como chamar

POST /api/v1/tools/list_calendly_upcoming_events GET /api/v1/call/list_calendly_upcoming_events

Parâmetros

start_date string opcional Start of the window in YYYY-MM-DD format (UTC, inclusive). Defaults to today's UTC date if omitted.
end_date string opcional End of the window in YYYY-MM-DD format (UTC, INCLUSIVE — events at any time on this day are returned). Defaults to 7 days after start_date.
status string opcional padrão active Status filter: 'active' (default — confirmed bookings) or 'canceled'.
set_calendly_default_event_type escrita Sets the default Calendly event type. The default is the event type Blue Button uses when generating scheduling links inside lead conversations. Pass either event_type_uri (preferred — get it from list_calendly_event_types) or event_type_name (fuzzy-matched against active event types). Pass empty event_type_uri to clear the default.

Como chamar

POST /api/v1/tools/set_calendly_default_event_type

Parâmetros

event_type_uri string opcional Full Calendly event type URI (preferred). Pass empty string to clear the current default.
event_type_name string opcional Or the event type's display name — fuzzy-matched against the customer's active event types. Used only when event_type_uri is not provided.

Google Agenda

Conecta o Google Agenda e mexe na agenda: lista, cria, atualiza, exclui e responde a eventos.

6 endpoints
create_calendar_event escrita Create a Google Calendar event. Times are UTC — convert the customer's local time using timezone_offset_utc_hours from whoami BEFORE calling. Returns the event id and a Meet link when one was generated.

Como chamar

POST /api/v1/tools/create_calendar_event

Parâmetros

summary string obrigatório Event title
start_utc string obrigatório Event start in UTC, ISO format (e.g. 2026-07-10T14:00:00Z)
end_utc string obrigatório Event end in UTC, ISO format
attendees string opcional Comma-separated attendee emails
calendar_id string opcional padrão primary Calendar ID (default 'primary')
delete_calendar_event destrutiva Delete a Google Calendar event. This cancels the event for all attendees and cannot be undone.

Como chamar

POST /api/v1/tools/delete_calendar_event

Parâmetros

event_id string obrigatório ID of the calendar event
calendar_id string opcional padrão primary Calendar ID (default 'primary')
get_google_connection_url leitura Get the OAuth URL for the customer to connect their Google account (required for the Google Calendar tools). Share the URL with the user; the connection completes server-side after they authorize. Idempotent — also works for reconnecting.

Como chamar

POST /api/v1/tools/get_google_connection_url GET /api/v1/call/get_google_connection_url

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

list_calendar_events leitura List the customer's Google Calendar events for one calendar day (UTC). Returns start/end in UTC ISO format.

Como chamar

POST /api/v1/tools/list_calendar_events GET /api/v1/call/list_calendar_events

Parâmetros

date string obrigatório The day to list, yyyy-MM-dd (interpreted in UTC)
calendar_id string opcional padrão primary Calendar ID (default 'primary')
respond_calendar_event escrita Accept or decline a Google Calendar event invitation on the customer's behalf.

Como chamar

POST /api/v1/tools/respond_calendar_event

Parâmetros

event_id string obrigatório ID of the calendar event
accept boolean obrigatório true to accept the invitation, false to decline
calendar_id string opcional padrão primary Calendar ID (default 'primary')
update_calendar_event escrita Update a Google Calendar event (title, times, attendees). Pass only the fields to change. Times are UTC.

Como chamar

POST /api/v1/tools/update_calendar_event

Parâmetros

event_id string obrigatório ID of the calendar event
summary string opcional New event title
start_utc string opcional New start in UTC, ISO format
end_utc string opcional New end in UTC, ISO format
attendees string opcional New comma-separated attendee emails (replaces the current list)
calendar_id string opcional padrão primary Calendar ID (default 'primary')

Google Ads

O lado pago: campanhas, orçamentos, faturamento, relatórios de performance, diagnóstico, grupos de anúncios, palavras-chave, negativas, anúncios de busca e públicos.

18 endpoints
add_google_ads_keywords escrita Add keywords to an ad group in a Google Ads campaign. One keyword per line in the keywords parameter (keywords may contain commas). match_type: Broad, Phrase, or Exact (default Broad).

Como chamar

POST /api/v1/tools/add_google_ads_keywords

Parâmetros

campaign string obrigatório The campaign name or id
ad_group_id integer obrigatório The ad group id (from list_google_ads_ad_groups)
keywords string obrigatório The keywords to add, ONE PER LINE
match_type string opcional Match type: Broad (default), Phrase, or Exact
add_google_ads_negative_keywords escrita Add CAMPAIGN-LEVEL negative keywords to a Google Ads campaign (searches these terms will never trigger ads). One keyword per line. match_type: Broad (default), Phrase, or Exact.

Como chamar

POST /api/v1/tools/add_google_ads_negative_keywords

Parâmetros

campaign string obrigatório The campaign name or id
keywords string obrigatório The negative keywords to add, ONE PER LINE
match_type string opcional Match type: Broad (default), Phrase, or Exact
create_google_ads_campaign_draft escrita Create a NEW Google Ads campaign as a DRAFT. It does NOT serve until the customer recharges its balance via the returned console recharge_url — share that link and never claim the campaign is live. channel_type: Search (default) or PerformanceMax (only recommend PMax after a Search campaign has real conversion data).

Como chamar

POST /api/v1/tools/create_google_ads_campaign_draft

Parâmetros

name string obrigatório The campaign name as it will appear in Google Ads
daily_budget_brl number obrigatório Daily budget in BRL (positive, e.g. 20)
channel_type string opcional Channel type: Search (default) or PerformanceMax
create_google_ads_search_ad escrita Create a Responsive Search Ad in an ad group of a Google Ads campaign. Headlines max 30 chars each, descriptions max 90 chars each — ONE PER LINE. Provide at least 3 headlines and 2 descriptions.

Como chamar

POST /api/v1/tools/create_google_ads_search_ad

Parâmetros

campaign string obrigatório The campaign name or id
ad_group_id integer obrigatório The ad group id (from list_google_ads_ad_groups)
final_url string obrigatório The landing page URL the ad clicks through to
headlines string obrigatório The ad headlines, ONE PER LINE, max 30 characters each
descriptions string obrigatório The ad descriptions, ONE PER LINE, max 90 characters each
diagnose_google_ads_campaign leitura Diagnose why a Google Ads campaign is (or isn't) serving: live serving status, primary status with reasons, and per-ad approval/review status.

Como chamar

POST /api/v1/tools/diagnose_google_ads_campaign GET /api/v1/call/diagnose_google_ads_campaign

Parâmetros

campaign string obrigatório The campaign name or id
get_google_ads_audience_status leitura Get a Google Ads campaign's Customer Match audience status: how many emails were on the last upload, when, and whether the list is attached.

Como chamar

POST /api/v1/tools/get_google_ads_audience_status GET /api/v1/call/get_google_ads_audience_status

Parâmetros

campaign string obrigatório The campaign name or id
get_google_ads_billing leitura Read Google Ads billing/funding data for a campaign's account. section: AccountInfo, AccountBudgets, BillingSetups, Proposals, Invoices (needs year+month), or CampaignBudgets.

Como chamar

POST /api/v1/tools/get_google_ads_billing GET /api/v1/call/get_google_ads_billing

Parâmetros

campaign string obrigatório The campaign name or id
section string obrigatório Section: AccountInfo, AccountBudgets, BillingSetups, Proposals, Invoices, CampaignBudgets
year integer opcional Invoice issue year (Invoices only)
month integer opcional Invoice issue month 1-12 (Invoices only)
get_google_ads_campaign leitura Get one Google Ads campaign's full detail: lifecycle status, hold reason, funding balance, the stored performance snapshot (spend, impressions, clicks, conversions, CTR, CPC), and the console management/recharge link. Pass the campaign name or id.

Como chamar

POST /api/v1/tools/get_google_ads_campaign GET /api/v1/call/get_google_ads_campaign

Parâmetros

campaign string obrigatório The campaign name or id (from list_google_ads_campaigns)
get_google_ads_keyword_ideas leitura Get keyword ideas with search volume from Google's Keyword Planner for a campaign. Provide seed keywords (one per line) and/or a page URL to extract ideas from.

Como chamar

POST /api/v1/tools/get_google_ads_keyword_ideas GET /api/v1/call/get_google_ads_keyword_ideas

Parâmetros

campaign string obrigatório The campaign name or id
seed_keywords string opcional Seed keywords, ONE PER LINE
page_url string opcional A page URL to extract keyword ideas from
max_results integer opcional padrão 50 Max results (default 50)
get_google_ads_performance_report leitura Pull a LIVE Google Ads performance report for a campaign. report_type: Campaign (totals), AdGroup, Keyword (with quality score), Ad, SearchTerms (what users actually searched), Daily, Device, Conversion, ImpressionShare (share of impressions + % lost to budget vs rank), AdAssets (per-headline/description LOW/GOOD/BEST labels), Hourly, Geographic, Demographics. Costs in BRL.

Como chamar

POST /api/v1/tools/get_google_ads_performance_report GET /api/v1/call/get_google_ads_performance_report

Parâmetros

campaign string obrigatório The campaign name or id
report_type string obrigatório Report type: Campaign, AdGroup, Keyword, Ad, SearchTerms, Daily, Device, Conversion, ImpressionShare, AdAssets, Hourly, Geographic, Demographics
date_range string opcional Date range: a preset (LAST_7_DAYS, LAST_30_DAYS, LAST_90_DAYS, THIS_MONTH, LAST_MONTH) or a custom 'yyyy-MM-dd AND yyyy-MM-dd' window. Default LAST_30_DAYS.
list_google_ads_ad_groups leitura List a Google Ads campaign's ad groups (id, name, status, CPC bid). Ad-group ids are needed for the keyword and ad tools.

Como chamar

POST /api/v1/tools/list_google_ads_ad_groups GET /api/v1/call/list_google_ads_ad_groups

Parâmetros

campaign string obrigatório The campaign name or id
list_google_ads_campaigns leitura List the customer's Google Ads campaigns with status, channel type, daily budget, hold reason, and balance (recharged, spent, remaining) — all in BRL. The entry point: call this first, then pass a returned name or id to the other google_ads tools.

Como chamar

POST /api/v1/tools/list_google_ads_campaigns GET /api/v1/call/list_google_ads_campaigns

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

list_google_ads_keywords leitura List the keywords of one ad group in a Google Ads campaign (text, match type, status, CPC bid, quality score).

Como chamar

POST /api/v1/tools/list_google_ads_keywords GET /api/v1/call/list_google_ads_keywords

Parâmetros

campaign string obrigatório The campaign name or id
ad_group_id integer obrigatório The ad group id (from list_google_ads_ad_groups)
nudge_google_ads_provisioning escrita Re-run the go-live provisioning gate for a Google Ads campaign that seems stuck after being funded (nudges the provisioning state machine forward).

Como chamar

POST /api/v1/tools/nudge_google_ads_provisioning

Parâmetros

campaign string obrigatório The campaign name or id
refresh_google_ads_audience escrita Re-upload the Google Ads campaign's Customer Match audience from the customer's current lead emails (keeps the remarketing list fresh). Returns the number of emails uploaded.

Como chamar

POST /api/v1/tools/refresh_google_ads_audience

Parâmetros

campaign string obrigatório The campaign name or id
set_google_ads_campaign_status destrutiva Pause, resume, or END a Google Ads campaign. Resume is gated on remaining balance + at least one enabled ad (and keyword for Search). END IS IRREVERSIBLE — it removes the campaign in Google Ads; get the customer's explicit confirmation before ending.

Como chamar

POST /api/v1/tools/set_google_ads_campaign_status

Parâmetros

campaign string obrigatório The campaign name or id
action string obrigatório Action: Pause, Resume, or End (End is irreversible)
sync_google_ads_spend escrita Refresh a Google Ads campaign's spend from the live Google API (updates the stored snapshot and funding math). Call this before quoting spend or balance numbers to the customer.

Como chamar

POST /api/v1/tools/sync_google_ads_spend

Parâmetros

campaign string obrigatório The campaign name or id
update_google_ads_campaign_budget escrita Update a Google Ads campaign's daily budget (BRL). Returns the effective value after platform clamping.

Como chamar

POST /api/v1/tools/update_google_ads_campaign_budget

Parâmetros

campaign string obrigatório The campaign name or id
new_daily_budget_brl number obrigatório The new daily budget in BRL

Sites

Cadastra um site e altera por conversa: configurações, subdomínio, código-fonte, snapshots e restaurações, capturas de tela e rastreamento.

17 endpoints
archive_website destrutiva Archive (remove) a website.

Como chamar

POST /api/v1/tools/archive_website

Parâmetros

website_id integer obrigatório Id of the website to archive
cancel_website_change destrutiva Cancel the ongoing (unfinished) change request for a website.

Como chamar

POST /api/v1/tools/cancel_website_change

Parâmetros

website_id integer obrigatório Id of the website
change_website escrita Request a change to a website. The change is queued and rendered in the background — this returns immediately with a code id; poll get_website for completion.

Como chamar

POST /api/v1/tools/change_website

Parâmetros

website_id integer obrigatório Id of the website to change
prompt string obrigatório Prompt describing the desired change
data_storage_required boolean opcional padrão false True if the change requires data storage (a database)
ignore_existing_code boolean opcional padrão false True to ignore the existing code and rebuild from scratch (full overhaul)
reasoning_mode string opcional Coding agent reasoning: Fast (simple changes, default) or Thinking (complex changes)
generation_type string opcional Generation type: Fast (default) or Quality
change_website_subdomain escrita Change a website's subdomain (the part before .eesier.website).

Como chamar

POST /api/v1/tools/change_website_subdomain

Parâmetros

website_id integer obrigatório Id of the website
new_subdomain string obrigatório New subdomain part without the .eesier.website suffix (letters, numbers, hyphens only)
crawl_website leitura Fetch the raw HTML of a webpage, split into 1000-character chunks navigable by index.

Como chamar

POST /api/v1/tools/crawl_website GET /api/v1/call/crawl_website

Parâmetros

url string obrigatório URL of the webpage to fetch
chunk_index integer opcional padrão 0 Index of the chunk to return (starting at 0)
create_website_snapshot escrita Create a snapshot of a website's current code, tagged with a description, so it can be restored later.

Como chamar

POST /api/v1/tools/create_website_snapshot

Parâmetros

website_id integer obrigatório Id of the website
snapshot_description string obrigatório Description for the snapshot
export_website_code escrita Export a website's current code to an HTML file and email it to the given address.

Como chamar

POST /api/v1/tools/export_website_code

Parâmetros

website_id integer obrigatório Id of the website
email_address string obrigatório Destination email address
get_website leitura Get full information about one website: title, URL, type, language, generation status, and code-editor link.

Como chamar

POST /api/v1/tools/get_website GET /api/v1/call/get_website

Parâmetros

website_id integer obrigatório Id of the website
get_website_code leitura Get the HTML code of a specific website code entry.

Como chamar

POST /api/v1/tools/get_website_code GET /api/v1/call/get_website_code

Parâmetros

website_code_id integer obrigatório Id of the website code entry
get_website_settings leitura Get a website's configurable settings (title, language, restriction, agent guidelines).

Como chamar

POST /api/v1/tools/get_website_settings GET /api/v1/call/get_website_settings

Parâmetros

website_id integer obrigatório Id of the website
list_website_code leitura List the successful code generations for a website (without the HTML itself), newest first.

Como chamar

POST /api/v1/tools/list_website_code GET /api/v1/call/list_website_code

Parâmetros

website_id integer obrigatório Id of the website
list_website_snapshots leitura List a website's snapshots (saved code versions), newest first.

Como chamar

POST /api/v1/tools/list_website_snapshots GET /api/v1/call/list_website_snapshots

Parâmetros

website_id integer obrigatório Id of the website
list_websites leitura List all of the customer's websites with their generation status, URL, and code-editor link.

Como chamar

POST /api/v1/tools/list_websites GET /api/v1/call/list_websites

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

register_website escrita Register a new AI-generated website. Generation runs in the background — this returns immediately with an id; poll get_website / list_websites for the finished URL and status.

Como chamar

POST /api/v1/tools/register_website

Parâmetros

description string obrigatório Concise but complete description of the website: purpose, main features, target audience, style, and what it sells/promotes
language string obrigatório Language code in xx-xx form, e.g. pt-br, en-us
application_type string opcional Application type: Website (default) or LeadCapturePage. For an interactive site with logins/dashboards, keep Website and set data_storage_required=true.
generation_type string opcional Generation type: Fast (default, simpler sites) or Quality (slower, better for complex sites)
data_storage_required boolean opcional padrão false True if the site needs persistent data storage (accounts, orders, dashboards); false for static sites. Default false.
restricted boolean opcional padrão false True to restrict the site behind a login page; false for public. Default false.
copy_from_website_id integer opcional Optional id of another of this customer's websites to copy code from
business_or_brand_name string opcional Optional name of the existing business/brand the site is for (triggers online research for content and branding)
restore_website_snapshot destrutiva Restore a snapshot (or any past code entry) as the website's current code.

Como chamar

POST /api/v1/tools/restore_website_snapshot

Parâmetros

website_code_id integer obrigatório Id of the website code entry to restore
screenshot_website escrita Take a screenshot of any public URL and analyze it with AI. Saves the screenshot as a customer file and returns the analysis + public image URL. Optionally emails the screenshot.

Como chamar

POST /api/v1/tools/screenshot_website

Parâmetros

url string obrigatório Public URL to capture
prompt string obrigatório Prompt/instructions for the AI analysis
viewport_width integer opcional padrão 1366 Viewport width in px (default 1366)
viewport_height integer opcional padrão 768 Viewport height in px (default 768)
send_to_email string opcional Optional email address to send the screenshot to
screenshot_file_name string opcional Optional one-word file name for the screenshot
set_website_settings escrita Update a website's settings. Pass only the fields you want to change.

Como chamar

POST /api/v1/tools/set_website_settings

Parâmetros

website_id integer obrigatório Id of the website
title string opcional Website title (max 60 characters)
language_key string opcional Language key, e.g. pt-BR, en-US
restricted boolean opcional Whether the website is restricted behind a login
guidelines string opcional Persistent guidelines for how the agent should work on this website

Páginas de captura

O lado inbound: cria páginas de captura, altera, lista e arquiva.

4 endpoints
archive_lead_capture_page destrutiva Archive (remove) a lead-capture page.

Como chamar

POST /api/v1/tools/archive_lead_capture_page

Parâmetros

lead_capture_page_id integer obrigatório Id of the lead-capture page
change_lead_capture_page escrita Request a change to a lead-capture page. The change is queued and rendered in the background — this returns immediately with a code id.

Como chamar

POST /api/v1/tools/change_lead_capture_page

Parâmetros

lead_capture_page_id integer obrigatório Id of the lead-capture page
prompt string obrigatório Prompt describing the desired change
create_lead_capture_page escrita Create a lead-capture page. Generation runs in the background — this returns immediately with an id; poll list_lead_capture_pages for the finished URL.

Como chamar

POST /api/v1/tools/create_lead_capture_page

Parâmetros

description string obrigatório Concise but complete description: what info to capture, target audience, the offer/value proposition, and any design preferences
language string obrigatório Language code in xx-xx form, e.g. pt-br, en-us
list_lead_capture_pages leitura List all of the customer's lead-capture pages with their generation status and URL.

Como chamar

POST /api/v1/tools/list_lead_capture_pages GET /api/v1/call/list_lead_capture_pages

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

Mídia

Gera imagens, desenhos e vídeos, edita um vídeo e lê tudo que já foi gerado.

10 endpoints
create_video escrita Generate a short AI video from a text prompt and an optional first-frame reference image. Renders in the background — this returns immediately with an id; poll list_videos for the finished video_url.

Como chamar

POST /api/v1/tools/create_video

Parâmetros

prompt string obrigatório The video prompt
model string opcional Engine: SeedancePro, SeedanceProFast (default), Grok
reference_image_url string opcional Optional first-frame image URL (absolute https). The video animates from this image.
duration integer opcional Duration in seconds (clamped per engine)
aspect_ratio string opcional Aspect ratio, e.g. 16:9, 9:16, 1:1, 4:3
resolution string opcional Resolution: 480p, 720p, or 1080p
edit_video escrita Generate a new video that iterates on a previously generated one. When no reference_image_url is given, the first-frame strategy decides how the starting frame is produced.

Como chamar

POST /api/v1/tools/edit_video

Parâmetros

video_id integer obrigatório Id of the previously generated video to iterate on
prompt string obrigatório The new video prompt
model string opcional Engine: SeedancePro, SeedanceProFast (default), Grok
reference_image_url string opcional Optional new first-frame image URL (absolute https). Overrides the strategy.
first_frame_strategy string opcional How to handle the first frame: KeepPreviousFirstFrame (default), EditPreviousFirstFrame, GenerateBrandNewFirstFrame
duration integer opcional Duration in seconds (clamped per engine)
aspect_ratio string opcional Aspect ratio, e.g. 16:9, 9:16, 1:1, 4:3
resolution string opcional Resolution: 480p, 720p, or 1080p
generate_drawing escrita Generate a drawing (shapes, wireframes, page layouts, diagrams, tables, charts, grids, vector shapes, maps). Runs in the background — this returns immediately with an id; poll list_drawings for the finished image_url.

Como chamar

POST /api/v1/tools/generate_drawing

Parâmetros

prompt string obrigatório Description of the drawing to generate
caption string opcional Optional caption to accompany the delivered image
reference_image_url string opcional Optional absolute https URL of a reference image to send with the prompt
drawing_id integer opcional Optional id of an existing drawing to edit/iterate on
generate_image escrita Generate an image from a text prompt (or edit existing images by passing reference URLs). Generation runs in the background — this returns immediately with an id; poll list_images for the finished image_url.

Como chamar

POST /api/v1/tools/generate_image

Parâmetros

prompt string obrigatório Prompt describing the image to generate
aspect_ratio string opcional Image format: Square (1:1), Landscape (wider), or Portrait (taller). Default Square.
transparent boolean opcional padrão false Transparent background (default false)
reference_image_urls string opcional Comma-separated absolute https URLs of reference images to send with the prompt
profile string opcional Optimization profile: None, SocialMediaInstagramPostFeed, SocialMediaInstagramPostStories. Default None.
model string opcional Generation model: OpenAI (default), BytePlus. Don't change unless the user asks.
get_drawing leitura Get one generated drawing by id — the poll target for generate_drawing. Shows the generation status and, once finished, the image_url.

Como chamar

POST /api/v1/tools/get_drawing GET /api/v1/call/get_drawing

Parâmetros

drawing_id integer obrigatório The drawing_id returned by generate_drawing
get_image leitura Get one generated image by id — the poll target for generate_image. Shows the generation status and, once finished, the image_url.

Como chamar

POST /api/v1/tools/get_image GET /api/v1/call/get_image

Parâmetros

image_id integer obrigatório The image_generation_id returned by generate_image
get_video leitura Get one generated video by id — the poll target for create_video/edit_video (list_videos only shows FINISHED videos, so poll this for in-progress ones). is_finished=true with a video_url means done; is_finished=true without a URL means the render failed.

Como chamar

POST /api/v1/tools/get_video GET /api/v1/call/get_video

Parâmetros

video_id integer obrigatório The video_id returned by create_video or edit_video
list_drawings leitura List generated drawings (newest first, paginated). Includes each drawing's generation status and, once finished, its image_url.

Como chamar

POST /api/v1/tools/list_drawings GET /api/v1/call/list_drawings

Parâmetros

page integer opcional padrão 1 Page number (1 = first page)
page_size integer opcional padrão 10 Page size (default 10, max 50)
list_images leitura List generated images (newest first, paginated). Includes each image's generation status and, once finished, its image_url.

Como chamar

POST /api/v1/tools/list_images GET /api/v1/call/list_images

Parâmetros

page integer opcional padrão 1 Page number (1 = first page)
page_size integer opcional padrão 10 Page size (default 10, max 50)
list_videos leitura List previously generated videos (newest first, paginated). Only successfully finished videos with a URL are returned.

Como chamar

POST /api/v1/tools/list_videos GET /api/v1/call/list_videos

Parâmetros

page integer opcional padrão 1 Page number (1 = first page)
page_size integer opcional padrão 10 Page size (default 10, max 50)

Pesquisa online

Agenda uma pesquisa na web aberta e lê o resultado quando fica pronta.

3 endpoints
list_online_searches leitura List the customer's most recent online searches (up to 10, newest first) with their status.

Como chamar

POST /api/v1/tools/list_online_searches GET /api/v1/call/list_online_searches

Parâmetros

Este endpoint não recebe parâmetros — faça o POST sem corpo.

Suporte

A linha direta com o time da eesier — abre um chamado e lê os que já estão abertos.

2 endpoints
create_support_request escrita Open a direct line to the Blue Button support team. This is YOU, the connected agent, talking to the support and engineering team directly — use it to ask a question or report an issue on your own initiative in the background (the end user is NOT notified), or when the user explicitly asks you to contact support. Specify the type (technical, sales, human, or question) and severity (low/medium/high/critical). The team's reply comes back to you — read it later with list_support_requests.

Como chamar

POST /api/v1/tools/create_support_request

Parâmetros

message string obrigatório What you want to ask or report to the Blue Button team
type string obrigatório Request type: 'technical' (product/technical issue), 'sales' (commercial, billing, plan — the customer wants a sales rep to reach out), 'human' (the customer asks for a human contact, no specific reason), or 'question' (a simple information request you cannot answer yourself)
severity string obrigatório How urgent it is: 'low', 'medium', 'high', or 'critical'
list_support_requests leitura List the customer's support requests — your thread with the Blue Button team — with each request's status, type, severity, and the team's answer (null until they reply). Filter by status: pending, answered, closed, or all (default all).

Como chamar

POST /api/v1/tools/list_support_requests GET /api/v1/call/list_support_requests

Parâmetros

status string opcional padrão all Status filter: pending, answered, closed, or all (default all)

Incidentes

Lê os incidentes da plataforma que afetam esta conta.

1 endpoints
list_incidents leitura Lists platform incidents (outages / degradations / instabilities) reported by the Blue Button team, each with its public update timeline. Returns ongoing (active) incidents and recently resolved past ones. Call this when the user asks whether the platform is having problems, or when tool calls are failing unexpectedly — an active incident usually explains the failures.

Como chamar

POST /api/v1/tools/list_incidents GET /api/v1/call/list_incidents

Parâmetros

scope string opcional Which incidents to return: 'active' (ongoing only), 'past' (resolved only) or 'all' (default)
limit integer opcional Max past incidents to return (default 10, max 50)

Perguntas frequentes

Isso é um produto diferente do servidor MCP?
Não. É o mesmo servidor e as mesmas ferramentas, alcançadas por HTTP puro em vez do protocolo MCP. As chamadas caem no mesmo código, então resultados, limites e registro são idênticos.
Preciso de um agente de IA para usar?
Não. É exatamente esse o propósito desta superfície. Um script de shell, um cron, um passo de n8n ou Zapier, ou o seu próprio backend chamam com nada além de curl.
Posso usar REST e MCP ao mesmo tempo?
Sim, com o mesmo token. Seu agente pode manter uma sessão MCP enquanto o seu backend faz POST nos endpoints REST; os dois escrevem na mesma conta.
Por que minha chamada voltou 200 com um erro dentro?
Porque a ferramenta rodou e respondeu. O status diz que a requisição foi aceita; o corpo diz o que aconteceu. Sempre leia o corpo.
Existe limite de requisições?
Não há limite por endpoint. Algumas ferramentas de escrita exigem plano ativo e dizem isso em uma mensagem clara, em vez de falhar em silêncio.
Como acompanho as ferramentas novas?
GET /api/v1/tools é gerado pelo servidor em execução, então ferramenta nova aparece assim que entra no ar. Esta página vem do mesmo registro.

pegue um token em 2 minutos

Fale com o eesier no WhatsApp e peça o MCP — o mesmo token autentica a API REST.

Falar com o eesier

sem cadastro :)

Contratar