# Mindhunters API Documentation ## Docs - [Introduction](https://developers.mindhunters.ai/introduction.md): Welcome to Mindhunters API Documentation - Build powerful AI-driven voice and text conversations - [Authentication](https://developers.mindhunters.ai/authentication.md): Learn how to authenticate your API requests with Mindhunters - [Quickstart](https://developers.mindhunters.ai/quickstart.md): Get started with the Mindhunters API in minutes - make your first call - [Services Overview](https://developers.mindhunters.ai/guides/services/overview.md): Overview of Mindhunters platform services and capabilities - [AI Voice Agents](https://developers.mindhunters.ai/guides/services/voice-agents.md): Create and manage intelligent AI voice agents for automated phone conversations - [WhatsApp Messaging](https://developers.mindhunters.ai/guides/services/whatsapp.md): Send automated WhatsApp messages using pre-approved templates - [Campaign Management](https://developers.mindhunters.ai/guides/services/campaigns.md): Create and manage multi-channel communication campaigns - [Contact Management](https://developers.mindhunters.ai/guides/services/contacts.md): Organize and manage your contact database with custom fields and segmentation - [Webhooks](https://developers.mindhunters.ai/webhooks.md): Receive real-time notifications about events in your Mindhunters workspace - [Monitoring & Logs](https://developers.mindhunters.ai/monitoring.md): Track your API requests, responses, and webhook deliveries in real-time - [Error Handling](https://developers.mindhunters.ai/errors.md): Understand error codes, responses, and troubleshooting strategies for the Mindhunters API - [Introduction](https://developers.mindhunters.ai/api-reference/introduction.md): Complete API reference for the Mindhunters platform - [List agents](https://developers.mindhunters.ai/api-reference/agents/list-agents.md): Returns paginated agents with their configured settings, knowledge, rules, channels, and related resources. Use this endpoint to browse agents, filter by lifecycle status, or search by name, compa… - [Create an agent](https://developers.mindhunters.ai/api-reference/agents/create-an-agent.md): Creates a new AI agent. Provide as much of the structured shape as you can in one call — a fully-formed agent at creation time has dramatically better runtime behavior than a thin agent that gets… - [Get one agent](https://developers.mindhunters.ai/api-reference/agents/get-one-agent.md): Returns the full API representation of one agent, including profile fields, voice/text settings, guidelines, notes, procedures, training, schedules, routing rules, guard rules, intents, webhooks,… - [Replace/sync an agent](https://developers.mindhunters.ai/api-reference/agents/replacesync-an-agent.md): Synchronizes the agent with the supplied payload. This has the same behavior as PATCH: scalar fields are updated, settings are merged, and included collection sections replace that section for the… - [Soft-delete an agent](https://developers.mindhunters.ai/api-reference/agents/soft-delete-an-agent.md): Soft-deletes the agent. Child records (notes, guidelines, training, intents, etc.) remain in the database for recoverability but are no longer reachable via the API. Provider-side resources (Telny… - [Update an agent](https://developers.mindhunters.ai/api-reference/agents/update-an-agent.md): Updates core agent fields, voice/text settings, and any included collection sections. Use PATCH for partial changes to the agent profile or settings. If a collection section such as notes, guideli… - [Replace agent guidelines](https://developers.mindhunters.ai/api-reference/agents/replace-agent-guidelines.md): Replaces all guidelines for the agent. Guidelines are short behavioral rules that shape how the agent should respond. Use this endpoint for bulk edits or external syncs; use POST /guidelines to ap… - [Add a single guideline](https://developers.mindhunters.ai/api-reference/agents/add-a-single-guideline.md): Adds one guideline to the agent without changing existing guidelines. Use guidelines for concise behavior rules such as tone, compliance boundaries, or things the agent should always or never do. - [Replace agent notes](https://developers.mindhunters.ai/api-reference/agents/replace-agent-notes.md): Replaces all notes for the agent. Notes are reference facts the agent can use during conversations, such as product details, company policies, or context that does not need step-by-step structure.… - [Add a single note](https://developers.mindhunters.ai/api-reference/agents/add-a-single-note.md): Adds one note to the agent without changing existing notes. Use notes for factual reference material the agent should remember during conversations, such as policy snippets, product facts, or busi… - [Replace agent procedures](https://developers.mindhunters.ai/api-reference/agents/replace-agent-procedures.md): Replaces all procedures for the agent, including their ordered steps. Procedures are multi-step instructions the agent can follow during conversations. Use this endpoint for complete procedure syn… - [Add a single procedure (with optional steps)](https://developers.mindhunters.ai/api-reference/agents/add-a-single-procedure-with-optional-steps.md): Adds one procedure to the agent without replacing existing procedures. Use procedures for ordered workflows the agent should follow, such as qualification, troubleshooting, or booking flows. Inclu… - [Replace agent training data](https://developers.mindhunters.ai/api-reference/agents/replace-agent-training-data.md): Replaces all training rows for the agent. Training rows are examples or knowledge snippets that help the agent map customer language to appropriate responses. Use this endpoint for full training i… - [Add a single training data row](https://developers.mindhunters.ai/api-reference/agents/add-a-single-training-data-row.md): Adds one training row to the agent without changing existing training. Use training rows to provide examples, expected responses, or intent-specific reference material that improves runtime answer… - [Replace agent appointment settings and schedule assignments](https://developers.mindhunters.ai/api-reference/agents/replace-agent-appointment-settings-and-schedule-assignments.md): Configures which schedules an agent uses for booking and how the runtime AI should pick between them. Each entry in `schedule_assignments` should include both `name` (a short label the AI sees, e.… - [Delete a single note](https://developers.mindhunters.ai/api-reference/agents/delete-a-single-note.md): Deletes one note from the agent. Use this when a reference fact is outdated or should no longer be available to the agent. Other notes are not changed. - [Update a single note](https://developers.mindhunters.ai/api-reference/agents/update-a-single-note.md): Updates one note on the agent. Use this for small edits to reference facts without replacing the full notes collection. Only supplied fields are changed. - [Delete a single guideline](https://developers.mindhunters.ai/api-reference/agents/delete-a-single-guideline.md): Deletes one guideline from the agent. Use this when a behavior rule no longer applies. Other guidelines are not changed. - [Update a single guideline](https://developers.mindhunters.ai/api-reference/agents/update-a-single-guideline.md): Updates one guideline on the agent. Use this to adjust a behavior rule or its ordering without replacing the full guideline list. Only supplied fields are changed. - [Delete a single training row](https://developers.mindhunters.ai/api-reference/agents/delete-a-single-training-row.md): Deletes one training row from the agent. Use this when an example or response is outdated, wrong, or no longer relevant. Other training rows are not changed. - [Update a single training row](https://developers.mindhunters.ai/api-reference/agents/update-a-single-training-row.md): Updates one training row on the agent. Use this to refine an example, intent label, or response without replacing the full training set. Only supplied fields are changed. - [Delete a single procedure (and its steps)](https://developers.mindhunters.ai/api-reference/agents/delete-a-single-procedure-and-its-steps.md): Deletes one procedure and its steps from the agent. Use this when the workflow is obsolete or should no longer guide conversations. Other procedures remain unchanged. - [Update a single procedure (and replace its steps if provided)](https://developers.mindhunters.ai/api-reference/agents/update-a-single-procedure-and-replace-its-steps-if-provided.md): Updates one procedure on the agent. Use this to rename a workflow, revise its description, or replace the ordered steps that guide the agent during conversations. If a steps array is included, it… - [Phone numbers owned by an agent](https://developers.mindhunters.ai/api-reference/agents/phone-numbers-owned-by-an-agent.md): Returns the full phone-number records bound to this agent on any channel (call, SMS, WhatsApp). Same shape as /api/v1/phone-numbers, scoped to the agent. Only includes numbers in your owned invent… - [Channels and phone numbers for an agent](https://developers.mindhunters.ai/api-reference/agents/channels-and-phone-numbers-for-an-agent.md): Lists every phone number this agent answers on, with the channels (call, SMS, WhatsApp) the agent serves on each number. The outer `channels` array is the union across all of the agent's numbers —… - [Provision call channel for an agent](https://developers.mindhunters.ai/api-reference/agents/provision-call-channel-for-an-agent.md): Connects a purchased phone number to the agent's call channel and performs the required telephony provisioning. Use this after buying a number and before placing or receiving calls with the agent.… - [List webhooks for an agent](https://developers.mindhunters.ai/api-reference/agents/list-webhooks-for-an-agent.md): Returns webhooks configured for one agent. Use this to see which event notifications are delivered for the agent and whether each webhook is active. Each agent can have up to 5 webhooks. - [Add a webhook to this agent](https://developers.mindhunters.ai/api-reference/agents/add-a-webhook-to-this-agent.md): Creates a webhook subscription for an agent. Use this to receive event notifications such as conversation updates, evaluations, or intent calls. Provide the destination URL and event list. Returns… - [Get one webhook](https://developers.mindhunters.ai/api-reference/agents/get-one-webhook.md): Returns one agent webhook by UUID, including URL, subscribed events, active state, and whether a signing secret exists. The secret value is never returned. - [Delete a webhook](https://developers.mindhunters.ai/api-reference/agents/delete-a-webhook.md): Deletes one webhook from the agent. Use this to stop sending event notifications to that destination. Other webhooks on the same agent are not changed. - [Update a webhook](https://developers.mindhunters.ai/api-reference/agents/update-a-webhook.md): Updates one agent webhook. Use this to change the destination URL, event subscriptions, signing secret, or active state. Only supplied fields are changed; sending an empty secret clears the stored… - [List intents for an agent](https://developers.mindhunters.ai/api-reference/agents/list-intents-for-an-agent.md): Returns all intents configured for an agent. Intents define actions or integrations the agent can trigger when a conversation matches a goal, such as booking an appointment, collecting details, or… - [Create an intent](https://developers.mindhunters.ai/api-reference/agents/create-an-intent.md): Creates a custom intent for an agent. Use intents when the agent should recognize a user goal and optionally collect parameters or call a webhook. Provide a clear description of when the intent sh… - [Get one intent](https://developers.mindhunters.ai/api-reference/agents/get-one-intent.md): Returns one intent with its trigger description, confidence threshold, webhook configuration, and parameters. Use this before updating an intent or inspecting the tool schema the agent can call. - [Delete an intent](https://developers.mindhunters.ai/api-reference/agents/delete-an-intent.md): Deletes a custom intent and its parameters. Use this when an action or integration should no longer be available to the agent. System intents cannot be deleted. - [Update an intent](https://developers.mindhunters.ai/api-reference/agents/update-an-intent.md): Updates a custom intent. Use this to change trigger wording, confidence threshold, webhook target, response handling, or collected parameters. If `parameters` is included, it replaces the full par… - [Replace ALL routing rules for an agent (destructive)](https://developers.mindhunters.ai/api-reference/voice-ivr-&-guards/replace-all-routing-rules-for-an-agent-destructive.md): Wipes every existing routing rule on this agent and inserts the provided list. Use for bulk imports or full re-syncs from an external source. For incremental edits prefer POST/PATCH/DELETE on indi… - [Add ONE routing rule (preserves existing rules)](https://developers.mindhunters.ai/api-reference/voice-ivr-&-guards/add-one-routing-rule-preserves-existing-rules.md): Appends a new routing rule. Existing rules are untouched. If `priority` is omitted, it defaults to (max existing priority + 1) so the new rule is evaluated last. Returns the agent with the full up… - [Replace ALL guard rules for an agent (destructive)](https://developers.mindhunters.ai/api-reference/voice-ivr-&-guards/replace-all-guard-rules-for-an-agent-destructive.md): Wipes every existing guard rule on this agent and inserts the provided list. Guards always take precedence over routing rules at runtime — when a guard fires, the conversation either ends or trans… - [Add ONE guard rule (preserves existing rules)](https://developers.mindhunters.ai/api-reference/voice-ivr-&-guards/add-one-guard-rule-preserves-existing-rules.md): Appends a guard rule. Existing guards are untouched. `when_condition` and `then_action` are required. If `then_action=forward`, also provide `destination_type` + `destination` (or `destination_age… - [Delete ONE routing rule (other rules untouched)](https://developers.mindhunters.ai/api-reference/voice-ivr-&-guards/delete-one-routing-rule-other-rules-untouched.md): Permanent removal. To temporarily disable instead of delete, PATCH the rule with `is_active: false` — the rule stays configured but does not fire. Returns the agent with the routing_rules list min… - [Partially update ONE routing rule](https://developers.mindhunters.ai/api-reference/voice-ivr-&-guards/partially-update-one-routing-rule.md): Updates only the fields you send. Other fields and other rules are untouched. Common uses: toggle `is_active` to disable a rule without deleting it; bump `priority` to reorder; tweak `voice_respon… - [Delete ONE guard rule (other guards untouched)](https://developers.mindhunters.ai/api-reference/voice-ivr-&-guards/delete-one-guard-rule-other-guards-untouched.md): Permanent removal. Removing a compliance/safety guard means the agent will no longer auto-handle that situation; verify you have a replacement guard or routing rule before deleting. To pause witho… - [Partially update ONE guard rule](https://developers.mindhunters.ai/api-reference/voice-ivr-&-guards/partially-update-one-guard-rule.md): Updates only the fields you send. Common uses: toggle `is_active` to disable a guard temporarily; add a channel to `selected_channels`; tighten `when_condition` text after testing. Switching `then… - [Assign an SMS phone number to an agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/assign-an-sms-phone-number-to-an-agent.md): Assigns one owned phone number to the agent for SMS conversations. Use this after purchasing or importing an SMS-capable number and before sending SMS tasks or receiving SMS replies with this agen… - [Unbind the SMS channel from this agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/unbind-the-sms-channel-from-this-agent.md): Removes the agent's SMS channel binding. Use this when the agent should stop handling SMS on its current number. The phone number stays in your account and can be assigned to another agent later. - [Assign a WhatsApp number to an agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/assign-a-whatsapp-number-to-an-agent.md): Assigns a connected WhatsApp Business number to the agent for WhatsApp messaging. Use this before sending WhatsApp template tasks or letting the agent answer WhatsApp conversations. The WhatsApp n… - [Assign a WhatsApp Calling number to an agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/assign-a-whatsapp-calling-number-to-an-agent.md): Assigns a WhatsApp Business number to the agent for WhatsApp Calling. Use this when the agent should place or receive WhatsApp voice calls through an already connected number. Calling must be enab… - [Unbind the WhatsApp channel from this agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/unbind-the-whatsapp-channel-from-this-agent.md): Removes the agent's WhatsApp messaging binding. Use this when the agent should no longer answer or send WhatsApp messages through that number. The WhatsApp number stays connected to your account. - [Unbind WhatsApp Calling from this agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/unbind-whatsapp-calling-from-this-agent.md): Removes the agent's WhatsApp Calling binding while keeping WhatsApp messaging unchanged. Use this when the number should still send and receive WhatsApp messages but should no longer route WhatsAp… - [Assign an Instagram account to an agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/assign-an-instagram-account-to-an-agent.md): Assigns a connected Instagram business account to the agent. Use this before routing Instagram direct messages to the agent. The Instagram account must already be connected to your account. - [Unbind the Instagram channel from this agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/unbind-the-instagram-channel-from-this-agent.md): Removes the agent's Instagram binding. Use this when Instagram messages should stop routing to this agent. The Instagram account stays connected to your account and can be assigned again later. - [Assign a Facebook page (Messenger) to an agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/assign-a-facebook-page-messenger-to-an-agent.md): Assigns a connected Facebook page to the agent for Messenger conversations. Use this before routing Messenger messages to the agent. The page must already be connected to your account. - [Unbind the Messenger channel from this agent](https://developers.mindhunters.ai/api-reference/agent-channel-bindings/unbind-the-messenger-channel-from-this-agent.md): Removes the agent's Messenger binding. Use this when Facebook page messages should stop routing to this agent. The page stays connected to your account and can be assigned again later. - [Appointment lifecycle metrics (event-in-period semantics)](https://developers.mindhunters.ai/api-reference/analytics/appointment-lifecycle-metrics-event-in-period-semantics.md): Counters reflect events whose state transitioned during [from, to). created uses appointments.created_at; scheduled uses start_time; completed/cancelled use updated_at on rows in that status. by_s… - [Aggregated call metrics for a time window (authoritative call count)](https://developers.mindhunters.ai/api-reference/analytics/aggregated-call-metrics-for-a-time-window-authoritative-call-count.md): Returns volume, direction split, AI vs human handling, durations (seconds), outcomes, and cost for calls within [from, to). This endpoint is the authoritative source for call counts; /api/v1/analy… - [Per-channel conversation rollup](https://developers.mindhunters.ai/api-reference/analytics/per-channel-conversation-rollup.md): Returns one entry per active channel with totals, direction split, durations (call-bearing channels only), and short/long buckets. duration_sec is null for non-call channels. For call-bearing chan… - [Distribution of AI evaluations across sentiment, emotion, satisfaction, outcome, escalation, and knowledge gap](https://developers.mindhunters.ai/api-reference/analytics/distribution-of-ai-evaluations-across-sentiment-emotion-satisfaction-outcome-escalation-and-knowledge-gap.md): Returns aggregate evaluation distributions for sessions in a time range. Use this endpoint to understand conversation quality trends across sentiment, emotions, satisfaction score, outcome, human… - [Intent breakdown with outcome and per-channel distribution](https://developers.mindhunters.ai/api-reference/analytics/intent-breakdown-with-outcome-and-per-channel-distribution.md): Returns one entry per detected intent, sorted by count desc. Each entry carries success/fail outcome counts, average confidence, and channel breakdown. - [Cursor-paginated raw message export](https://developers.mindhunters.ai/api-reference/analytics/cursor-paginated-raw-message-export.md): Returns one row per message in [from, to). Subject to workspace policy: when ANALYTICS_MESSAGES_EXPORT=disabled the endpoint returns 403; when 'masked' the content field is replaced with '***'. So… - [Cross-channel conversation-session metrics](https://developers.mindhunters.ai/api-reference/analytics/cross-channel-conversation-session-metrics.md): Returns volume, voice/text split, completion/timeout/active breakdowns, evaluation coverage, average duration, messages per session, and p50/p95 latency (voice only). - [List analyzer configurations](https://developers.mindhunters.ai/api-reference/contact-analyzers/list-analyzer-configurations.md): Returns analyzer settings. An analyzer tells the AI what to look for in a conversation and what to do when a value is found. The `internal_id` prefix shows the analyzer type: `b_` means a built-in… - [Get a single analyzer](https://developers.mindhunters.ai/api-reference/contact-analyzers/get-a-single-analyzer.md): Returns one analyzer configuration by internal_id. Use this to inspect what the AI extracts, where the extracted value is applied, and whether the value is ignored, saved, or routed through approv… - [Update an analyzer configuration](https://developers.mindhunters.ai/api-reference/contact-analyzers/update-an-analyzer-configuration.md): Updates how one analyzer behaves. `update_behavior` controls what happens when the AI finds a value: `dont_update` ignores it, `update_if_empty` saves only if the field is empty, `ask_approval_if_… - [Bulk update analyzers](https://developers.mindhunters.ai/api-reference/contact-analyzers/bulk-update-analyzers.md): Updates multiple analyzers in one request. Each item uses `internal_id` to choose the analyzer and may include `update_behavior`, `analysis_goals`, and `example_values`. The request is all-or-noth… - [Initiate a new call](https://developers.mindhunters.ai/api-reference/call/initiate-a-new-call.md): Initiates a call if the specified agent exists, has valid call settings, and the participant's phone number is provided. The call can include a custom greeting message, a prompt to guide the agent… - [Get paginated list of calls](https://developers.mindhunters.ai/api-reference/call/get-paginated-list-of-calls.md): Returns call records with pagination and optional filters. Use this endpoint to monitor inbound and outbound calls, review call status and duration, find calls for a contact or agent, and locate t… - [Get call details by UUID](https://developers.mindhunters.ai/api-reference/call/get-call-details-by-uuid.md): Returns one call by UUID with its status, direction, participant details, agent/contact/campaign context, timing, recording or live-monitoring URLs when available, and provider identifiers. Use th… - [Send WhatsApp template message](https://developers.mindhunters.ai/api-reference/whatsapp/send-whatsapp-template-message.md): Sends a WhatsApp template message to a specified phone number using an agent's configured WhatsApp Business API. The template must be pre-approved by WhatsApp and the agent must have WhatsApp chan… - [Send an SMS message](https://developers.mindhunters.ai/api-reference/sms/send-an-sms-message.md): Sends an SMS message to a phone number using the specified agent's SMS configuration. The agent must have an SMS channel configured with a valid phone number and messaging profile. - [Get all appointments (calendar)](https://developers.mindhunters.ai/api-reference/appointments/get-all-appointments-calendar.md): Returns appointments ordered by start time. Use filters to build calendar views by schedule, contact, status, or date range. Each result includes schedule and contact details when available. - [Create a new appointment](https://developers.mindhunters.ai/api-reference/appointments/create-a-new-appointment.md): Creates an appointment on a schedule. Use this when booking a time slot directly through the API. Provide schedule_uuid, title, start_time, and end_time; optionally attach a contact, status, notes… - [Get a specific appointment](https://developers.mindhunters.ai/api-reference/appointments/get-a-specific-appointment.md): Returns full details for one appointment, including schedule, contact, status, notes, custom answers, and timestamps. Use this to inspect a booking before editing or changing its status. - [Update an appointment](https://developers.mindhunters.ai/api-reference/appointments/update-an-appointment.md): Updates an existing appointment. Use this to reschedule, change title or notes, update custom answers, or change status. If end_time is supplied, it must be after start_time. - [Delete an appointment](https://developers.mindhunters.ai/api-reference/appointments/delete-an-appointment.md): Deletes an appointment by UUID. Use this when a booked time slot should be removed from the calendar. If you only need to change approval state, use POST /api/v1/appointments/{uuid}/status instead. - [Update appointment status](https://developers.mindhunters.ai/api-reference/appointments/update-appointment-status.md): Changes only the appointment status. Use this to approve, move back to pending, or reject an appointment without modifying the time, schedule, contact, notes, or custom answers. - [Get list of appointment requests](https://developers.mindhunters.ai/api-reference/appointment-requests/get-list-of-appointment-requests.md): Returns appointment requests ordered for review and scheduling workflows. Use this endpoint to find pending booking requests, filter requests by schedule or date range, and decide which requests s… - [Create a new appointment request](https://developers.mindhunters.ai/api-reference/appointment-requests/create-a-new-appointment-request.md): Creates a proposed booking for a schedule. Use this when the requested time should be reviewed before becoming a confirmed appointment. Provide an existing contact_uuid, or provide contact details… - [Get a specific appointment request](https://developers.mindhunters.ai/api-reference/appointment-requests/get-a-specific-appointment-request.md): Returns one appointment request by UUID, including requested time, contact details, schedule reference, status, and notes. Use this before approving, rejecting, cancelling, or displaying the reque… - [Cancel an appointment request](https://developers.mindhunters.ai/api-reference/appointment-requests/cancel-an-appointment-request.md): Cancels a pending appointment request without creating an appointment. Use this when the requester withdraws the booking or the proposed time should no longer be considered. Only requests with pen… - [Get available time slots for a schedule](https://developers.mindhunters.ai/api-reference/appointment-requests/get-available-time-slots-for-a-schedule.md): Returns available time slots for one schedule on a specific date. Use this before creating an appointment request so callers can offer valid start times based on the schedule's booking rules and e… - [Get all availability types](https://developers.mindhunters.ai/api-reference/availability-types/get-all-availability-types.md): Returns every availability type in the workspace, ordered by name. Use this endpoint before creating schedules so you can choose the availability_type_uuid that controls duration, buffers, booking… - [Create a new availability type](https://developers.mindhunters.ai/api-reference/availability-types/create-a-new-availability-type.md): Creates a reusable availability policy for schedules. Use it when multiple schedules should share the same booking duration, buffer time, approval requirement, working-hours rules, and advance-boo… - [Get a specific availability type](https://developers.mindhunters.ai/api-reference/availability-types/get-a-specific-availability-type.md): Returns one availability type by UUID, including booking duration, buffers, working-hours configuration, approval behavior, and resource limits. Use this before editing a schedule or before updati… - [Update an availability type](https://developers.mindhunters.ai/api-reference/availability-types/update-an-availability-type.md): Updates an existing availability type. Use this to change shared booking rules for schedules that depend on this type, such as duration, buffer time, required approval, double-booking behavior, or… - [Delete an availability type](https://developers.mindhunters.ai/api-reference/availability-types/delete-an-availability-type.md): Deletes an availability type by UUID. Use this only after confirming it is no longer needed by schedules. Once deleted, it is no longer available for new schedule creation. - [Make the agent say a message in the live call](https://developers.mindhunters.ai/api-reference/call-actions/make-the-agent-say-a-message-in-the-live-call.md): Makes the active call agent speak a text-to-speech message immediately. Use this for live operator interventions such as a short instruction, clarification, or closing line. Set end_call_after_spo… - [Forward (warm-transfer) the live call to another phone number](https://developers.mindhunters.ai/api-reference/call-actions/forward-warm-transfer-the-live-call-to-another-phone-number.md): Transfers the active call to another E.164 phone number. Use this when the caller needs a human representative, department, or external destination. The agent announces the transfer before the cal… - [Hang up the live call (the agent speaks a goodbye message, then ends)](https://developers.mindhunters.ai/api-reference/call-actions/hang-up-the-live-call-the-agent-speaks-a-goodbye-message-then-ends.md): Ends the active call after the agent speaks a closing message. Use this for manual live-call termination or when your system has decided the conversation is complete. If no message is provided, th… - [Mute the agent in the live call](https://developers.mindhunters.ai/api-reference/call-actions/mute-the-agent-in-the-live-call.md): Temporarily stops the agent from speaking on the active call. Use this when a human operator needs to take over, listen privately, or prevent the agent from responding while another action is happ… - [Unmute the agent in the live call](https://developers.mindhunters.ai/api-reference/call-actions/unmute-the-agent-in-the-live-call.md): Allows the muted agent to speak again on the active call. Use this after a temporary human intervention or private listening period when the agent should resume normal conversation handling. - [Get paginated list of campaigns](https://developers.mindhunters.ai/api-reference/campaigns/get-paginated-list-of-campaigns.md): Returns campaigns ordered by creation date with optional filters for status and search text. Use this endpoint to monitor outreach programs, find draft campaigns that still need pools or rules, an… - [Create a new campaign](https://developers.mindhunters.ai/api-reference/campaigns/create-a-new-campaign.md): Creates the campaign shell: name, channel type, agent, status, date window, and optional message settings. Use this when you want fine-grained control over setup. After creation, attach a rule and… - [Get campaign details](https://developers.mindhunters.ai/api-reference/campaigns/get-campaign-details.md): Returns one campaign by UUID, including campaign configuration, agent reference, status, date window, attached rule and related campaign data when available. Use this before updating, publishing,… - [Update a campaign](https://developers.mindhunters.ai/api-reference/campaigns/update-a-campaign.md): Updates campaign metadata and configuration before or during its lifecycle. Use this to rename a campaign, change dates, adjust status, update the assigned agent, or modify channel-specific fields… - [Delete a campaign](https://developers.mindhunters.ai/api-reference/campaigns/delete-a-campaign.md): Soft-deletes a campaign by UUID. Use this when the campaign should no longer appear in normal campaign lists. Historical records remain available, and already-created tasks are not automatically r… - [Publish (activate) a campaign — schedule tasks and start processing](https://developers.mindhunters.ai/api-reference/campaigns/publish-activate-a-campaign-—-schedule-tasks-and-start-processing.md): Transitions the campaign from Active/Draft/Paused/Failed to 'In Process' AND creates tasks for every pending ContactPoolItem in attached pools. The status change and task creation happen inside a… - [Assign or replace the rule attached to a campaign](https://developers.mindhunters.ai/api-reference/campaigns/assign-or-replace-the-rule-attached-to-a-campaign.md): Attaches a rule (cadence, retry interval, working hours, escalation) to the campaign. The underlying schema is many-to-many but every code path treats it as one-rule-per-campaign, so this endpoint… - [Detach the rule from a campaign](https://developers.mindhunters.ai/api-reference/campaigns/detach-the-rule-from-a-campaign.md): Removes the rule association from the campaign. The rule itself is NOT deleted — it remains available to attach to other campaigns. Without a rule, future tasks fall back to system defaults (max 3… - [Attach one or more pools to a campaign](https://developers.mindhunters.ai/api-reference/campaigns/attach-one-or-more-pools-to-a-campaign.md): Pools are additive (not replace). UUIDs already attached are silently skipped, UUIDs that don't resolve to a pool are returned in pool_uuids_not_found. If the campaign status is 'In Process', task… - [Detach a pool from a campaign](https://developers.mindhunters.ai/api-reference/campaigns/detach-a-pool-from-a-campaign.md): Removes the pool↔campaign association. Side effect: cancels any scheduled/queued/pending tasks created for THIS specific pool in THIS specific campaign. Cancellation is keyed on contact_pool_item_… - [Get paginated list of contacts](https://developers.mindhunters.ai/api-reference/contacts/get-paginated-list-of-contacts.md): Returns a paginated contact list with filters for search, status, contact channel, pipeline stage, campaign, tag, pool, and creation date. Use this endpoint to find contacts before adding them to… - [Create a new contact](https://developers.mindhunters.ai/api-reference/contacts/create-a-new-contact.md): Creates a contact record that agents and campaigns can use for conversations, calls, SMS, WhatsApp, and segmentation. Provide profile fields such as name, email, phone number, country code, timezo… - [Get contact details](https://developers.mindhunters.ai/api-reference/contacts/get-contact-details.md): Returns one contact with base fields, custom fields, tags, and timestamps. Use this before updating a contact, assigning tags, changing pipeline stage, or inspecting the contact profile for outrea… - [Update a contact](https://developers.mindhunters.ai/api-reference/contacts/update-a-contact.md): Updates base contact fields and custom field values. Use this to correct contact identity, phone/email, timezone, language, preferred channel, or status. Only supplied fields are changed. - [Delete a contact](https://developers.mindhunters.ai/api-reference/contacts/delete-a-contact.md): Soft-deletes a contact by UUID. Use this when the contact should no longer appear in normal contact lists or outreach flows. Existing historical conversations and activity records remain available… - [Assign (or re-assign) a tag to a contact](https://developers.mindhunters.ai/api-reference/contacts/assign-or-re-assign-a-tag-to-a-contact.md): Assigns a tag to a contact. The operation is idempotent: if the tag is already assigned, the contact is left unchanged; if the tag was previously removed, the assignment is restored. - [Remove a tag from a contact](https://developers.mindhunters.ai/api-reference/contacts/remove-a-tag-from-a-contact.md): Removes a tag assignment from a contact without deleting the tag itself. Use this when a contact no longer belongs in a segment, label, or campaign targeting group. - [Assign or change the contact's current pipeline stage](https://developers.mindhunters.ai/api-reference/contacts/assign-or-change-the-contacts-current-pipeline-stage.md): Sets the contact's current pipeline stage. Use this for the first assignment as well as to move the contact to a different stage — both cases are handled by the same endpoint. - [Remove the contact from the pipeline](https://developers.mindhunters.ai/api-reference/contacts/remove-the-contact-from-the-pipeline.md): Clears the contact's current pipeline stage. Use this when the contact should no longer appear in any stage until a new stage is assigned. The contact record and historical activity remain unchang… - [Get paginated list of blacklisted contacts](https://developers.mindhunters.ai/api-reference/contacts/get-paginated-list-of-blacklisted-contacts.md): Returns contacts currently on the blacklist (status=Blacklisted with an active blacklist record). Supports search and pagination. - [Add a contact to the blacklist](https://developers.mindhunters.ai/api-reference/contacts/add-a-contact-to-the-blacklist.md): Marks the contact as Blacklisted and records the blacklist entry. If the contact is already blacklisted, the existing entry is updated. - [Remove a contact from the blacklist](https://developers.mindhunters.ai/api-reference/contacts/remove-a-contact-from-the-blacklist.md): Removes the blacklist entry and restores the contact's status to Active. Idempotent — succeeds even if the contact is not currently blacklisted. - [List pending contact field approvals](https://developers.mindhunters.ai/api-reference/contact-approvals/list-pending-contact-field-approvals.md): Returns paginated AI-suggested contact updates. Use this queue to review values the agent extracted from conversations before applying them to contacts, custom fields, or pipeline stages. Defaults… - [Get a single approval by uuid](https://developers.mindhunters.ai/api-reference/contact-approvals/get-a-single-approval-by-uuid.md): Returns one contact field approval with current value, suggested value, confidence, AI notes, status, reviewer notes, and related contact/conversation identifiers. Use this before approving, rejec… - [Update the suggested value of a pending approval](https://developers.mindhunters.ai/api-reference/contact-approvals/update-the-suggested-value-of-a-pending-approval.md): Edits the suggested value on an approval before it is applied. Use this when the AI found the right field but the suggested value needs correction. Editing resets status to Pending and records a h… - [Soft-delete an approval](https://developers.mindhunters.ai/api-reference/contact-approvals/soft-delete-an-approval.md): Soft-deletes an approval suggestion without applying it to the contact. Use this to remove stale or irrelevant suggestions from the review queue while preserving audit history. - [Approve a pending field update](https://developers.mindhunters.ai/api-reference/contact-approvals/approve-a-pending-field-update.md): Approves a pending AI-suggested contact update and applies it to the target contact, custom field, or pipeline stage. Use this when a suggested value has been reviewed and should become the saved… - [Reject a pending field update](https://developers.mindhunters.ai/api-reference/contact-approvals/reject-a-pending-field-update.md): Rejects a pending AI-suggested contact update and records reviewer notes. Use this when the extracted value should not be applied to the contact, custom field, or pipeline stage. - [Get the history of an approval](https://developers.mindhunters.ai/api-reference/contact-approvals/get-the-history-of-an-approval.md): Returns paginated history for one contact field approval, newest first. Use this to audit approval, rejection, and value-change events, including reviewer notes and the values before and after eac… - [List custom contact fields](https://developers.mindhunters.ai/api-reference/contact-fields/list-custom-contact-fields.md): Returns custom contact fields for the workspace. By default only active fields are returned. Use include=all when syncing field configuration, or include=inactive when reviewing fields that should… - [Create a new custom contact field](https://developers.mindhunters.ai/api-reference/contact-fields/create-a-new-custom-contact-field.md): Generates a unique snake_case `key` from the supplied `name`, appending a numeric suffix if needed. New fields are appended to the end of the list. - [Get a custom contact field by key](https://developers.mindhunters.ai/api-reference/contact-fields/get-a-custom-contact-field-by-key.md): Returns one custom contact field definition by key. Use this before updating the field, validating import payloads, or deciding which custom attributes contacts can store. - [Update a custom contact field (name, is_active, etc.)](https://developers.mindhunters.ai/api-reference/contact-fields/update-a-custom-contact-field-name-is_active-etc.md): Updates only the fields you supply. The `key` is immutable — to use a different identifier, delete this field and create a new one. - [Delete a custom contact field](https://developers.mindhunters.ai/api-reference/contact-fields/delete-a-custom-contact-field.md): Deletes a custom contact field definition by key. Use this when the field should no longer be available on contacts. Existing values for that field are no longer part of the active contact schema. - [List contact settings](https://developers.mindhunters.ai/api-reference/contact-settings/list-contact-settings.md): Returns workspace-level contact settings. Use this to inspect which contact data behaviors are enabled before reading or updating contact records. - [Get a contact setting by key](https://developers.mindhunters.ai/api-reference/contact-settings/get-a-contact-setting-by-key.md): Returns one contact setting by key, including whether it is currently enabled. Use this before toggling a setting or adapting client behavior to workspace policy. - [Enable or disable a contact setting](https://developers.mindhunters.ai/api-reference/contact-settings/enable-or-disable-a-contact-setting.md): Updates one contact setting by key. Use this to enable or disable contact data behavior for the workspace. The request body only needs `is_enabled`. - [Get paginated list of conversations](https://developers.mindhunters.ai/api-reference/conversations/get-paginated-list-of-conversations.md): Returns paginated conversations across voice and text channels. Use filters to find conversations by contact, phone, agent, campaign, task, channel, status, or sort order. Voice conversations may… - [Get conversation details](https://developers.mindhunters.ai/api-reference/conversations/get-conversation-details.md): Returns one conversation with contact, channel, agent, sessions, message context, and voice-call metadata when available. Use this before retrieving messages or session history for the conversatio… - [Get paginated messages of a conversation](https://developers.mindhunters.ai/api-reference/conversations/get-paginated-messages-of-a-conversation.md): Returns paginated messages for one conversation, including AI, human, and contact-authored messages. Use this to display the conversation transcript, audit agent behavior, or retrieve message hist… - [Get paginated list of conversation sessions](https://developers.mindhunters.ai/api-reference/sessions/get-paginated-list-of-conversation-sessions.md): Returns paginated conversation sessions. Sessions group messages or voice activity into reviewable interaction windows. Use filters to find sessions by conversation, contact, agent, campaign, task… - [Get session details](https://developers.mindhunters.ai/api-reference/sessions/get-session-details.md): Returns one conversation session with contact, conversation, agent, campaign/listing/task references, summary fields, timestamps, and evaluation status. Use this before fetching session messages o… - [Get the evaluation of a session](https://developers.mindhunters.ai/api-reference/sessions/get-the-evaluation-of-a-session.md): Returns the evaluation record for one conversation session when analysis exists. Each dimension includes value, confidence, and reason fields. Use this to inspect the AI quality analysis for a spe… - [Get paginated messages of a session](https://developers.mindhunters.ai/api-reference/sessions/get-paginated-messages-of-a-session.md): Returns paginated messages that belong to one conversation session. Use this to inspect exactly which AI, human, and contact messages were included in the session window before reading its summary… - [Get paginated sessions of a conversation](https://developers.mindhunters.ai/api-reference/sessions/get-paginated-sessions-of-a-conversation.md): Returns sessions that belong to one conversation. Use this to navigate from a conversation to its grouped text or voice sessions, then fetch messages or evaluations for a specific session. - [Import data via copy-paste text](https://developers.mindhunters.ai/api-reference/tables/import-data-via-copy-paste-text.md): Creates a table-like knowledge source from raw text. Use this for FAQs, policies, product notes, or any pasted content that an agent should search when answering questions. The response returns th… - [Import data via file upload](https://developers.mindhunters.ai/api-reference/tables/import-data-via-file-upload.md): Uploads a file and starts asynchronous processing so the content can become agent knowledge or structured records. Use this for CSV, Excel, JSON, PDF, XML, text, and audio sources up to 128MB. The… - [Import data from a website URL](https://developers.mindhunters.ai/api-reference/tables/import-data-from-a-website-url.md): Crawls a website URL and imports discovered page content into a knowledge source. Use this when an agent should answer from public documentation, help centers, service pages, or product pages. Cra… - [Create an empty table with a column schema](https://developers.mindhunters.ai/api-reference/tables/create-an-empty-table-with-a-column-schema.md): Creates a new table that agents can use as a knowledge base or for real-time data lookups. The table is empty after creation; records are added via POST /api/v1/data/{uuid}/records. - [Get all imported data](https://developers.mindhunters.ai/api-reference/tables/get-all-imported-data.md): Returns imported data sources and manually created tables for the workspace. Use this endpoint to find data UUIDs, inspect processing status, choose sources to assign to agents, or monitor whether… - [Get data details by UUID](https://developers.mindhunters.ai/api-reference/tables/get-data-details-by-uuid.md): Returns one data source or table by UUID, including metadata, type, processing state, and stored path information when applicable. Use this before assigning data to an agent, adding records, updat… - [Update table metadata (name and description)](https://developers.mindhunters.ai/api-reference/tables/update-table-metadata-name-and-description.md): Updates table metadata without changing its columns or records. Use this to rename a knowledge source or clarify what the table contains after import or manual creation. Existing agent assignments… - [Delete imported data](https://developers.mindhunters.ai/api-reference/tables/delete-imported-data.md): Soft-deletes a data source or table by UUID. Use this when the knowledge source should no longer be available for assignment or lookup. Agent sync state should be refreshed after removing data tha… - [Get fields (columns) for imported data](https://developers.mindhunters.ai/api-reference/tables/get-fields-columns-for-imported-data.md): Returns the columns defined for a table or imported structured data source. Use this before adding records, mapping imported data, or building a form that writes row values by column_id or column_… - [Add a column to a table](https://developers.mindhunters.ai/api-reference/tables/add-a-column-to-a-table.md): Adds a new column to a table schema. Use this when agents need another structured field available for lookup or when future records require a new value. Existing records keep an empty value for th… - [Update a column (rename and/or change data_type)](https://developers.mindhunters.ai/api-reference/tables/update-a-column-rename-andor-change-data_type.md): Renames the column and/or changes its data_type. If data_type changes, all existing values for this column must coerce to the new type or the request is rejected. - [Delete a column](https://developers.mindhunters.ai/api-reference/tables/delete-a-column.md): Soft-deletes the column. Existing record values for this column are kept on disk but no longer surface in field/record listings. - [Get records for imported data](https://developers.mindhunters.ai/api-reference/tables/get-records-for-imported-data.md): Returns paginated table records with their field values. Use this to inspect imported rows, power external data review tools, or retrieve the records an agent can query during conversations. - [Create a record for imported data](https://developers.mindhunters.ai/api-reference/tables/create-a-record-for-imported-data.md): Creates a new record with values for the specified knowledge base. Provide either a values array (with column_id or column_name) or a record object keyed by field names. - [Update record values](https://developers.mindhunters.ai/api-reference/tables/update-record-values.md): Updates one or more values for a specific record. Provide either a values array (with column_id or column_name) or a record object keyed by field names. - [Delete a record](https://developers.mindhunters.ai/api-reference/tables/delete-a-record.md): Deletes one table record and its stored field values. Use this when a row is obsolete, duplicated, or should no longer be available to agents during structured lookup. - [Assign imported data to an agent](https://developers.mindhunters.ai/api-reference/tables/assign-imported-data-to-an-agent.md): Assigns a data source or table to an agent and starts asynchronous synchronization. Use this after importing or creating data so the agent can search or query it during conversations. The response… - [Trigger a sync for data across all associated agents](https://developers.mindhunters.ai/api-reference/tables/trigger-a-sync-for-data-across-all-associated-agents.md): Starts a fresh synchronization for all agents assigned to the data source. Use this after changing table records, columns, imported content, or metadata so each assigned agent receives the latest… - [List action executions across tasks, workflows, and intents](https://developers.mindhunters.ai/api-reference/logs/list-action-executions-across-tasks-workflows-and-intents.md): Returns a chronologically merged stream of three kinds of agent activity: (1) `task` — a queued action against a contact such as an outbound call attempt or message send, typically spawned by a ca… - [Get full detail for a single action execution](https://developers.mindhunters.ai/api-reference/logs/get-full-detail-for-a-single-action-execution.md): Returns the full request/response payload, related agent and contact, and per-type extras (intent: the call it happened in, the related conversation, and any webhook delivery; task: the campaign a… - [List the 10 analyzer feature ids](https://developers.mindhunters.ai/api-reference/evaluate/list-the-10-analyzer-feature-ids.md): Static catalog of feature ids you can toggle or edit under `text.*` and `voice.*` in any update call. Useful for discovering supported feature ids dynamically. - [Read the global default evaluate settings](https://developers.mindhunters.ai/api-reference/evaluate/read-the-global-default-evaluate-settings.md): Returns the workspace-wide default. Every agent without an override inherits from this. Response always has source=default and agent_uuid=null. - [Update the global default evaluate settings](https://developers.mindhunters.ai/api-reference/evaluate/update-the-global-default-evaluate-settings.md): Partial update; any unsent key is left alone. Changes here cascade to every agent without its own override at next read time. Use sparingly. - [Reset the global default to factory values](https://developers.mindhunters.ai/api-reference/evaluate/reset-the-global-default-to-factory-values.md): Replaces every field on the global default with the built-in factory presets (workspace-language-aware). Destructive: any custom descriptions or prompts you set are lost. Does not touch per-agent… - [Read effective evaluate settings for one agent](https://developers.mindhunters.ai/api-reference/evaluate/read-effective-evaluate-settings-for-one-agent.md): If the agent has an override, returns it (source=agent). Otherwise returns the global default (source=default, agent_uuid=null). Always inspect the source field to know what you are looking at. - [Update an agent's evaluate settings](https://developers.mindhunters.ai/api-reference/evaluate/update-an-agents-evaluate-settings.md): Partial update. If the agent has no override yet, one is auto-created from the current global default before applying changes (so you do not need to call /assign first). Only the keys you send are… - [Remove the agent's override (revert to global default)](https://developers.mindhunters.ai/api-reference/evaluate/remove-the-agents-override-revert-to-global-default.md): Deletes the agent-specific evaluate settings so subsequent reads return the global default. Idempotent: a second call returns `data.deleted: false`. - [Create an override for an agent (clones current default)](https://developers.mindhunters.ai/api-reference/evaluate/create-an-override-for-an-agent-clones-current-default.md): Creates agent-specific evaluate settings by copying the current global default. After this, the agent stops inheriting from the global default and can be updated with PUT /api/v1/agents/{uuid}/eva… - [Force-overwrite the agent's override with a fresh copy of the current default](https://developers.mindhunters.ai/api-reference/evaluate/force-overwrite-the-agents-override-with-a-fresh-copy-of-the-current-default.md): Use when the global default has changed and you want this agent to pick up the new defaults while keeping its override row. Wipes all customizations on the agent's override. - [Reset the agent's override to factory defaults](https://developers.mindhunters.ai/api-reference/evaluate/reset-the-agents-override-to-factory-defaults.md): Like /default/reset but scoped to one agent. Keeps the override row in place; just rewrites every field to factory values. Use when you want this agent to ignore the current global default and sta… - [List tenant's agents available for Agents-app actions](https://developers.mindhunters.ai/api-reference/flow-catalog/list-tenants-agents-available-for-agents-app-actions.md): Returns the agents the user can pick when configuring an Agents-app action (Make Call, Send WhatsApp, etc.). Limited to agents with status=ready. The MCP server uses this when the user says e.g. '… - [List all Studio integrations (apps)](https://developers.mindhunters.ai/api-reference/flow-catalog/list-all-studio-integrations-apps.md): The full set of integrations the Studio supports — both mihu builtins (Calls, Texts, Contacts, Logic, …) and connect apps (Slack, Zoho, Notion, Twilio, …). Filter by `category` to scope to one buc… - [List apps eligible as a flow's trigger (step 1)](https://developers.mindhunters.ai/api-reference/flow-catalog/list-apps-eligible-as-a-flows-trigger-step-1.md): Same shape as /flow/apps but pre-filtered to apps with at least one trigger. Use this when offering the user the trigger picker for step 1 of a new flow. - [List apps eligible as a flow's action (step 2+)](https://developers.mindhunters.ai/api-reference/flow-catalog/list-apps-eligible-as-a-flows-action-step-2+.md): Same shape as /flow/apps but pre-filtered to apps with at least one action. Use this when offering the user the action picker for any non-first step. - [Read a single app by its uid](https://developers.mindhunters.ai/api-reference/flow-catalog/read-a-single-app-by-its-uid.md) - [List the trigger events an app exposes](https://developers.mindhunters.ai/api-reference/flow-catalog/list-the-trigger-events-an-app-exposes.md): Each trigger has a `key` (used in step config: `trigger_key`) plus name, description, and config schema hints. - [List the actions an app exposes](https://developers.mindhunters.ai/api-reference/flow-catalog/list-the-actions-an-app-exposes.md): Each action has a `key` (used in step config: `action_key`) plus name, description, and config schema hints. - [Flat list of every OAuth connection the tenant has, across all apps](https://developers.mindhunters.ai/api-reference/flow-catalog/flat-list-of-every-oauth-connection-the-tenant-has-across-all-apps.md): Each row carries the connection uuid + label and the inlined app it belongs to. Useful for an MCP server building a 'pick which account' prompt without iterating per-app first. - [List the tenant's connections (OAuth accounts) for one app](https://developers.mindhunters.ai/api-reference/flow-catalog/list-the-tenants-connections-oauth-accounts-for-one-app.md): Returns each `app_connection` the tenant has set up for this app — typically zero or one for a fresh tenant, more if the user connected multiple workspaces. Builtin apps always return an empty arr… - [Fetch dynamic dropdown options for a step's field](https://developers.mindhunters.ai/api-reference/flow-catalog/fetch-dynamic-dropdown-options-for-a-steps-field.md): Mirrors every 'Refresh' dropdown in the Studio Setup tab. Used to resolve human references like '#general' or 'Contacts module' into the actual identifiers the action config requires. **Always ask… - [List flows (paginated, filterable)](https://developers.mindhunters.ai/api-reference/flows/list-flows-paginated-filterable.md): Returns the tenant's flows with each one's compact app/agent/step counts and last-updated timestamps. Use the filters to narrow by status, search term, or change the sort. - [Create an empty flow (draft)](https://developers.mindhunters.ai/api-reference/flows/create-an-empty-flow-draft.md): Creates a flow with no steps. Both `name` and `description` are optional — when name is omitted the server assigns 'Flow {id}'. Add a trigger step next via POST /flow/{uuid}/steps with kind=trigge… - [Read a flow with its full ordered step list](https://developers.mindhunters.ai/api-reference/flows/read-a-flow-with-its-full-ordered-step-list.md): Steps are returned flat — branch children of an `if_condition` appear in the array with `parent_step_uuid` and `branch_key` populated. Each step's `last_test.data` is what downstream steps' `{{ste… - [Delete a flow](https://developers.mindhunters.ai/api-reference/flows/delete-a-flow.md): Soft-delete (per project convention). Pending executions are not auto-cancelled — undeploy first if you want clean cancellation. The flow is removed from `GET /flows` immediately and a fresh GET o… - [Update flow name or description](https://developers.mindhunters.ai/api-reference/flows/update-flow-name-or-description.md): Only `name` and `description` are mutable here. To change the structure (steps), use the step endpoints. Allowed even on a deployed flow (no undeploy required) since name/description don't affect… - [Deploy a flow — flips it from draft to live](https://developers.mindhunters.ai/api-reference/flows/deploy-a-flow-—-flips-it-from-draft-to-live.md): Validates the flow has a trigger, every step is configured (app + trigger/action set), every connect-app step has a valid connection, every step is `active` (set by a successful test), and no `` so the… - [Update any subset of a step's fields](https://developers.mindhunters.ai/api-reference/flow-steps/update-any-subset-of-a-steps-fields.md): **Order of operations matters.** Switching `app_uid` clears trigger/action/config/connection (forces re-selection — same as the Studio UI). After that, `trigger_key`/`action_key`/`agent_uuid`/`app… - [Add a step to a flow (trigger as step 1, actions as step 2+)](https://developers.mindhunters.ai/api-reference/flow-steps/add-a-step-to-a-flow-trigger-as-step-1-actions-as-step-2+.md): Creates either a trigger (only one allowed, must be step 1) or an action. The server picks the position: by default appends to the end, but `insert_after_step_uuid` puts it mid-chain (downstream s… - [Test a step — kind-aware behavior (trigger samples vs action exec)](https://developers.mindhunters.ai/api-reference/flow-steps/test-a-step-—-kind-aware-behavior-trigger-samples-vs-action-exec.md): **For trigger steps:** auto-fetches recent records from the trigger's source (e.g. recent calls for Calls/call_started) and uses the latest as the persisted sample. The chosen sample's `data` is w… - [List supported languages](https://developers.mindhunters.ai/api-reference/language/list-supported-languages.md): Returns the supported language catalog for agent configuration. Use the returned codes for agent.language and settings.voice.voice_profile.language when creating or updating agents, and use the di… - [Get all listings (campaigns with pools)](https://developers.mindhunters.ai/api-reference/listings/get-all-listings-campaigns-with-pools.md): Returns campaigns that have contact pools and are managed as listings. Use this endpoint to monitor outreach lists, filter by status, search by name or description, and paginate through listing ca… - [Create a new listing with rule and bulk contacts](https://developers.mindhunters.ai/api-reference/listings/create-a-new-listing-with-rule-and-bulk-contacts.md): Creates a listing workflow in one request: campaign, contact pool, optional rule, and initial contacts. Use this when you want to start from a list of contacts instead of manually creating a campa… - [Get listing details with contacts](https://developers.mindhunters.ai/api-reference/listings/get-listing-details-with-contacts.md): Returns one listing with its campaign settings, agent/channel binding, rule, attached pool, and contacts. Use this endpoint before starting, stopping, deleting, or adding contacts to a listing. - [Delete a listing](https://developers.mindhunters.ai/api-reference/listings/delete-a-listing.md): Deletes the listing campaign, detaches its pool and rule, and cancels pending campaign tasks. Use this when the listing workflow should be removed rather than paused. Contacts themselves are not d… - [Start/resume a listing campaign](https://developers.mindhunters.ai/api-reference/listings/startresume-a-listing-campaign.md): Starts or resumes a listing by moving it to In Process and creating tasks for eligible contacts. Use this after the listing has contacts, an agent/channel, and a rule. Returns a conflict if the li… - [Stop/pause a running listing campaign](https://developers.mindhunters.ai/api-reference/listings/stoppause-a-running-listing-campaign.md): Pauses a running listing and cancels pending tasks for that campaign. Use this when you need to stop outreach without deleting the listing, contacts, pool, or rule. Only listings currently In Proc… - [Add contacts to an existing listing](https://developers.mindhunters.ai/api-reference/listings/add-contacts-to-an-existing-listing.md): Adds one or more contacts to the listing's pool. Existing contacts are matched by phone number first, then email; matched contacts are updated, and new contacts are created. Additional fields are… - [Remove a contact from a listing and cancel their tasks](https://developers.mindhunters.ai/api-reference/listings/remove-a-contact-from-a-listing-and-cancel-their-tasks.md): Removes one contact from the listing's pool and cancels that contact's pending tasks for the listing campaign. Use this when a contact should no longer receive outreach from this listing. The cont… - [List contact fields available for memorize settings](https://developers.mindhunters.ai/api-reference/memorize/list-contact-fields-available-for-memorize-settings.md): Returns every contact field that can be toggled in memorize settings: built-in base fields plus all active custom fields. - [Catalog merged with the global default's toggle state](https://developers.mindhunters.ai/api-reference/memorize/catalog-merged-with-the-global-defaults-toggle-state.md): Returns all available contact fields with the global default memorize toggles applied. Use this to see which fields agents inherit for memory extraction when they do not have agent-specific memori… - [Catalog merged with the agent's toggles (or default if no override)](https://developers.mindhunters.ai/api-reference/memorize/catalog-merged-with-the-agents-toggles-or-default-if-no-override.md): Returns all available contact fields with the agent's effective memorize toggles. If the agent has no override, the response is merged with the global default and source is returned as default. - [Get the global default memorize settings](https://developers.mindhunters.ai/api-reference/memorize/get-the-global-default-memorize-settings.md): Returns the workspace-wide default memorize settings. Agents without their own override inherit these settings for contact field memory, conversation memory, channel behavior, and summary cadence. - [Update the global default memorize settings](https://developers.mindhunters.ai/api-reference/memorize/update-the-global-default-memorize-settings.md): Updates the workspace-wide default memorize settings. Use this to control what future and non-overridden agents remember from conversations. Only supplied settings are changed. - [Bulk-toggle contact field flags on the default settings](https://developers.mindhunters.ai/api-reference/memorize/bulk-toggle-contact-field-flags-on-the-default-settings.md): Send a list of contact-field toggles. Each item must include `field_id` plus any subset of the 5 allowed flags. Only the keys you send are touched — other fields and other flags stay as they were. - [Bulk-toggle contact field flags for an agent](https://developers.mindhunters.ai/api-reference/memorize/bulk-toggle-contact-field-flags-for-an-agent.md): Same body shape as the default bulk endpoint. If the agent does not yet have its own memorize settings, they are created automatically from the global default on the first edit. - [Reset the global default memorize settings to factory defaults](https://developers.mindhunters.ai/api-reference/memorize/reset-the-global-default-memorize-settings-to-factory-defaults.md): Resets the global default memorize settings to factory defaults. Use this when default memory behavior should return to the built-in baseline. Agent-specific overrides are not changed. - [Get an agent's memorize settings (falls back to default)](https://developers.mindhunters.ai/api-reference/memorize/get-an-agents-memorize-settings-falls-back-to-default.md): Returns the agent's effective memorize settings. If the agent has a custom override, source is agent; otherwise the response returns the global default with source default. - [Update an agent's memorize settings (creates them from the global default if the agent has none yet)](https://developers.mindhunters.ai/api-reference/memorize/update-an-agents-memorize-settings-creates-them-from-the-global-default-if-the-agent-has-none-yet.md): Updates one agent's memorize settings. If the agent does not already have custom settings, they are created from the global default first, then the supplied changes are applied. - [Remove an agent's specific memorize settings (reverts to default)](https://developers.mindhunters.ai/api-reference/memorize/remove-an-agents-specific-memorize-settings-reverts-to-default.md): Deletes the agent-specific memorize override. After deletion, the agent inherits the global default memorize settings again. The operation is idempotent. - [Create custom memorize settings for an agent, copied from the global default](https://developers.mindhunters.ai/api-reference/memorize/create-custom-memorize-settings-for-an-agent-copied-from-the-global-default.md): Creates an agent-specific memorize override by copying the current global default. Use this before customizing one agent's memory behavior independently. Returns 409 if the agent already has custo… - [Replace the agent's memorize settings with a fresh copy of the global default](https://developers.mindhunters.ai/api-reference/memorize/replace-the-agents-memorize-settings-with-a-fresh-copy-of-the-global-default.md): Overwrites the agent's memorize settings with a new copy of the current global default. Use this when the default changed and the agent should discard its custom memory configuration. - [Reset an agent's memorize settings to factory defaults](https://developers.mindhunters.ai/api-reference/memorize/reset-an-agents-memorize-settings-to-factory-defaults.md): Resets the agent's memorize settings to factory defaults. If the agent has no override, one is created before resetting. Use this when a single agent should return to baseline memory behavior with… - [Get the SIP connector server assigned to your account](https://developers.mindhunters.ai/api-reference/pbx-extension-connectors/get-the-sip-connector-server-assigned-to-your-account.md): Returns the SIP connector server currently allocated to your account. You need one allocated before any PBX extension connector can be created — connectors are pushed to that server. If `assigned`… - [Allocate a SIP connector server](https://developers.mindhunters.ai/api-reference/pbx-extension-connectors/allocate-a-sip-connector-server.md): Picks a random active server from the configured pool and allocates its IP to your account. Idempotent: if a server is already assigned the existing one is returned. - [Release the allocated SIP connector server](https://developers.mindhunters.ai/api-reference/pbx-extension-connectors/release-the-allocated-sip-connector-server.md): Unassigns the workspace SIP connector server after all PBX extension connectors have been deleted. Use this when PBX extension routing is no longer needed. Returns 409 if any connector still depen… - [List PBX extension connectors](https://developers.mindhunters.ai/api-reference/pbx-extension-connectors/list-pbx-extension-connectors.md): Returns paginated PBX extension connectors. Use this to audit extension routing from agents and phone numbers to the allocated SIP connector server, with optional filters for agent, phone number,… - [Create a PBX extension connector](https://developers.mindhunters.ai/api-reference/pbx-extension-connectors/create-a-pbx-extension-connector.md): Registers a PBX extension to an AI voice agent. This endpoint configures the PBX end only — it does not provision a SIP trunk. Use it when you want to connect a number purchased through this platf… - [Get a single PBX extension connector](https://developers.mindhunters.ai/api-reference/pbx-extension-connectors/get-a-single-pbx-extension-connector.md): Returns one PBX extension connector by UUID, including the linked agent, phone number, extension payload, and connector status. Use this before updating external PBX configuration or deleting the… - [Delete a PBX extension connector](https://developers.mindhunters.ai/api-reference/pbx-extension-connectors/delete-a-pbx-extension-connector.md): Deletes a PBX extension connector and deregisters its SIP customer entry. Use this when an extension should no longer route calls through the connected PBX. The linked agent and phone number are n… - [List your phone numbers](https://developers.mindhunters.ai/api-reference/phone-numbers/list-your-phone-numbers.md): Returns every phone number connected to your workspace — both numbers you've purchased and external trunks (BYO numbers your agents use that weren't bought through us). Each row carries `source: p… - [Buy a phone number](https://developers.mindhunters.ai/api-reference/phone-numbers/buy-a-phone-number.md): Purchases a number returned by the search endpoint. If the country/type requires compliance, include an address (when needed) and a list of requirement values — text answers and document IDs from… - [Phone number summary](https://developers.mindhunters.ai/api-reference/phone-numbers/phone-number-summary.md): A quick snapshot for dashboards: how many numbers you have, how many need attention (e.g. compliance pending), your total monthly spend, and breakdowns by country and number type. - [Get one phone number](https://developers.mindhunters.ai/api-reference/phone-numbers/get-one-phone-number.md): Returns full details for a single number — capabilities, channel settings, billing, compliance status, and which agents are using it on each channel. - [Release a phone number](https://developers.mindhunters.ai/api-reference/phone-numbers/release-a-phone-number.md): Removes a number from your active inventory. If any agent is still using the number on call, SMS, or WhatsApp, the request is rejected — disconnect those agents first. - [Update channel settings](https://developers.mindhunters.ai/api-reference/phone-numbers/update-channel-settings.md): Turn voice, SMS, or inbound on or off, set per-channel concurrency limits, and choose which destination countries are allowed for outbound traffic. Channels can't be turned on while compliance is… - [Channels for one phone number](https://developers.mindhunters.ai/api-reference/phone-numbers/channels-for-one-phone-number.md): A trimmed-down view focused on what each channel (call, SMS, WhatsApp, inbound) can do for this number: what it supports, whether it's enabled, and which agent it's connected to. - [Channels for a phone number (look up by number)](https://developers.mindhunters.ai/api-reference/phone-numbers/channels-for-a-phone-number-look-up-by-number.md): Same as the by-UUID version, but you only need the phone number itself. Works for both owned numbers and external ones (numbers your agents use but didn't buy through us). The leading + is optiona… - [Release a phone number](https://developers.mindhunters.ai/api-reference/phone-numbers/release-a-phone-number-1.md): Action-style alias for DELETE /api/v1/phone-numbers/{uuid}. Soft-deletes a number after checking that it has no active agent bindings. - [Assign a number to an agent](https://developers.mindhunters.ai/api-reference/phone-numbers/assign-a-number-to-an-agent.md): Connects this number to one of your agents on a specific channel (call, SMS, or WhatsApp). The agent must already have that channel configured. A number can only serve one agent per channel — disc… - [Remove a number from an agent](https://developers.mindhunters.ai/api-reference/phone-numbers/remove-a-number-from-an-agent.md): Disconnects this number from whichever agent currently uses it on the given channel. The number stays in your inventory and is free to reassign. - [Upload a compliance document](https://developers.mindhunters.ai/api-reference/phone-numbers/upload-a-compliance-document.md): Uploads a document (e.g. proof of ID, business license, address proof) needed for compliance on a phone number purchase. Returns a document ID you then pass into the purchase endpoint under requir… - [Search numbers available to buy](https://developers.mindhunters.ai/api-reference/phone-numbers/search-numbers-available-to-buy.md): Browse phone numbers available for purchase in a given country. You can filter by type (local, toll-free, mobile, national), area code, or pattern. Results include pricing and whether compliance s… - [Compliance requirements for a country](https://developers.mindhunters.ai/api-reference/phone-numbers/compliance-requirements-for-a-country.md): Some countries require documents (proof of ID, business license, local address) before a number can be activated. Use this to find out exactly what's needed for the country and number type you're… - [Outbound call rates](https://developers.mindhunters.ai/api-reference/phone-numbers/outbound-call-rates.md): Per-minute pricing for outbound calls, broken down by destination country and prefix. Useful for estimating campaign costs before you launch. - [Which agents use which numbers](https://developers.mindhunters.ai/api-reference/phone-numbers/which-agents-use-which-numbers.md): A summary of every active phone number and the agents using it, grouped by channel. Includes both numbers you've purchased and external ones (e.g. WhatsApp Business). Powers the 'Used Channels & A… - [Phone numbers grouped by agent](https://developers.mindhunters.ai/api-reference/phone-numbers/phone-numbers-grouped-by-agent.md): Same data as /used-channels-and-accounts, but pivoted: one row per agent, listing the phone numbers they answer on and which channels they use on each. Useful for building agent-centric views. - [Phone numbers for one agent](https://developers.mindhunters.ai/api-reference/phone-numbers/phone-numbers-for-one-agent.md): Returns the phone numbers an agent serves on, with the channels in use on each number. Same shape as one entry from /by-agent. - [List external trunks (BYO numbers)](https://developers.mindhunters.ai/api-reference/phone-numbers/list-external-trunks-byo-numbers.md): Lists every external trunk you've registered — phone numbers you own elsewhere that are bound to your agents but not in your purchased inventory. All rows come back with `source: external`. Filter… - [Register an external SIP trunk / BYO number](https://developers.mindhunters.ai/api-reference/phone-numbers/register-an-external-sip-trunk-byo-number.md): Connects a phone number you already own elsewhere (your own SIP trunk, an existing WhatsApp Business line, a number on another carrier) to one of your agents on a specific channel. The number is r… - [Delete an external trunk](https://developers.mindhunters.ai/api-reference/phone-numbers/delete-an-external-trunk.md): Removes an external trunk binding identified by `phone_number` + `channel`. The phone number itself is not in your purchased inventory, so nothing is billed or released externally — this only remo… - [Update an external trunk](https://developers.mindhunters.ai/api-reference/phone-numbers/update-an-external-trunk.md): Updates an existing external trunk (registered via POST /trunks). Identify the trunk by `phone_number` + `channel`. Any field omitted is left untouched. SIP fields set to empty string clear that c… - [Assign or reassign an external trunk to an agent](https://developers.mindhunters.ai/api-reference/phone-numbers/assign-or-reassign-an-external-trunk-to-an-agent.md): Reassigns an existing external trunk (created via POST /trunks) to a different agent on the same channel. The phone number, SIP credentials, and channel settings are preserved — only the agent on… - [List pipeline stages](https://developers.mindhunters.ai/api-reference/contact-pipeline/list-pipeline-stages.md): Returns pipeline stages ordered by their display order. By default only active stages are returned. Use include=all when syncing a full configuration list, or include=inactive when reviewing stage… - [Create a new pipeline stage](https://developers.mindhunters.ai/api-reference/contact-pipeline/create-a-new-pipeline-stage.md): Creates a pipeline stage that can be assigned to contacts. Use this to add a new lifecycle step such as Lead, Qualified, Customer, or Closed. If order is omitted, the stage is appended to the end… - [Get a pipeline stage by uuid](https://developers.mindhunters.ai/api-reference/contact-pipeline/get-a-pipeline-stage-by-uuid.md): Returns one pipeline stage by UUID with its name, order, and active state. Use this before updating the stage or before assigning contacts to a specific pipeline position. - [Update a pipeline stage](https://developers.mindhunters.ai/api-reference/contact-pipeline/update-a-pipeline-stage.md): Updates one pipeline stage. Use this to rename a stage, change its order, or mark it inactive. Only supplied fields are changed; contacts already assigned to the stage keep their association. - [Delete a pipeline stage](https://developers.mindhunters.ai/api-reference/contact-pipeline/delete-a-pipeline-stage.md): Deletes a pipeline stage and detaches it from contacts that were assigned to it. Use this only when the stage should be removed completely. To keep history while preventing new use, update is_acti… - [List contact pools](https://developers.mindhunters.ai/api-reference/pools/list-contact-pools.md): Returns a paginated list of pools. Each pool is a named bucket of contacts that one or more campaigns can draw from. Pool 'type' (FIFO/LIFO/Parallel) controls the order pool items are processed wh… - [Create a contact pool](https://developers.mindhunters.ai/api-reference/pools/create-a-contact-pool.md): Creates an empty pool. After creation, populate it with POST /api/v1/pools/{uuid}/contacts and attach it to a campaign with POST /api/v1/campaigns/{uuid}/pools. - [Get pool details, including attached campaigns and pool item status counts](https://developers.mindhunters.ai/api-reference/pools/get-pool-details-including-attached-campaigns-and-pool-item-status-counts.md): Returns the full pool resource plus a status_counts breakdown (Pending/Processing/Completed/Failed/etc.) and the list of campaigns this pool is attached to. For paginated contact lists inside the… - [Update a pool](https://developers.mindhunters.ai/api-reference/pools/update-a-pool.md): Partial update. Send only the fields you want to change. Use the is_active flag to activate/deactivate — there is no separate toggle endpoint. Updates do not affect contact membership; pool items… - [Delete a pool](https://developers.mindhunters.ai/api-reference/pools/delete-a-pool.md): Deletes the pool. Refuses with 409 if the pool is attached to any campaign in 'In Process' or 'Importing' status — pause/stop those campaigns first or detach the pool from them. Pool items (contac… - [Duplicate a pool, optionally copying its contacts](https://developers.mindhunters.ai/api-reference/pools/duplicate-a-pool-optionally-copying-its-contacts.md): Creates a new pool with the same configuration as the source (type, max_parallel_items, max_retries, is_active, description). The new pool gets a fresh UUID and is NOT attached to any campaign — a… - [List contacts in a pool](https://developers.mindhunters.ai/api-reference/pools/list-contacts-in-a-pool.md): Returns paginated ContactPoolItem rows in the pool, each enriched with the underlying Contact's name/email/phone and the item's processing state (status, retry_count, started_at, etc.). Sorted by… - [Add existing contacts to a pool](https://developers.mindhunters.ai/api-reference/pools/add-existing-contacts-to-a-pool.md): Adds one or more existing contacts (by UUID) to the pool, creating ContactPoolItem rows with status=Pending. Contacts already present in the pool are silently skipped (no error). UUIDs that don't… - [Remove a contact from a pool](https://developers.mindhunters.ai/api-reference/pools/remove-a-contact-from-a-pool.md): Removes the specified contact from this pool. Side effect: cancels (status='cancelled') any scheduled/queued/pending tasks tied to THIS pool item. Tasks for the same contact in OTHER pools attache… - [List campaign contact rules](https://developers.mindhunters.ai/api-reference/rules/list-campaign-contact-rules.md): Returns a paginated list of contact rules used by campaigns to control call/message cadence (max attempts, retry interval, allowed working hours, escalation policy). - [Create a new campaign contact rule](https://developers.mindhunters.ai/api-reference/rules/create-a-new-campaign-contact-rule.md): Creates a standalone rule that can later be attached to one or more campaigns via PUT /api/v1/campaigns/{uuid}/rule. The rule's `type` (call vs text) governs which fields are honored and which def… - [Get a single rule by UUID](https://developers.mindhunters.ai/api-reference/rules/get-a-single-rule-by-uuid.md): Returns one campaign contact rule by UUID, including type, retry limits, retry interval, allowed working hours, escalation behavior, and active state. Use this before attaching a rule to a campaig… - [Update an existing rule](https://developers.mindhunters.ai/api-reference/rules/update-an-existing-rule.md): Partial update — only fields you send are changed. Important: changing `type` from 'call' to 'text' automatically nulls call-only fields (retry_interval_minutes, end_time, escalation_*) regardless… - [Delete a rule](https://developers.mindhunters.ai/api-reference/rules/delete-a-rule.md): Deletes the rule and detaches it from any campaigns it was attached to. Refuses with 409 if the rule is currently attached to a campaign with status Active, In Process, or Importing — pause/stop t… - [Get all schedules](https://developers.mindhunters.ai/api-reference/schedules/get-all-schedules.md): Returns schedules with their attached availability type. Use this endpoint to choose which calendar an agent should use for appointment booking, or filter by availability_type_uuid to find schedul… - [Create a new schedule](https://developers.mindhunters.ai/api-reference/schedules/create-a-new-schedule.md): Creates a bookable schedule and links it to an availability type. Use this after creating or selecting an availability type. The schedule can then be assigned to agents for appointment booking and… - [Get a specific schedule](https://developers.mindhunters.ai/api-reference/schedules/get-a-specific-schedule.md): Returns one schedule by UUID with its availability type, assigned agent metadata, custom questions, and display color. Use this before updating a schedule or when showing calendar details for appo… - [Update a schedule](https://developers.mindhunters.ai/api-reference/schedules/update-a-schedule.md): Updates schedule metadata such as name, type, color, availability type, assigned agents, or custom questions. Use this to change how an existing calendar is presented and which booking rules it us… - [Delete a schedule](https://developers.mindhunters.ai/api-reference/schedules/delete-a-schedule.md): Deletes a schedule by UUID. Use this when a calendar should no longer be offered for appointment booking. Existing appointment records may still reference their historical schedule data. - [Get paginated list of session evaluations](https://developers.mindhunters.ai/api-reference/evaluations/get-paginated-list-of-session-evaluations.md): Retrieves a paginated list of session evaluations with optional filtering by session/conversation/contact UUID and creation date range. - [Get a single evaluation](https://developers.mindhunters.ai/api-reference/evaluations/get-a-single-evaluation.md): Returns one session evaluation by UUID, including scores, labels, reasons, and related session/conversation/contact identifiers. Use this to inspect the AI analysis for a specific session. - [List all SIP trunk connections](https://developers.mindhunters.ai/api-reference/sip-trunk/list-all-sip-trunk-connections.md): Returns SIP trunk connections configured for the workspace. Use this before assigning a SIP trunk to an agent for calls. Authentication secrets are never returned; only connection metadata, phone… - [Add a new SIP trunk connection](https://developers.mindhunters.ai/api-reference/sip-trunk/add-a-new-sip-trunk-connection.md): Creates a SIP trunk connection. Once created, assign it to an agent via POST /api/v1/agents/{uuid}/channels/call/sip-trunk. - [Delete a SIP trunk connection](https://developers.mindhunters.ai/api-reference/sip-trunk/delete-a-sip-trunk-connection.md): Deletes a SIP trunk connection and removes agent assignments that depend on it. Use this when the provider trunk is no longer valid or should stop routing calls through the platform. Related telep… - [Assign a SIP trunk connection to an agent for calls](https://developers.mindhunters.ai/api-reference/sip-trunk/assign-a-sip-trunk-connection-to-an-agent-for-calls.md): Assigns a SIP trunk connection to this agent for calls. If the agent was previously bound to a different number, the old binding is torn down. - [List contact tags](https://developers.mindhunters.ai/api-reference/contact-tags/list-contact-tags.md): Returns reusable contact tags for segmentation and filtering. By default only active tags are returned. Use include=all when syncing tag configuration, or include=inactive when reviewing tags no l… - [Create a new contact tag](https://developers.mindhunters.ai/api-reference/contact-tags/create-a-new-contact-tag.md): Creates a reusable tag for contacts. Use tags to segment contacts for filtering, targeting, and organization. Tags can later be assigned to contacts with POST /api/v1/contacts/{uuid}/add-tag. - [Get a tag by uuid](https://developers.mindhunters.ai/api-reference/contact-tags/get-a-tag-by-uuid.md): Returns one contact tag by UUID. Use this to inspect tag name, color, description, and active state before assigning it to contacts or updating it. - [Update a tag](https://developers.mindhunters.ai/api-reference/contact-tags/update-a-tag.md): Updates one contact tag. Use this to rename a tag, change its color or description, or mark it inactive. Only supplied fields are changed, and existing contact assignments remain attached to the t… - [Delete a tag](https://developers.mindhunters.ai/api-reference/contact-tags/delete-a-tag.md): Deletes one contact tag and detaches it from contacts that had it assigned. Use this when the segment should be removed completely. To keep the tag for history while preventing new use, update it… - [Get paginated list of tasks](https://developers.mindhunters.ai/api-reference/tasks/get-paginated-list-of-tasks.md): Returns scheduled and historical agent tasks with filters for type, status, contact, campaign, agent, priority, and scheduled time. Use this endpoint to monitor work created by campaigns, inspect… - [Create a new task (Call or WhatsApp Template)](https://developers.mindhunters.ai/api-reference/tasks/create-a-new-task-call-or-whatsapp-template.md): Creates a one-off task for an agent. Use make_call for outbound calls and send_message with task_data.message_type=whatsapp_template for WhatsApp template sends. Provide contact_uuid for an existi… - [Get a specific task](https://developers.mindhunters.ai/api-reference/tasks/get-a-specific-task.md): Returns one task by UUID with its contact, campaign, agent, channel, schedule, status, retry information, and task payload. Use this to inspect why a task is pending, queued, completed, failed, ca… - [Update a task](https://developers.mindhunters.ai/api-reference/tasks/update-a-task.md): Updates an existing task. Use this to change schedule time, priority, assignee, description, status, or payload before execution. If status or scheduled_at changes in a way that requires execution… - [Delete a task](https://developers.mindhunters.ai/api-reference/tasks/delete-a-task.md): Soft-deletes a task and removes it from normal task lists. Use this when the work should no longer run. If the task is pending, scheduled, queued, or in progress, it is cancelled before deletion. - [Queue a task for execution](https://developers.mindhunters.ai/api-reference/tasks/queue-a-task-for-execution.md): Queues a task for execution now or at the provided delay. Use this to manually start a pending or scheduled task without waiting for its original scheduled_at time. The response returns the update… - [Cancel a task](https://developers.mindhunters.ai/api-reference/tasks/cancel-a-task.md): Cancels a task that has not finished. Use this when planned outreach should be stopped before it executes. Pending, scheduled, queued, and in-progress tasks can be cancelled; completed tasks remai… - [Retry a failed task](https://developers.mindhunters.ai/api-reference/tasks/retry-a-failed-task.md): Retries a failed task when the task has remaining attempts. Use this after correcting the reason for failure, such as missing contact data, unavailable channel binding, or temporary provider error… - [List supported timezones](https://developers.mindhunters.ai/api-reference/timezone/list-supported-timezones.md): Catalog of IANA timezones accepted as `agent.timezone`. The `value` is what you pass on the agent record; the `label` is a human-readable string. - [Create a new transcription request](https://developers.mindhunters.ai/api-reference/transcriptions/create-a-new-transcription-request.md): Submits audio for asynchronous transcription and optional evaluation. Provide either voice_file or voice_url. Use reference_id to correlate the result with your own call or recording ID. If webhoo… - [Get transcription by UUID](https://developers.mindhunters.ai/api-reference/transcriptions/get-transcription-by-uuid.md): Returns one transcription by UUID, including status, reference_id, stored audio URL, transcript result when processing is complete, and selected QA/coaching agent identifiers. Use this to poll pro… - [Get full transcript with conversation messages and evaluations](https://developers.mindhunters.ai/api-reference/transcriptions/get-full-transcript-with-conversation-messages-and-evaluations.md): Returns the full completed transcript payload, including role/content conversation messages, full text, linked session data, and AI evaluations. Use this endpoint when you need the same structured… - [List voices in the library](https://developers.mindhunters.ai/api-reference/voice-library/list-voices-in-the-library.md): Returns the public voice catalog for the workspace. Filter by `language`/`gender`/`accent` or fuzzy-match `name` with `search`. Use the returned `uuid` as `settings.voice.voice_profile.voice_uuid`… - [List supported speeds for a voice](https://developers.mindhunters.ai/api-reference/voice-library/list-supported-speeds-for-a-voice.md): Send a voice UUID, receive the speed options that voice supports. `normal` is always returned; `fast` is included only when the voice's underlying model supports it. - [Make a WhatsApp call](https://developers.mindhunters.ai/api-reference/whatsapp-calling/make-a-whatsapp-call.md): Starts a WhatsApp voice call from the selected agent to a contact phone number. Use this only after the contact has granted WhatsApp call permission for the business number. The response returns t… - [Send call permission request](https://developers.mindhunters.ai/api-reference/whatsapp-calling/send-call-permission-request.md): Sends a WhatsApp call permission request to a contact before placing a WhatsApp voice call. The contact receives an interactive approval message and can accept or reject calling permission. Use th… - [List WhatsApp Business Accounts linked to this tenant](https://developers.mindhunters.ai/api-reference/whatsapp-templates/list-whatsapp-business-accounts-linked-to-this-tenant.md): Returns the WABAs this tenant has configured (via WhatsappSetting). Use these waba_ids when listing/creating/syncing templates. If empty, no WhatsApp Business Account has been linked yet — set one… - [List WhatsApp message templates](https://developers.mindhunters.ai/api-reference/whatsapp-templates/list-whatsapp-message-templates.md): Paginated list of templates stored locally. Filter by waba_id (recommended — templates are scoped per WhatsApp Business Account), status, category, language, or text search. To pull the latest fro… - [Create a new WhatsApp template](https://developers.mindhunters.ai/api-reference/whatsapp-templates/create-a-new-whatsapp-template.md): Submits the template to Meta's WhatsApp Business API and stores it locally. The returned status is whatever Meta gave back — typically PENDING for newly submitted templates (approval is async on M… - [Get a single template by UUID](https://developers.mindhunters.ai/api-reference/whatsapp-templates/get-a-single-template-by-uuid.md): Returns the full template resource including the components array (HEADER/BODY/FOOTER/BUTTONS) exactly as stored locally. Use this to inspect a template's structure before sending — for example to… - [Delete a template (Meta + local)](https://developers.mindhunters.ai/api-reference/whatsapp-templates/delete-a-template-meta-+-local.md): Calls Meta's delete API and soft-deletes the local record. After deletion, no campaigns can use this template. Note: Meta may keep historical message records that referenced this template. - [Upload a media file](https://developers.mindhunters.ai/api-reference/whatsapp-templates/upload-a-media-file.md): Upload an image, video, or document to Meta and receive a temporary media `handle` for a WhatsApp template header. - [Bulk-sync templates for a WABA from Meta into local DB](https://developers.mindhunters.ai/api-reference/whatsapp-templates/bulk-sync-templates-for-a-waba-from-meta-into-local-db.md): Pulls all templates Meta has on file for the given waba_id and upserts them locally (matched by Meta template id). Walks Meta's pagination internally (capped at 10 pages, ~250 templates per WABA). - [Refresh a single template's status from Meta](https://developers.mindhunters.ai/api-reference/whatsapp-templates/refresh-a-single-templates-status-from-meta.md): Re-fetches this one template from Meta and updates local status/components/category. The typical poll after POST /templates to check whether Meta has moved the template from PENDING to APPROVED, R… ## OpenAPI Specs - [api-docs](https://app.mindhunters.ai/docs/api-docs.json) ## Optional - [Mindhunters](https://mindhunters.ai) - [Login](https://app.mindhunters.ai)