# Flowyte > Build AI voice and chat agents with an API-first platform. ## Docs - [Account AI copilot](https://docs.flowyte.com/api-reference/agents/account-ai-copilot.md): Sends a natural-language request to an AI copilot that can configure your entire account and review call history by calling your own API operations on your behalf. It streams progress and returns its reply with any changes applied. Actions that could be destructive are paused and listed for you to a… - [Compare a version with the draft](https://docs.flowyte.com/api-reference/agents/compare-a-version-with-the-draft.md): Returns the differences between a published version and the agent's current draft, so you can review exactly what changed before publishing. - [Configure an agent with AI](https://docs.flowyte.com/api-reference/agents/configure-an-agent-with-ai.md): Sends a natural-language request to an AI assistant that edits this agent for you. It streams progress and returns the assistant's reply along with the list of changes it applied to the agent. - [Create an agent](https://docs.flowyte.com/api-reference/agents/create-an-agent.md): Creates a new agent. The agent starts as a draft; publish it before it can take live calls or chats. - [Delete an agent](https://docs.flowyte.com/api-reference/agents/delete-an-agent.md): Deletes an agent so it no longer appears in your list or handles calls and chats. - [Get an agent](https://docs.flowyte.com/api-reference/agents/get-an-agent.md): Returns a single agent by its ID, including its current draft configuration. - [Get an AI copilot thread](https://docs.flowyte.com/api-reference/agents/get-an-ai-copilot-thread.md): Returns a single AI copilot conversation and all of its messages so you can review or resume it. - [Get the pre-publish report](https://docs.flowyte.com/api-reference/agents/get-the-pre-publish-report.md): Returns a plain-language summary of how the agent will behave once published, including what it can answer, what it will decline, and what information it discloses. Use it to review the agent before going live. - [List agent versions](https://docs.flowyte.com/api-reference/agents/list-agent-versions.md): Returns a paginated history of the agent's published versions. - [List agents](https://docs.flowyte.com/api-reference/agents/list-agents.md): Returns a paginated list of your agents. You can filter by status (draft or published) or search by name. - [List AI copilot threads](https://docs.flowyte.com/api-reference/agents/list-ai-copilot-threads.md): Returns your saved AI copilot conversations, most recent first. Optionally filter to a single agent with the agentId query parameter. - [Publish an agent](https://docs.flowyte.com/api-reference/agents/publish-an-agent.md): Publishes the agent's current draft as a new fixed version that live calls and chats will use. You can include an optional note describing the change. - [Roll back to a previous version](https://docs.flowyte.com/api-reference/agents/roll-back-to-a-previous-version.md): Makes a previously published version the live one again. Pass the versionId of the version you want to restore. - [Scaffold a draft agent](https://docs.flowyte.com/api-reference/agents/scaffold-a-draft-agent.md): Generates a draft agent automatically from a website URL, a written procedure, or a plain-language description. Streams progress while it builds and returns the finished draft agent at the end of the stream. Review and publish the draft before it goes live. - [Set the agent's voice](https://docs.flowyte.com/api-reference/agents/set-the-agents-voice.md): Assigns a voice to the agent for a given language, defaulting to the agent's primary language. This is a shortcut for changing the voice without sending a full agent update. Look up a voice ID with the voice catalog or voice search endpoints first. - [Update an agent](https://docs.flowyte.com/api-reference/agents/update-an-agent.md): Updates one or more fields on an agent's draft. To avoid overwriting concurrent edits, send the version you last read in the If-Match header; if it is out of date the request returns 409 with the current version and agent state so you can refetch and retry. Changes apply to the draft only and take e… - [List activity logs](https://docs.flowyte.com/api-reference/auditlogs/list-activity-logs.md): Returns a log of actions taken in your account, showing who performed each request, the endpoint and method, the response status, and when it happened. Filter by date range and by who performed the action (a user, API key, visitor, or the system). Results are paginated. - [Add credit to the wallet](https://docs.flowyte.com/api-reference/billing/add-credit-to-the-wallet.md): Adds funds directly to the prepaid wallet without a card payment, and returns the updated balance. Useful for manual adjustments or onboarding. - [Change subscription plan](https://docs.flowyte.com/api-reference/billing/change-subscription-plan.md): Switches your organization to the plan you specify. Returns the updated subscription. - [Configure wallet auto-reload](https://docs.flowyte.com/api-reference/billing/configure-wallet-auto-reload.md): Sets whether the wallet automatically tops up by a fixed amount when its balance falls below a threshold. Returns the updated wallet. - [Get current subscription](https://docs.flowyte.com/api-reference/billing/get-current-subscription.md): Returns your organization's current plan and the date it next renews. - [Get wallet balance](https://docs.flowyte.com/api-reference/billing/get-wallet-balance.md): Returns your prepaid wallet's current balance along with its auto-reload settings. - [List billing plans](https://docs.flowyte.com/api-reference/billing/list-billing-plans.md): Returns the subscription plans available to your organization, including each plan's monthly price, included minutes, and overage rate. - [List invoices](https://docs.flowyte.com/api-reference/billing/list-invoices.md): Returns your organization's invoices, newest first, each with a link to download the invoice PDF. - [List itemized usage charges](https://docs.flowyte.com/api-reference/billing/list-itemized-usage-charges.md): Returns individual usage charges (one per call, chat, or transfer) within a date range, newest first. - [List usage records](https://docs.flowyte.com/api-reference/billing/list-usage-records.md): Returns a paginated list of daily usage records, each with the minutes used and the resulting cost. Filter by date range or by agent. - [Top up the wallet by card](https://docs.flowyte.com/api-reference/billing/top-up-the-wallet-by-card.md): Starts a card payment to add funds to the prepaid wallet and returns a payment client secret you use to complete the charge. Pass an idempotency key to safely retry without double-charging. - [Create a chat session](https://docs.flowyte.com/api-reference/chat/create-a-chat-session.md): Starts a new chat session with an agent and returns its ID. Send messages to the session to converse with the agent. - [End a chat session](https://docs.flowyte.com/api-reference/chat/end-a-chat-session.md): Closes a chat session. No further messages can be sent once it is ended. - [Get a chat session](https://docs.flowyte.com/api-reference/chat/get-a-chat-session.md): Returns a chat session and its current state. - [Get widget bootstrap config](https://docs.flowyte.com/api-reference/chat/get-widget-bootstrap-config.md): Returns the public configuration for the browser widget (theme, copy, and behavior) for a given publishable key. It contains no secrets and is safe to call from the browser, but the request's origin must be allowed for the key. - [List chat messages](https://docs.flowyte.com/api-reference/chat/list-chat-messages.md): Returns the paginated message history for a chat session. - [OpenAI-compatible chat completions](https://docs.flowyte.com/api-reference/chat/openai-compatible-chat-completions.md): An OpenAI-compatible chat completions endpoint where the model field is your agent ID. Set stream to true for streamed chunks. Existing OpenAI SDK clients work by pointing the base URL at this API. - [Send a chat message](https://docs.flowyte.com/api-reference/chat/send-a-chat-message.md): Sends a message to a chat session and returns the agent's reply. Set stream to true to receive the reply as a server-sent event stream; otherwise the complete reply is returned in a single response. - [Start a widget chat session](https://docs.flowyte.com/api-reference/chat/start-a-widget-chat-session.md): Starts a chat session for the embeddable browser widget, authenticated with a publishable key from an allowed origin. Creates an anonymous visitor and returns the connection details; a bot-check token may be required. - [Get caller verification settings](https://docs.flowyte.com/api-reference/guardrails/get-caller-verification-settings.md): Returns the agent's caller-identity verification configurations, including the verification method (such as date of birth plus postcode, an SMS one-time code, an account PIN, or knowledge-based questions) and the fields required to confirm a caller. - [Get guardrail policies](https://docs.flowyte.com/api-reference/guardrails/get-guardrail-policies.md): Returns the agent's guardrail policies: rules that constrain what the agent may do, such as verifying a caller before disclosing information, limiting which fields can be shared, gating actions that write data, rate limits, business hours, and content rules. - [Replace caller verification settings](https://docs.flowyte.com/api-reference/guardrails/replace-caller-verification-settings.md): Replaces the agent's full set of caller-verification configurations with the list you send. This is a full overwrite, so include every configuration you want to keep; any one you omit is removed. - [Replace guardrail policies](https://docs.flowyte.com/api-reference/guardrails/replace-guardrail-policies.md): Replaces the agent's full set of guardrail policies with the list you send. This is a full overwrite, so include every policy you want to keep; any policy you omit is removed. - [Add an integration's actions as skills](https://docs.flowyte.com/api-reference/integrations/add-an-integrations-actions-as-skills.md): Turns a connected integration into ready-to-use skills on an agent: one skill per action, or every key action when none are specified. Re-running is safe, as actions that already exist as skills are skipped. Actions that still need configuration are created as disabled drafts until you complete thei… - [Auto-map a binding from a goal](https://docs.flowyte.com/api-reference/integrations/auto-map-a-binding-from-a-goal.md): Describe what you want in plain language ("look up a caller by phone and return their open tickets") and the AI assistant proposes a binding over the provider's discovered schema: which operation to call, how to map your agent's inputs to its arguments, and which fields to return. The proposal is va… - [Browse a provider's objects](https://docs.flowyte.com/api-reference/integrations/browse-a-providers-objects.md): Returns the searchable, paginated list of objects in the provider's discovered schema, each with its capabilities and field, relationship, and operation counts, so you can pick what to map without loading the whole schema. Returns 404 if the provider hasn't been discovered yet. - [Browse a provider's operations](https://docs.flowyte.com/api-reference/integrations/browse-a-providers-operations.md): Returns the operations a binding can call. By default only read operations; pass readOnly=false to include writes. Filter by object (operations that return that object) or q (a name substring). - [Claim a Shopify App Store install](https://docs.flowyte.com/api-reference/integrations/claim-a-shopify-app-store-install.md): Completes a Shopify install that began on the Shopify App Store before the merchant had a Flowyte account. After installing from the App Store, the merchant signs in and POSTs `{ shop, claimSecret }` (the one-time secret carried in the post-install redirect); the stored token is then attached to the… - [Connect an integration](https://docs.flowyte.com/api-reference/integrations/connect-an-integration.md): Starts a connection to an integration. For OAuth providers it returns a URL to send the user to for authorization. For API-key providers, send the credentials in the request body; they are stored securely and never returned. Returns an error if the provider is not yet available to connect. - [Disconnect an integration](https://docs.flowyte.com/api-reference/integrations/disconnect-an-integration.md): Disconnects an integration from your organization and removes its stored credentials. You can reconnect it again later. - [Discover an integration's schema](https://docs.flowyte.com/api-reference/integrations/discover-an-integrations-schema.md): Scans a connected integration and builds a normalized map of all its objects, fields, relationships, and operations. Running it again replaces the previous snapshot. It returns a summary of what was found; read the full schema back with the get-schema endpoint. The integration must be connected firs… - [Generate database setup scripts](https://docs.flowyte.com/api-reference/integrations/generate-database-setup-scripts.md): Generates the copy-paste SQL to create a scoped database user for the connection: a least-privilege read-only user (SELECT on current and future tables) and a scoped read-write script (INSERT/UPDATE on only the tables your write skills target — never blanket write). If you don't supply a password, a… - [Get a connection's data scoping](https://docs.flowyte.com/api-reference/integrations/get-a-connections-data-scoping.md): Returns the connection's data scoping — the tables and columns the agent may NOT see or bind. Empty lists mean everything is allowed. This is a privacy control you set on a connected SQL database, and it survives re-discovery. - [Get a provider's preset pack](https://docs.flowyte.com/api-reference/integrations/get-a-providers-preset-pack.md): Returns the provider's Connector Pack: its curated preset skills (ready to install) plus guidance on how its operations behave, how to identify a caller, and what isn't possible. Use it to build skills and playbooks for the provider, or install the presets directly. Returns 404 if the provider ships… - [Get an integration's discovered schema](https://docs.flowyte.com/api-reference/integrations/get-an-integrations-discovered-schema.md): Returns the most recently discovered schema for a connected integration, including all of its objects, fields, relationships, and operations. Run the discover endpoint first; this returns an error if the integration has never been scanned. - [Get one object's detail](https://docs.flowyte.com/api-reference/integrations/get-one-objects-detail.md): Returns one object's full detail: its fields (type, whether it's required, allowed values, relationship target, and whether it's sensitive), its operations, and its relationships to other objects. Returns 404 for an unknown object. - [Install a provider's preset skills](https://docs.flowyte.com/api-reference/integrations/install-a-providers-preset-skills.md): Installs a provider's curated preset skills (its Connector Pack) onto the agent in one call. Idempotent: a preset whose skill already exists is skipped and returned with created:false. Returns 404 if the agent doesn't exist or the provider ships no pack, 409 if the provider isn't connected for your… - [List an integration's available actions](https://docs.flowyte.com/api-reference/integrations/list-an-integrations-available-actions.md): Returns the actions an integration offers, each of which can be turned into a skill. For every action you get its name, description, input parameters, and which configuration values you still need to provide before it can run. - [List connected integrations](https://docs.flowyte.com/api-reference/integrations/list-connected-integrations.md): Returns your organization's integrations and their connection status. Stored credentials are never included in the response. - [List the integration catalog](https://docs.flowyte.com/api-reference/integrations/list-the-integration-catalog.md): Returns every integration you can connect, including its name, category, description, logo, and how many actions it offers, combined with whether your organization has already connected it and the connected account label. - [Look up a connected spreadsheet](https://docs.flowyte.com/api-reference/integrations/look-up-a-connected-spreadsheet.md): Helps you build a spreadsheet skill: given a spreadsheet link or id, it confirms your connected account can read it and returns the spreadsheet's title, its tabs, and each tab's column headers so you can pick a tab and map fields to the real columns. It is read-only and returns an error if the sprea… - [Map an integration's fields to a skill](https://docs.flowyte.com/api-reference/integrations/map-an-integrations-fields-to-a-skill.md): Creates a skill on an agent by mapping a discovered integration operation: pick the operation, map your agent's inputs to its arguments, and choose which provider fields to return. The mapping is validated against the integration's discovered schema and compiles to a runnable skill — created as a dr… - [Remove an integration's skills from an agent](https://docs.flowyte.com/api-reference/integrations/remove-an-integrations-skills-from-an-agent.md): Removes the skills that were created from a given integration on this agent. Skills you built by hand, and skills from other integrations, are left in place. - [Search a provider's schema](https://docs.flowyte.com/api-reference/integrations/search-a-providers-schema.md): Ranked keyword search across a connected provider's discovered schema (objects and fields), most-relevant first. When a schema is large, search for what your goal needs instead of browsing everything: each hit carries the object, field, type, relationship target, and badges (core, PII, payment-card)… - [Set a connection's data scoping](https://docs.flowyte.com/api-reference/integrations/set-a-connections-data-scoping.md): Sets the tables and columns the agent may NOT see or bind for this connection. Blocked tables and columns disappear from the schema browser and are refused at bind time. Empty lists clear the blocks (allow all). - [Test a database connection](https://docs.flowyte.com/api-reference/integrations/test-a-database-connection.md): For a SQL database connector (Postgres or MySQL), runs an ordered set of checks against the credentials you supply — reachability and TLS, authentication, reading the schema, a timed read probe, a read-only-session proof, and a live-call latency verdict — without storing anything (this powers the co… - [Using the API](https://docs.flowyte.com/api-reference/introduction.md): Conventions that apply to every endpoint — base URL, auth, envelopes, errors, pagination, and streaming. - [Add a knowledge source](https://docs.flowyte.com/api-reference/knowledge/add-a-knowledge-source.md): Attaches a new knowledge source to the agent from a web page URL, an uploaded file, raw text, or an FAQ. Ingestion runs in the background, so the source is returned with a 'pending' status; poll the source until its status becomes 'indexed' before relying on it in conversations. - [Delete a knowledge source](https://docs.flowyte.com/api-reference/knowledge/delete-a-knowledge-source.md): Permanently removes a knowledge source and all of the indexed content derived from it, so the agent will no longer use it. - [Get a knowledge source](https://docs.flowyte.com/api-reference/knowledge/get-a-knowledge-source.md): Returns a single knowledge source, including its full text content and current ingestion status. Poll this endpoint after creating a source to track progress until the status is 'indexed' (or 'error'). - [List knowledge sources](https://docs.flowyte.com/api-reference/knowledge/list-knowledge-sources.md): Returns a paginated list of the knowledge sources attached to an agent, each with its current ingestion status. The full text of a source is omitted here; fetch a single source to see its content. - [Preview knowledge search](https://docs.flowyte.com/api-reference/knowledge/preview-knowledge-search.md): Runs a search query against the agent's indexed knowledge and returns the best-matching passages with similarity scores. Use it to test coverage and see what the agent would retrieve for a question. You can optionally limit the search to specific sources. - [Refresh a knowledge source now](https://docs.flowyte.com/api-reference/knowledge/refresh-a-knowledge-source-now.md): Triggers an immediate re-crawl of a website knowledge source, whether or not auto-refresh is on. Returns 202 and re-crawls in the background; the source is re-indexed only if its content changed. Poll the source to watch `lastCheckedAt` and `lastChangedAt` update. - [Set a knowledge source's auto-refresh](https://docs.flowyte.com/api-reference/knowledge/set-a-knowledge-sources-auto-refresh.md): Opts a website knowledge source into automatic re-crawl and re-index, or changes its cadence. Auto-refresh is opt-in and applies to URL sources only; the cadence has a 24-hour minimum (default weekly). Re-indexing happens only when the re-crawled content actually changed, so an unchanged site costs… - [Get language capability matrix](https://docs.flowyte.com/api-reference/meta/get-language-capability-matrix.md): Returns which languages are available for each agent type (single-language or multilingual) and each voice-quality tier (budget, standard, or premium). Any authenticated caller can read this. - [Get your account info](https://docs.flowyte.com/api-reference/meta/get-your-account-info.md): Returns organization-scoped capability flags your app can read on load — for example whether outbound calling is enabled for your organization. Available to any authenticated caller; no special scope is required. - [Assign a number to an agent](https://docs.flowyte.com/api-reference/numbers/assign-a-number-to-an-agent.md): Points a phone number at an agent so its inbound calls are answered by that agent. - [Buy a phone number](https://docs.flowyte.com/api-reference/numbers/buy-a-phone-number.md): Purchases a number and charges your prepaid wallet. Optionally pass a reservation id from the reserve endpoint so the number is already held for you and can't be taken during checkout. Returns 402 if your wallet balance is too low. - [Check one available number](https://docs.flowyte.com/api-reference/numbers/check-one-available-number.md): Re-checks a single available number by its E.164 value to confirm its current price and availability right before purchase. Returns 404 if the number is no longer purchasable. - [List your phone numbers](https://docs.flowyte.com/api-reference/numbers/list-your-phone-numbers.md): Returns the phone numbers your account owns. Results are paginated. - [Release a number](https://docs.flowyte.com/api-reference/numbers/release-a-number.md): Permanently releases a number back to the carrier and stops billing for it. This cannot be undone. To keep the number but detach it from an agent, unassign it instead. - [Release a number hold](https://docs.flowyte.com/api-reference/numbers/release-a-number-hold.md): Cancels a reservation you no longer need and frees the held number for others. - [Reserve a number before buying](https://docs.flowyte.com/api-reference/numbers/reserve-a-number-before-buying.md): Holds a number for about 30 minutes so it can't be taken by someone else while you finish checkout. This does not charge your wallet. Pass the returned reservation id to the purchase endpoint to claim the held number. - [Search available numbers](https://docs.flowyte.com/api-reference/numbers/search-available-numbers.md): Browses purchasable phone numbers. All filters are optional: search by area code, city, state, full number, or a prefix/suffix for vanity and last-four matches, and require capabilities such as voice or SMS. A too-narrow filter is widened to nearby matches by default; set bestEffort to false for str… - [Unassign a number](https://docs.flowyte.com/api-reference/numbers/unassign-a-number.md): Detaches a number from its agent without releasing it. You keep owning and paying for the number, and it returns to your available pool so you can reassign it any time. This is the safe, reversible alternative to releasing a number. - [Get a conversation](https://docs.flowyte.com/api-reference/observe/get-a-conversation.md): Returns the summary for a single conversation, including its outcome and key details. - [Get a conversation receipt](https://docs.flowyte.com/api-reference/observe/get-a-conversation-receipt.md): Returns the ordered list of events for a conversation: a step-by-step audit record of what the agent did, including tool calls and handoffs. - [Get a conversation transcript](https://docs.flowyte.com/api-reference/observe/get-a-conversation-transcript.md): Returns the full transcript of a conversation as a list of turns. Works for both voice and chat. - [Get account analytics overview](https://docs.flowyte.com/api-reference/observe/get-account-analytics-overview.md): Returns account-wide totals rolled up across every agent: total, answered, and missed calls, answer/containment/transfer rates, the voice versus chat split, active agent count, and spend for the period. Pass your average ticket value to estimate recovered revenue, and filter by date range and channe… - [Get account trend over time](https://docs.flowyte.com/api-reference/observe/get-account-trend-over-time.md): Returns per-day call volume and spend across your whole account, ordered oldest to newest. Filter by date range and channel. Only daily buckets are currently supported. - [Get agent analytics](https://docs.flowyte.com/api-reference/observe/get-agent-analytics.md): Returns post-call analytics for a single agent over a date range, including how many calls were answered, missed, contained, or transferred. Pass your average ticket value to estimate recovered revenue. Filter by channel (voice or chat). - [Get agent trend over time](https://docs.flowyte.com/api-reference/observe/get-agent-trend-over-time.md): Returns per-day call volume and spend for a single agent, ordered oldest to newest. Filter by date range and channel. Only daily buckets are currently supported. - [Get analytics per agent](https://docs.flowyte.com/api-reference/observe/get-analytics-per-agent.md): Returns one rollup row per active agent with total calls, answer rate, containment rate, last call time, and spend. Agents with no calls in the selected window are still included with zeros. Filter by date range and channel. - [List conversation topics](https://docs.flowyte.com/api-reference/observe/list-conversation-topics.md): Returns the most common topics callers discussed with this agent, with volume, trend, and sample questions. Topics are grouped automatically from conversation text, and results appear only once enough conversations have accumulated. - [List conversations](https://docs.flowyte.com/api-reference/observe/list-conversations.md): Returns paginated conversation history, newest first, with each row's outcome, a one-line summary, and topic. Use the q parameter to full-text search across transcripts and summaries, and filter by date range, channel, outcome, and agent. - [List conversations for a topic](https://docs.flowyte.com/api-reference/observe/list-conversations-for-a-topic.md): Returns the paginated list of conversations grouped under a single topic, so you can drill into the calls behind it. - [List knowledge gaps](https://docs.flowyte.com/api-reference/observe/list-knowledge-gaps.md): Returns questions callers asked that the agent could not answer, grouped by question and ordered by frequency, so you know what to add to its knowledge. Once enough data accumulates the gaps become ranked and can be filtered by status (open, in progress, covered, dismissed). - [Update a knowledge gap](https://docs.flowyte.com/api-reference/observe/update-a-knowledge-gap.md): Curate a knowledge gap by setting its status to open, in progress, or dismissed. The covered status is set automatically when the gap is resolved and cannot be set here. - [Create a playbook](https://docs.flowyte.com/api-reference/playbooks/create-a-playbook.md): Creates a new playbook for the agent with a name and description, plus optional input and output schemas. After creating it, define its steps with the playbook graph endpoint. - [Delete a playbook](https://docs.flowyte.com/api-reference/playbooks/delete-a-playbook.md): Permanently deletes a playbook and its step graph from the agent. - [Get a playbook](https://docs.flowyte.com/api-reference/playbooks/get-a-playbook.md): Returns a single playbook's details, including its name, description, and input and output schemas. - [Get a playbook's steps](https://docs.flowyte.com/api-reference/playbooks/get-a-playbooks-steps.md): Returns the playbook's step graph: the nodes and the connections between them that define the procedure the agent runs. - [List playbooks](https://docs.flowyte.com/api-reference/playbooks/list-playbooks.md): Returns a paginated list of the playbooks defined for an agent. A playbook is a reusable, step-by-step procedure the agent can follow during a conversation. - [Replace a playbook's steps](https://docs.flowyte.com/api-reference/playbooks/replace-a-playbooks-steps.md): Replaces the playbook's entire step graph with the nodes and connections you provide. This overwrites the existing graph, so send the complete set of steps. Publish the agent for the change to take effect on live conversations. - [Update a playbook](https://docs.flowyte.com/api-reference/playbooks/update-a-playbook.md): Updates an existing playbook's name, description, and input or output schemas. - [Create a publishable key](https://docs.flowyte.com/api-reference/publishablekeys/create-a-publishable-key.md): Creates a publishable key for an agent and returns the full key. Publishable keys are safe to use in the browser, so the value can be retrieved again later. - [List publishable keys](https://docs.flowyte.com/api-reference/publishablekeys/list-publishable-keys.md): Returns the paginated publishable keys for an agent. Publishable keys are safe to embed in the browser and authorize the chat widget. - [Revoke a publishable key](https://docs.flowyte.com/api-reference/publishablekeys/revoke-a-publishable-key.md): Revokes a publishable key immediately. Any widget still using it will stop working. - [Rotate a publishable key](https://docs.flowyte.com/api-reference/publishablekeys/rotate-a-publishable-key.md): Issues a new value for a publishable key while keeping its agent and allowed origins. The old value keeps working during a short grace window so you can swap it in without downtime. - [Update a publishable key](https://docs.flowyte.com/api-reference/publishablekeys/update-a-publishable-key.md): Updates a publishable key, such as its label or its list of allowed origins. - [Create a skill](https://docs.flowyte.com/api-reference/skills/create-a-skill.md): Adds a new skill to an agent so it can perform an action, such as sending an email or booking an appointment, during conversations. Publish the agent for the new skill to take effect on live calls and chats. - [Delete a skill](https://docs.flowyte.com/api-reference/skills/delete-a-skill.md): Removes a skill from an agent. Publish the agent for the removal to take effect on live calls and chats. - [Geocode a location roster](https://docs.flowyte.com/api-reference/skills/geocode-a-location-roster.md): Converts a batch of locations (label, address, phone) into map coordinates for use in a find-nearest-location skill, so the agent can quickly identify the closest location during a call. This endpoint does not save anything itself, so store the returned coordinates in your skill's configuration. Lar… - [Get a skill](https://docs.flowyte.com/api-reference/skills/get-a-skill.md): Returns the full configuration of a single skill on an agent. - [List an agent's skills](https://docs.flowyte.com/api-reference/skills/list-an-agents-skills.md): Returns a paginated list of the skills configured on an agent. Skills are the actions an agent can take during a conversation. - [List available skill types](https://docs.flowyte.com/api-reference/skills/list-available-skill-types.md): A skill type is a category of capability a skill can use, such as sending an email, looking up an order, or transferring a call. This returns the full catalog of skill types you can choose from when creating a skill. - [Update a skill](https://docs.flowyte.com/api-reference/skills/update-a-skill.md): Changes the configuration of an existing skill on an agent. Publish the agent for the changes to apply to live calls and chats. - [Get a probe run result](https://docs.flowyte.com/api-reference/test/get-a-probe-run-result.md): Returns the current status and result of a probe run by its id. - [Simulate a conversation](https://docs.flowyte.com/api-reference/test/simulate-a-conversation.md): Runs a text or voice simulation against the agent and streams the conversation back as server-sent events. Set draftMode to test unpublished changes without billing. Each event is a turn or tool-call frame, and the stream ends with a done or error event. - [Start a probe run](https://docs.flowyte.com/api-reference/test/start-a-probe-run.md): Kicks off a probe run against the agent for a given test scenario, in either loopback or phone mode. Returns a run id you can poll or stream for results. - [Start an in-browser voice test](https://docs.flowyte.com/api-reference/test/start-an-in-browser-voice-test.md): Returns the credentials needed to start a real-time voice test session in the browser. Set draftMode to true to test the current draft without billing; when false (the default) it uses the latest published version and returns 409 if the agent has never been published. - [Stream probe run progress](https://docs.flowyte.com/api-reference/test/stream-probe-run-progress.md): Streams a probe run's progress in real time as server-sent events until the run finishes. - [Upload a file](https://docs.flowyte.com/api-reference/uploads/upload-a-file.md): Upload a file (max 25 MB) and get back a file_id you can pass to a knowledge file source, the create-from-document flow, or a skill file input. - [Declare or annotate a variable](https://docs.flowyte.com/api-reference/variables/declare-or-annotate-a-variable.md): Optionally attach a note, a type hint, or a manual declaration to a variable. This is documentation only — it carries no runtime meaning and never gates a call. Annotating a name that's already derived returns 200 (not a conflict). Names are case-sensitive and must match `^[a-zA-Z_][a-zA-Z0-9_]*$`;… - [Delete a variable annotation](https://docs.flowyte.com/api-reference/variables/delete-a-variable-annotation.md): Removes only the annotation. If the name is still produced or used by the agent, it reappears as a derived variable on the next read. Deleting a name that has no annotation does nothing. - [Edit a variable annotation](https://docs.flowyte.com/api-reference/variables/edit-a-variable-annotation.md): Edits the note or type hint on an existing variable annotation (only the fields you send change). Returns 404 if the name has no annotation. The annotation carries no runtime meaning. - [List interaction variables](https://docs.flowyte.com/api-reference/variables/list-interaction-variables.md): Returns the agent's interaction variables — the values that flow through a call (collected slots, skill outputs, and `{placeholder}` references). The list is derived by scanning the agent's enabled playbooks and skills, then merged with any notes or type hints you've added. It's a read-only view of… - [Get voice filter counts](https://docs.flowyte.com/api-reference/voices/get-voice-filter-counts.md): Returns grouped counts for each voice filter using the same filters as the voice list, so a picker can show a live count next to each option (for example 'Female: 142') as the user narrows their choice. - [List the voice catalog](https://docs.flowyte.com/api-reference/voices/list-the-voice-catalog.md): Returns the voice catalog, optionally narrowed by facets such as language, accent, gender, age, tone, and use case (all combined together). The catalog is returned as a flat list rather than paginated. Pair it with the facets endpoint for live counts and the search endpoint for natural-language look… - [Search voices by description](https://docs.flowyte.com/api-reference/voices/search-voices-by-description.md): Turns a plain-language phrase like 'calm older british woman for support' into structured filters, runs the search, and returns both the resolved filters and a short ranked shortlist of voices to audition. - [Create a webhook endpoint](https://docs.flowyte.com/api-reference/webhooks/create-a-webhook-endpoint.md): Registers a URL to receive event notifications and returns a signing secret used to verify that deliveries came from us. The secret is shown only once in this response, so store it now; you cannot retrieve it again later. - [Delete a webhook endpoint](https://docs.flowyte.com/api-reference/webhooks/delete-a-webhook-endpoint.md): Permanently removes a webhook endpoint so it will no longer receive event deliveries. - [Get a webhook endpoint](https://docs.flowyte.com/api-reference/webhooks/get-a-webhook-endpoint.md): Returns the details of a single webhook endpoint, including its URL, subscribed events, and status. The signing secret is not included. - [List webhook deliveries](https://docs.flowyte.com/api-reference/webhooks/list-webhook-deliveries.md): Returns the recent delivery attempts for an endpoint, including each event type, status, attempt count, and the next scheduled retry. Use this to debug failures and confirm events are reaching your URL. Results are paginated. - [List webhook endpoints](https://docs.flowyte.com/api-reference/webhooks/list-webhook-endpoints.md): Returns your configured webhook endpoints, with the events each is subscribed to and its current status. Results are paginated. - [Send a test delivery](https://docs.flowyte.com/api-reference/webhooks/send-a-test-delivery.md): Sends a sample event to the endpoint so you can confirm your receiver is reachable and verifies signatures correctly. Returns the resulting delivery record, whose status updates as the attempt completes. - [Update a webhook endpoint](https://docs.flowyte.com/api-reference/webhooks/update-a-webhook-endpoint.md): Changes a webhook endpoint's URL, subscribed events, or status. Set the status to disabled to pause deliveries without deleting the endpoint. - [Get the widget embed snippet](https://docs.flowyte.com/api-reference/widget/get-the-widget-embed-snippet.md): Returns the HTML snippet for embedding the chat widget on your site, along with a publishable key. Optionally specify which publishable key to include. - [Get widget config](https://docs.flowyte.com/api-reference/widget/get-widget-config.md): Returns the chat widget configuration for an agent, including its appearance, copy, and behavior settings. - [Replace widget config](https://docs.flowyte.com/api-reference/widget/replace-widget-config.md): Replaces an agent's chat widget configuration with the supplied settings and returns the saved result. - [Chat](https://docs.flowyte.com/channels/chat.md): Talk to an agent over text — sessions, streaming, and an OpenAI-compatible endpoint. - [DTMF / Keypad](https://docs.flowyte.com/channels/dtmf.md): Collect keypad digits from a caller during a voice call. - [SMS (10DLC)](https://docs.flowyte.com/channels/sms.md): Text from your phone numbers — set up in the dashboard once your brand and campaign are registered. - [Voice (PSTN)](https://docs.flowyte.com/channels/voice.md): Put an agent on a real phone number and answer inbound calls. - [Embeddable Widget](https://docs.flowyte.com/channels/widget.md): Drop a chat agent onto any website with a browser-safe publishable key. - [Agents](https://docs.flowyte.com/concepts/agents.md): The single entity you configure — persona, language, and voice. - [Billing & Credits](https://docs.flowyte.com/concepts/billing.md): A prepaid credit wallet you top up with Stripe, metered per voice minute and per chat message. - [Guardrails](https://docs.flowyte.com/concepts/guardrails.md): Deterministic policies that keep an agent on-script and verify callers before disclosure. - [Integrations](https://docs.flowyte.com/concepts/integrations.md): Connect an external system once, then turn it into agent skills — either pre-built actions or fields you map yourself. - [Knowledge](https://docs.flowyte.com/concepts/knowledge.md): The sources an agent answers from, grounded so it doesn't make things up. - [Languages & Voice](https://docs.flowyte.com/concepts/languages-and-voice.md): How an agent picks its language, mirrors the caller, and chooses a voice. - [Numbers](https://docs.flowyte.com/concepts/numbers.md): Own a phone number and point it at an agent — search, reserve, purchase, assign. - [Observe & Receipts](https://docs.flowyte.com/concepts/observe.md): Post-call analytics, full transcripts, and an event-by-event receipt for every conversation. - [Playbooks](https://docs.flowyte.com/concepts/playbooks.md): Scripted, multi-step flows for repeatable tasks. - [Skills](https://docs.flowyte.com/concepts/skills.md): The tools an agent can use to take actions, not just answer. - [Test & Simulate](https://docs.flowyte.com/concepts/testing.md): Try your agent against the draft before you publish — over text, or live in-browser voice. - [Versioning & Publishing](https://docs.flowyte.com/concepts/versioning.md): Edit a draft freely, publish to freeze a version, and roll back instantly if you need to. - [Authentication](https://docs.flowyte.com/get-started/authentication.md): API keys, scopes, and the two ways requests authenticate. - [Draft vs Published vs Sandbox](https://docs.flowyte.com/get-started/draft-vs-published.md): How edits, the tester, and live phone & chat traffic relate — and why you publish before going live. - [For AI agents](https://docs.flowyte.com/get-started/for-ai-agents.md): How an LLM or coding agent builds and operates a Flowyte agent end to end, via the API. - [Add a knowledge base & verify coverage](https://docs.flowyte.com/guides/add-knowledge.md): Add a URL or FAQ source, wait for it to index, preview what the agent retrieves, and close the gaps callers expose. - [Build an HVAC answering agent](https://docs.flowyte.com/guides/build-hvac-agent.md): An answering agent backed by your field-service software — recognizes customers, captures requests, checks job status, and escalates emergencies. - [Buy a number & go live](https://docs.flowyte.com/guides/buy-a-number.md): Search available numbers, reserve one, purchase it from your wallet, assign it to an agent, and route real calls. - [Verify a caller before disclosure](https://docs.flowyte.com/guides/caller-verification.md): Make the agent prove a caller's identity before it reads back account details or takes a sensitive action. - [Connect a SQL database](https://docs.flowyte.com/guides/connect-sql-database.md): Give an agent live read (and scoped write) access to your own Postgres or MySQL database — safely, one column at a time. - [Embed the chat widget](https://docs.flowyte.com/guides/embed-chat-widget.md): Mint a browser-safe publishable key, drop in the loader snippet, and lock it to the origins you control. - [Map an integration's fields](https://docs.flowyte.com/guides/map-integration-fields.md): Connect any REST or GraphQL system, discover its schema, and map its fields onto your agent — no per-provider code. - [Use the OpenAI-compatible chat endpoint](https://docs.flowyte.com/guides/openai-compatible-chat.md): Point an OpenAI SDK at Flowyte with a base-URL swap and talk to your agent — no new client to learn. - [Take an order with a delivery check](https://docs.flowyte.com/guides/take-orders.md): A phone agent that knows your menu, confirms the delivery address is in range, and sends the order to your kitchen. - [Warm transfer to a human](https://docs.flowyte.com/guides/warm-transfer.md): Hand a live caller off to a person — with context, and only under the conditions you choose. - [Flowyte](https://docs.flowyte.com/index.md): Build AI voice and chat agents that answer calls, book jobs, and resolve customer questions — all via API. - [Build a custom integration](https://docs.flowyte.com/integrations/custom.md): Call your own endpoint from a conversation with an http_webhook skill. - [Google Calendar](https://docs.flowyte.com/integrations/google-calendar.md): Let an agent check availability and book appointments on a connected calendar. - [Google Sheets](https://docs.flowyte.com/integrations/google-sheets.md): Log every call to a spreadsheet — map captured fields to real columns, no code. - [Integrations overview](https://docs.flowyte.com/integrations/overview.md): Connect an external system once, then provision its actions as skills on any agent. - [Shopify](https://docs.flowyte.com/integrations/shopify.md): Answer "where is my order?" by looking up live order status as a skill. - [SQL database (Postgres & MySQL)](https://docs.flowyte.com/integrations/sql-database.md): Connect your own Postgres or MySQL database and let the agent read (and optionally write) live records on a call — you choose the exact columns. - [Quickstart](https://docs.flowyte.com/quickstart.md): Mint an API key and build a working agent in about five minutes. - [Errors](https://docs.flowyte.com/resources/errors.md): The problem+json error shape, common status codes, and named problems you'll hit. - [Feature matrix](https://docs.flowyte.com/resources/feature-matrix.md): Every platform capability — what it does, where it lives in the dashboard, its endpoints, and the scope it needs. - [Glossary](https://docs.flowyte.com/resources/glossary.md): The core Flowyte terms, defined once. - [After-hours & overflow answering](https://docs.flowyte.com/solutions/after-hours.md): Catch the calls you'd otherwise miss — route the urgent ones, capture the rest. - [AI answering service for HVAC & field service](https://docs.flowyte.com/solutions/answering-service.md): Answer every call 24/7, recognize customers, capture new jobs into your field-service software, and hand the urgent ones to a person. - [Order status & WISMO](https://docs.flowyte.com/solutions/order-status.md): Resolve "where is my order?" on voice and chat with a connected Shopify store. - [Take phone orders with a delivery-area check](https://docs.flowyte.com/solutions/restaurant.md): Answer menu questions, take the order, confirm it's in your delivery zone, and send it to the kitchen — by phone. - [Warm transfer to your team](https://docs.flowyte.com/solutions/warm-transfer.md): Let the agent handle routine calls and hand off cleanly to a person when it should. - [Trust & Security](https://docs.flowyte.com/trust/security.md): How Flowyte handles your data, recordings, and caller PII — and how to report a vulnerability. ## OpenAPI Specs - [openapi](https://docs.flowyte.com/openapi.yaml)