Tool the runner should (or should not) observe on the next turn. A
webhook or client tool is referenced by its library id, an integration
tool by "<provider_key>:<tool_name>" (for example
"google_calendar:create_event").
Agents to attach the test to. They must all be in one workspace, and the test is created there. Without agents the test goes into the API key owner's default workspace.
Tool the runner should (or should not) observe on the next turn. A
webhook or client tool is referenced by its library id, an integration
tool by "<provider_key>:<tool_name>" (for example
"google_calendar:create_event").
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Fish Audio","description":"Documentation for Fish Audio APIs, SDKs, models, voice cloning, real-time streaming, and self-hosting.","colors":{"primary":"#0e0e0e","light":"#9b90e8","dark":"#09090b"},"logo":{"light":"https://mintcdn.com/hanabiaiinc/amYp9Dj31LtlHliX/logo/light.png?fit=max\u0026auto=format\u0026n=amYp9Dj31LtlHliX\u0026q=85\u0026s=305973cd6a8d11dbf36d1ec682ee845e","dark":"https://mintcdn.com/hanabiaiinc/amYp9Dj31LtlHliX/logo/dark.png?fit=max\u0026auto=format\u0026n=amYp9Dj31LtlHliX\u0026q=85\u0026s=b79bd889db9ac1aae939834596e8a22f"},"favicon":"https://mintcdn.com/hanabiaiinc/-WxHANLOAmlTUwdM/favicon.svg?fit=max\u0026auto=format\u0026n=-WxHANLOAmlTUwdM\u0026q=85\u0026s=dc65d9f44bda0f5b8277c48dd9c979c3","navbar":{"links":[{"href":"https://discord.gg/dF9Db2Tt3Y","label":"Community"},{"href":"mailto:support@fish.audio","label":"Support"}],"primary":{"type":"button","label":"Sign Up","href":"https://fish.audio/app/developers/get-started/?utm_source=docs\u0026utm_medium=navbar\u0026utm_content=sign-up"}},"footer":{"socials":{"website":"https://fish.audio","github":"https://github.com/fishaudio","x":"https://x.com/fishaudio","linkedin":"https://www.linkedin.com/company/fish-audio","discord":"https://discord.gg/dF9Db2Tt3Y"},"links":[{"header":"About","items":[{"label":"Research","href":"https://openaudio.com/"},{"label":"Careers","href":"mailto:hr@fish.audio"},{"label":"Blog","href":"https://fish.audio/blog"}]},{"header":"Resources","items":[{"label":"API Status","href":"https://status.fish.audio"},{"label":"Open Source","href":"https://github.com/fishaudio"},{"label":"Changelog","href":"https://docs.fish.audio/developer-guide/getting-started/changelog"}]},{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://fish.audio/privacy"},{"label":"Terms of Service","href":"https://fish.audio/terms"},{"label":"Report Abuse","href":"mailto:support@fish.audio?subject=%5BReport+Abuse%5D+MODEL+NAME\u0026amp;body=Please+provide+a+detailed+description+of+the+abuse+you+are+reporting."}]}]},"fonts":{"family":"Onest"},"integrations":{"amplitude":{"apiKey":"39daf30712f00da6ea5283bc21e7084e"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"interaction":{"drilldown":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hanabiaiinc","hasAudioNarration":false,"actualSubdomain":"hanabiaiinc","customDomains":["docs.fish.audio"],"gitSource":{"type":"github","owner":"fishaudio","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af3af841456641906edac92","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API Reference","count":88},{"language":"default","tag":"Agents API","count":49},{"language":"default","tag":"Agents","count":48},{"language":"default","tag":"Resources","count":40},{"language":"default","tag":"Overview","count":31},{"language":"default","tag":"REST API","count":24},{"language":"default","tag":"Core Features","count":14},{"language":"default","tag":"Tests","count":13},{"language":"default","tag":"Cookbook","count":12},{"language":"default","tag":"Build","count":11}]},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@fish.audio","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"llms-txt-v2","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}],"googleFontsInlined":true},"customCss":[{"filePath":"custom.css","content":"*{scrollbar-width:thin;scrollbar-color:rgba(120,120,120,0.4) transparent}::-webkit-scrollbar{width:6px;height:6px;background:transparent!important}::-webkit-scrollbar-thumb{background:rgba(120,120,120,0.5);border-radius:999px}::-webkit-scrollbar-thumb{opacity:0;transition:opacity 0.2s ease}:hover::-webkit-scrollbar-thumb,*:active::-webkit-scrollbar-thumb{opacity:1}img[src*=\"/images/\"]{background:transparent!important}.prompt-card{display:grid;cursor:pointer;outline:none}.prompt-card .card{transition:border-color 0.15s ease}.prompt-card:hover .card,.prompt-card:focus-visible .card{border-color:rgb(var(--primary))!important}.dark .prompt-card:hover .card,.dark .prompt-card:focus-visible .card{border-color:rgb(var(--primary-light))!important}.prompt-card-hint{position:absolute;top:1rem;right:1rem;padding:0.3rem 0.6rem;border-radius:9999px;font-size:0.75rem;line-height:1;color:rgb(var(--gray-500));background:rgba(120, 120, 120, 0.12);opacity:0;transition:opacity 0.15s ease;pointer-events:none}.prompt-card:hover .prompt-card-hint,.prompt-card:focus-visible .prompt-card-hint,.prompt-card[data-state=\"copied\"] .prompt-card-hint,.prompt-card[data-state=\"failed\"] .prompt-card-hint{opacity:1}.prompt-card[data-state=\"copied\"] .prompt-card-hint{color:rgb(var(--primary));background:rgb(var(--primary) / 0.12)}.dark .prompt-card[data-state=\"copied\"] .prompt-card-hint{color:rgb(var(--primary-light));background:rgb(var(--primary-light) / 0.16)}"}],"page":{"pagePath":"api-reference/endpoint/agent/create-test","slug":"/api-reference/endpoint/agent/create-test","pageMetadata":{"openapi":"post /v1/agent/tests","title":"Create Test","description":"Create a Single Turn, Tool or Simulation test, optionally attached to agents.","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/create-test"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Create a Single Turn, Tool or Simulation test, optionally attached to agents.\"\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":{"config":{},"pageMetadata":{"openapi":"post /v1/agent/tests","title":"Create Test","description":"Create a Single Turn, Tool or Simulation test, optionally attached to agents.","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/create-test"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Create Test","description":"Create a Single Turn, Tool or Simulation test, optionally attached to agents.","security":["baba115b-a389-42dd-a3be-6e2173a0305b"],"requestBody":"50523d31-eaa4-4134-9c6f-008371ffd00b","responses":{"201":"27a3f750-fb61-48af-bb5a-d8e0542cfcb7","400":"1ea11f53-66e4-4eba-8fa8-2f4999366bb0","401":"20fa18e9-a0b4-400f-9319-b71ff9c1d9fb","422":"3a73b3bc-6a7f-4579-8503-32a7ad64e226","503":"12b48617-53f2-4971-b297-269a94412fa4"},"tags":["Agent Tests"],"x-codeSamples":[{"lang":"bash","label":"Create Simulation Test","source":"curl --request POST \\\n --url https://api.fish.audio/v1/agent/tests \\\n --header 'Authorization: Bearer \u003ctoken>' \\\n --header 'Content-Type: application/json' \\\n --data '{\n \"name\": \"Reschedules an appointment\",\n \"test_type\": \"simulation\",\n \"agent_ids\": [\"\u003cagent-id>\"],\n \"simulation\": {\n \"scenario\": \"You are Jane. Move your Tuesday cleaning to Thursday afternoon.\",\n \"max_turns\": 10,\n \"success_conditions\": [\n {\"name\": \"rescheduled\", \"description\": \"The agent confirms the new Thursday slot.\"}\n ],\n \"tool_mocks\": {\n \"strategy\": \"all\",\n \"tools\": [\n {\n \"tool\": {\"id\": \"\u003ctool-id>\", \"name\": \"Book appointment\", \"type\": \"webhook\"},\n \"result\": {\"status\": \"confirmed\"}\n }\n ]\n }\n }\n }'"}],"method":"post","type":"path","servers":["4c05306a-8a2b-4dca-ae0d-0b87050df242"],"path":"/v1/agent/tests","baseUrlOptions":["https://api.fish.audio"],"title":"Create Test","codeSamples":[{"label":"Create Simulation Test","lang":"bash","source":"curl --request POST \\\n --url https://api.fish.audio/v1/agent/tests \\\n --header 'Authorization: Bearer \u003ctoken>' \\\n --header 'Content-Type: application/json' \\\n --data '{\n \"name\": \"Reschedules an appointment\",\n \"test_type\": \"simulation\",\n \"agent_ids\": [\"\u003cagent-id>\"],\n \"simulation\": {\n \"scenario\": \"You are Jane. Move your Tuesday cleaning to Thursday afternoon.\",\n \"max_turns\": 10,\n \"success_conditions\": [\n {\"name\": \"rescheduled\", \"description\": \"The agent confirms the new Thursday slot.\"}\n ],\n \"tool_mocks\": {\n \"strategy\": \"all\",\n \"tools\": [\n {\n \"tool\": {\"id\": \"\u003ctool-id>\", \"name\": \"Book appointment\", \"type\": \"webhook\"},\n \"result\": {\"status\": \"confirmed\"}\n }\n ]\n }\n }\n }'"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"test_type":{"default":"next_reply","enum":["next_reply","tool","simulation"],"title":"Test Type","type":"string","uniqueKey":"test_type","typeLabel":"enum\u003cstring>"},"conversation":{"items":{"properties":{"role":{"enum":["agent","user"],"title":"Role","type":"string","isRequired":true,"uniqueKey":"conversation.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"text":{"maxLength":2000,"minLength":1,"title":"Text","type":"string","isRequired":true,"uniqueKey":"conversation.items.[INDEX].text","typeLabel":"string"}},"required":["role","text"],"title":"AgentTestMessagePayload","type":"object","uniqueKey":"conversation.items.[INDEX]","typeLabel":"AgentTestMessagePayload · object"},"title":"Conversation","type":"array","uniqueKey":"conversation","typeLabel":"AgentTestMessagePayload · object[]"},"expectation":{"default":"","maxLength":400,"title":"Expectation","type":"string","uniqueKey":"expectation","typeLabel":"string"},"success_examples":{"items":{"type":"string","uniqueKey":"success_examples.items.[INDEX]","typeLabel":"string"},"title":"Success Examples","type":"array","uniqueKey":"success_examples","typeLabel":"string[]"},"failure_examples":{"items":{"type":"string","uniqueKey":"failure_examples.items.[INDEX]","typeLabel":"string"},"title":"Failure Examples","type":"array","uniqueKey":"failure_examples","typeLabel":"string[]"},"referenced_tool":{"oneOf":[{"type":"object","title":"AgentTestReferencedTool","description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","required":["id","name"],"properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"referenced_tool.oneOf.0.id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"referenced_tool.oneOf.0.name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"referenced_tool.oneOf.0.type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"referenced_tool.oneOf.0.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"referenced_tool.oneOf.0","typeLabel":"AgentTestReferencedTool · object"},{"type":"null","uniqueKey":"referenced_tool.oneOf.1","typeLabel":"null"}],"uniqueKey":"referenced_tool","typeLabel":"AgentTestReferencedTool · object | null"},"tool_parameters":{"items":{"additionalProperties":false,"properties":{"name":{"maxLength":100,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].name","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"integer","title":"Value","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value.oneOf.1","typeLabel":"integer"},{"type":"number","title":"Value","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value.oneOf.2","typeLabel":"number"},{"type":"boolean","title":"Value","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value.oneOf.3","typeLabel":"boolean"}],"isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value","typeLabel":"string | integer | number | boolean"},"type":{"oneOf":[{"type":"string","title":"Type","enum":["string","number","boolean"],"uniqueKey":"tool_parameters.items.[INDEX].type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Type","uniqueKey":"tool_parameters.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"tool_parameters.items.[INDEX].type","typeLabel":"enum\u003cstring> | null"}},"required":["name","value"],"title":"AgentTestToolParameter","type":"object","uniqueKey":"tool_parameters.items.[INDEX]","typeLabel":"AgentTestToolParameter · object"},"title":"Tool Parameters","type":"array","uniqueKey":"tool_parameters","typeLabel":"AgentTestToolParameter · object[]"},"verify_absence":{"default":false,"title":"Verify Absence","type":"boolean","uniqueKey":"verify_absence","typeLabel":"boolean"},"simulation":{"oneOf":[{"type":"object","title":"AgentTestSimulationConfig","required":["scenario","success_conditions"],"properties":{"scenario":{"maxLength":10000,"minLength":1,"title":"Scenario","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.scenario","typeLabel":"string"},"success_conditions":{"items":{"additionalProperties":false,"description":"One natural-language criterion the judge scores on the whole conversation.","properties":{"name":{"maxLength":80,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.success_conditions.items.[INDEX].name","typeLabel":"string"},"description":{"maxLength":500,"minLength":1,"title":"Description","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.success_conditions.items.[INDEX].description","typeLabel":"string"}},"required":["name","description"],"title":"AgentTestSuccessCondition","type":"object","uniqueKey":"simulation.oneOf.0.success_conditions.items.[INDEX]","typeLabel":"AgentTestSuccessCondition · object"},"maxItems":10,"minItems":1,"title":"Success Conditions","type":"array","isRequired":true,"uniqueKey":"simulation.oneOf.0.success_conditions","typeLabel":"AgentTestSuccessCondition · object[]"},"max_turns":{"default":10,"maximum":50,"minimum":1,"title":"Max Turns","type":"integer","uniqueKey":"simulation.oneOf.0.max_turns","typeLabel":"integer"},"assertions":{"additionalProperties":false,"description":"Deterministic checks run before the judge, no LLM involved.","properties":{"tool_calls":{"items":{"additionalProperties":false,"description":"The agent must have called this library tool, optionally with matching\narguments, between min_calls and max_calls times (calls that match).","properties":{"tool":{"additionalProperties":false,"description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool.id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool.name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool.type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool.description","typeLabel":"string"}},"required":["id","name"],"title":"AgentTestReferencedTool","type":"object","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool","typeLabel":"AgentTestReferencedTool · object"},"params":{"additionalProperties":{"additionalProperties":false,"description":"How one tool argument is compared: exact string equality, a regular\nexpression searched in the value, or mere presence. Regexes are\nJavaScript without flags, mock conditions run in the runtime as written\nand assertions are translated to Python for scoring.","properties":{"type":{"default":"exact","enum":["exact","regex","any"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","title":"Value","maxLength":1000,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties.value","typeLabel":"string | null"}},"title":"AgentTestParamMatcher","type":"object","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties","typeLabel":"AgentTestParamMatcher · object"},"title":"Params","type":"object","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params","typeLabel":"Params · object"},"min_calls":{"default":1,"maximum":100,"minimum":0,"title":"Min Calls","type":"integer","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].min_calls","typeLabel":"integer"},"max_calls":{"oneOf":[{"type":"integer","title":"Max Calls","maximum":100,"minimum":0,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].max_calls.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Calls","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].max_calls.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].max_calls","typeLabel":"integer | null"}},"required":["tool"],"title":"AgentTestToolCallAssertion","type":"object","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX]","typeLabel":"AgentTestToolCallAssertion · object"},"maxItems":100,"title":"Tool Calls","type":"array","uniqueKey":"simulation.oneOf.0.assertions.tool_calls","typeLabel":"AgentTestToolCallAssertion · object[]"},"forbidden_tools":{"items":{"additionalProperties":false,"description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX].id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX].name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX].description","typeLabel":"string"}},"required":["id","name"],"title":"AgentTestReferencedTool","type":"object","uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX]","typeLabel":"AgentTestReferencedTool · object"},"maxItems":100,"title":"Forbidden Tools","type":"array","uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools","typeLabel":"AgentTestReferencedTool · object[]"},"ended_by":{"oneOf":[{"type":"string","title":"Ended By","enum":["agent","user","transfer","any"],"uniqueKey":"simulation.oneOf.0.assertions.ended_by.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Ended By","uniqueKey":"simulation.oneOf.0.assertions.ended_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.assertions.ended_by","typeLabel":"enum\u003cstring> | null"}},"title":"AgentTestSimulationAssertions","type":"object","uniqueKey":"simulation.oneOf.0.assertions","typeLabel":"AgentTestSimulationAssertions · object"},"tool_mocks":{"additionalProperties":false,"description":"all: every tool answers from a mock, except real_tools, which run for\nreal. selected: only the listed tools do, the rest follow fallback.\nnone: every tool hits its real endpoint.","properties":{"strategy":{"default":"all","enum":["all","selected","none"],"title":"Strategy","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.strategy","typeLabel":"enum\u003cstring>"},"fallback":{"default":"error","enum":["error","real"],"title":"Fallback","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.fallback","typeLabel":"enum\u003cstring>"},"tools":{"items":{"additionalProperties":false,"description":"A canned result for one library tool, optionally gated on the call arguments.","properties":{"tool":{"additionalProperties":false,"description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool.id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool.name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool.type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool.description","typeLabel":"string"}},"required":["id","name"],"title":"AgentTestReferencedTool","type":"object","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool","typeLabel":"AgentTestReferencedTool · object"},"result":{"oneOf":[{"default":null}],"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].result","typeLabel":"any"},"status":{"oneOf":[{"type":"integer","title":"Status","maximum":599,"minimum":100,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].status.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Status","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].status","typeLabel":"integer | null"},"when":{"oneOf":[{"type":"object","title":"When","additionalProperties":{"additionalProperties":false,"description":"How one tool argument is compared: exact string equality, a regular\nexpression searched in the value, or mere presence. Regexes are\nJavaScript without flags, mock conditions run in the runtime as written\nand assertions are translated to Python for scoring.","properties":{"type":{"default":"exact","enum":["exact","regex","any"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","title":"Value","maxLength":1000,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties.value","typeLabel":"string | null"}},"title":"AgentTestParamMatcher","type":"object","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties","typeLabel":"AgentTestParamMatcher · object"},"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0","typeLabel":"When · object"},{"type":"null","title":"When","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when","typeLabel":"When · object | null"},"error":{"default":false,"title":"Error","type":"boolean","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].error","typeLabel":"boolean"}},"required":["tool"],"title":"AgentTestToolMock","type":"object","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX]","typeLabel":"AgentTestToolMock · object"},"maxItems":50,"title":"Tools","type":"array","uniqueKey":"simulation.oneOf.0.tool_mocks.tools","typeLabel":"AgentTestToolMock · object[]"},"real_tools":{"items":{"additionalProperties":false,"description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX].id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX].name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX].description","typeLabel":"string"}},"required":["id","name"],"title":"AgentTestReferencedTool","type":"object","uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX]","typeLabel":"AgentTestReferencedTool · object"},"maxItems":50,"title":"Real Tools","type":"array","uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools","typeLabel":"AgentTestReferencedTool · object[]"}},"title":"AgentTestToolMocks","type":"object","uniqueKey":"simulation.oneOf.0.tool_mocks","typeLabel":"AgentTestToolMocks · object"},"simulated_user_model":{"oneOf":[{"type":"string","title":"Simulated User Model","uniqueKey":"simulation.oneOf.0.simulated_user_model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Simulated User Model","uniqueKey":"simulation.oneOf.0.simulated_user_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.simulated_user_model","typeLabel":"string | null"},"repeat_count":{"default":1,"maximum":20,"minimum":1,"title":"Repeat Count","type":"integer","uniqueKey":"simulation.oneOf.0.repeat_count","typeLabel":"integer"},"channel":{"oneOf":[{"type":"string","title":"Channel","enum":["web_voice","phone_inbound","phone_outbound"],"uniqueKey":"simulation.oneOf.0.channel.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Channel","uniqueKey":"simulation.oneOf.0.channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.channel","typeLabel":"enum\u003cstring> | null"},"context":{"additionalProperties":false,"description":"The run's platform context switches, the agent config's `context`\nsection for a test. Off so a date pinned in the prompt holds.","properties":{"current_time":{"default":false,"title":"Current Time","type":"boolean","uniqueKey":"simulation.oneOf.0.context.current_time","typeLabel":"boolean"}},"title":"AgentTestSimulationContext","type":"object","uniqueKey":"simulation.oneOf.0.context","typeLabel":"AgentTestSimulationContext · object"}},"additionalProperties":false,"uniqueKey":"simulation.oneOf.0","typeLabel":"AgentTestSimulationConfig · object"},{"type":"null","uniqueKey":"simulation.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation","typeLabel":"AgentTestSimulationConfig · object | null"},"dynamic_variables":{"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"dynamic_variables.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"dynamic_variables.additionalProperties.oneOf.1","typeLabel":"integer"},{"type":"number","uniqueKey":"dynamic_variables.additionalProperties.oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"dynamic_variables.additionalProperties.oneOf.3","typeLabel":"boolean"}],"uniqueKey":"dynamic_variables.additionalProperties","typeLabel":"string | integer | number | boolean"},"title":"Dynamic Variables","type":"object","uniqueKey":"dynamic_variables","typeLabel":"Dynamic Variables · object"},"agent_ids":{"description":"Agents to attach the test to. They must all be in one workspace, and the test is created there. Without agents the test goes into the API key owner's default workspace.","items":{"type":"string","uniqueKey":"agent_ids.items.[INDEX]","typeLabel":"string"},"maxItems":100,"title":"Agent Ids","type":"array","uniqueKey":"agent_ids","typeLabel":"string[]"}},"required":["name"],"title":"PublicAgentTestCreatePayload","type":"object","uniqueKey":"","typeLabel":"PublicAgentTestCreatePayload · object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","test_type":"next_reply","conversation":[{"text":"\u003cstring>"}],"expectation":"","success_examples":["\u003cstring>"],"failure_examples":["\u003cstring>"],"referenced_tool":{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""},"tool_parameters":[{"name":"\u003cstring>","value":"\u003cstring>"}],"verify_absence":false,"simulation":{"scenario":"\u003cstring>","success_conditions":[{"name":"\u003cstring>","description":"\u003cstring>"}],"max_turns":10,"assertions":{"tool_calls":[{"tool":{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""},"params":{},"min_calls":1,"max_calls":50}],"forbidden_tools":[{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""}]},"tool_mocks":{"strategy":"all","fallback":"error","tools":[{"tool":{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""},"result":"\u003cunknown>","status":349,"when":{},"error":false}],"real_tools":[{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""}]},"simulated_user_model":"\u003cstring>","repeat_count":1,"context":{"current_time":false}},"dynamic_variables":{},"agent_ids":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"27a3f750-fb61-48af-bb5a-d8e0542cfcb7":{"description":"Document created, URL follows","headers":{},"content":{"application/json":{"schema":{"properties":{"test_id":{"title":"Test Id","type":"string","isRequired":true,"uniqueKey":"test_id","typeLabel":"string"},"workspace_id":{"title":"Workspace Id","type":"string","isRequired":true,"uniqueKey":"workspace_id","typeLabel":"string"},"name":{"title":"Name","type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"test_type":{"enum":["next_reply","tool","simulation"],"title":"Test Type","type":"string","isRequired":true,"uniqueKey":"test_type","typeLabel":"enum\u003cstring>"},"created_at":{"format":"date-time","title":"Created At","type":"string","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"format":"date-time","title":"Updated At","type":"string","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"agent_ids":{"description":"Agents this test is attached to.","items":{"type":"string","uniqueKey":"agent_ids.items.[INDEX]","typeLabel":"string"},"title":"Agent Ids","type":"array","uniqueKey":"agent_ids","typeLabel":"string[]"},"conversation":{"items":{"properties":{"role":{"enum":["agent","user"],"title":"Role","type":"string","isRequired":true,"uniqueKey":"conversation.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"text":{"title":"Text","type":"string","isRequired":true,"uniqueKey":"conversation.items.[INDEX].text","typeLabel":"string"}},"required":["role","text"],"title":"PublicAgentTestMessage","type":"object","uniqueKey":"conversation.items.[INDEX]","typeLabel":"PublicAgentTestMessage · object"},"title":"Conversation","type":"array","uniqueKey":"conversation","typeLabel":"PublicAgentTestMessage · object[]"},"expectation":{"default":"","title":"Expectation","type":"string","uniqueKey":"expectation","typeLabel":"string"},"success_examples":{"items":{"type":"string","uniqueKey":"success_examples.items.[INDEX]","typeLabel":"string"},"title":"Success Examples","type":"array","uniqueKey":"success_examples","typeLabel":"string[]"},"failure_examples":{"items":{"type":"string","uniqueKey":"failure_examples.items.[INDEX]","typeLabel":"string"},"title":"Failure Examples","type":"array","uniqueKey":"failure_examples","typeLabel":"string[]"},"referenced_tool":{"oneOf":[{"type":"object","title":"AgentTestReferencedTool","description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","required":["id","name"],"properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"referenced_tool.oneOf.0.id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"referenced_tool.oneOf.0.name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"referenced_tool.oneOf.0.type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"referenced_tool.oneOf.0.description","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"referenced_tool.oneOf.0","typeLabel":"AgentTestReferencedTool · object"},{"type":"null","uniqueKey":"referenced_tool.oneOf.1","typeLabel":"null"}],"uniqueKey":"referenced_tool","typeLabel":"AgentTestReferencedTool · object | null"},"tool_parameters":{"items":{"additionalProperties":false,"properties":{"name":{"maxLength":100,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].name","typeLabel":"string"},"value":{"oneOf":[{"type":"string","title":"Value","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"type":"integer","title":"Value","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value.oneOf.1","typeLabel":"integer"},{"type":"number","title":"Value","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value.oneOf.2","typeLabel":"number"},{"type":"boolean","title":"Value","isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value.oneOf.3","typeLabel":"boolean"}],"isRequired":true,"uniqueKey":"tool_parameters.items.[INDEX].value","typeLabel":"string | integer | number | boolean"},"type":{"oneOf":[{"type":"string","title":"Type","enum":["string","number","boolean"],"uniqueKey":"tool_parameters.items.[INDEX].type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Type","uniqueKey":"tool_parameters.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"uniqueKey":"tool_parameters.items.[INDEX].type","typeLabel":"enum\u003cstring> | null"}},"required":["name","value"],"title":"AgentTestToolParameter","type":"object","uniqueKey":"tool_parameters.items.[INDEX]","typeLabel":"AgentTestToolParameter · object"},"title":"Tool Parameters","type":"array","uniqueKey":"tool_parameters","typeLabel":"AgentTestToolParameter · object[]"},"verify_absence":{"default":false,"title":"Verify Absence","type":"boolean","uniqueKey":"verify_absence","typeLabel":"boolean"},"simulation":{"oneOf":[{"type":"object","title":"AgentTestSimulationConfig","required":["scenario","success_conditions"],"properties":{"scenario":{"maxLength":10000,"minLength":1,"title":"Scenario","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.scenario","typeLabel":"string"},"success_conditions":{"items":{"additionalProperties":false,"description":"One natural-language criterion the judge scores on the whole conversation.","properties":{"name":{"maxLength":80,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.success_conditions.items.[INDEX].name","typeLabel":"string"},"description":{"maxLength":500,"minLength":1,"title":"Description","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.success_conditions.items.[INDEX].description","typeLabel":"string"}},"required":["name","description"],"title":"AgentTestSuccessCondition","type":"object","uniqueKey":"simulation.oneOf.0.success_conditions.items.[INDEX]","typeLabel":"AgentTestSuccessCondition · object"},"maxItems":10,"minItems":1,"title":"Success Conditions","type":"array","isRequired":true,"uniqueKey":"simulation.oneOf.0.success_conditions","typeLabel":"AgentTestSuccessCondition · object[]"},"max_turns":{"default":10,"maximum":50,"minimum":1,"title":"Max Turns","type":"integer","uniqueKey":"simulation.oneOf.0.max_turns","typeLabel":"integer"},"assertions":{"additionalProperties":false,"description":"Deterministic checks run before the judge, no LLM involved.","properties":{"tool_calls":{"items":{"additionalProperties":false,"description":"The agent must have called this library tool, optionally with matching\narguments, between min_calls and max_calls times (calls that match).","properties":{"tool":{"additionalProperties":false,"description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool.id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool.name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool.type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool.description","typeLabel":"string"}},"required":["id","name"],"title":"AgentTestReferencedTool","type":"object","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].tool","typeLabel":"AgentTestReferencedTool · object"},"params":{"additionalProperties":{"additionalProperties":false,"description":"How one tool argument is compared: exact string equality, a regular\nexpression searched in the value, or mere presence. Regexes are\nJavaScript without flags, mock conditions run in the runtime as written\nand assertions are translated to Python for scoring.","properties":{"type":{"default":"exact","enum":["exact","regex","any"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","title":"Value","maxLength":1000,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties.value","typeLabel":"string | null"}},"title":"AgentTestParamMatcher","type":"object","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params.additionalProperties","typeLabel":"AgentTestParamMatcher · object"},"title":"Params","type":"object","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].params","typeLabel":"Params · object"},"min_calls":{"default":1,"maximum":100,"minimum":0,"title":"Min Calls","type":"integer","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].min_calls","typeLabel":"integer"},"max_calls":{"oneOf":[{"type":"integer","title":"Max Calls","maximum":100,"minimum":0,"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].max_calls.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Calls","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].max_calls.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX].max_calls","typeLabel":"integer | null"}},"required":["tool"],"title":"AgentTestToolCallAssertion","type":"object","uniqueKey":"simulation.oneOf.0.assertions.tool_calls.items.[INDEX]","typeLabel":"AgentTestToolCallAssertion · object"},"maxItems":100,"title":"Tool Calls","type":"array","uniqueKey":"simulation.oneOf.0.assertions.tool_calls","typeLabel":"AgentTestToolCallAssertion · object[]"},"forbidden_tools":{"items":{"additionalProperties":false,"description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX].id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX].name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX].description","typeLabel":"string"}},"required":["id","name"],"title":"AgentTestReferencedTool","type":"object","uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools.items.[INDEX]","typeLabel":"AgentTestReferencedTool · object"},"maxItems":100,"title":"Forbidden Tools","type":"array","uniqueKey":"simulation.oneOf.0.assertions.forbidden_tools","typeLabel":"AgentTestReferencedTool · object[]"},"ended_by":{"oneOf":[{"type":"string","title":"Ended By","enum":["agent","user","transfer","any"],"uniqueKey":"simulation.oneOf.0.assertions.ended_by.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Ended By","uniqueKey":"simulation.oneOf.0.assertions.ended_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.assertions.ended_by","typeLabel":"enum\u003cstring> | null"}},"title":"AgentTestSimulationAssertions","type":"object","uniqueKey":"simulation.oneOf.0.assertions","typeLabel":"AgentTestSimulationAssertions · object"},"tool_mocks":{"additionalProperties":false,"description":"all: every tool answers from a mock, except real_tools, which run for\nreal. selected: only the listed tools do, the rest follow fallback.\nnone: every tool hits its real endpoint.","properties":{"strategy":{"default":"all","enum":["all","selected","none"],"title":"Strategy","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.strategy","typeLabel":"enum\u003cstring>"},"fallback":{"default":"error","enum":["error","real"],"title":"Fallback","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.fallback","typeLabel":"enum\u003cstring>"},"tools":{"items":{"additionalProperties":false,"description":"A canned result for one library tool, optionally gated on the call arguments.","properties":{"tool":{"additionalProperties":false,"description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool.id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool.name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool.type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool.description","typeLabel":"string"}},"required":["id","name"],"title":"AgentTestReferencedTool","type":"object","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].tool","typeLabel":"AgentTestReferencedTool · object"},"result":{"oneOf":[{"default":null}],"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].result","typeLabel":"any"},"status":{"oneOf":[{"type":"integer","title":"Status","maximum":599,"minimum":100,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].status.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Status","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].status.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].status","typeLabel":"integer | null"},"when":{"oneOf":[{"type":"object","title":"When","additionalProperties":{"additionalProperties":false,"description":"How one tool argument is compared: exact string equality, a regular\nexpression searched in the value, or mere presence. Regexes are\nJavaScript without flags, mock conditions run in the runtime as written\nand assertions are translated to Python for scoring.","properties":{"type":{"default":"exact","enum":["exact","regex","any"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties.type","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"type":"string","title":"Value","maxLength":1000,"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties.value","typeLabel":"string | null"}},"title":"AgentTestParamMatcher","type":"object","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0.additionalProperties","typeLabel":"AgentTestParamMatcher · object"},"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.0","typeLabel":"When · object"},{"type":"null","title":"When","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].when","typeLabel":"When · object | null"},"error":{"default":false,"title":"Error","type":"boolean","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX].error","typeLabel":"boolean"}},"required":["tool"],"title":"AgentTestToolMock","type":"object","uniqueKey":"simulation.oneOf.0.tool_mocks.tools.items.[INDEX]","typeLabel":"AgentTestToolMock · object"},"maxItems":50,"title":"Tools","type":"array","uniqueKey":"simulation.oneOf.0.tool_mocks.tools","typeLabel":"AgentTestToolMock · object[]"},"real_tools":{"items":{"additionalProperties":false,"description":"Tool the runner should (or should not) observe on the next turn. A\nwebhook or client tool is referenced by its library id, an integration\ntool by \"\u003cprovider_key>:\u003ctool_name>\" (for example\n\"google_calendar:create_event\").","properties":{"id":{"maxLength":64,"minLength":1,"title":"Id","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX].id","typeLabel":"string"},"name":{"maxLength":200,"minLength":1,"title":"Name","type":"string","isRequired":true,"uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX].name","typeLabel":"string"},"type":{"default":"webhook","enum":["webhook","client","integration"],"title":"Type","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"description":{"default":"","maxLength":2000,"title":"Description","type":"string","uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX].description","typeLabel":"string"}},"required":["id","name"],"title":"AgentTestReferencedTool","type":"object","uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools.items.[INDEX]","typeLabel":"AgentTestReferencedTool · object"},"maxItems":50,"title":"Real Tools","type":"array","uniqueKey":"simulation.oneOf.0.tool_mocks.real_tools","typeLabel":"AgentTestReferencedTool · object[]"}},"title":"AgentTestToolMocks","type":"object","uniqueKey":"simulation.oneOf.0.tool_mocks","typeLabel":"AgentTestToolMocks · object"},"simulated_user_model":{"oneOf":[{"type":"string","title":"Simulated User Model","uniqueKey":"simulation.oneOf.0.simulated_user_model.oneOf.0","typeLabel":"string"},{"type":"null","title":"Simulated User Model","uniqueKey":"simulation.oneOf.0.simulated_user_model.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.simulated_user_model","typeLabel":"string | null"},"repeat_count":{"default":1,"maximum":20,"minimum":1,"title":"Repeat Count","type":"integer","uniqueKey":"simulation.oneOf.0.repeat_count","typeLabel":"integer"},"channel":{"oneOf":[{"type":"string","title":"Channel","enum":["web_voice","phone_inbound","phone_outbound"],"uniqueKey":"simulation.oneOf.0.channel.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","title":"Channel","uniqueKey":"simulation.oneOf.0.channel.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation.oneOf.0.channel","typeLabel":"enum\u003cstring> | null"},"context":{"additionalProperties":false,"description":"The run's platform context switches, the agent config's `context`\nsection for a test. Off so a date pinned in the prompt holds.","properties":{"current_time":{"default":false,"title":"Current Time","type":"boolean","uniqueKey":"simulation.oneOf.0.context.current_time","typeLabel":"boolean"}},"title":"AgentTestSimulationContext","type":"object","uniqueKey":"simulation.oneOf.0.context","typeLabel":"AgentTestSimulationContext · object"}},"additionalProperties":false,"uniqueKey":"simulation.oneOf.0","typeLabel":"AgentTestSimulationConfig · object"},{"type":"null","uniqueKey":"simulation.oneOf.1","typeLabel":"null"}],"uniqueKey":"simulation","typeLabel":"AgentTestSimulationConfig · object | null"},"dynamic_variables":{"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"dynamic_variables.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"dynamic_variables.additionalProperties.oneOf.1","typeLabel":"integer"},{"type":"number","uniqueKey":"dynamic_variables.additionalProperties.oneOf.2","typeLabel":"number"},{"type":"boolean","uniqueKey":"dynamic_variables.additionalProperties.oneOf.3","typeLabel":"boolean"}],"uniqueKey":"dynamic_variables.additionalProperties","typeLabel":"string | integer | number | boolean"},"title":"Dynamic Variables","type":"object","uniqueKey":"dynamic_variables","typeLabel":"Dynamic Variables · object"}},"required":["test_id","workspace_id","name","test_type","created_at","updated_at"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"test_id":"\u003cstring>","workspace_id":"\u003cstring>","name":"\u003cstring>","test_type":"next_reply","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","agent_ids":["\u003cstring>"],"conversation":[{"role":"agent","text":"\u003cstring>"}],"expectation":"","success_examples":["\u003cstring>"],"failure_examples":["\u003cstring>"],"referenced_tool":{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""},"tool_parameters":[{"name":"\u003cstring>","value":"\u003cstring>","type":"string"}],"verify_absence":false,"simulation":{"scenario":"\u003cstring>","success_conditions":[{"name":"\u003cstring>","description":"\u003cstring>"}],"max_turns":10,"assertions":{"tool_calls":[{"tool":{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""},"params":{},"min_calls":1,"max_calls":50}],"forbidden_tools":[{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""}],"ended_by":"agent"},"tool_mocks":{"strategy":"all","fallback":"error","tools":[{"tool":{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""},"result":"\u003cunknown>","status":349,"when":{},"error":false}],"real_tools":[{"id":"\u003cstring>","name":"\u003cstring>","type":"webhook","description":""}]},"simulated_user_model":"\u003cstring>","repeat_count":1,"channel":"web_voice","context":{"current_time":false}},"dynamic_variables":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"1ea11f53-66e4-4eba-8fa8-2f4999366bb0":{"description":"Bad request syntax or unsupported method","headers":{},"content":{"application/json":{"schema":{"properties":{"status":{"title":"Status","type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"message":{"title":"Message","type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","title":"Reason","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reason","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"}},"required":["status","message"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":123,"message":"\u003cstring>","reason":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"20fa18e9-a0b4-400f-9319-b71ff9c1d9fb":{"description":"No permission -- see authorization schemes","headers":{},"content":{"application/json":{"schema":{"properties":{"status":{"title":"Status","type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"message":{"title":"Message","type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","title":"Reason","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reason","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"}},"required":["status","message"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":123,"message":"\u003cstring>","reason":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"3a73b3bc-6a7f-4579-8503-32a7ad64e226":{"description":"","headers":{},"content":{"application/json":{"schema":{"properties":{"status":{"title":"Status","type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"message":{"title":"Message","type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","title":"Reason","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reason","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"}},"required":["status","message"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":123,"message":"\u003cstring>","reason":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"12b48617-53f2-4971-b297-269a94412fa4":{"description":"The server cannot process the request due to a high load","headers":{},"content":{"application/json":{"schema":{"properties":{"status":{"title":"Status","type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"message":{"title":"Message","type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","title":"Reason","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"type":"null","title":"Reason","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"}},"required":["status","message"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":123,"message":"\u003cstring>","reason":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"baba115b-a389-42dd-a3be-6e2173a0305b":{"BearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"4c05306a-8a2b-4dca-ae0d-0b87050df242":{"description":"Fish Audio API","url":"https://api.fish.audio"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"hanabiaiinc","siteName":"Fish Audio","title":"Create Test - Fish Audio","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-29T16:11:33.752Z","originalFileLocation":"api-reference/endpoint/agent/create-test.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=\"system\"}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=\"Create a Single Turn, Tool or Simulation test, optionally attached to agents.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fish Audio\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hanabiaiinc/rHJNuwD9FcQhvMwX/_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/hanabiaiinc/rHJNuwD9FcQhvMwX/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hanabiaiinc/rHJNuwD9FcQhvMwX/_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/hanabiaiinc/rHJNuwD9FcQhvMwX/_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/hanabiaiinc/rHJNuwD9FcQhvMwX/_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/hanabiaiinc/rHJNuwD9FcQhvMwX/_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/hanabiaiinc/rHJNuwD9FcQhvMwX/_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/hanabiaiinc/rHJNuwD9FcQhvMwX/_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/hanabiaiinc/rHJNuwD9FcQhvMwX/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Test - Fish Audio\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a Single Turn, Tool or Simulation test, optionally attached to agents.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fish Audio\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.fish.audio/api-reference/endpoint/agent/create-test\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hanabiaiinc.mintlify.site/_mintlify/api/og/v2?division=Tests\u0026amp;title=Create+Test\u0026amp;description=Create+a+Single+Turn%2C+Tool+or+Simulation+test%2C+optionally+attached+to+agents.\u0026amp;theme=61fce384ffd542cc270fb190\u0026amp;signature=de215b8ed3ccad97dc5f5476418f7f1a28f504158f198026ae171358e66a9f63\">\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=\"Create Test - Fish Audio\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a Single Turn, Tool or Simulation test, optionally attached to agents.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hanabiaiinc.mintlify.site/_mintlify/api/og/v2?division=Tests\u0026amp;title=Create+Test\u0026amp;description=Create+a+Single+Turn%2C+Tool+or+Simulation+test%2C+optionally+attached+to+agents.\u0026amp;theme=61fce384ffd542cc270fb190\u0026amp;signature=de215b8ed3ccad97dc5f5476418f7f1a28f504158f198026ae171358e66a9f63\">\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/hanabiaiinc/rHJNuwD9FcQhvMwX/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fish Audio\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0e0e0e\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.fish.audio/api-reference/endpoint/agent/create-test\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/agent/create-test.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.fish.audio/#organization\",\"name\":\"Fish Audio\",\"url\":\"https://docs.fish.audio\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hanabiaiinc/amYp9Dj31LtlHliX/logo/light.png?fit=max\u0026auto=format\u0026n=amYp9Dj31LtlHliX\u0026q=85\u0026s=305973cd6a8d11dbf36d1ec682ee845e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.fish.audio#website\",\"name\":\"Fish Audio\",\"url\":\"https://docs.fish.audio\",\"publisher\":{\"@id\":\"https://docs.fish.audio/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.fish.audio/api-reference/endpoint/agent/create-test#webpage\",\"url\":\"https://docs.fish.audio/api-reference/endpoint/agent/create-test\",\"name\":\"Create Test\",\"description\":\"Create a Single Turn, Tool or Simulation test, optionally attached to agents.\",\"dateModified\":\"2026-09-29T16:11:33.752Z\",\"isPartOf\":{\"@id\":\"https://docs.fish.audio#website\"},\"breadcrumb\":{\"@id\":\"https://docs.fish.audio/api-reference/endpoint/agent/create-test#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.fish.audio/api-reference/endpoint/agent/create-test#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agents API\",\"item\":\"https://docs.fish.audio/api-reference/agent-errors\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tests\",\"item\":\"https://docs.fish.audio/api-reference/endpoint/agent/list-tests\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Create Test\",\"item\":\"https://docs.fish.audio/api-reference/endpoint/agent/create-test\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.fish.audio/api-reference/endpoint/agent/create-test#apireference\",\"headline\":\"Create Test\",\"name\":\"Create Test\",\"description\":\"Create a Single Turn, Tool or Simulation test, optionally attached to agents.\",\"url\":\"https://docs.fish.audio/api-reference/endpoint/agent/create-test\",\"mainEntityOfPage\":{\"@id\":\"https://docs.fish.audio/api-reference/endpoint/agent/create-test#webpage\"},\"dateModified\":\"2026-09-29T16:11:33.752Z\",\"publisher\":{\"@id\":\"https://docs.fish.audio/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.fish.audio#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Fish Audio\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Fish Audio\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/endpoint/agent/create-test.md","siteName":"Fish Audio","nav":{"global":null,"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/overview/capabilities"}]},{"tab":"Agents","pages":[{"title":"Agents","href":"/agents/overview"}]},{"tab":"Resources","pages":[{"title":"Resources","href":"/developer-guide/sdk-guide/quickstart"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"Introduction","icon":"book","iconType":"solid","href":"/api-reference/introduction"},{"title":"Tracing \u0026 Performance Analysis","icon":"chart-line","iconType":"solid","href":"/api-reference/observability"},{"title":"Errors","icon":"triangle-exclamation","href":"/api-reference/errors"}]},{"group":"REST API","pages":[{"group":"Wallet","icon":"wallet","pages":[{"openapi":"get /wallet/{user_id}/api-credit","title":"Get API Credit","icon":"wallet","iconType":"solid","href":"/api-reference/endpoint/wallet/get-api-credit"},{"openapi":"get /wallet/{user_id}/package","title":"Get User Package","icon":"star","iconType":"solid","href":"/api-reference/endpoint/wallet/get-user-package"}]},{"group":"Voice Models","icon":"cube","pages":[{"openapi":"get /model","title":"List Models","icon":"list","iconType":"solid","href":"/api-reference/endpoint/model/list-models"},{"openapi":"post /model","title":"Create Model","icon":"circle-plus","iconType":"solid","href":"/api-reference/endpoint/model/create-model"},{"openapi":"get /model/{id}","title":"Get Model","icon":"circle-info","iconType":"solid","href":"/api-reference/endpoint/model/get-model"},{"openapi":"delete /model/{id}","title":"Delete Model","icon":"trash","iconType":"solid","href":"/api-reference/endpoint/model/delete-model"},{"openapi":"patch /model/{id}","title":"Update Model","icon":"pen-to-square","iconType":"solid","href":"/api-reference/endpoint/model/update-model"}]},{"group":"Pronunciation Dictionaries","icon":"book-open","pages":[{"openapi":"get /v1/pronunciation-dictionaries","title":"List Dictionaries","icon":"list","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/list-dictionaries"},{"openapi":"post /v1/pronunciation-dictionaries","title":"Create Dictionary","icon":"circle-plus","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/create-dictionary"},{"openapi":"get /v1/pronunciation-dictionaries/{dictionary_id}","title":"Get Dictionary","icon":"book-open","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/get-dictionary"},{"openapi":"patch /v1/pronunciation-dictionaries/{dictionary_id}","title":"Update Dictionary","icon":"pen-to-square","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/update-dictionary"},{"openapi":"delete /v1/pronunciation-dictionaries/{dictionary_id}","title":"Delete Dictionary","icon":"trash","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/delete-dictionary"},{"openapi":"get /v1/pronunciation-dictionaries/{dictionary_id}/versions","title":"List Versions","icon":"clock-rotate-left","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/list-versions"},{"openapi":"post /v1/pronunciation-dictionaries/{dictionary_id}/versions","title":"Publish Version","icon":"upload","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/create-version"},{"openapi":"get /v1/pronunciation-dictionaries/{dictionary_id}/versions/{version_id}","title":"Get Version","icon":"file-lines","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/get-version"},{"openapi":"get /v1/pronunciation-dictionaries/{dictionary_id}/versions/{version_id}/compare","title":"Compare Versions","icon":"code-compare","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/compare-versions"},{"openapi":"delete /v1/pronunciation-dictionaries/{dictionary_id}/versions/{version_id}","title":"Delete Version","icon":"trash-can","iconType":"solid","href":"/api-reference/endpoint/pronunciation-dictionary/delete-version"}]},{"group":"TTS (v1)","icon":"code","pages":[{"openapi":"post /v1/tts","title":"Text to Speech","icon":"comment-dots","iconType":"solid","href":"/api-reference/endpoint/openapi-v1/text-to-speech"},{"openapi":"post /v1/tts/stream/with-timestamp","title":"Text to Speech Stream with Timestamps","icon":"waveform-lines","iconType":"solid","href":"/api-reference/endpoint/openapi-v1/text-to-speech-stream-with-timestamps"},{"asyncapi":"api-reference/asyncapi.yml ttsLive","title":"WebSocket TTS Streaming","icon":"webhook","iconType":"solid","href":"/api-reference/endpoint/websocket/tts-live"},{"asyncapi":"api-reference/asyncapi.yml ttsLiveWithTimestamps","title":"WebSocket TTS with Timestamps","icon":"webhook","iconType":"solid","href":"/api-reference/endpoint/openapi-v1/text-to-speech-live-with-timestamps"}]},{"group":"ASR (v1)","icon":"microphone","pages":[{"openapi":"post /v1/asr","title":"Speech to Text","icon":"microphone","iconType":"solid","href":"/api-reference/endpoint/openapi-v1/speech-to-text"},{"asyncapi":"api-reference/asyncapi-asr-realtime.yml asrRealtime","title":"WebSocket Realtime Speech to Text","icon":"webhook","iconType":"solid","tag":"Preview","href":"/api-reference/endpoint/websocket/asr-realtime"}]},{"group":"Voice Design","icon":"wand-magic-sparkles","pages":[{"openapi":"post /v1/voice-design","title":"Voice Design","icon":"wand-magic-sparkles","iconType":"solid","href":"/api-reference/endpoint/openapi-v1/voice-design"}]}]},{"group":"Agents API","pages":[{"title":"Agents API Errors","icon":"triangle-exclamation","href":"/api-reference/agent-errors"},{"group":"Agents","icon":"robot","pages":[{"openapi":"get /v1/agent/agents","title":"List Agents","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/list-agents"},{"openapi":"post /v1/agent/agents","title":"Create Agent","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/create-agent"},{"openapi":"get /v1/agent/agents/{agent_id}","title":"Get Agent","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/get-agent"},{"openapi":"patch /v1/agent/agents/{agent_id}","title":"Update Agent","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/update-agent"},{"openapi":"delete /v1/agent/agents/{agent_id}","title":"Delete Agent","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/delete-agent"},{"openapi":"get /v1/agent/agents/{agent_id}/config","title":"Get Draft Config","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/get-draft-config"},{"openapi":"patch /v1/agent/agents/{agent_id}/config","title":"Update Draft Config","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/update-draft-config"},{"openapi":"post /v1/agent/agents/{agent_id}/publish","title":"Publish Agent","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/publish-agent"},{"openapi":"get /v1/agent/agents/{agent_id}/versions","title":"List Agent Versions","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/list-agent-versions"},{"openapi":"get /v1/agent/agents/{agent_id}/versions/{version_number}","title":"Get Agent Version","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/get-agent-version"},{"openapi":"get /v1/agent/agents/{agent_id}/widget","title":"Get Widget Config","icon":"robot","iconType":"solid","href":"/api-reference/endpoint/agent/get-widget-config"}]},{"group":"Sessions","icon":"headset","pages":[{"openapi":"post /v1/agent/sessions","title":"Create Agent Session","icon":"headset","iconType":"solid","href":"/api-reference/endpoint/agent/create-agent-session"},{"openapi":"get /v1/agent/sessions","title":"List Agent Sessions","icon":"headset","iconType":"solid","href":"/api-reference/endpoint/agent/list-agent-sessions"},{"openapi":"get /v1/agent/sessions/{session_id}","title":"Get Agent Session","icon":"headset","iconType":"solid","href":"/api-reference/endpoint/agent/get-agent-session"},{"openapi":"get /v1/agent/sessions/{session_id}/recording","title":"Get Agent Session Recording","icon":"headset","iconType":"solid","href":"/api-reference/endpoint/agent/get-agent-session-recording"},{"openapi":"post /v1/agent/sessions/{session_id}/end","title":"End Agent Session","icon":"headset","iconType":"solid","href":"/api-reference/endpoint/agent/end-agent-session"}]},{"group":"Tools","icon":"wrench","pages":[{"openapi":"get /v1/agent/tools","title":"List Tools","icon":"wrench","iconType":"solid","href":"/api-reference/endpoint/agent/list-tools"},{"openapi":"post /v1/agent/tools","title":"Create Tool","icon":"wrench","iconType":"solid","href":"/api-reference/endpoint/agent/create-tool"},{"openapi":"get /v1/agent/tools/{tool_id}","title":"Get Tool","icon":"wrench","iconType":"solid","href":"/api-reference/endpoint/agent/get-tool"},{"openapi":"patch /v1/agent/tools/{tool_id}","title":"Update Tool","icon":"wrench","iconType":"solid","href":"/api-reference/endpoint/agent/update-tool"},{"openapi":"delete /v1/agent/tools/{tool_id}","title":"Delete Tool","icon":"wrench","iconType":"solid","href":"/api-reference/endpoint/agent/delete-tool"},{"openapi":"get /v1/agent/tools/{tool_id}/agents","title":"List Agents Using Tool","icon":"wrench","iconType":"solid","href":"/api-reference/endpoint/agent/list-agents-using-tool"}]},{"group":"Tests","icon":"flask","pages":[{"openapi":"get /v1/agent/tests","title":"List Tests","description":"List your team's tests, newest first.","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/list-tests"},{"openapi":"post /v1/agent/tests","title":"Create Test","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/create-test"},{"openapi":"get /v1/agent/tests/{test_id}","title":"Get Test","description":"Fetch one test's full definition, which is also the export format.","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/get-test"},{"openapi":"patch /v1/agent/tests/{test_id}","title":"Update Test","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/update-test"},{"openapi":"delete /v1/agent/tests/{test_id}","title":"Delete Test","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/delete-test"},{"openapi":"put /v1/agent/agents/{agent_id}/tests/{test_id}","title":"Attach Test","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/attach-test"},{"openapi":"delete /v1/agent/agents/{agent_id}/tests/{test_id}","title":"Detach Test","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/detach-test"},{"openapi":"get /v1/agent/agents/{agent_id}/test-tools","title":"List Test Tools","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/list-test-tools"},{"openapi":"post /v1/agent/agents/{agent_id}/tests/run","title":"Run Tests","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/run-tests"},{"openapi":"get /v1/agent/agents/{agent_id}/test-batches","title":"List Test Batches","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/list-test-batches"},{"openapi":"get /v1/agent/agents/{agent_id}/test-batches/{batch_id}","title":"Get Test Batch","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/get-test-batch"},{"openapi":"get /v1/agent/test-runs","title":"List Test Runs","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/list-test-runs"},{"openapi":"get /v1/agent/test-runs/{run_id}","title":"Get Test Run","icon":"flask","iconType":"solid","href":"/api-reference/endpoint/agent/get-test-run"}]},{"group":"Knowledge Sources","icon":"book","pages":[{"openapi":"get /v1/agent/knowledge-sources","title":"List Knowledge Sources","icon":"book","iconType":"solid","href":"/api-reference/endpoint/agent/list-knowledge-sources"},{"openapi":"post /v1/agent/knowledge-sources","title":"Create Knowledge Source","icon":"book","iconType":"solid","href":"/api-reference/endpoint/agent/create-knowledge-source"},{"openapi":"get /v1/agent/knowledge-sources/{source_id}","title":"Get Knowledge Source","icon":"book","iconType":"solid","href":"/api-reference/endpoint/agent/get-knowledge-source"},{"openapi":"patch /v1/agent/knowledge-sources/{source_id}","title":"Update Knowledge Source","icon":"book","iconType":"solid","href":"/api-reference/endpoint/agent/update-knowledge-source"},{"openapi":"delete /v1/agent/knowledge-sources/{source_id}","title":"Delete Knowledge Source","icon":"book","iconType":"solid","href":"/api-reference/endpoint/agent/delete-knowledge-source"},{"openapi":"get /v1/agent/knowledge-sources/{source_id}/agents","title":"List Agents Using Knowledge Source","icon":"book","iconType":"solid","href":"/api-reference/endpoint/agent/list-agents-using-knowledge-source"}]},{"group":"Phone Numbers","icon":"phone","pages":[{"openapi":"get /v1/agent/available-phone-numbers","title":"Search Available Phone Numbers","icon":"phone","iconType":"solid","href":"/api-reference/endpoint/agent/search-available-phone-numbers"},{"openapi":"get /v1/agent/phone-numbers","title":"List Phone Numbers","icon":"phone","iconType":"solid","href":"/api-reference/endpoint/agent/list-phone-numbers"},{"openapi":"post /v1/agent/phone-numbers","title":"Purchase Phone Number","icon":"phone","iconType":"solid","href":"/api-reference/endpoint/agent/purchase-phone-number"},{"openapi":"get /v1/agent/phone-numbers/{phone_number_id}","title":"Get Phone Number","icon":"phone","iconType":"solid","href":"/api-reference/endpoint/agent/get-phone-number"},{"openapi":"patch /v1/agent/phone-numbers/{phone_number_id}","title":"Update Phone Number","icon":"phone","iconType":"solid","href":"/api-reference/endpoint/agent/update-phone-number"},{"openapi":"delete /v1/agent/phone-numbers/{phone_number_id}","title":"Release Phone Number","icon":"phone","iconType":"solid","href":"/api-reference/endpoint/agent/release-phone-number"}]},{"group":"Phone Calls","icon":"phone-arrow-up-right","pages":[{"openapi":"post /v1/agent/phone-calls","title":"Create Phone Call","icon":"phone-arrow-up-right","iconType":"solid","href":"/api-reference/endpoint/agent/create-phone-call"}]}]},{"group":"SDK Reference","pages":[{"group":"Python SDK","icon":"python","pages":[{"title":"Overview","icon":"python","href":"/api-reference/sdk/python/overview"},{"group":"Reference","icon":"book-open","pages":[{"title":null,"href":"/api-reference/sdk/python/client"},{"title":null,"href":"/api-reference/sdk/python/resources"},{"title":null,"href":"/api-reference/sdk/python/types"},{"title":null,"href":"/api-reference/sdk/python/core"},{"title":null,"href":"/api-reference/sdk/python/utils"},{"title":null,"href":"/api-reference/sdk/python/exceptions"}]},{"title":"Legacy","icon":"clock-rotate-left","href":"/archive/python-sdk-legacy/index"}]},{"group":"JavaScript SDK","icon":"js","pages":[{"title":"JavaScript SDK Reference","sidebarTitle":"Reference","icon":"book","href":"/api-reference/sdk/javascript/api-reference"}]}]}]}]},"basePath":"","title":"Create Test - Fish Audio","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}