# Clarity Support Docs > Guides, SDKs, and API reference for Clarity's AI support platform: agents, chat, tickets, and the knowledge base. - [Clarity support documentation](https://docs.support.onclarity.com/index.md): Build on Clarity's AI support platform: voice agents that answer and place calls, AI chat on every channel, and the tickets, customers, and knowledge behind them. - [Quickstart](https://docs.support.onclarity.com/quickstart.md): From an API key to a placed call and its transcript in five requests. - [Authentication](https://docs.support.onclarity.com/authentication.md): Your organization API key: how to get one, how to send it, and how to keep it safe. - [Voice AI overview](https://docs.support.onclarity.com/voice/overview.md): How voice agents, versions, and conversations fit together, and what you can automate with the Voice API. - [Place an outbound call](https://docs.support.onclarity.com/voice/outbound-calls.md): Have a voice agent call a phone number, then follow the call until it ends. - [Call-ended webhook](https://docs.support.onclarity.com/voice/call-ended-webhook.md): Receive a dispatched call's vCon document at your HTTPS endpoint when the call ends. - [Conversations and recordings](https://docs.support.onclarity.com/voice/conversations.md): List and filter calls, then read a call's transcript, recording, tool calls and metrics. - [Run an outbound campaign](https://docs.support.onclarity.com/voice/campaigns.md): Call a list of numbers with per-contact variables, concurrency limits, calling hours, retries and callbacks. - [Manage agents](https://docs.support.onclarity.com/voice/agents.md): Create and edit voice agents, publish drafts, and roll back to an earlier version. - [Test agents with evals](https://docs.support.onclarity.com/voice/evals.md): Run a suite of simulated calls against one agent version and read the judge's verdict on every test case. - [Support and chat overview](https://docs.support.onclarity.com/support/overview.md): How customers, tickets, and messages fit together in Clarity, and what you can automate with the Support API. - [Connect your own channel to the AI agent](https://docs.support.onclarity.com/support/ai-service.md): Pass customer messages to Clarity's AI agent from your own system on an existing web-chat ticket, and read the conversation back. - [Send messages](https://docs.support.onclarity.com/support/messages.md): Reply on a ticket and add private notes through the Support API. - [Customers and tickets](https://docs.support.onclarity.com/support/customers-and-tickets.md): Create and update customers, manage custom attributes, and change a ticket's status, assignee, category, and tags. - [Knowledge base](https://docs.support.onclarity.com/support/knowledge-base.md): Create, update, list, and delete knowledge base articles, and upload PDFs and documents, through the Support API. - [Support webhooks](https://docs.support.onclarity.com/support/webhooks.md): Receive an HTTP request when a message arrives, a ticket changes, or a knowledge base article is created. - [SDKs overview](https://docs.support.onclarity.com/sdks/overview.md): Add Clarity support chat to your website or mobile app, and find the ids each SDK needs. - [Web chat widget](https://docs.support.onclarity.com/sdks/web-widget.md): Embed Clarity's support chat on your website, open it from your own buttons, and identify signed-in visitors. - [Android SDK](https://docs.support.onclarity.com/sdks/android.md): Add Clarity's in-app support chat to an Android app: install, initialize, identify users, push notifications. - [iOS SDK](https://docs.support.onclarity.com/sdks/ios.md): Add Clarity's in-app support chat to an iOS app: install, initialize, identify users, push notifications. - [Flutter plugin](https://docs.support.onclarity.com/sdks/flutter.md): Add Clarity's in-app support chat to a Flutter app with one Dart API over the Android and iOS SDKs. - [API introduction](https://docs.support.onclarity.com/api-reference/introduction.md): The Voice API and the Support API: base URLs, conventions, and how to use the playground. - [Errors](https://docs.support.onclarity.com/api-reference/errors.md): The error bodies each API returns, the status codes, and what to do about them. - [List projects](https://docs.support.onclarity.com/api-reference/projects/list-projects.md): Lists the projects your credential can reach. With an organization API key these are the projects of the key's organization. Use a project's `id` as the `projectId` path parameter of every other endpoint. - [List campaigns](https://docs.support.onclarity.com/api-reference/campaigns/list-campaigns.md): Returns every outbound calling campaign in the project, newest first, each with a count of its contacts per status. Filter by campaign status with `status`. - [Create a campaign](https://docs.support.onclarity.com/api-reference/campaigns/create-a-campaign.md): Creates an outbound calling campaign, optionally with its first contacts in `items`. Without a `start_time` the campaign is created as a `draft` and dials nobody until you start it. With a `start_time` it is `scheduled` and starts dialing on its own at that time (and within its `calling_window`, whe… - [Get a campaign](https://docs.support.onclarity.com/api-reference/campaigns/get-a-campaign.md): Returns one campaign and all of its contacts, including each contact's call status, attempt count, the conversation its call produced, the total call duration and whether the call was judged resolved. - [Update a campaign](https://docs.support.onclarity.com/api-reference/campaigns/update-a-campaign.md): Changes a campaign's settings. Send only the fields to change; at least one is required. Only `draft` and `scheduled` campaigns can be edited: cancel a running campaign to stop it. Setting `start_time` schedules the campaign; setting it to `null` returns it to `draft`. Changing `callback` also appli… - [Delete a campaign](https://docs.support.onclarity.com/api-reference/campaigns/delete-a-campaign.md): Permanently deletes a campaign and its contacts. Only `draft`, `canceled` and `ended` campaigns can be deleted; cancel a scheduled or running campaign first. The conversations its calls produced are kept. - [Start a campaign](https://docs.support.onclarity.com/api-reference/campaigns/start-a-campaign.md): Starts dialing a `draft` or `scheduled` campaign now, or resumes a `canceled` one. Resuming redials only the contacts that had not finished; a canceled campaign whose original start time is still in the future resumes at that time instead of now. Dialing respects the campaign's `calling_window`. No… - [Cancel a campaign](https://docs.support.onclarity.com/api-reference/campaigns/cancel-a-campaign.md): Stops a campaign that has not finished. Calls already in progress finish normally; no new calls are placed. A canceled campaign can be resumed with the start operation. No request body. - [Add contacts to a campaign](https://docs.support.onclarity.com/api-reference/campaigns/add-contacts-to-a-campaign.md): Adds one or more contacts to a `draft` or `scheduled` campaign. Each contact may override the campaign's agent and callback setting, and carries `custom_vars` the agent can use during the call. Numbers that cannot be parsed are stored with status `invalid` and never dialed. - [Update a campaign contact](https://docs.support.onclarity.com/api-reference/campaigns/update-a-campaign-contact.md): Changes one contact on a `draft` or `scheduled` campaign. Send only the fields to change; at least one is required. `custom_vars`, when sent, replaces the contact's variables. Changing the phone number re-checks it: an unparseable number marks the contact `invalid`. - [Remove a campaign contact](https://docs.support.onclarity.com/api-reference/campaigns/remove-a-campaign-contact.md): Removes one contact from a `draft` or `scheduled` campaign. - [Clone a campaign](https://docs.support.onclarity.com/api-reference/campaigns/clone-a-campaign.md): Creates a new `draft` campaign named " (copy)" with the same settings and the same contacts (without their call results, and without any callback contacts created during calls). The copy has no start time. No request body. - [Get campaign progress](https://docs.support.onclarity.com/api-reference/campaigns/get-campaign-progress.md): Returns a campaign's progress: contacts per status, calls in progress, completion percentage, retries made, callbacks created, and an activity time series. - [List agents](https://docs.support.onclarity.com/api-reference/agents/list-agents.md): Returns the project's agents with their version status: the live (published) version number, and whether an unpublished draft is pending. Voice Assist agents are left out unless you ask for them with `type`. List items are a summary; read one agent for its full, current configuration. - [Create an agent](https://docs.support.onclarity.com/api-reference/agents/create-an-agent.md): Creates an agent and publishes its first version, so it is live as soon as it is created. Only `name` is required: every setting you leave out takes the platform default (speech recognition, language model and voice included). The full configuration format, with every field and allowed value, is ser… - [Get an agent](https://docs.support.onclarity.com/api-reference/agents/get-an-agent.md): Returns the agent's current configuration. When the agent has an unpublished draft, this is the draft (what the next publish will make live); otherwise it is the published version. Use the versions endpoints to read a specific version. - [Delete an agent](https://docs.support.onclarity.com/api-reference/agents/delete-an-agent.md): Permanently deletes the agent and all its versions. Calls routed to it stop being answered by it. Needs the publish permission, which organization API keys carry. - [Update an agent](https://docs.support.onclarity.com/api-reference/agents/update-an-agent.md): Changes the fields you send and leaves every other field as it is. Configuration changes are saved to the agent's draft: live calls keep using the published version until you publish the draft (`POST .../agents/{id}/publish`). The agent's `name` and demo page settings are the exception and apply imm… - [Clone an agent](https://docs.support.onclarity.com/api-reference/agents/clone-an-agent.md): Creates a copy of the agent in the same project from its published version (an unpublished draft is not copied). The copy is published and named " (clone)", or " (clone 2)" and so on when that name is taken. No request body. Needs the publish permission, which organization API ke… - [Publish the draft](https://docs.support.onclarity.com/api-reference/agents/publish-the-draft.md): Makes the agent's draft the live version: new calls use it from now on. The previously published version becomes `outdated` and stays available for rollback (`POST .../versions/{versionId}/republish`). The draft is validated in full first; a draft that fails is refused with 422 and nothing changes.… - [Discard the draft](https://docs.support.onclarity.com/api-reference/agents/discard-the-draft.md): Deletes the agent's unpublished draft. The agent returns to its published version, including the tools and dictionaries attached to it. No request body. - [List an agent's versions](https://docs.support.onclarity.com/api-reference/agents/list-an-agents-versions.md): Returns every version of the agent, newest first: at most one `draft`, at most one `published` (the live one), and any number of `outdated` versions. Each entry is a summary; read a version by id for its full configuration. - [Get an agent version](https://docs.support.onclarity.com/api-reference/agents/get-an-agent-version.md): Returns the full configuration of one version (draft, published or outdated), including the tools and dictionaries attached to it as they were when the version was saved. - [Roll back to an earlier version](https://docs.support.onclarity.com/api-reference/agents/roll-back-to-an-earlier-version.md): Makes an `outdated` version live again; the currently published version becomes `outdated`. Refused while the agent has a draft (publish or discard it first). The version is re-validated against today's rules, so a very old version may be refused with 422. No request body. Needs the publish permissi… - [List conversations](https://docs.support.onclarity.com/api-reference/conversations/list-conversations.md): Lists the project's conversations, newest first by default. A conversation is one interaction with a caller from start to end; it can span several calls (for example after a transfer) and several agent sessions. Use the filters to narrow the list and `page_size` + `offset` to page through it; `total… - [Get a conversation](https://docs.support.onclarity.com/api-reference/conversations/get-a-conversation.md): Returns one conversation with its participants (the agent sessions and the calls that took part), status, duration, summary and outcome fields. For the transcript, recording and per-turn detail, use Get conversation artifacts. `warnings` is always empty on this endpoint; the list endpoint fills it. - [List a conversation's calls](https://docs.support.onclarity.com/api-reference/conversations/list-a-conversations-calls.md): Lists the telephony or web calls that took part in one conversation, with their numbers, status, timestamps and hang-up details. - [Get conversation artifacts](https://docs.support.onclarity.com/api-reference/conversations/get-conversation-artifacts.md): Returns everything recorded about a finished conversation: for each agent session, the transcript, the event timeline, detected problems (`findings`), per-turn latency, and optionally a download link for the audio recording; plus a `merged` view that joins all sessions in time order. This is the end… - [Get conversation metrics](https://docs.support.onclarity.com/api-reference/conversations/get-conversation-metrics.md): Returns the quality and cost figures of a conversation: LLM token usage, the number of tool calls and turns, the median end-to-end reply latency, and whether the call was judged resolved. Every field is null until the figures have been recorded (shortly after the call ends), and stays null for calls… - [List calls](https://docs.support.onclarity.com/api-reference/calls/list-calls.md): Lists the project's calls (individual telephony, SIP, web or WhatsApp legs), newest first. A conversation can contain several calls; use the conversations endpoints for a per-interaction view, paging and totals. This list is not paginated: pass `limit` to cap the number of rows. - [Get a call](https://docs.support.onclarity.com/api-reference/calls/get-a-call.md): Returns one call with its numbers, channel, status, timestamps, hang-up reason and SIP code, answering-machine detection result and media metrics. `agent_id` is the agent that handled the call's conversation. - [Dispatch an outbound call](https://docs.support.onclarity.com/api-reference/outbound-calls/dispatch-an-outbound-call.md): Has the agent's published version phone `to`. The request returns as soon as dialling starts (`status: dialing`); whether the callee answers is not known yet. Follow the call through the returned `conversationId` (`GET .../conversations/{id}`), or pass `on_call_ended_url` to receive the finished cal… - [List eval suites](https://docs.support.onclarity.com/api-reference/eval-suites/list-eval-suites.md): Returns the project's eval suites, newest first, each with its scenarios, their test cases and the suite's common test cases. Deleted suites are not listed. - [Create an eval suite](https://docs.support.onclarity.com/api-reference/eval-suites/create-an-eval-suite.md): Creates a suite in one request. Each scenario and test case is either a reference to an existing one (`scenario_id` / `test_case_id`) or a new one written inline, which is created with the suite. Everything is created together or not at all. - [Get an eval suite](https://docs.support.onclarity.com/api-reference/eval-suites/get-an-eval-suite.md): Returns one suite with its scenarios, their test cases and the common test cases. - [Delete an eval suite](https://docs.support.onclarity.com/api-reference/eval-suites/delete-an-eval-suite.md): Removes the suite from the project's list. Submissions that already ran it keep their results and can still be compared. - [Update an eval suite](https://docs.support.onclarity.com/api-reference/eval-suites/update-an-eval-suite.md): Changes the fields you send. A `scenarios` or `common_test_cases` list replaces the suite's whole list, with the same reference-or-new entries as on create. Changing a suite does not change submissions that already ran it. - [Compare submissions on a suite](https://docs.support.onclarity.com/api-reference/eval-suites/compare-submissions-on-a-suite.md): Compares up to 10 eval submissions that ran this suite, typically on different agents or agent versions: per-test-case verdict counts, an overall pass rate and latency averages for each submission. Every submission must belong to this suite. Works on deleted suites too. - [List eval judges](https://docs.support.onclarity.com/api-reference/eval-judges/list-eval-judges.md): Returns the project's judges, newest first. - [Create an eval judge](https://docs.support.onclarity.com/api-reference/eval-judges/create-an-eval-judge.md): Creates a judge. The prompt template must contain the placeholders the judge fills for each test case; `GET …/eval-judges/templates` returns ready-made templates to start from. - [List judge prompt templates](https://docs.support.onclarity.com/api-reference/eval-judges/list-judge-prompt-templates.md): Returns the platform's ready-made judge prompt templates, the recommended one first. Use one as the `prompt_template` of a new judge. - [Get an eval judge](https://docs.support.onclarity.com/api-reference/eval-judges/get-an-eval-judge.md): Returns one judge. - [Delete an eval judge](https://docs.support.onclarity.com/api-reference/eval-judges/delete-an-eval-judge.md): Deletes a judge. A judge that any submission has used cannot be deleted. - [Update an eval judge](https://docs.support.onclarity.com/api-reference/eval-judges/update-an-eval-judge.md): Changes the fields you send. Submissions that already ran keep their verdicts; later judging uses the new settings. - [List eval scenarios](https://docs.support.onclarity.com/api-reference/eval-scenarios/list-eval-scenarios.md): Returns every scenario of the project with its test cases, so you can reuse one in a suite by `scenario_id`. Scenarios are created and changed through the eval suite endpoints. - [Get an eval scenario](https://docs.support.onclarity.com/api-reference/eval-scenarios/get-an-eval-scenario.md): Returns one scenario with its test cases. - [List eval test cases](https://docs.support.onclarity.com/api-reference/eval-test-cases/list-eval-test-cases.md): Returns every test case of the project, so you can reuse one in a scenario or suite by `test_case_id`. Test cases are created and changed through the eval suite endpoints. - [Get an eval test case](https://docs.support.onclarity.com/api-reference/eval-test-cases/get-an-eval-test-case.md): Returns one test case. - [List an agent's eval runs](https://docs.support.onclarity.com/api-reference/eval-submissions/list-an-agents-eval-runs.md): Returns every eval run (submission) of this agent, newest first, each with its suite, judge, scenarios, test cases and progress counters. - [Create an eval run](https://docs.support.onclarity.com/api-reference/eval-submissions/create-an-eval-run.md): Creates an eval run that calls this agent with the suite's simulated callers and grades each call with the chosen judge. The run is created **paused** and places no calls until you start it with `POST …/eval-submissions/{id}/run`. By default it tests the agent's current published version; the versio… - [Get an eval run](https://docs.support.onclarity.com/api-reference/eval-submissions/get-an-eval-run.md): Returns one eval run with its suite, judge, scenarios, test cases and progress counters. - [Delete an eval run](https://docs.support.onclarity.com/api-reference/eval-submissions/delete-an-eval-run.md): Deletes the run and its verdicts. A running run is paused first. The suite, judge, scenarios and test cases are kept, and the calls it placed stay in your call history. - [Update a paused eval run](https://docs.support.onclarity.com/api-reference/eval-submissions/update-a-paused-eval-run.md): Changes a paused run's name, description or run settings. A running run must be paused first. The suite, judge, tested version and simulated-caller settings cannot be changed. - [List an eval run's verdicts](https://docs.support.onclarity.com/api-reference/eval-submissions/list-an-eval-runs-verdicts.md): Returns the judge's verdict on every test case of every graded call, oldest first, including the judge's reasoning. Verdicts appear as calls are graded, so you can poll this while the run is in progress. Narrow the list with `test_case_id` and/or `call_id`; an empty value means no filter. - [List an eval run's calls](https://docs.support.onclarity.com/api-reference/eval-submissions/list-an-eval-runs-calls.md): Returns each finished call of the run with its scenario, outcome, grading state and latency measurements. Use `conversation_id` to fetch the call's transcript and recording. - [Get an eval run's report](https://docs.support.onclarity.com/api-reference/eval-submissions/get-an-eval-runs-report.md): Returns the whole run summarized in one read: pass rates overall and per test case and scenario, each call, latency, run-health checks, the agent setup tested and the test setup used. The judge's reasoning is not included; read it from the verdicts endpoint. - [Start or resume an eval run](https://docs.support.onclarity.com/api-reference/eval-submissions/start-or-resume-an-eval-run.md): Starts a paused run, or resumes one that paused itself. Calls that failed for a reason a retry can fix are placed again. Returns 409 when the run is already active, or when every remaining call failed in a way a resume cannot retry (`code: resume_blocked_all_slots_failed` or `resume_blocked_all_slot… - [Pause an eval run](https://docs.support.onclarity.com/api-reference/eval-submissions/pause-an-eval-run.md): Stops placing new calls. Calls already in progress finish and are still graded. - [Start all of an agent's paused eval runs](https://docs.support.onclarity.com/api-reference/eval-submissions/start-all-of-an-agents-paused-eval-runs.md): Starts every paused eval run of this agent at once. Runs that could not place any call when resumed are left paused and listed in `skipped` with the reasons their calls failed. - [List all eval runs in a project](https://docs.support.onclarity.com/api-reference/eval-submissions/list-all-eval-runs-in-a-project.md): Returns every eval run in the project across all agents, each with the agent's name, its suite, judge, scenarios, test cases and progress counters. - [Get an eval run by id](https://docs.support.onclarity.com/api-reference/eval-submissions/get-an-eval-run-by-id.md): Returns one eval run by its id without needing to know the agent, including the agent's name. - [Get an eval run's status](https://docs.support.onclarity.com/api-reference/eval-submissions/get-an-eval-runs-status.md): A light read for polling: the run's state (`not_started`, `in_progress`, `paused`, `failed`, `completed`), the reason it paused itself if it did, and a progress breakdown of calls and grading with an estimated time remaining. - [List an eval run's verdicts by run id](https://docs.support.onclarity.com/api-reference/eval-submissions/list-an-eval-runs-verdicts-by-run-id.md): Returns the judge's verdict on every test case of every graded call, oldest first, with the judge's reasoning. - [Set a ticket's category](https://docs.support.onclarity.com/api-reference/tickets/set-a-tickets-category.md) - [Set a ticket's status](https://docs.support.onclarity.com/api-reference/tickets/set-a-tickets-status.md) - [Add or remove ticket tags](https://docs.support.onclarity.com/api-reference/tickets/add-or-remove-ticket-tags.md) - [Set a ticket's tags](https://docs.support.onclarity.com/api-reference/tickets/set-a-tickets-tags.md) - [Assign a ticket](https://docs.support.onclarity.com/api-reference/tickets/assign-a-ticket.md) - [List ticket priorities](https://docs.support.onclarity.com/api-reference/tickets/list-ticket-priorities.md) - [List ticket statuses](https://docs.support.onclarity.com/api-reference/tickets/list-ticket-statuses.md) - [List ticket categories](https://docs.support.onclarity.com/api-reference/tickets/list-ticket-categories.md) - [List agents](https://docs.support.onclarity.com/api-reference/tickets/list-agents.md) - [List teams](https://docs.support.onclarity.com/api-reference/tickets/list-teams.md) - [List tags](https://docs.support.onclarity.com/api-reference/tickets/list-tags.md) - [Send a message on a ticket](https://docs.support.onclarity.com/api-reference/messages/send-a-message-on-a-ticket.md) - [Upload an attachment](https://docs.support.onclarity.com/api-reference/messages/upload-an-attachment.md) - [Create a customer](https://docs.support.onclarity.com/api-reference/customers/create-a-customer.md) - [Delete a customer](https://docs.support.onclarity.com/api-reference/customers/delete-a-customer.md) - [Get a customer](https://docs.support.onclarity.com/api-reference/customers/get-a-customer.md) - [Update a customer](https://docs.support.onclarity.com/api-reference/customers/update-a-customer.md) - [Set a customer's tags](https://docs.support.onclarity.com/api-reference/customers/set-a-customers-tags.md) - [List customers](https://docs.support.onclarity.com/api-reference/customers/list-customers.md) - [List custom attribute definitions](https://docs.support.onclarity.com/api-reference/customers/list-custom-attribute-definitions.md) - [Get custom attribute values](https://docs.support.onclarity.com/api-reference/customers/get-custom-attribute-values.md) - [Set a custom attribute value](https://docs.support.onclarity.com/api-reference/customers/set-a-custom-attribute-value.md) - [Get ticket details](https://docs.support.onclarity.com/api-reference/ai-service/get-ticket-details.md) - [Request a voice call](https://docs.support.onclarity.com/api-reference/ai-service/request-a-voice-call.md) - [Get customer details](https://docs.support.onclarity.com/api-reference/ai-service/get-customer-details.md) - [List a customer's tickets](https://docs.support.onclarity.com/api-reference/ai-service/list-a-customers-tickets.md) - [Send a customer message](https://docs.support.onclarity.com/api-reference/ai-service/send-a-customer-message.md) - [Create an article](https://docs.support.onclarity.com/api-reference/knowledge-base/create-an-article.md) - [Delete an article](https://docs.support.onclarity.com/api-reference/knowledge-base/delete-an-article.md) - [Get an article](https://docs.support.onclarity.com/api-reference/knowledge-base/get-an-article.md) - [Get knowledge base metadata](https://docs.support.onclarity.com/api-reference/knowledge-base/get-knowledge-base-metadata.md) - [List articles](https://docs.support.onclarity.com/api-reference/knowledge-base/list-articles.md) - [Update an article](https://docs.support.onclarity.com/api-reference/knowledge-base/update-an-article.md) - [Upload articles from a file](https://docs.support.onclarity.com/api-reference/knowledge-base/upload-articles-from-a-file.md) - [Create a webhook](https://docs.support.onclarity.com/api-reference/webhooks/create-a-webhook.md) - [Get a webhook](https://docs.support.onclarity.com/api-reference/webhooks/get-a-webhook.md) - [Delete a webhook](https://docs.support.onclarity.com/api-reference/webhooks/delete-a-webhook.md) - [List webhook events](https://docs.support.onclarity.com/api-reference/webhooks/list-webhook-events.md) - [List webhooks](https://docs.support.onclarity.com/api-reference/webhooks/list-webhooks.md) - [Update a webhook](https://docs.support.onclarity.com/api-reference/webhooks/update-a-webhook.md) - [Changelog](https://docs.support.onclarity.com/changelog.md): Changes to the Clarity APIs, SDKs, and these docs. ## OpenAPI Specs - [support-openapi](/api-reference/support-openapi.json) - [voice-openapi](/api-reference/voice-openapi.json) ## Optional - [Open Clarity](https://support.onclarity.com) - [Support](mailto:hello@onclarity.com) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.