https://wiredesk.ai/docs/api-reference/openapi.json. The same operations are also tools on the MCP server, for AI assistants.
This page covers what the reference leaves out: how changing an agent, talking to one, search, knowledge and contacts behave.
Change an agent
PATCH /agents/{agent_id} changes the agent’s name (up to 80 characters), greeting (300) or instructions (4,000). Send only the fields that change. They take effect on every channel at once. greeting is the phone greeting, spoken when the agent picks up a call; website chat opens with the widget’s own opening message instead. Each change is a new version in the agent’s Settings › Version history, so you can roll it back, and appears in the activity log with the key’s name. Voice, actions, channels and the widget’s look are changed in the dashboard.
Talk to an agent
POST /agents/{agent_id}/chat runs the same agent as the chat widget, with the same instructions, knowledge, actions and handover. It is billed as a chat reply.
- Leave out
conversation_idto start a conversation. Pass the one you got back to continue it. Only conversations started through the API can be continued this way. user_idis your own id for the person. Their conversations then share one contact, of kindapi, whose value is youruser_id. It is kept apart from website visitors, so nobody on your website can claim it. Without it, each conversation gets a contact of its own.nameis stored on the contact if it has none yet.- If a teammate has taken the conversation over,
replyisnullandhandover_stateisactive. Their reply arrives in the messages list and as amessage.createdwebhook. - If the agent asked for a person during its reply,
handover_stateisrequested. - If the workspace is at its spend cap, the request gets
402and nothing is stored. - If the agent’s chat channel is switched off, the request gets
403and nothing is stored.
Search conversations
GET /conversations/search?q= finds what the search box on the Conversations page finds: the customer’s name, number or email, the agent, the channel, the summary, the topic and the outcome. The match is case-insensitive.
One request reads at most 1,000 conversations, newest first. If it stops there without filling the page, has_more is true and next_cursor continues from where it stopped, even if data is empty. Keep following the cursor until has_more is false.
Knowledge
- Text (
"type": "text", withcontentup to 200,000 characters and an optionallabel) is indexed before the response. It comes back201withstatus: "ready". - A website (
"type": "url", withurl) is crawled in the background. It comes back202withstatus: "pending". List the sources to see when it isreadyorerror. - Files are not in the API yet. Upload them on the agent’s Knowledge page.
- Q&A answers (
qa) and synced sources (zendesk_guide,intercom_articles,notion,confluence) appear in the list and can be deleted here, but are added on the agent’s Knowledge page. Deleting a synced source removes every article it brought in. GET /agents/{agent_id}/knowledge/search?q=returns the passages the agent itself would find, best first, each with itssourceandscore.
Contacts
You can add a contact before they ever get in touch, for example from your CRM, so the agents know their name.kind is phone (in international format, like +14155550123) or email. The first call or email from that number or address lands on that contact. Website visitors’ contacts are created by their conversations and cannot be made by hand.
Deleting a contact also deletes the notes the agents saved about them (“Remember callers”). Their conversations stay.