# Mindhunters API Documentation ## Docs - [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. - [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… - [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 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. - [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 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. - [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. - [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. - [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… - [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. - [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… - [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… - [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… - [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… - [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 —… - [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… - [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… - [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. - [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. - [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. - [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. - [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. - [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. - [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,… - [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. - [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. - [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… - [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… - [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. - [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… - [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.… - [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.… - [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… - [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.… - [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… - [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… - [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 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. - [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. - [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… - [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. - [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… - [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… - [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… - [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… - [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… - [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). - [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… - [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. - [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… - [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… - [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… - [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 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](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… - [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. - [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. - [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. - [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. - [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. - [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… - [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. - [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… - [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… - [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… - [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… - [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… - [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 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… - [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… - [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… - [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… - [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… - [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… - [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… - [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_… - [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… - [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,… - [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… - [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… - [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… - [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… - [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… - [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… - [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_… - [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… - [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… - [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 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… - [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. - [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. - [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… - [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. - [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. - [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. - [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… - [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. - [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… - [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… - [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. - [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… - [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. - [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 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. - [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. - [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. - [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 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. - [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… - [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… - [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. - [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. - [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. - [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… - [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… - [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… - [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. - [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… - [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. - [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. - [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… - [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. - [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 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 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… - [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. - [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 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. - [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. - [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`. - [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… - [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… - [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… - [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. - [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. - [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. - [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… - [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 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 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. - [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 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 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. - [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… - [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. - [Read a single app by its uid](https://developers.mindhunters.ai/api-reference/flow-catalog/read-a-single-app-by-its-uid.md) - [List run history of a flow](https://developers.mindhunters.ai/api-reference/flow-executions/list-run-history-of-a-flow.md): Paginated list of every time this flow fired on a real event. Each execution captures status, duration, and a preview of the trigger payload. Use GET /executions/{exec_uuid} to drill into per-step… - [Read one execution with per-step request/response/error](https://developers.mindhunters.ai/api-reference/flow-executions/read-one-execution-with-per-step-requestresponseerror.md): Returns the full trigger payload that fired this run plus a `steps[]` array — for each step: status, duration, the resolved input, the handler's output, and any error message. Use this to debug a… - [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… - [Delete a step (and its branch children if any)](https://developers.mindhunters.ai/api-reference/flow-steps/delete-a-step-and-its-branch-children-if-any.md): Removes the step. Subsequent steps are renumbered down by 1. `{{stepN.field}}` references in remaining steps' configs are rewritten — references to the deleted step become `` so the… - [Read one step](https://developers.mindhunters.ai/api-reference/flow-steps/read-one-step.md) - [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… - [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… - [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… - [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… - [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 `