# Cloud Chat ## Docs - [Introduction](https://docs.cloudhumans.com/index.md): Cloud Humans developer documentation - [MCP Server](https://docs.cloudhumans.com/mcp/overview.md): Connect Claude, Cursor, or any MCP client to your Cloud Humans data — no API keys, no glue code. - [Cloud Chat API](https://docs.cloudhumans.com/integrations/cloud-chat-api.md): Build integrations with the Cloud Chat API. - [ClaudIA API](https://docs.cloudhumans.com/integrations/claudia-api.md): Build integrations with the ClaudIA API. - [Overview and access](https://docs.cloudhumans.com/data-export/overview.md): Data export gives you the raw data behind your ClaudIA and Cloud Chat operation. Ingest it into your own data lake to build analyses or integrate it with internal corporate systems. - [Bucket layout](https://docs.cloudhumans.com/data-export/bucket-layout.md): How files are organized under your bucket: contract version, tables, date partitions, and how to tell when your data is ready to read. - [Downloading files](https://docs.cloudhumans.com/data-export/downloading.md): Read the export with the AWS CLI, with boto3 in an orchestrator, or in place with a query engine. - [Storage classes and restoring archived data](https://docs.cloudhumans.com/data-export/storage-classes.md): How file age maps to S3 storage class, and how to restore files archived in Glacier Flexible Retrieval. - [Performance and best practices](https://docs.cloudhumans.com/data-export/performance.md): Tune AWS CLI concurrency for faster downloads, and the habits that keep your integration predictable. - [Troubleshooting](https://docs.cloudhumans.com/data-export/troubleshooting.md): Fixes for the errors you'll actually hit: AccessDenied, InvalidObjectState, expired SSO tokens, and more. - [Table catalog](https://docs.cloudhumans.com/data-export/catalog/overview.md): Every table delivered to your bucket, what one row means, and how it is refreshed. - [claudia_conversation](https://docs.cloudhumans.com/data-export/catalog/claudia/claudia_conversation.md): The conversation-level fact table, and only for conversations the ClaudIA agent took part in. Start here to count conversations, split N1 from N2, and read why a conversation was escalated. For everything in the helpdesk, whether or not an agent was involved, use [`cloud_chat_conversations`](/data-e… - [claudia_messages](https://docs.cloudhumans.com/data-export/catalog/claudia/claudia_messages.md): Every message on both sides of a conversation, with what triggered each agent reply. The largest table in the export. - [claudia_contents](https://docs.cloudhumans.com/data-export/catalog/claudia/claudia_contents.md): What the agent could draw on when it answered. Join from `claudia_prompt_revision` to see which section produced a given reply. - [claudia_conversation_feedback](https://docs.cloudhumans.com/data-export/catalog/claudia/claudia_conversation_feedback.md): Your agents' quality reviews of the ClaudIA agent's work: whether the customer's problem was solved, whether the conversation should have been escalated, and whether the tag was right. A conversation nobody reviewed has no row here. - [claudia_csat](https://docs.cloudhumans.com/data-export/catalog/claudia/claudia_csat.md): Satisfaction scores for ClaudIA conversations, with the raw answer kept alongside the normalized score. - [claudia_prompt_revision](https://docs.cloudhumans.com/data-export/catalog/claudia/claudia_prompt_revision.md): Handling a single conversation takes many calls to the language model, each with its own prompt. Every one of them is logged here, with the content sections retrieved and the action that followed. This is where you look to explain a reply. - [eddie_result_outcomes](https://docs.cloudhumans.com/data-export/catalog/claudia/eddie_result_outcomes.md): Outcome of each controlled flow the agent triggered, joined to the resolution and CSAT of the conversation it belonged to. - [cloud_chat_conversations](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_conversations.md): The workspace-side conversation table: inbox, team, assignee, CSAT, durations and message counts on a single row. The widest table in the export. - [cloud_chat_conversations_tags](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_conversations_tags.md): One row per tag applied to a conversation. Use this instead of the `tags_list` column on `cloud_chat_conversations` when you need to group or filter by tag. - [cloud_chat_conversations_custom_fields](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_conversations_custom_fields.md): Custom field values in long format, one row per field. Pivot on your side — the set of fields differs per workspace, so the export cannot pivot for you. - [cloud_chat_conversations_first_reply_metrics](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_conversations_first_reply_metrics.md): Response time per assignment, not per conversation. A conversation reassigned three times has three rows here. - [cloud_chat_contacts](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_contacts.md): The customer-side identity a conversation is attached to. Several columns hold your customers' personal data, marked as such below. - [cloud_chat_csat](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_csat.md): Workspace-side satisfaction responses, denormalized with the agent, team and inbox that handled the conversation. - [cloud_chat_tags](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_tags.md): The tag dimension. Join from `cloud_chat_conversations_tags` when you need a tag's description as well as its name. - [cloud_chat_outbound_events](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_outbound_events.md): Proactive messages and campaign sends, with the delivery funnel timestamps and the provider error when a send failed. - [cloud_chat_agent_metrics](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_agent_metrics.md): The headline support metrics for a single agent on a single day. Every duration is a sum, not an average — divide by the matching count column to get an average. - [cloud_chat_team_metrics](https://docs.cloudhumans.com/data-export/catalog/cloud-chat/cloud_chat_team_metrics.md): The same headline support metrics as `cloud_chat_agent_metrics`, for a single team on a single day rather than a single agent. - [Cloud Chat API](https://docs.cloudhumans.com/api-reference/cloudchat/overview.md): Base URL, authentication, the instance header, and the conventions every endpoint follows. - [Find your credentials](https://docs.cloudhumans.com/api-reference/cloudchat/credentials.md): Sign in, then get the cloudchat-instance header and account id every call needs. - [Sign in and get a token](https://docs.cloudhumans.com/api-reference/cloudchat/v1/auth/authentication/sign-in-and-get-a-token.md): Authenticate with email and password and receive the token used by every other API. One token covers Claudia, Cloud Chat and the services that follow — the account you see is derived from it, and the same token is valid against production and staging. - [Answer a sign-in challenge](https://docs.cloudhumans.com/api-reference/cloudchat/v1/auth/authentication/answer-a-sign-in-challenge.md): Finish a sign-in that came back with a `challenge` instead of a token. Send the `session` from that response together with the answer the challenge asks for — the SMS code, or the new password. - [List canned responses](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-canned-responses.md): Every canned response on the account, paginated. Add `search` to filter, `sort` to order. - [Get a canned response](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-a-canned-response.md): A single canned response by id. Useful to re-read one after an edit, or to check `updated_at` before overwriting something another user may have changed. - [Create a canned response](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/create-a-canned-response.md): Both fields are required. `short_code` has to be unique within the account — reusing one is a 422, not an overwrite. - [Update a canned response](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/update-a-canned-response.md): A partial update: send `short_code`, `content`, or both. The field you leave out keeps its current value. - [Delete a canned response](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/delete-a-canned-response.md): Permanent, and it takes any attachments with it. There is no undo and no trash to restore from. - [List conversations](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-conversations.md): The account's conversations, newest activity first, paginated. Filters are a fixed allowlist and combine with AND — send only the ones you need. An invalid filter value is a 400 whose `details` array names each offending parameter and says what it accepts. - [Get a conversation](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-a-conversation.md): A single conversation by its **display_id** — the number in the dashboard URL and in webhooks, not the internal database id. Visibility follows the same rule as the list: an administrator token can reach every inbox of the account, an agent token only its own inbox memberships. A conversation whose… - [List conversation messages](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-conversation-messages.md): The messages of one conversation, oldest first by default, paginated without a total count — walk forward while `meta.has_next` is `true`. - [List labels](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-labels.md): Every label defined on the account, paginated. Add `search` to filter, `sort` to order. This is the label catalog, not conversations tagged with one — see `label` on [list conversations](/api-reference/cloudchat/endpoints/list-conversations) for that. - [List inboxes](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-inboxes.md): The inboxes the token can see — every inbox of the account for an administrator, only its memberships for an agent — paginated. Add `search` to filter, `sort` to order. **No channel credential (access token, phone number id, API key, or similar) is ever included**, on any channel type. - [Get an inbox](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-an-inbox.md): A single inbox by id. Answers 404 for an inbox outside the token's reach (an agent that is not a member of it), the same as for an id that does not exist. **No channel credential is ever included.** - [List agents](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-agents.md): Every human and AI agent of the account, paginated. Add `search` to filter, `sort` to order. A hidden admin — the platform's own support user — never appears in this list. - [Get an agent](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-an-agent.md): A single agent by id. Answers 404 for a hidden admin's id, the same as for an id that does not exist — there is no way to distinguish the two through this endpoint. - [Create an agent](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/create-an-agent.md): Administrator only. Invites the agent by email; someone who already has a CloudChat login on another account becomes a member of this one, keeping that login. Consumes one agent license seat — a 402 means the account has none left. - [Update an agent](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/update-an-agent.md): Administrator only. Change one or more writable fields; what is not sent stays untouched. At least one writable field must be present — an empty payload is a 400, not a no-op. Refused with 403 on the platform-managed AI agent. `name` is the user's global display name, so changing it here changes it… - [List teams](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-teams.md): Every team of the account, paginated. Add `search` to filter, `sort` to order. Open to any member. - [Get a team](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-a-team.md): A single team by id. Open to any member. - [Create a team](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/create-a-team.md): Administrator only. `name` is required and unique within the account (stored lowercased, so the comparison is case-insensitive). - [Update a team](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/update-a-team.md): Administrator only. Change one or more writable fields; what is not sent stays untouched. At least one writable field must be present — an empty payload is a 400, not a no-op. Refused with 403 on a `system_managed` team. - [List team members](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-team-members.md): Every agent on the team, paginated. Open to any member. A hidden admin never appears here, even if internally on the team. - [Add team members](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/add-team-members.md): Administrator only. **Additive and idempotent — it never removes a member left out of the payload.** There is no endpoint to remove one through this API. Refused with 403 on a `system_managed` team. - [List macros](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-macros.md): The account's `global` macros plus the caller's own `personal` macros, paginated. Add `search` to filter, `sort` to order. A personal macro belonging to someone else never appears. - [Get a macro](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-a-macro.md): A single macro by id. A `global` macro is visible to any member; a `personal` one only to its author — a personal macro of someone else answers 404, the same as an id that does not exist. - [Create a macro](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/create-a-macro.md): Open to any account member. `name` and `actions` are required; each action's `action_name` must be one of the values on the `MacroAction` schema — anything else is refused as `validation_failed`, naming the unsupported actions. - [Update a macro](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/update-a-macro.md): Requires being the macro's author, or an administrator editing a `global` macro. Change one or more writable fields; what is not sent stays untouched. At least one of `name`, `visibility` or `actions` must be present — an empty payload is a 400, not a no-op. The same `action_name` allow-list from cr… - [List automation rules](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-automation-rules.md): Every automation rule of the account, paginated. **Administrator only — an agent token gets a 403.** Add `search` to filter, `sort` to order; the default `execution_order` matches the order the rules actually run in for the same event. - [Get an automation rule](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-an-automation-rule.md): A single automation rule by id. **Administrator only — an agent token gets a 403.** - [List availability reasons](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-availability-reasons.md): Every availability reason of the account, paginated. Open to any member. A soft-deleted reason never appears here — its history on past agent availability changes still preserves the reference. - [Create an availability reason](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/create-an-availability-reason.md): Administrator only. `reason` is required. The reason is always created for the `busy` availability — there is no field to choose another, whatever the payload sends. - [Update an availability reason](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/update-an-availability-reason.md): Administrator only. Change one or both writable fields; what is not sent stays untouched. At least one writable field must be present — an empty payload is a 400, not a no-op. - [Delete an availability reason](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/delete-an-availability-reason.md): Administrator only. **This is a soft delete** — the reason drops out of [list availability reasons](/api-reference/cloudchat/endpoints/list-availability-reasons) but is not destroyed, so the availability history of agents who used it stays intact. This is the only delete in the whole v1 surface; the… - [List portals](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-portals.md): Every help center site (portal) of the account, ordered by id — with the `slug` the other help center endpoints take in the path. Start here when you don't know the slug. - [Get a portal](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-a-portal.md): Read one portal by its slug. - [Create a portal](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/create-a-portal.md): Create a new help center site on the account. This is the first step of building one entirely through the API: create the portal, [allow the locales you need](/api-reference/cloudchat/endpoints/update-a-portal), [create categories](/api-reference/cloudchat/endpoints/create-a-category), then [create… - [Update a portal](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/update-a-portal.md): Change a portal's name, the locales it may hold content in, or its logo. Send only the fields you are changing; a body with none of them is a 400. - [List categories](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-categories.md): One portal's categories, paginated, in the order the public help center renders them (`position`, ascending). Use it to pick the `category_id` for an article — the category also decides the locale the article is created in and translated to. - [Get a category](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-a-category.md): Read one category by its numeric id. - [Create a category](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/create-a-category.md): Create a category in the portal. Its `id` is what goes into `category_id` when [creating an article](/api-reference/cloudchat/endpoints/create-an-article), and its locale is what decides that article's language and translation target. - [Update a category](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/update-a-category.md): Change a category's name, description, URL handle or translation link. - [Delete a category](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/delete-a-category.md): Permanently remove an **empty** category. - [List articles](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/list-articles.md): The portal's articles — drafts and archived included, unlike the public help center — most recently updated first, paginated without a total count (`has_next`). - [Get an article](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/get-an-article.md): One article with its full Markdown content and publication status — drafts are readable here, unlike on the public help center. Requires being an administrator of the account or a member of the portal. - [Create an article](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/create-an-article.md): Create one article in the portal. It starts as `draft` — invisible on the public help center — unless the payload sends an explicit `status`; the usual flow is create as draft, review, then [publish by updating the status](/api-reference/cloudchat/endpoints/update-an-article). - [Update an article](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/update-an-article.md): Change one or more writable fields; what is not sent stays untouched. At least one writable field must be present — an empty payload is a 400, not a no-op. - [Translate an article](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/translate-an-article.md): Overwrite the article's title, content and — when it has one — description with their machine translation into the article's own target locale — the locale of its category, or the portal default when it has no category. There is no request body. An article without a description is translated without… - [Delete an article](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/delete-an-article.md): Permanently remove an article. - [Upload an image](https://docs.cloudhumans.com/api-reference/cloudchat/endpoints/upload-an-image.md): Store one image and get back the URL to embed in article Markdown (`![alt](file_url)`). - [Sign in](https://docs.cloudhumans.com/api-reference/claudia/sign-in.md): Get the token every Claudia API call needs, including the two-step path. - [Sign in and get a token](https://docs.cloudhumans.com/api-reference/claudia/v1/auth/authentication/sign-in-and-get-a-token.md): Authenticate with email and password and receive the token used by every other API. One token covers Claudia, Cloud Chat and the services that follow — the account you see is derived from it, and the same token is valid against production and staging. - [Answer a sign-in challenge](https://docs.cloudhumans.com/api-reference/claudia/v1/auth/authentication/answer-a-sign-in-challenge.md): Finish a sign-in that came back with a `challenge` instead of a token. Send the `session` from that response together with the answer the challenge asks for — the SMS code, or the new password. - [List knowledge bases](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-bases/list-knowledge-bases.md): Every knowledge base this client can manage. Accounts come from the token: if your credentials cover several, all of them are listed together and each row carries the accountId + instance pair that identifies its account. accountId and instance are optional filters — they narrow the result, never wi… - [Get a knowledge base](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-bases/get-a-knowledge-base.md): A single knowledge base by id. Every other endpoint takes this id, so this is how you confirm one is reachable with your credentials before operating on it. - [List and search content](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-base-content/list-and-search-content.md): Paginated content listing. Filter exactly by label, topic, status or source, or set semanticSearch=true to rank by meaning instead. Interactive flows are never returned here. - [Get a content entry](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-base-content/get-a-content-entry.md): A single piece of content by id. - [List tags in use](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-base-content/list-tags-in-use.md): Every tag currently applied to content in this knowledge base. - [List topics in use](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-base-content/list-topics-in-use.md): Every topic currently applied to content in this knowledge base. - [Create a content entry](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-base-content/create-a-content-entry.md): Add a single piece of content. Use bulk import when loading many at once. - [Import content in bulk](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-base-content/import-content-in-bulk.md): Create up to 200 entries in one call. Each item is validated on its own and the response reports successes and failures separately, keyed by your clientRef, so one bad row does not sink the batch. - [Enable or disable an entry](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-base-content/enable-or-disable-an-entry.md): Flip an entry between active and disabled. Disabled content stays stored but is not used to answer. - [Update a content entry](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-base-content/update-a-content-entry.md): Replace the fields of an existing entry. - [Delete a content entry](https://docs.cloudhumans.com/api-reference/claudia/v1/knowledge-base-content/delete-a-content-entry.md): Permanently remove an entry. - [List proposed rewrites](https://docs.cloudhumans.com/api-reference/claudia/v1/content-quality/list-proposed-rewrites.md): The quality review queue, most impactful first. Each row pairs the answer as analysed with the rewrite proposed for it, plus the diagnosis and the performance that justify the change. - [Count the quality review](https://docs.cloudhumans.com/api-reference/claudia/v1/content-quality/count-the-quality-review.md): How many rewrites are waiting, how many were already decided, and what the waiting ones would do to your content. - [Approve proposed rewrites](https://docs.cloudhumans.com/api-reference/claudia/v1/content-quality/approve-proposed-rewrites.md): Apply the proposed text to your content, so Claudia starts answering with it. Idempotent and tolerant: read the per-id outcome — an id already decided is skipped, a restructuring proposal is blocked, and an id that failed to apply was rolled back and is safe to retry. - [Reject proposed rewrites](https://docs.cloudhumans.com/api-reference/claudia/v1/content-quality/reject-proposed-rewrites.md): Dismiss rewrites you do not want. Your content is never touched — the proposals simply leave the queue. - [Edit a proposal before approving it](https://docs.cloudhumans.com/api-reference/claudia/v1/content-quality/edit-a-proposal-before-approving-it.md): Adjust the proposed text on a proposal that is still waiting. This changes the proposal, not your content — nothing is published until you approve it. - [List suggested content](https://docs.cloudhumans.com/api-reference/claudia/v1/content-improvements/list-suggested-content.md): The review queue: content Claudia proposes for questions your knowledge base did not answer. Each row carries why it was proposed and how many conversations hit the gap, so you can decide what is worth publishing. - [Count the review queue](https://docs.cloudhumans.com/api-reference/claudia/v1/content-improvements/count-the-review-queue.md): How many suggestions are waiting, and how many of those can be approved as they are — the rest still carry a blank to fill in first. - [Approve suggestions](https://docs.cloudhumans.com/api-reference/claudia/v1/content-improvements/approve-suggestions.md): Publish suggested content so Claudia starts answering with it. Idempotent and tolerant: read the per-id outcome — an id already decided is skipped, and one that still carries a blank is blocked until you edit it with updateImprovement. - [Reject suggestions](https://docs.cloudhumans.com/api-reference/claudia/v1/content-improvements/reject-suggestions.md): Dismiss suggestions you do not want. Nothing is deleted — they leave the queue, and the pipeline will not propose the same gap again. - [Edit a suggestion before approving it](https://docs.cloudhumans.com/api-reference/claudia/v1/content-improvements/edit-a-suggestion-before-approving-it.md): Rewrite a pending suggestion — typically to fill in a `[COMPLETAR]` blank that blocks approval. Only suggestions can be edited here; ordinary content is edited through updateEntry. - [List content sources](https://docs.cloudhumans.com/api-reference/claudia/v1/content-sources/list-content-sources.md): The sites configured to be crawled into this knowledge base. Each source says where the crawl starts, what it may follow, and when it runs. The content a crawl produces is read through listEntries like any other. - [Create or update a content source](https://docs.cloudhumans.com/api-reference/claudia/v1/content-sources/create-or-update-a-content-source.md): Send configId to change an existing source, or omit it to create one — a configId that matches no source of this knowledge base is refused, never created under the id you sent. Every field is optional and an omitted one keeps what is stored. maxAgeMs is the exception worth reading: omit it to keep t… - [Delete a content source](https://docs.cloudhumans.com/api-reference/claudia/v1/content-sources/delete-a-content-source.md): Stop crawling a site. Content already imported from it stays in the knowledge base — remove it with deleteEntry if you no longer want it. - [List MCP servers](https://docs.cloudhumans.com/api-reference/claudia/v1/mcp-servers/list-mcp-servers.md): Every MCP server registered for this tenant, including the ones CloudHumans provides to everyone. Start here: the ids returned are what the update, delete and probe operations take. Credentials are never part of the answer — `credentialsStored` only says whether one is on file. - [Register an MCP server](https://docs.cloudhumans.com/api-reference/claudia/v1/mcp-servers/register-an-mcp-server.md): Add a server so its tools become available to this tenant's agents. Probe the endpoint with validateMcpServer first: a passing probe is what lets you send `verified: true`, which is what makes the runtime call the url exactly as you wrote it. - [Probe an MCP server](https://docs.cloudhumans.com/api-reference/claudia/v1/mcp-servers/probe-an-mcp-server.md): Ask a server for its tool list, with the same call the agent runtime makes, and report what happened. Nothing is registered or changed. Use it before createMcpServer to check an endpoint and its credential, and afterwards with `serverId` to check whether a server you already registered is still answ… - [Update an MCP server](https://docs.cloudhumans.com/api-reference/claudia/v1/mcp-servers/update-an-mcp-server.md): Change a registered server. Omitted fields keep what is stored, so send only what changes. Two rules are worth knowing before you call: switching `authType` requires sending `credentials` in the same request, and `customHeaders` replaces the stored map wholesale rather than merging into it. Servers… - [Delete an MCP server](https://docs.cloudhumans.com/api-reference/claudia/v1/mcp-servers/delete-an-mcp-server.md): Remove a server and its stored credential. Agents configured to use it stop being able to call its tools, so check what references the slug before deleting. Servers CloudHumans owns cannot be deleted. - [Send a message to ClaudIA and read its answer](https://docs.cloudhumans.com/api-reference/claudia/v1/playground/send-a-message-to-claudia-and-read-its-answer.md): Runs your ClaudIA for real against a message you write — the live project your customers are served by, with its own prompts, knowledge base, tools, model, classification and hand-off rules — and answers with what the customer would have received and where the ticket would have gone. Nothing reaches… - [Read a project's settings](https://docs.cloudhumans.com/api-reference/claudia/v1/project-settings/read-a-projects-settings.md): Every setting of this project your role is allowed to see, as one object. This is also the discovery call for writing: the keys it returns, minus the ones it lists in `readOnlyPaths`, are exactly the keys updateProjectSettings will accept from you. What you may see is decided per account by CloudCha… - [Read who changed a project's settings, and to what](https://docs.cloudhumans.com/api-reference/claudia/v1/project-settings/read-who-changed-a-projects-settings-and-to-what.md): Every save made to this project's settings, newest first, with the value on each side of each change — which is how a change is undone: patch the field back to its `before`. Filtered by the same permissions as getProjectSettings, so a save that touched a field you cannot read is still listed but sho… - [Change a project's settings](https://docs.cloudhumans.com/api-reference/claudia/v1/project-settings/change-a-projects-settings.md): Changes only the settings you send. A key you omit keeps its stored value, so send the keys you mean to change and nothing else — this is a merge patch, not a replacement. Nested settings are sent nested (`{"greetingsSettings": {"staticGreeting": "Oi!"}}`), which changes that one greeting and leaves… - [List a project's A/B variants](https://docs.cloudhumans.com/api-reference/claudia/v1/project-settings/list-a-projects-ab-variants.md): The A/B variant keys this project declares. A variant replaces the settings it declares — prompt, model, whatever it overrides — for a single run, which is how one configuration is compared against another without editing the project. Send one of these as `abKey` to runPlayground; a key that is not… ## OpenAPI Specs - [v1](https://docs.cloudhumans.com/api-reference/specs/cloudchat/v1.json)