canonical: https://jentic.com/apis/mindhunters.ai/mindhunters

# Mindhunters Mihu AI API

Jentic publishes the only available OpenAPI specification for Mihu AI API, keeping it validated and agent-ready. Mihu AI from Mindhunters provides AI-powered outbound calling, WhatsApp template messaging, and appointment management endpoints in a single integration. Agents can place voice calls, send approved WhatsApp template messages, and create or update bookings, all under a per-tenant subdomain. Twenty endpoints cover the call, messaging, and appointment lifecycles end to end.

## For AI agents

Place AI-powered outbound calls, send WhatsApp template messages, and manage appointments through a single tenant API. Designed for sales, scheduling, and reminder workflows.

## Scope

Does not handle SMS messaging, payments, or full CRM contact storage - use for AI calling, WhatsApp templates, and appointment management only.

## Capabilities

- Initiate an outbound AI call with POST `/api/v1/call` and pass the script and target phone number
- List historical calls and inspect transcripts with GET `/api/v1/calls` and `/api/v1/calls/{uuid}`
- Send approved WhatsApp template messages via POST `/api/v1/whatsapp/template` for reminders and confirmations
- Create, update, and delete appointments through `/api/v1/appointments` and its CRUD endpoints
- Move an appointment between booked, completed, and no-show states with POST `/api/v1/appointments/{uuid}/status`
- Pull call detail records by uuid for downstream CRM logging and reporting

## Use cases

### AI Voice Confirmation Calls

Trigger an outbound AI voice call to confirm or reschedule appointments without human staff. The agent posts the target number and conversation goal, Mihu places the call, and the resulting transcript and outcome are retrievable by uuid for follow-up. Suited to clinics, salons, and field-service teams handling high call volumes.

Example prompt: Call POST `/api/v1/call` with phone_number and script_id, then poll GET `/api/v1/calls/{uuid}` until status is completed and return the outcome

### WhatsApp Appointment Reminders

Send approved WhatsApp template messages to confirm, remind, or reschedule. Templates handle Meta's compliance requirements, while the API call delivers parameter values per recipient. Useful for clinics and service businesses that already operate on WhatsApp and need reliable reminder delivery.

Example prompt: Send a confirm_visit template message via POST `/api/v1/whatsapp/template` with the customer's phone and appointment time substituted into template parameters

### Appointment Lifecycle Management

Create, update, reschedule, and close out appointments end to end through the appointments resource. Status transitions cover booking, completion, and cancellation, so the agent can keep an internal calendar in sync with Mihu without bespoke webhooks. Integrates naturally with the call and WhatsApp endpoints for reminder flows.

Example prompt: POST `/api/v1/appointments` with start_time, customer_uuid, and service, then on the day of the visit POST `/api/v1/appointments/{uuid}/status` with status=completed

### Agent-Driven Reminder Pipelines

An AI agent orchestrates Mihu through Jentic: it queries the day's appointments, sends a WhatsApp template, and places a confirmation call only if the message is unread. Jentic isolates the bearer token so the agent only ever holds short-lived execution requests rather than long-lived secrets.

Example prompt: Search Jentic for 'send a WhatsApp reminder', load the Mihu template schema, and send reminders for every appointment scheduled for tomorrow

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/api/v1/call` | Initiate an outbound AI call |
| GET | `/api/v1/calls` | List calls |
| POST | `/api/v1/whatsapp/template` | Send a WhatsApp template message |
| POST | `/api/v1/appointments` | Create an appointment |
| PUT | `/api/v1/appointments/{uuid}` | Update an appointment |
| POST | `/api/v1/appointments/{uuid}/status` | Transition appointment status |

## Key resources

- **Calls** — Place outbound AI calls and retrieve call records and transcripts
- **WhatsApp** — Send approved WhatsApp template messages with substituted parameters
- **Appointments** — Create, update, delete, and transition appointment status

## Why Jentic

- **Setup:** Wiring Mihu AI by hand means handling its bearer auth, resolving your tenant subdomain into the host ({subdomain}.mindhunters.ai), and coding the calling, WhatsApp template, and appointment endpoints yourself. Through Jentic you install once, import Mihu AI from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Mihu puts the appointment id in the URL path (`/api/v1/appointments/{uuid}`), so a rule can pin your agent to a specific appointment for reads and status updates. You choose the operations it may call, so placing an outbound call is not included unless you add it.
- **Credential handling:** Your Mihu bearer token is stored once, encrypted, by your own Jentic One instance and injected per call at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'place an outbound call' or 'send a WhatsApp reminder', and Jentic returns the matching Mihu operation with its input schema and tenant subdomain placeholder so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Bland AI** — Bland AI provides programmable AI voice agents focused on outbound and inbound calling at scale
- **Twilio** — Twilio offers programmable voice and WhatsApp messaging with full control over the call flow
- **Calendly** — Calendly handles self-serve booking that can feed appointments into Mihu for downstream reminder calls

## FAQ

### Why is there no official OpenAPI spec for Mihu AI API?

Mindhunters does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Mihu AI API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Mihu AI API use?

Mihu AI API uses HTTP bearer token authentication. Tokens are tenant-scoped and pass in the Authorization header as `Bearer <token>`. Jentic stores the token in its vault so it is injected at call time without entering the agent's context.

### Can I send WhatsApp messages with the Mihu AI API?

Yes, but only approved WhatsApp templates. POST `/api/v1/whatsapp/template` takes the template name, recipient phone number, and parameter values; Mihu validates the template is approved on your WhatsApp Business account before sending.

### How do I place an outbound call through Jentic?

Run `pip install jentic`, search Jentic for 'place an outbound call', and Jentic returns the Mihu `/api/v1/call` operation. Provide the destination phone_number and the script identifier, execute, and the call uuid is returned. Poll GET `/api/v1/calls/{uuid}` for status.

### How does the API handle the per-tenant subdomain?

The base URL contains a `{subdomain}` template variable that resolves to your tenant - for example `acme.mindhunters.ai`. Set the subdomain at client construction time; every endpoint is then served from your tenant origin.

### Can I cancel or reschedule an appointment after it is booked?

Yes. Use PUT `/api/v1/appointments/{uuid}` to change the start time or service, DELETE `/api/v1/appointments/{uuid}` to cancel outright, or POST `/api/v1/appointments/{uuid}/status` to transition it to a closed state such as no-show or completed.

### Can I limit what my agent is allowed to do with the Mihu AI API?

Yes. Because you run Jentic One yourself, your own rules decide which Mihu operations and credentials the agent may use. Since Mihu puts the appointment id in the URL path (`/api/v1/appointments/{uuid}`), you can pin the agent to a specific appointment for reads and status updates while excluding others. You choose the operations it may call, so placing an outbound call with POST `/api/v1/call` or sending a WhatsApp template is available only if you add it.
