{ "success": true, "skills": [ { "id": "pricing_objections", "type": "instructions", "name": "Pricing objections", "whenToUse": "The caller says the service costs too much.", "enabled": true, "instructions": "Acknowledge the concern, explain the value, and never invent a discount." } ], "version": 4}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
Authorizations
Authorization
string
header
required
Send your API key as Authorization: Bearer YOUR_API_KEY.
Path Parameters
id
string
required
Agent id.
Minimum string length: 1
Query Parameters
view
enum<string>
default:full
Choose the smallest representation needed for the task. Omit for full.
Available options:
full,
summary
Response
Agent skills.
Option 1
Option 2
success
boolean
required
skills
(Custom instruction skill · object | Service area check · object | Live transfer · object | Add a tag · object | Check a tag · object | Appointment booking · object)[]
required
A plain-English playbook that teaches the agent when and how to handle a use case.
{ "success": true, "skills": [ { "id": "pricing_objections", "type": "instructions", "name": "Pricing objections", "whenToUse": "The caller says the service costs too much.", "enabled": true, "instructions": "Acknowledge the concern, explain the value, and never invent a discount." } ], "version": 4}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{
"success": false,
"error": "NotFound",
"message": "We couldn't find that. It may have been moved or deleted.",
"errors": [
{
"field": "name",
"code": "FieldRequired",
"message": "Please fill this in."
}
],
"details": {},
"ref": "3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"
}
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Team Follow Up API Docs","description":"Voice agents for GoHighLevel agencies: call every lead within a minute, book the appointment, and prove what happened. Guides and API reference for agents, campaigns, calls, contacts, phone numbers and analytics.","colors":{"primary":"#1066BC","light":"#1066BC","dark":"#1066BC"},"logo":{"light":"https://mintcdn.com/teamfollowupai/-K3ftiAApBs7M-rV/logo/teamfollowup.png?fit=max\u0026auto=format\u0026n=-K3ftiAApBs7M-rV\u0026q=85\u0026s=39eb7926e7a1140e67ff17d1b49319c6","dark":"https://mintcdn.com/teamfollowupai/-K3ftiAApBs7M-rV/logo/teamfollowup.png?fit=max\u0026auto=format\u0026n=-K3ftiAApBs7M-rV\u0026q=85\u0026s=39eb7926e7a1140e67ff17d1b49319c6","href":"/"},"favicon":"https://mintcdn.com/teamfollowupai/-K3ftiAApBs7M-rV/logo/teamfollowup.png?fit=max\u0026auto=format\u0026n=-K3ftiAApBs7M-rV\u0026q=85\u0026s=39eb7926e7a1140e67ff17d1b49319c6","api":{"params":{"expanded":"closed"},"playground":{"display":"interactive"},"examples":{"defaults":"required","autogenerate":true}},"appearance":{"default":"dark"},"background":{"color":{"light":"#FFFFFF","dark":"#0A0A0A"}},"navbar":{"links":[{"icon":"headset","href":"https://join.slack.com/t/diyteamfollow-oqz3480/shared_invite/zt-3z4e6feuc-jJa8wC_4CXShhA8lChf99A","label":"Support"},{"icon":"chart-line","href":"https://status.teamfollowup.ai","label":"Status"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.teamfollowup.ai"}},"fonts":{"heading":{"family":"Geist","weight":700},"body":{"family":"Geist","weight":400}},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"markdown":{"schema":true,"instructions":["Use the public API base URL: https://api.teamfollowup.ai/api.","Authenticate public API requests with Authorization: Bearer YOUR_API_KEY.","Use product-owned terms: agents, campaigns, projects (GoHighLevel sub-accounts), contacts, calls, outcomes, skills, cadences, phone numbers.","Scope requests by locationId rather than projectName.","Read the guide linked from each API reference group before recommending an endpoint."]},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"teamfollowupai","hasAudioNarration":false,"actualSubdomain":"teamfollowupai","customDomains":["docs.teamfollowup.ai"],"gitSource":{"type":"github","owner":"team-follow-up-ai","repo":"tfuai","deployBranch":"main","contentDirectory":"saas/server/docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af70d799b8f20269efa9bd2","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"API Reference","count":213},{"language":"default","tag":"Documentation","count":92},{"language":"default","tag":"TFU Live","count":71},{"language":"default","tag":"Campaigns","count":44},{"language":"default","tag":"Agents","count":33},{"language":"default","tag":"Native Contacts","count":24},{"language":"default","tag":"Native Calendar","count":22},{"language":"default","tag":"Billing","count":21},{"language":"default","tag":"Power Dialer","count":13},{"language":"default","tag":"In-call Capabilities","count":13}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"/* cyrillic-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');\n unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;\n}\n/* cyrillic */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');\n unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;\n}\n/* symbols2 */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');\n unicode-range: U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;\n}\n/* vietnamese */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');\n unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Geist Mono';\n font-style: normal;\n font-weight: 100 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n:root{--font-inter: \"Geist Variable\", \"Geist\", system-ui, sans-serif;--font-paper-mono: \"Geist Mono\", ui-monospace, monospace;--default-font-family: \"Geist Variable\", \"Geist\", system-ui, sans-serif;--default-mono-font-family: \"Geist Mono\", ui-monospace, monospace;--font-family-headings-custom: \"Geist Variable\", \"Geist\", system-ui, sans-serif;--font-family-body-custom: \"Geist Variable\", \"Geist\", system-ui, sans-serif;--font-family-mono-custom: \"Geist Mono\", ui-monospace, monospace;--twoslash-code-font: \"Geist Mono\", ui-monospace, monospace;--background-light: 255 255 255;--background-dark: 10 10 10;--gray-50: 250 250 250;--gray-100: 237 237 237;--gray-200: 230 230 230;--gray-300: 212 212 212;--gray-400: 163 163 163;--gray-500: 92 92 92;--gray-600: 64 64 64;--gray-700: 38 38 38;--gray-800: 28 28 28;--gray-900: 18 18 18;--gray-950: 10 10 10}html,body{font-family:\"Geist Variable\", \"Geist\", system-ui, sans-serif}#header>.prose{font-size:1rem;line-height:1.75}:where(code,pre,kbd,samp),.font-mono,.font-family-mono,[data-component-part=\"code-block-root\"],.code-block pre,.code-block code,.shiki,.shiki code{font-family:\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas,\n \"Liberation Mono\", \"Courier New\", monospace!important}.dark .code-block [data-component-part=\"code-block-root\"],.dark .code-block pre,.dark .code-block code{--shiki-dark-bg: #0a0a0a !important;background-color:rgb(10 10 10)!important;font-family:\"Geist Mono\", ui-monospace, monospace!important}.dark .code-block [data-fade-overlay=\"true\"]{--fade-color-dark: #0a0a0a !important}@media (min-width: 1024px){:root{--tfuai-sidebar-width: 16.5rem;--tfuai-navbar-x-padding: 1.75rem}#navbar>.z-10.mx-auto.relative>.relative>.flex.items-center>.h-full.relative{width:100%}#navbar>.z-10.mx-auto.relative>.relative>.flex.items-center>.h-full.relative>.flex-1.flex.items-center.gap-x-4{flex:0 1 calc(var(--tfuai-sidebar-width) - 0.75rem)!important;min-width:3rem}#navbar>.z-10.mx-auto.relative>.relative>.flex.items-center>.h-full.relative>.flex.items-center.gap-4{flex:1 1 auto!important;min-width:0}#navbar>.z-10.mx-auto.relative>.relative>.flex.items-center>.h-full.relative>.flex.items-center.gap-4>.flex-1.relative.hidden.lg\\:flex{width:100%;flex:1 1 auto!important;justify-content:space-between;gap:clamp(2rem, 4vw, 5rem);margin-left:0!important}#navbar .nav-tabs{flex:0 0 auto}#navbar nav[aria-label=\"Main\"]{flex:0 0 auto;margin-left:auto}}"}],"page":{"pagePath":"api-reference/in-call-capabilities/list-agent-skills","slug":"/api-reference/in-call-capabilities/list-agent-skills","pageMetadata":{"title":"List agent skills","description":"Return every skill with its editable content and current version.\n\nUse `view=summary` for names, purposes, IDs and versions without full instructions.\n\nRequired API key scope: `agents:read`.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}/skills","href":"/api-reference/in-call-capabilities/list-agent-skills","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Return every skill with its editable content and current version.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Use \", _jsx(_components.code, {\n children: \"view=summary\"\n }), \" for names, purposes, IDs and versions without full instructions.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Required API key scope: \", _jsx(_components.code, {\n children: \"agents:read\"\n }), \".\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"List agent skills","description":"Return every skill with its editable content and current version.\n\nUse `view=summary` for names, purposes, IDs and versions without full instructions.\n\nRequired API key scope: `agents:read`.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}/skills","href":"/api-reference/in-call-capabilities/list-agent-skills","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"get-agent-builder-agents-by-id-skills","summary":"List agent skills","description":"Return every skill with its editable content and current version.\n\nUse `view=summary` for names, purposes, IDs and versions without full instructions.\n\nRequired API key scope: `agents:read`.","tags":["In-call Capabilities"],"parameters":["8ec0236c-f901-4b70-9689-31a741532d9f","efece088-c765-4319-830b-c663addb2ca8"],"responses":{"200":"0a982c1a-d72b-46b0-a0e7-d0d2a89598c8","400":"b9c78862-2038-4998-befb-feca783e231b","401":"d13d596e-f714-42f6-89e9-c3d08b40ec07","403":"1f4e1bc1-1ef6-497f-adb0-02a0f4294534","404":"de142a5a-68f2-403a-81e8-50d2fa3adf4f","429":"738f966b-8c22-4f1d-9414-0a2d6bde18e5","500":"5ea42232-e53d-4478-aec6-639d2bf484e2"},"security":["bee259ee-b619-4c22-9bc2-774640745c7e"],"x-legacy-module-tags":["Skills and Tools"],"x-product-module":"capabilities","x-required-api-scope":"agents:read","x-codeSamples":[{"lang":"bash","label":"cURL","source":"curl --request GET \\\n --url https://api.teamfollowup.ai/api/agent-builder/agents/{id}/skills \\\n --header 'Authorization: Bearer YOUR_API_KEY'"}],"x-agent-runtime-support":{"tfu_live":"not_applicable"},"method":"get","type":"path","servers":["02a18f1f-70f0-4870-b017-8f5969c8ed7f"],"path":"/api/agent-builder/agents/{id}/skills","baseUrlOptions":["https://api.teamfollowup.ai"],"title":"List agent skills","codeSamples":[{"label":"cURL","lang":"bash","source":"curl --request GET \\\n --url https://api.teamfollowup.ai/api/agent-builder/agents/{id}/skills \\\n --header 'Authorization: Bearer YOUR_API_KEY'"}],"requiredOnlyExamples":true,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"8ec0236c-f901-4b70-9689-31a741532d9f":{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"isRequired":true,"description":"Agent id.","uniqueKey":"","typeLabel":"string"},"description":"Agent id.","example":"agent_8a488fcfa8fdbf8ce8ad5ccc45"},"efece088-c765-4319-830b-c663addb2ca8":{"name":"view","in":"query","required":false,"description":"Choose the smallest representation needed for the task. Omit for full.","schema":{"type":"string","enum":["full","summary"],"default":"full","isRequired":false,"description":"Choose the smallest representation needed for the task. Omit for full.","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"responses":{"0a982c1a-d72b-46b0-a0e7-d0d2a89598c8":{"description":"Agent skills.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["success","skills","version"],"properties":{"success":{"type":"boolean","const":true,"isRequired":true,"uniqueKey":"oneOf.0.success","typeLabel":"boolean"},"skills":{"type":"array","items":{"oneOf":[{"type":"object","title":"Custom instruction skill","description":"A plain-English playbook that teaches the agent when and how to handle a use case.","required":["type","name","instructions"],"properties":{"type":{"type":"string","const":"instructions","description":"The kind of skill. instructions is a custom playbook. The other types add a built-in call tool. The type cannot change later.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.0.type","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":120,"pattern":"\\S","description":"Human-readable name for the skill. Longer input is truncated to 120 characters and saved, not rejected. Whitespace is trimmed first, so a whitespace-only name is rejected as empty.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.0.name","typeLabel":"string"},"instructions":{"type":"string","minLength":1,"maxLength":12000,"pattern":"\\S","description":"The playbook the agent follows once the trigger lands. Longer input is truncated to this length and saved; it is not rejected. Leading and trailing whitespace is stripped before validation, so a value that is only whitespace counts as empty.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.0.instructions","typeLabel":"string"},"id":{"type":"string","minLength":1,"description":"Stable skill id. Generated when omitted during creation.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.0.id","typeLabel":"string"},"whenToUse":{"type":"string","maxLength":300,"default":"","description":"Plain-English trigger: when the agent should reach for this. Longer input is truncated to 300 characters and saved, not rejected.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.0.whenToUse","typeLabel":"string"},"enabled":{"type":"boolean","default":true,"description":"Whether the skill is active on the agent. A disabled skill is kept but its tool is not installed.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.0.enabled","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.0.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.0","typeLabel":"Custom instruction skill · object"},{"type":"object","title":"Service area check","description":"A deterministic ZIP coverage check the agent can use during a call.","required":["type","name","zips"],"properties":{"type":{"type":"string","const":"smart_service_area","description":"The kind of skill. instructions is a custom playbook. The other types add a built-in call tool. The type cannot change later.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.1.type","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":120,"pattern":"\\S","description":"Human-readable name for the skill. Longer input is truncated to 120 characters and saved, not rejected. Whitespace is trimmed first, so a whitespace-only name is rejected as empty.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.1.name","typeLabel":"string"},"zips":{"type":"string","minLength":1,"maxLength":4000,"pattern":"\\d{5}","description":"Coverage list, separated by commas or line breaks. Only five-digit US ZIP codes are recognised: the server extracts every run of five digits and ignores the rest, so a list of non-US postcodes parses to nothing and is rejected. Longer input is truncated to this length and saved; it is not rejected.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.1.zips","typeLabel":"string"},"id":{"type":"string","minLength":1,"description":"Stable skill id. Generated when omitted during creation.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.1.id","typeLabel":"string"},"whenToUse":{"type":"string","maxLength":300,"default":"","description":"Plain-English trigger: when the agent should reach for this. Longer input is truncated to 300 characters and saved, not rejected.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.1.whenToUse","typeLabel":"string"},"enabled":{"type":"boolean","default":true,"description":"Whether the skill is active on the agent. A disabled skill is kept but its tool is not installed.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.1.enabled","typeLabel":"boolean"},"outOfAreaResponse":{"type":"string","maxLength":400,"default":"","description":"What the agent should do when the caller's ZIP is outside the list. Longer input is truncated to this length and saved; it is not rejected.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.1.outOfAreaResponse","typeLabel":"string"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.1.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.1","typeLabel":"Service area check · object"},{"type":"object","title":"Live transfer","description":"A configured human transfer destination the agent can use during a call.","required":["type","name"],"properties":{"type":{"type":"string","const":"live_transfer","description":"The kind of skill. instructions is a custom playbook. The other types add a built-in call tool. The type cannot change later.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.2.type","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":120,"pattern":"\\S","description":"Human-readable name for the skill. Longer input is truncated to 120 characters and saved, not rejected. Whitespace is trimmed first, so a whitespace-only name is rejected as empty.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.2.name","typeLabel":"string"},"id":{"type":"string","minLength":1,"description":"Stable skill id. Generated when omitted during creation.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.2.id","typeLabel":"string"},"whenToUse":{"type":"string","maxLength":300,"default":"","description":"Plain-English trigger: when the agent should reach for this. Longer input is truncated to 300 characters and saved, not rejected.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.2.whenToUse","typeLabel":"string"},"enabled":{"type":"boolean","default":true,"description":"Whether the skill is active on the agent. A disabled skill is kept but its tool is not installed.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.2.enabled","typeLabel":"boolean"},"transferNumber":{"type":"string","maxLength":40,"pattern":"^$|^\\+[1-9]\\d{6,14}$","description":"Destination phone number in E.164 format, for example `+14155550100`. A national or formatted number such as `(415) 555-0100` is rejected. May be omitted or left empty to save the skill as a draft; the campaign cannot go live until a destination is set.","example":"+14155550100","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.2.transferNumber","typeLabel":"string"},"transferMessage":{"type":"string","maxLength":400,"default":"","description":"What the agent says as it hands the call over. Either the exact sentence to speak or a direction to follow. The server adds a framing line before it that tells the model to read it either way. Omitted, empty, or whitespace-only all keep the default line, `Just a second while I connect you`. Longer input is truncated to this length and saved; it is not rejected. Leading and trailing whitespace is stripped before validation, so a value that is only whitespace counts as empty.","example":"Tell them you are putting them through to the team now.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.2.transferMessage","typeLabel":"string"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.2.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.2","typeLabel":"Live transfer · object"},{"type":"object","title":"Add a tag","description":"A GoHighLevel action that lets the agent add one of the configured tags during a call. Needs a sub-account with GoHighLevel connected.","required":["type","name"],"properties":{"type":{"type":"string","const":"add_tag","description":"The kind of skill. instructions is a custom playbook. The other types add a built-in call tool. The type cannot change later.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.3.type","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":120,"pattern":"\\S","description":"Human-readable name for the skill. Longer input is truncated to 120 characters and saved, not rejected. Whitespace is trimmed first, so a whitespace-only name is rejected as empty.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.3.name","typeLabel":"string"},"id":{"type":"string","minLength":1,"description":"Stable skill id. Generated when omitted during creation.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.3.id","typeLabel":"string"},"whenToUse":{"type":"string","maxLength":300,"default":"","description":"Plain-English trigger: when the agent should reach for this. Longer input is truncated to 300 characters and saved, not rejected.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.3.whenToUse","typeLabel":"string"},"enabled":{"type":"boolean","default":true,"description":"Whether the skill is active on the agent. A disabled skill is kept but its tool is not installed.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.3.enabled","typeLabel":"boolean"},"tags":{"type":"string","maxLength":1500,"description":"Tags the agent may apply, separated by commas or line breaks. Case is kept as typed; duplicates are removed case-insensitively. Up to 30 tags, each truncated to 100 characters. May be omitted or left empty to save the skill as a draft, in which case the tool is installed in a fail-closed state that applies nothing until at least one tag is set. Longer input is truncated to this length and saved; it is not rejected.","example":"qualified_lead, hot","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.3.tags","typeLabel":"string"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.3.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.3","typeLabel":"Add a tag · object"},{"type":"object","title":"Check a tag","description":"A GoHighLevel lookup that lets the agent check for one of the configured tags during a call. Needs a sub-account with GoHighLevel connected.","required":["type","name","tags"],"properties":{"type":{"type":"string","const":"check_tag","description":"The kind of skill. instructions is a custom playbook. The other types add a built-in call tool. The type cannot change later.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.4.type","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":120,"pattern":"\\S","description":"Human-readable name for the skill. Longer input is truncated to 120 characters and saved, not rejected. Whitespace is trimmed first, so a whitespace-only name is rejected as empty.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.4.name","typeLabel":"string"},"tags":{"type":"string","maxLength":1500,"pattern":"^\\s*[^,\\n]+\\s*,?\\s*$","description":"The single tag to check for. This takes exactly one tag: two or more are rejected with \"can only check one tag\", and none is rejected too. There is no draft state for this skill.","example":"existing_customer","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.4.tags","typeLabel":"string"},"id":{"type":"string","minLength":1,"description":"Stable skill id. Generated when omitted during creation.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.4.id","typeLabel":"string"},"whenToUse":{"type":"string","maxLength":300,"default":"","description":"Plain-English trigger: when the agent should reach for this. Longer input is truncated to 300 characters and saved, not rejected.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.4.whenToUse","typeLabel":"string"},"enabled":{"type":"boolean","default":true,"description":"Whether the skill is active on the agent. A disabled skill is kept but its tool is not installed.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.4.enabled","typeLabel":"boolean"},"checkingMessage":{"type":"string","maxLength":200,"default":"","description":"What the agent says while the lookup runs. Longer input is truncated to this length and saved; it is not rejected.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.4.checkingMessage","typeLabel":"string"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.4.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.4","typeLabel":"Check a tag · object"},{"type":"object","title":"Appointment booking","description":"Lets the agent offer real calendar availability and book the time the lead accepts. It carries no settings of its own: the calendar it books against is campaign configuration, and the campaign cannot go live until one is set.","required":["type","name"],"properties":{"type":{"type":"string","const":"appointment_booking","description":"The kind of skill. instructions is a custom playbook. The other types add a built-in call tool. The type cannot change later.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.5.type","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":120,"pattern":"\\S","description":"Human-readable name for the skill. Longer input is truncated to 120 characters and saved, not rejected. Whitespace is trimmed first, so a whitespace-only name is rejected as empty.","isRequired":true,"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.5.name","typeLabel":"string"},"id":{"type":"string","minLength":1,"description":"Stable skill id. Generated when omitted during creation.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.5.id","typeLabel":"string"},"whenToUse":{"type":"string","maxLength":300,"default":"","description":"Plain-English trigger: when the agent should reach for this. Longer input is truncated to 300 characters and saved, not rejected.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.5.whenToUse","typeLabel":"string"},"enabled":{"type":"boolean","default":true,"description":"Whether the skill is active on the agent. A disabled skill is kept but its tool is not installed.","uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.5.enabled","typeLabel":"boolean"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.5.additionalProperties","typeLabel":"any"},"uniqueKey":"oneOf.0.skills.items.[INDEX].oneOf.5","typeLabel":"Appointment booking · object"}],"uniqueKey":"oneOf.0.skills.items.[INDEX]","typeLabel":"Custom instruction skill · object | Service area check · object | Live transfer · object | Add a tag · object | Check a tag · object | Appointment booking · object"},"isRequired":true,"uniqueKey":"oneOf.0.skills","typeLabel":"(Custom instruction skill · object | Service area check · object | Live transfer · object | Add a tag · object | Check a tag · object | Appointment booking · object)[]"},"version":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.0.version","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["success","digest","version"],"properties":{"success":{"type":"boolean","const":true,"isRequired":true,"uniqueKey":"oneOf.1.success","typeLabel":"boolean"},"digest":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.digest.items.[INDEX].id","typeLabel":"string"},"type":{"type":"string","enum":["instructions","smart_service_area","live_transfer","add_tag","check_tag","appointment_booking"],"description":"The kind of skill. instructions is a custom playbook. The other types add a built-in call tool. The type cannot change later.","isRequired":true,"uniqueKey":"oneOf.1.digest.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","minLength":1,"maxLength":120,"pattern":"\\S","description":"Human-readable name for the skill. Longer input is truncated to 120 characters and saved, not rejected. Whitespace is trimmed first, so a whitespace-only name is rejected as empty.","isRequired":true,"uniqueKey":"oneOf.1.digest.items.[INDEX].name","typeLabel":"string"},"whenToUse":{"type":"string","maxLength":300,"default":"","description":"Plain-English trigger: when the agent should reach for this. Longer input is truncated to 300 characters and saved, not rejected.","isRequired":true,"uniqueKey":"oneOf.1.digest.items.[INDEX].whenToUse","typeLabel":"string"},"enabled":{"type":"boolean","default":true,"description":"Whether the skill is active on the agent. A disabled skill is kept but its tool is not installed.","isRequired":true,"uniqueKey":"oneOf.1.digest.items.[INDEX].enabled","typeLabel":"boolean"},"instructionsLength":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.digest.items.[INDEX].instructionsLength","typeLabel":"integer"},"zipCount":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.digest.items.[INDEX].zipCount","typeLabel":"integer"},"hasOutOfAreaResponse":{"type":"boolean","uniqueKey":"oneOf.1.digest.items.[INDEX].hasOutOfAreaResponse","typeLabel":"boolean"},"transferNumber":{"type":"string","uniqueKey":"oneOf.1.digest.items.[INDEX].transferNumber","typeLabel":"string"},"transferMessage":{"type":"string","uniqueKey":"oneOf.1.digest.items.[INDEX].transferMessage","typeLabel":"string"},"tagCount":{"type":"integer","minimum":0,"uniqueKey":"oneOf.1.digest.items.[INDEX].tagCount","typeLabel":"integer"}},"required":["id","type","name","whenToUse","enabled"],"uniqueKey":"oneOf.1.digest.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"oneOf.1.digest","typeLabel":"object[]"},"version":{"type":"integer","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.version","typeLabel":"integer"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"default":{"title":"default","value":{"success":true,"skills":[{"id":"pricing_objections","type":"instructions","name":"Pricing objections","whenToUse":"The caller says the service costs too much.","enabled":true,"instructions":"Acknowledge the concern, explain the value, and never invent a discount."}],"version":4}}},"exampleType":"examples"}},"exampleType":"examples"},"b9c78862-2038-4998-befb-feca783e231b":{"description":"Validation failed / malformed request.","content":{"application/json":{"schema":{"type":"object","description":"The error envelope every endpoint answers with. Branch on `error`, show `message` to people. Some modules add fields of their own, listed on that module's error schema.","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"string","description":"A stable code for what went wrong. Branch on this: the same failure always answers with the same code.","example":"NotFound","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person: what happened and what to do next. Show it, never parse it: the wording can change, and browser users get it in their own language. API keys and OAuth apps always get English.","example":"We couldn't find that. It may have been moved or deleted.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Sent when specific fields were refused: one entry for each field to fix.","items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","description":"Where the value sits in the request, as a dotted path.","example":"name","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"A stable code for what is wrong with the value.","example":"FieldRequired","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person.","example":"Please fill this in.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"details.additionalProperties","typeLabel":"any"},"description":"Data your code may need to act on the failure, such as ids or limits. Never text for people.","uniqueKey":"details","typeLabel":"object"},"ref":{"type":"string","description":"Sent only when the failure was on our side. Quote it to support so they can find the request. It matches the `x-request-id` response header.","example":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b","uniqueKey":"ref","typeLabel":"string"}},"required":["success","error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":"NotFound","message":"We couldn't find that. It may have been moved or deleted.","errors":[{"field":"name","code":"FieldRequired","message":"Please fill this in."}],"details":{},"ref":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"}}},"exampleType":"generated"}},"exampleType":"generated"},"d13d596e-f714-42f6-89e9-c3d08b40ec07":{"description":"Missing or invalid authentication.","content":{"application/json":{"schema":{"type":"object","description":"The error envelope every endpoint answers with. Branch on `error`, show `message` to people. Some modules add fields of their own, listed on that module's error schema.","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"string","description":"A stable code for what went wrong. Branch on this: the same failure always answers with the same code.","example":"NotFound","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person: what happened and what to do next. Show it, never parse it: the wording can change, and browser users get it in their own language. API keys and OAuth apps always get English.","example":"We couldn't find that. It may have been moved or deleted.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Sent when specific fields were refused: one entry for each field to fix.","items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","description":"Where the value sits in the request, as a dotted path.","example":"name","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"A stable code for what is wrong with the value.","example":"FieldRequired","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person.","example":"Please fill this in.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"details.additionalProperties","typeLabel":"any"},"description":"Data your code may need to act on the failure, such as ids or limits. Never text for people.","uniqueKey":"details","typeLabel":"object"},"ref":{"type":"string","description":"Sent only when the failure was on our side. Quote it to support so they can find the request. It matches the `x-request-id` response header.","example":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b","uniqueKey":"ref","typeLabel":"string"}},"required":["success","error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":"NotFound","message":"We couldn't find that. It may have been moved or deleted.","errors":[{"field":"name","code":"FieldRequired","message":"Please fill this in."}],"details":{},"ref":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"}}},"exampleType":"generated"}},"exampleType":"generated"},"1f4e1bc1-1ef6-497f-adb0-02a0f4294534":{"description":"Authenticated but not permitted (role or tenant scope).","content":{"application/json":{"schema":{"type":"object","description":"The error envelope every endpoint answers with. Branch on `error`, show `message` to people. Some modules add fields of their own, listed on that module's error schema.","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"string","description":"A stable code for what went wrong. Branch on this: the same failure always answers with the same code.","example":"NotFound","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person: what happened and what to do next. Show it, never parse it: the wording can change, and browser users get it in their own language. API keys and OAuth apps always get English.","example":"We couldn't find that. It may have been moved or deleted.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Sent when specific fields were refused: one entry for each field to fix.","items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","description":"Where the value sits in the request, as a dotted path.","example":"name","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"A stable code for what is wrong with the value.","example":"FieldRequired","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person.","example":"Please fill this in.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"details.additionalProperties","typeLabel":"any"},"description":"Data your code may need to act on the failure, such as ids or limits. Never text for people.","uniqueKey":"details","typeLabel":"object"},"ref":{"type":"string","description":"Sent only when the failure was on our side. Quote it to support so they can find the request. It matches the `x-request-id` response header.","example":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b","uniqueKey":"ref","typeLabel":"string"}},"required":["success","error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":"NotFound","message":"We couldn't find that. It may have been moved or deleted.","errors":[{"field":"name","code":"FieldRequired","message":"Please fill this in."}],"details":{},"ref":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"}}},"exampleType":"generated"}},"exampleType":"generated"},"de142a5a-68f2-403a-81e8-50d2fa3adf4f":{"description":"Resource not found.","content":{"application/json":{"schema":{"type":"object","description":"The error envelope every endpoint answers with. Branch on `error`, show `message` to people. Some modules add fields of their own, listed on that module's error schema.","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"string","description":"A stable code for what went wrong. Branch on this: the same failure always answers with the same code.","example":"NotFound","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person: what happened and what to do next. Show it, never parse it: the wording can change, and browser users get it in their own language. API keys and OAuth apps always get English.","example":"We couldn't find that. It may have been moved or deleted.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Sent when specific fields were refused: one entry for each field to fix.","items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","description":"Where the value sits in the request, as a dotted path.","example":"name","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"A stable code for what is wrong with the value.","example":"FieldRequired","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person.","example":"Please fill this in.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"details.additionalProperties","typeLabel":"any"},"description":"Data your code may need to act on the failure, such as ids or limits. Never text for people.","uniqueKey":"details","typeLabel":"object"},"ref":{"type":"string","description":"Sent only when the failure was on our side. Quote it to support so they can find the request. It matches the `x-request-id` response header.","example":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b","uniqueKey":"ref","typeLabel":"string"}},"required":["success","error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":"NotFound","message":"We couldn't find that. It may have been moved or deleted.","errors":[{"field":"name","code":"FieldRequired","message":"Please fill this in."}],"details":{},"ref":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"}}},"exampleType":"generated"}},"exampleType":"generated"},"738f966b-8c22-4f1d-9414-0a2d6bde18e5":{"description":"Rate limit exceeded.","content":{"application/json":{"schema":{"type":"object","description":"The error envelope every endpoint answers with. Branch on `error`, show `message` to people. Some modules add fields of their own, listed on that module's error schema.","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"string","description":"A stable code for what went wrong. Branch on this: the same failure always answers with the same code.","example":"NotFound","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person: what happened and what to do next. Show it, never parse it: the wording can change, and browser users get it in their own language. API keys and OAuth apps always get English.","example":"We couldn't find that. It may have been moved or deleted.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Sent when specific fields were refused: one entry for each field to fix.","items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","description":"Where the value sits in the request, as a dotted path.","example":"name","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"A stable code for what is wrong with the value.","example":"FieldRequired","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person.","example":"Please fill this in.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"details.additionalProperties","typeLabel":"any"},"description":"Data your code may need to act on the failure, such as ids or limits. Never text for people.","uniqueKey":"details","typeLabel":"object"},"ref":{"type":"string","description":"Sent only when the failure was on our side. Quote it to support so they can find the request. It matches the `x-request-id` response header.","example":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b","uniqueKey":"ref","typeLabel":"string"}},"required":["success","error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":"NotFound","message":"We couldn't find that. It may have been moved or deleted.","errors":[{"field":"name","code":"FieldRequired","message":"Please fill this in."}],"details":{},"ref":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"}}},"exampleType":"generated"}},"exampleType":"generated"},"5ea42232-e53d-4478-aec6-639d2bf484e2":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","description":"The error envelope every endpoint answers with. Branch on `error`, show `message` to people. Some modules add fields of their own, listed on that module's error schema.","properties":{"success":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"error":{"type":"string","description":"A stable code for what went wrong. Branch on this: the same failure always answers with the same code.","example":"NotFound","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person: what happened and what to do next. Show it, never parse it: the wording can change, and browser users get it in their own language. API keys and OAuth apps always get English.","example":"We couldn't find that. It may have been moved or deleted.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","description":"Sent when specific fields were refused: one entry for each field to fix.","items":{"type":"object","additionalProperties":false,"required":["field","code","message"],"properties":{"field":{"type":"string","description":"Where the value sits in the request, as a dotted path.","example":"name","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"A stable code for what is wrong with the value.","example":"FieldRequired","isRequired":true,"uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","description":"One plain sentence for a person.","example":"Please fill this in.","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{}],"uniqueKey":"details.additionalProperties","typeLabel":"any"},"description":"Data your code may need to act on the failure, such as ids or limits. Never text for people.","uniqueKey":"details","typeLabel":"object"},"ref":{"type":"string","description":"Sent only when the failure was on our side. Quote it to support so they can find the request. It matches the `x-request-id` response header.","example":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b","uniqueKey":"ref","typeLabel":"string"}},"required":["success","error","message"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":false,"error":"NotFound","message":"We couldn't find that. It may have been moved or deleted.","errors":[{"field":"name","code":"FieldRequired","message":"Please fill this in."}],"details":{},"ref":"3f2b8c1e-7d4a-4f8e-9b6a-2c1d0e5f7a9b"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"bee259ee-b619-4c22-9bc2-774640745c7e":{"ApiKeyAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Send your API key as `Authorization: Bearer YOUR_API_KEY`.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"02a18f1f-70f0-4870-b017-8f5969c8ed7f":{"url":"https://api.teamfollowup.ai","description":"Production API origin. Public API paths are under /api."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Send your API key as `Authorization: Bearer YOUR_API_KEY`.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Send your API key as `Authorization: Bearer YOUR_API_KEY`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"teamfollowupai","siteName":"Team Follow Up API Docs","title":"List agent skills - Team Follow Up API Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T00:21:23.713Z","originalFileLocation":"api-reference/in-call-capabilities/list-agent-skills.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Return every skill with its editable content and current version. Use view=summary for names, purposes, IDs and versions without full instructions. Required API key scope: agents:read.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Team Follow Up API Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List agent skills - Team Follow Up API Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Return every skill with its editable content and current version. Use view=summary for names, purposes, IDs and versions without full instructions. Required API key scope: agents:read.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Team Follow Up API Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://teamfollowupai.mintlify.site/_mintlify/api/og/v2?division=Individual+skills\u0026amp;title=List+agent+skills\u0026amp;description=Return+every+skill+with+its+editable+content+and+current+version.%0A%0AUse+%60view%3Dsummary%60+for+names%2C+purposes%2C+IDs+and+versions+without+full+instructions.%0A%0ARequired\u0026amp;theme=71791147ff1d0e3f7e4b67ca\u0026amp;signature=b6ce724a9644d39f304984b76b16e0cf29bf0072aba50f151c44d79712094115\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List agent skills - Team Follow Up API Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Return every skill with its editable content and current version. Use view=summary for names, purposes, IDs and versions without full instructions. Required API key scope: agents:read.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://teamfollowupai.mintlify.site/_mintlify/api/og/v2?division=Individual+skills\u0026amp;title=List+agent+skills\u0026amp;description=Return+every+skill+with+its+editable+content+and+current+version.%0A%0AUse+%60view%3Dsummary%60+for+names%2C+purposes%2C+IDs+and+versions+without+full+instructions.%0A%0ARequired\u0026amp;theme=71791147ff1d0e3f7e4b67ca\u0026amp;signature=b6ce724a9644d39f304984b76b16e0cf29bf0072aba50f151c44d79712094115\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/teamfollowupai/SX0A_MKwmcLqeq0O/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Team Follow Up API Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1066BC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/in-call-capabilities/list-agent-skills.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.teamfollowup.ai/#organization\",\"name\":\"Team Follow Up API Docs\",\"url\":\"https://docs.teamfollowup.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/teamfollowupai/-K3ftiAApBs7M-rV/logo/teamfollowup.png?fit=max\u0026auto=format\u0026n=-K3ftiAApBs7M-rV\u0026q=85\u0026s=39eb7926e7a1140e67ff17d1b49319c6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.teamfollowup.ai#website\",\"name\":\"Team Follow Up API Docs\",\"url\":\"https://docs.teamfollowup.ai\",\"publisher\":{\"@id\":\"https://docs.teamfollowup.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills#webpage\",\"url\":\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills\",\"name\":\"List agent skills\",\"description\":\"Return every skill with its editable content and current version. Use view=summary for names, purposes, IDs and versions without full instructions. Required API key scope: agents:read.\",\"dateModified\":\"2026-11-13T00:21:23.713Z\",\"isPartOf\":{\"@id\":\"https://docs.teamfollowup.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In-call Capabilities\",\"item\":\"https://docs.teamfollowup.ai/api-reference/skills-and-tools\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"List agent skills\",\"item\":\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills#apireference\",\"headline\":\"List agent skills\",\"name\":\"List agent skills\",\"description\":\"Return every skill with its editable content and current version. Use view=summary for names, purposes, IDs and versions without full instructions. Required API key scope: agents:read.\",\"url\":\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills\",\"mainEntityOfPage\":{\"@id\":\"https://docs.teamfollowup.ai/api-reference/in-call-capabilities/list-agent-skills#webpage\"},\"dateModified\":\"2026-11-13T00:21:23.713Z\",\"publisher\":{\"@id\":\"https://docs.teamfollowup.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.teamfollowup.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Team Follow Up API Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Team Follow Up API Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/in-call-capabilities/list-agent-skills.md","siteName":"Team Follow Up API Docs","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","icon":"code-xml","pages":[{"title":"API reference","sidebarTitle":"Overview","href":"/api-reference/overview"},{"group":"Developer setup","pages":[{"title":"Authentication","href":"/authentication"},{"title":"Connect an AI assistant","sidebarTitle":"Connect an AI assistant","href":"/mcp-actions"},{"title":"Conventions","href":"/conventions"}]},{"group":"Agents","icon":"bot","expanded":false,"pages":[{"title":"Agents API","sidebarTitle":"Overview","href":"/api-reference/agents"},{"group":"Identity and settings","expanded":false,"pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents","href":"/api-reference/agents/list-agents"},{"title":"Create agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents","href":"/api-reference/agents/create-agent"},{"title":"Get agent","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}","href":"/api-reference/agents/get-agent"},{"title":"Update agent","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/agent-builder/agents/{id}","href":"/api-reference/agents/update-agent"},{"title":"Delete agent","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/agent-builder/agents/{id}","href":"/api-reference/agents/delete-agent"},{"title":"Clone agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/clone","href":"/api-reference/agents/clone-agent"}]},{"group":"Split testing","expanded":false,"pages":[{"title":"Split Testing API","sidebarTitle":"Overview","href":"/api-reference/split-testing"},{"title":"Get split test","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}/split-test","href":"/api-reference/agents/get-split-test"},{"title":"Convert campaign to split test","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/split-test/convert","href":"/api-reference/agents/convert-campaign-to-split-test"},{"title":"Update split weights","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/agent-builder/agents/{id}/split-test","href":"/api-reference/agents/update-split-weights"},{"title":"Add split variant","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/split-test/variants","href":"/api-reference/agents/add-split-variant"},{"title":"Remove split variant","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/agent-builder/agents/{id}/split-test/variants/{variantAgentId}","href":"/api-reference/agents/remove-split-variant"},{"title":"Rename split variant","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/agent-builder/agents/{id}/split-test/variants/{variantAgentId}","href":"/api-reference/agents/rename-split-variant"}]},{"group":"Conversation testing","expanded":false,"pages":[{"title":"Create test call","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/test-call","href":"/api-reference/agents/create-test-call"},{"title":"Create web agent session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/web-version/session","href":"/api-reference/agents/create-web-agent-session"}]}]},{"group":"TFU Live","icon":"audio-lines","expanded":false,"pages":[{"title":"TFU Live authoring","sidebarTitle":"Overview","href":"/api-reference/tfu-live"},{"title":"Build a TFU Live agent","href":"/tfu-live/authoring"},{"title":"Workflows contract","href":"/tfu-live/workflows-contract"},{"title":"TFU Live builder guidance","href":"/tfu-live/builder-guidance"},{"title":"TFU Live master families","href":"/tfu-live/master-families"},{"title":"Connect GoHighLevel to a TFU Live rep","href":"/tfu-live/connect-gohighlevel"},{"title":"Give a TFU Live rep a phone number","href":"/tfu-live/numbers"},{"title":"Take a TFU Live rep live, or pause it","href":"/tfu-live/go-live"},{"title":"Set up a TFU Live rep's campaign","href":"/tfu-live/campaign-settings"},{"title":"Move or copy a TFU Live rep","href":"/tfu-live/move-or-copy"},{"title":"Create TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents","href":"/api-reference/tfu-live/create-tfu-live-agent"},{"title":"List TFU Live agents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents","href":"/api-reference/tfu-live/list-tfu-live-agents"},{"title":"List TFU Live Brain templates","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/brain-templates","href":"/api-reference/tfu-live/list-tfu-live-brain-templates"},{"title":"List TFU Live voices","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/voices","href":"/api-reference/tfu-live/list-tfu-live-voices"},{"title":"Research a business website","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/website-intake","href":"/api-reference/tfu-live/research-a-business-website"},{"title":"Read website research","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/website-intake/{requestId}","href":"/api-reference/tfu-live/read-website-research"},{"title":"Get TFU Live creation status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/creation/{requestId}","href":"/api-reference/tfu-live/get-tfu-live-creation-status"},{"title":"Check TFU Live go-live readiness","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/go-live-check","href":"/api-reference/tfu-live/check-tfu-live-go-live-readiness"},{"title":"Go live with TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/go-live","href":"/api-reference/tfu-live/go-live-with-tfu-live-agent"},{"title":"Pause TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/pause","href":"/api-reference/tfu-live/pause-tfu-live-agent"},{"title":"Get TFU Live agent numbers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/numbers","href":"/api-reference/tfu-live/get-tfu-live-agent-numbers"},{"title":"Search TFU Live agent numbers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/numbers/available","href":"/api-reference/tfu-live/search-tfu-live-agent-numbers"},{"title":"Quote a TFU Live number","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/numbers/quote","href":"/api-reference/tfu-live/quote-a-tfu-live-number"},{"title":"Buy a TFU Live number","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/numbers/purchase","href":"/api-reference/tfu-live/buy-a-tfu-live-number"},{"title":"List numbers to connect to a TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/numbers/attachable","href":"/api-reference/tfu-live/list-numbers-to-connect-to-a-tfu-live-agent"},{"title":"Connect a number to a TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/numbers/attach","href":"/api-reference/tfu-live/connect-a-number-to-a-tfu-live-agent"},{"title":"Get TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}","href":"/api-reference/tfu-live/get-tfu-live-agent"},{"title":"Update TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/tfu-live-agents/{id}","href":"/api-reference/tfu-live/update-tfu-live-agent"},{"title":"Delete TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/tfu-live-agents/{id}","href":"/api-reference/tfu-live/delete-tfu-live-agent"},{"title":"Set TFU Live agent labels","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/tfu-live-agents/{id}/labels","href":"/api-reference/tfu-live/set-tfu-live-agent-labels"},{"title":"Check TFU Live SMS readiness","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/chat-readiness","href":"/api-reference/tfu-live/check-tfu-live-sms-readiness"},{"title":"Start TFU Live chat test","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/chat-tests","href":"/api-reference/tfu-live/start-tfu-live-chat-test"},{"title":"Get TFU Live chat test","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/chat-tests/{sessionId}","href":"/api-reference/tfu-live/get-tfu-live-chat-test"},{"title":"Send TFU Live chat test messages","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/chat-tests/{sessionId}/messages","href":"/api-reference/tfu-live/send-tfu-live-chat-test-messages"},{"title":"End TFU Live chat test","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/chat-tests/{sessionId}/end","href":"/api-reference/tfu-live/end-tfu-live-chat-test"},{"title":"Process pending TFU Live test texts","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/chat-tests/{sessionId}/settle","href":"/api-reference/tfu-live/process-pending-tfu-live-test-texts"},{"title":"Get TFU Live test callbacks","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/chat-tests/{sessionId}/callbacks","href":"/api-reference/tfu-live/get-tfu-live-test-callbacks"},{"title":"Set TFU Live test callback outcome","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/chat-tests/{sessionId}/callbacks/{callbackId}/disposition","href":"/api-reference/tfu-live/set-tfu-live-test-callback-outcome"},{"title":"Prepare TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/prepare","href":"/api-reference/tfu-live/prepare-tfu-live-agent"},{"title":"Sync TFU Live workflows","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/sync-workflows","href":"/api-reference/tfu-live/sync-tfu-live-workflows"},{"title":"List TFU Live agent history","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/history","href":"/api-reference/tfu-live/list-tfu-live-agent-history"},{"title":"Restore TFU Live agent revision","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/restore","href":"/api-reference/tfu-live/restore-tfu-live-agent-revision"},{"title":"Make a TFU Live version of an existing agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/from-legacy","href":"/api-reference/tfu-live/make-a-tfu-live-version-of-an-existing-agent"},{"title":"Clone TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/clone","href":"/api-reference/tfu-live/clone-tfu-live-agent"},{"title":"Move TFU Live agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/move","href":"/api-reference/tfu-live/move-tfu-live-agent"},{"title":"Preview TFU Live agent clone","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/clone/plan","href":"/api-reference/tfu-live/preview-tfu-live-agent-clone"},{"title":"Preview TFU Live agent move","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/move/plan","href":"/api-reference/tfu-live/preview-tfu-live-agent-move"},{"title":"Create TFU Live GoHighLevel install link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/crm-connection","href":"/api-reference/tfu-live/create-tfu-live-gohighlevel-install-link"},{"title":"Check TFU Live GoHighLevel connection","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/crm-connection","href":"/api-reference/tfu-live/check-tfu-live-gohighlevel-connection"},{"title":"Set TFU Live agent orb colour","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/tfu-live-agents/{id}/orb","href":"/api-reference/tfu-live/set-tfu-live-agent-orb-colour"},{"title":"Issue TFU Live test links","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/test-share-links","href":"/api-reference/tfu-live/issue-tfu-live-test-links"},{"title":"Revoke TFU Live test links","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/tfu-live-agents/{id}/test-share-links/{scope}","href":"/api-reference/tfu-live/revoke-tfu-live-test-links"},{"title":"Get TFU Live catalog","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/brain/catalog","href":"/api-reference/tfu-live/get-tfu-live-catalog"},{"title":"Get TFU Live operation support","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/operations","href":"/api-reference/tfu-live/get-tfu-live-operation-support"},{"title":"List TFU Live workflows","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/workflows","href":"/api-reference/tfu-live/list-tfu-live-workflows"},{"title":"Create TFU Live workflow","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/workflows","href":"/api-reference/tfu-live/create-tfu-live-workflow"},{"title":"Validate TFU Live workflows","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/tfu-live-agents/{id}/workflows/validate","href":"/api-reference/tfu-live/validate-tfu-live-workflows"},{"title":"Get TFU Live workflow","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/workflows/{workflowId}","href":"/api-reference/tfu-live/get-tfu-live-workflow"},{"title":"Replace TFU Live workflow","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/tfu-live-agents/{id}/workflows/{workflowId}","href":"/api-reference/tfu-live/replace-tfu-live-workflow"},{"title":"Delete TFU Live workflow","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/tfu-live-agents/{id}/workflows/{workflowId}","href":"/api-reference/tfu-live/delete-tfu-live-workflow"},{"title":"Look up TFU Live resources","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/tfu-live-agents/{id}/resources/{kind}","href":"/api-reference/tfu-live/look-up-tfu-live-resources"},{"title":"Read TFU Live master campaign families","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/projects/{locationId}/tfu-live-families","href":"/api-reference/tfu-live/read-tfu-live-master-campaign-families"},{"title":"Set a TFU Live master campaign family","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/agent-builder/projects/{locationId}/tfu-live-families/{profileId}","href":"/api-reference/tfu-live/set-a-tfu-live-master-campaign-family"}]},{"group":"In-call Capabilities","icon":"puzzle","expanded":false,"pages":[{"title":"Skills \u0026 Tools API","sidebarTitle":"Overview","href":"/api-reference/skills-and-tools"},{"title":"List available tools","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/tools","href":"/api-reference/in-call-capabilities/list-available-tools"},{"title":"Update a tool description","description":"Change only the description of one existing in-call tool. Call `GET /api/agent-builder/agents/{id}?view=tools`, then copy the installed tool's exact `tools[].name` into `toolName`. For example, an installed tool with `name: \"transfer_call\"` is updated with `toolName: \"transfer_call\"`. Names are case-sensitive.\n\n`GET /api/agent-builder/tools` is a catalog: its `name` is a display label such as \"Live Transfer\", and its `type` is the kind of skill to install. Neither is necessarily the installed tool name. One catalog entry can create several tools. Use the installed list to choose the one to edit. This operation does not install a tool.\n\nIf a skill owns the tool, a later skill save may regenerate its description, so edit the owning skill instead.\n\nRequired API key scope: `agents:write`.","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/agent-builder/agents/{id}/tools","href":"/api-reference/in-call-capabilities/update-a-tool-description"},{"group":"Individual skills","expanded":false,"pages":[{"title":"List agent skills","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}/skills","href":"/api-reference/in-call-capabilities/list-agent-skills"},{"title":"Create an agent skill","description":"Add one capability without replacing or removing existing skills. The instructions type creates a custom plain-English skill. The other types add a built-in in-call tool with its settings: service area check, live transfer, add a tag, check a tag or appointment booking. Supply expectedVersion to reject a write based on stale state.\n\nRequired API key scope: `agents:write`.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/skills","href":"/api-reference/in-call-capabilities/create-an-agent-skill"},{"title":"Update one agent skill","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/agent-builder/agents/{id}/skills/{skillId}","href":"/api-reference/in-call-capabilities/update-one-agent-skill"},{"title":"Delete one agent skill","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/agent-builder/agents/{id}/skills/{skillId}","href":"/api-reference/in-call-capabilities/delete-one-agent-skill"}]}]},{"group":"Campaigns","icon":"phone","expanded":false,"pages":[{"title":"Campaigns API","sidebarTitle":"Overview","href":"/api-reference/campaigns"},{"title":"Get campaign","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}/campaign","href":"/api-reference/campaigns/get-campaign"},{"title":"Update campaign","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/agent-builder/agents/{id}/campaign","href":"/api-reference/campaigns/update-campaign"},{"title":"Enroll existing leads","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/campaign/enroll-existing-leads","href":"/api-reference/campaigns/enroll-existing-leads"},{"group":"Power Dialer","expanded":false,"pages":[{"title":"Power Dialer API","sidebarTitle":"Overview","href":"/api-reference/power-dialer"},{"title":"Get queue summary","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/power-dialer/summary","href":"/api-reference/campaigns/get-queue-summary"},{"title":"Get pipeline steps","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/power-dialer/pipeline/steps","href":"/api-reference/campaigns/get-pipeline-steps"},{"title":"List pipeline leads","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/power-dialer/pipeline/leads","href":"/api-reference/campaigns/list-pipeline-leads"},{"title":"List callback leads","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/power-dialer/pipeline/callbacks","href":"/api-reference/campaigns/list-callback-leads"},{"title":"List parked speed-to-lead leads","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/power-dialer/pipeline/s2l-parked","href":"/api-reference/campaigns/list-parked-speed-to-lead-leads"},{"title":"Run lead touchpoints now","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/power-dialer/run-now","href":"/api-reference/campaigns/run-lead-touchpoints-now"},{"title":"Move leads to another step","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/power-dialer/move","href":"/api-reference/campaigns/move-leads-to-another-step"},{"title":"Remove leads from cadence","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/power-dialer/remove","href":"/api-reference/campaigns/remove-leads-from-cadence"}]},{"group":"Call results","expanded":false,"pages":[{"title":"Campaign Workflows API","sidebarTitle":"Overview","href":"/api-reference/campaign-workflows"},{"title":"Get the campaign workflow","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}/campaign/workflow","href":"/api-reference/campaigns/get-the-campaign-workflow"},{"title":"Add actions to an outcome","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/campaign/workflow/outcomes/{outcome}/nodes","href":"/api-reference/campaigns/add-actions-to-an-outcome"},{"title":"Replace the entire workflow","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/agent-builder/agents/{id}/campaign/workflow","href":"/api-reference/campaigns/replace-the-entire-workflow"},{"title":"Update settings or node contents","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/agent-builder/agents/{id}/campaign/workflow","href":"/api-reference/campaigns/update-settings-or-node-contents"},{"title":"Remove a workflow node","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/agent-builder/agents/{id}/campaign/workflow/nodes/{nodeId}","href":"/api-reference/campaigns/remove-a-workflow-node"}]},{"group":"Campaign testing","expanded":false,"pages":[{"title":"Create campaign test run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/campaign/test-runs","href":"/api-reference/campaigns/create-campaign-test-run"},{"title":"Get campaign test run status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}/campaign/test-runs/{intentId}","href":"/api-reference/campaigns/get-campaign-test-run-status"},{"title":"List campaign runs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}/campaign/runs","href":"/api-reference/campaigns/list-campaign-runs"}]}]},{"group":"Master agent","icon":"layers","expanded":false,"pages":[{"title":"Get master agent state","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/agents/{id}/campaign/master","href":"/api-reference/master-agent/get-master-agent-state"},{"title":"Link a project to this master agent","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/agents/{id}/campaign/master/projects","href":"/api-reference/master-agent/link-a-project-to-this-master-agent"}]},{"group":"Phone Numbers","icon":"phone-call","expanded":false,"pages":[{"title":"Phone Numbers API","sidebarTitle":"Overview","href":"/api-reference/phone-numbers"},{"group":"Find numbers","expanded":false,"pages":[{"title":"List phone numbers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/phone-numbers","href":"/api-reference/phone-numbers/list-phone-numbers"},{"title":"Search phone numbers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/phone-numbers/search","href":"/api-reference/phone-numbers/search-phone-numbers"}]},{"group":"Agent assignments","expanded":false,"pages":[{"title":"Assign phone number","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/phone-numbers/{number}/assign","href":"/api-reference/phone-numbers/assign-phone-number"},{"title":"Unassign phone number","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/agent-builder/phone-numbers/{number}/campaigns/{campaignId}","href":"/api-reference/phone-numbers/unassign-phone-number"},{"title":"Move phone number","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/phone-numbers/{number}/campaigns/{campaignId}/move","href":"/api-reference/phone-numbers/move-phone-number"}]},{"group":"Buy and release","expanded":false,"pages":[{"title":"Buy phone number","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/phone-numbers","href":"/api-reference/phone-numbers/buy-phone-number"},{"title":"Release phone number","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/agent-builder/phone-numbers/{number}","href":"/api-reference/phone-numbers/release-phone-number"}]}]},{"group":"Caller ID","icon":"circle-check","expanded":false,"pages":[{"title":"Caller ID API","sidebarTitle":"Overview","href":"/api-reference/caller-id"},{"title":"Get caller ID status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/phone-trust/summary","href":"/api-reference/caller-id/get-caller-id-status"},{"title":"Register a business for caller ID","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/phone-trust/businesses/{locationId}/registration","href":"/api-reference/caller-id/register-a-business-for-caller-id"}]},{"group":"Voices","icon":"audio-lines","expanded":false,"pages":[{"title":"Voices API","sidebarTitle":"Overview","href":"/api-reference/voices"},{"title":"List voices","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/voices","href":"/api-reference/voices/list-voices"},{"title":"Get voice","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/voices/{voiceId}","href":"/api-reference/voices/get-voice"},{"title":"Search for a voice to add","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/voices/search","href":"/api-reference/voices/search-for-a-voice-to-add"},{"title":"List added voices","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/voices/library","href":"/api-reference/voices/list-added-voices"},{"title":"Add a voice","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/agent-builder/voices/library","href":"/api-reference/voices/add-a-voice"},{"title":"Preview removing a voice","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/agent-builder/voices/library/{providerVoiceId}/impact","href":"/api-reference/voices/preview-removing-a-voice"},{"title":"Remove a voice","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/agent-builder/voices/library/{providerVoiceId}","href":"/api-reference/voices/remove-a-voice"}]},{"group":"Projects","icon":"folder","expanded":false,"pages":[{"title":"Projects API","sidebarTitle":"Overview","href":"/api-reference/projects"},{"title":"List projects","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/projects","href":"/api-reference/projects/list-projects"},{"title":"Create native sub-account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/v2/projects/native","href":"/api-reference/projects/create-native-sub-account"},{"title":"Get project","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/v2/projects/{id}","href":"/api-reference/projects/get-project"},{"title":"Update project","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/v2/projects/{id}","href":"/api-reference/projects/update-project"},{"title":"Delete project","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/v2/projects/{id}","href":"/api-reference/projects/delete-project"}]},{"group":"Calls","icon":"history","expanded":false,"pages":[{"title":"Calls API","sidebarTitle":"Overview","href":"/api-reference/calls"},{"title":"List calls","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/call-history","href":"/api-reference/calls/list-calls"},{"title":"Get call","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/call-history/{callId}","href":"/api-reference/calls/get-call"},{"title":"Search call transcripts","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/call-history/transcript-search","href":"/api-reference/calls/search-call-transcripts"}]},{"group":"Contacts","icon":"users","expanded":false,"pages":[{"title":"Contacts API","sidebarTitle":"Overview","href":"/api-reference/contacts"},{"title":"List contacts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts","href":"/api-reference/contacts/list-contacts"},{"title":"Get contact","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/contacts/{contactId}","href":"/api-reference/contacts/get-contact"},{"title":"Update contact","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/contacts/{contactId}","href":"/api-reference/contacts/update-contact"},{"title":"Add a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/contacts/add/{locationId}","href":"/api-reference/contacts/add-a-contact"}]},{"group":"Native Contacts","icon":"user-round","expanded":false,"pages":[{"title":"Native Contacts API","sidebarTitle":"Overview","href":"/api-reference/native-contacts"},{"title":"List native contacts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-contacts","href":"/api-reference/native-contacts/list-native-contacts"},{"title":"Create a native contact","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts","href":"/api-reference/native-contacts/create-a-native-contact"},{"title":"List custom fields","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-contacts/fields","href":"/api-reference/native-contacts/list-custom-fields"},{"title":"Create a custom field","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/fields","href":"/api-reference/native-contacts/create-a-custom-field"},{"title":"Update a custom field","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/native-contacts/fields/{key}","href":"/api-reference/native-contacts/update-a-custom-field"},{"title":"Delete a custom field","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/native-contacts/fields/{key}","href":"/api-reference/native-contacts/delete-a-custom-field"},{"title":"Get the lead link","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-contacts/lead-webhook","href":"/api-reference/native-contacts/get-the-lead-link"},{"title":"Rotate the lead link","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/lead-webhook/rotate","href":"/api-reference/native-contacts/rotate-the-lead-link"},{"title":"Import contacts from CSV","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/import","href":"/api-reference/native-contacts/import-contacts-from-csv"},{"title":"Put contacts into a campaign","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/enroll","href":"/api-reference/native-contacts/put-contacts-into-a-campaign"},{"title":"Stop calling several native contacts","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/bulk-do-not-call","href":"/api-reference/native-contacts/stop-calling-several-native-contacts"},{"title":"Delete several native contacts","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/bulk-delete","href":"/api-reference/native-contacts/delete-several-native-contacts"},{"title":"Get a native contact","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-contacts/{contactId}","href":"/api-reference/native-contacts/get-a-native-contact"},{"title":"Update a native contact","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/native-contacts/{contactId}","href":"/api-reference/native-contacts/update-a-native-contact"},{"title":"Delete a native contact","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/native-contacts/{contactId}","href":"/api-reference/native-contacts/delete-a-native-contact"},{"title":"Preview a native contact delete","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-contacts/{contactId}/delete-preview","href":"/api-reference/native-contacts/preview-a-native-contact-delete"},{"title":"Set native contact do-not-call","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/{contactId}/do-not-call","href":"/api-reference/native-contacts/set-native-contact-do-not-call"},{"title":"Add a native contact note","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/{contactId}/notes","href":"/api-reference/native-contacts/add-a-native-contact-note"},{"title":"Add to contact memory","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/{contactId}/memory","href":"/api-reference/native-contacts/add-to-contact-memory"},{"title":"Update a contact memory entry","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/native-contacts/{contactId}/memory/{entryId}","href":"/api-reference/native-contacts/update-a-contact-memory-entry"},{"title":"Delete a contact memory entry","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/native-contacts/{contactId}/memory/{entryId}","href":"/api-reference/native-contacts/delete-a-contact-memory-entry"},{"title":"Cancel a native contact callback","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-contacts/{contactId}/callback/cancel","href":"/api-reference/native-contacts/cancel-a-native-contact-callback"}]},{"group":"Native Calendar","icon":"calendar","expanded":false,"pages":[{"title":"Native Calendar API","sidebarTitle":"Overview","href":"/api-reference/native-calendar"},{"title":"List calendars","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-calendar/calendars","href":"/api-reference/native-calendar/list-calendars"},{"title":"Create a calendar","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-calendar/calendars","href":"/api-reference/native-calendar/create-a-calendar"},{"title":"Preview slots for a calendar definition","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-calendar/calendars/preview","href":"/api-reference/native-calendar/preview-slots-for-a-calendar-definition"},{"title":"Get a calendar","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-calendar/calendars/{calendarId}","href":"/api-reference/native-calendar/get-a-calendar"},{"title":"Update a calendar","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /api/native-calendar/calendars/{calendarId}","href":"/api-reference/native-calendar/update-a-calendar"},{"title":"Delete a calendar","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/native-calendar/calendars/{calendarId}","href":"/api-reference/native-calendar/delete-a-calendar"},{"title":"Get free slots","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-calendar/calendars/{calendarId}/free-slots","href":"/api-reference/native-calendar/get-free-slots"},{"title":"List appointments for a contact","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-calendar/appointments","href":"/api-reference/native-calendar/list-appointments-for-a-contact"},{"title":"Book an appointment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-calendar/appointments","href":"/api-reference/native-calendar/book-an-appointment"},{"title":"List appointments in a window","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-calendar/appointments/range","href":"/api-reference/native-calendar/list-appointments-in-a-window"},{"title":"Cancel an appointment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-calendar/appointments/{appointmentId}/cancel","href":"/api-reference/native-calendar/cancel-an-appointment"},{"title":"Confirm an appointment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-calendar/appointments/{appointmentId}/confirm","href":"/api-reference/native-calendar/confirm-an-appointment"},{"title":"Reschedule an appointment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-calendar/appointments/{appointmentId}/reschedule","href":"/api-reference/native-calendar/reschedule-an-appointment"},{"title":"Add an event","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-calendar/events","href":"/api-reference/native-calendar/add-an-event"},{"title":"List calendar connections","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-calendar/connections","href":"/api-reference/native-calendar/list-calendar-connections"},{"title":"Connect a calendar system","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-calendar/connections/{providerId}/token","href":"/api-reference/native-calendar/connect-a-calendar-system"},{"title":"Disconnect a calendar system","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/native-calendar/connections/{providerId}/disconnect","href":"/api-reference/native-calendar/disconnect-a-calendar-system"},{"title":"List linked calendars","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-calendar/providers/{providerId}/calendars","href":"/api-reference/native-calendar/list-linked-calendars"},{"title":"List linked bookings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/native-calendar/providers/{providerId}/appointments","href":"/api-reference/native-calendar/list-linked-bookings"}]},{"group":"Analytics","icon":"chart-column","expanded":false,"pages":[{"title":"Analytics API","sidebarTitle":"Overview","href":"/api-reference/analytics"},{"title":"Get analytics summary","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/dashboard/analytics","href":"/api-reference/analytics/get-analytics-summary"},{"title":"Get analytics by lead age","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/dashboard/analytics/lead-age","href":"/api-reference/analytics/get-analytics-by-lead-age"},{"title":"Get booking rate by project","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/dashboard/booking-rate-by-project","href":"/api-reference/analytics/get-booking-rate-by-project"},{"title":"Get transfer rate by project","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/dashboard/transfer-rate-by-project","href":"/api-reference/analytics/get-transfer-rate-by-project"}]},{"group":"Billing","icon":"wallet","expanded":false,"pages":[{"title":"Billing API","sidebarTitle":"Overview","href":"/api-reference/billing"},{"title":"Get billing summary","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/billing/summary","href":"/api-reference/billing/get-billing-summary"},{"title":"List billing transactions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/billing/transactions","href":"/api-reference/billing/list-billing-transactions"},{"title":"Get billing usage","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/billing/usage","href":"/api-reference/billing/get-billing-usage"},{"title":"List billing documents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/billing/documents","href":"/api-reference/billing/list-billing-documents"},{"title":"List sub-account wallets","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/billing/sub-accounts","href":"/api-reference/billing/list-sub-account-wallets"},{"title":"Get sub-account wallet","deprecated":null,"version":null,"openapi":"/openapi.yaml get /api/billing/sub-accounts/{locationId}","href":"/api-reference/billing/get-sub-account-wallet"},{"title":"Update agency auto-recharge","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/billing/auto-recharge","href":"/api-reference/billing/update-agency-auto-recharge"},{"title":"Buy a plan","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/billing/purchases","href":"/api-reference/billing/buy-a-plan"},{"title":"Update sub-account rebilling","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/billing/sub-accounts/{locationId}/rebilling","href":"/api-reference/billing/update-sub-account-rebilling"},{"title":"Enable rebilling with a charge","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/billing/sub-accounts/{locationId}/rebilling/enable-with-charge","href":"/api-reference/billing/enable-rebilling-with-a-charge"},{"title":"Charge a sub-account","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/billing/sub-accounts/{locationId}/charges","href":"/api-reference/billing/charge-a-sub-account"},{"title":"Update sub-account auto-recharge","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/billing/sub-accounts/{locationId}/auto-recharge","href":"/api-reference/billing/update-sub-account-auto-recharge"},{"title":"Update sub-account Credit Guard","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/billing/sub-accounts/{locationId}/credit-guard","href":"/api-reference/billing/update-sub-account-credit-guard"},{"title":"Update Credit Guard for sub-accounts","deprecated":null,"version":null,"openapi":"/openapi.yaml put /api/billing/sub-accounts/credit-guard","href":"/api-reference/billing/update-credit-guard-for-sub-accounts"},{"title":"Link a Stripe customer","deprecated":null,"version":null,"openapi":"/openapi.yaml post /api/billing/customer-links","href":"/api-reference/billing/link-a-stripe-customer"},{"title":"Unlink a Stripe customer","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /api/billing/sub-accounts/{locationId}/customer-link","href":"/api-reference/billing/unlink-a-stripe-customer"}]}]},{"tab":"Changelog","icon":"book","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"List agent skills - Team Follow Up API Docs","buildId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","deploymentId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DbeN8Wo6.js","utils-CwSb5Doc.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BmREeM3N.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-AYjWerCj.js","snippetPresets-QD4ULQlp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-CqcDm2To.js","ApiExamples-Digj5cjF.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CiHrzluR.js","shallow-D7h7pFGg.js","getApiPlaygroundDisplay-mlxkpAUf.js","CodeSnippet-D2rH5lZI.js","CodeSnippets-B53ulOaL.js","getPastedJson-DxGeNMih.js","icon-BHbyrebp.js","MethodPill-C7F_KEEJ.js","DuplicateIcon-j3c5-73z.js","createIcon-OvCnyFqD.js","DynamicMarkdown-DpAS3GCb.js","SectionHeading-DMPpdrvW.js","axios-vUo_bRtp.js","Markdown-D7pDRguu.js","clsx-2_c6mSt_.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cu7_SikL.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ydqCcy4b.js"]}