openapi: 3.1.0 info: title: Toolhouse API description: All the API! \o/ version: 0.1.0 paths: /me/agent-runs: get: tags: - Agent Runs - User API summary: Toolhouse Get User Agent Runs description: User Installed Tools operationId: get_user_agent_runs_me_agent_runs_get security: - HTTPBearer: [] parameters: - name: next_cursor in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: Next Cursor - name: limit in: query required: false schema: type: integer default: 30 title: Limit responses: '200': description: Successfully retrieved agent runs list content: application/json: schema: $ref: '#/components/schemas/AgentRunViewListResponse' '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agent-runs/{run_id}: get: tags: - Agent Runs - User API summary: Toolhouse Get User Agent Run description: User Installed Tools operationId: get_user_agent_run_me_agent_runs__run_id__get security: - HTTPBearer: [] parameters: - name: run_id in: path required: true schema: type: string format: uuid title: Run Id responses: '200': description: Successfully retrieved agent run content: application/json: schema: $ref: '#/components/schemas/AgentRunView' '404': description: Agent run not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agent-runs/{run_id}/mcp-server-logs: get: tags: - Agent Runs - User API summary: Toolhouse Get User Agent Run Mcp Server Logs description: User Installed Tools operationId: get_user_agent_run_mcp_server_logs_me_agent_runs__run_id__mcp_server_logs_get security: - HTTPBearer: [] parameters: - name: run_id in: path required: true schema: type: string format: uuid title: Run Id responses: '200': description: Successfully retrieved MCP server logs content: application/json: schema: type: array items: $ref: '#/components/schemas/McpServerLog' title: Response Get User Agent Run Mcp Server Logs Me Agent Runs Run Id Mcp Server Logs Get '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agent-runs/{run_id}/logs: get: tags: - Agent Runs - User API summary: Toolhouse Get User Agent Run Logs description: User Installed Tools operationId: get_user_agent_run_logs_me_agent_runs__run_id__logs_get security: - HTTPBearer: [] parameters: - name: run_id in: path required: true schema: type: string format: uuid title: Run Id responses: '200': description: Successfully retrieved agent run logs content: application/json: schema: type: array items: $ref: '#/components/schemas/AgentRunLog' title: Response Get User Agent Run Logs Me Agent Runs Run Id Logs Get '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents/{agent_id}/subscribe: post: tags: - User API summary: Toolhouse Subscribe To Agent description: Subscribe to a paid agent operationId: subscribe_to_agent_me_agents__agent_id__subscribe_post security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string title: Agent Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentSubscribeRequest' responses: '200': description: Checkout session created content: application/json: schema: $ref: '#/components/schemas/AgentSubscribeResponse' '400': description: Agent is not a paid agent or user is the owner '402': description: Already subscribed '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents/{agent_id}/unsubscribe: post: tags: - User API summary: Toolhouse Unsubscribe From Agent description: Unsubscribe from a paid agent operationId: unsubscribe_from_agent_me_agents__agent_id__unsubscribe_post security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string title: Agent Id responses: '200': description: Successfully unsubscribed content: application/json: schema: $ref: '#/components/schemas/AgentSubscriptionResponse' '400': description: No active subscription to cancel or no Stripe subscription found '404': description: Subscription not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/subscriptions: get: tags: - User API summary: Toolhouse List Agent Subscriptions description: List all agent subscriptions for the current user operationId: list_agent_subscriptions_me_subscriptions_get responses: '200': description: Agent subscriptions retrieved content: application/json: schema: $ref: '#/components/schemas/AgentSubscriptionListResponse' security: - HTTPBearer: [] /me/subscriptions/{agent_id}: get: tags: - User API summary: Toolhouse Get Agent Subscription description: Get subscription details for a specific agent operationId: get_agent_subscription_me_subscriptions__agent_id__get security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string title: Agent Id responses: '200': description: Agent subscription details retrieved content: application/json: schema: $ref: '#/components/schemas/AgentSubscriptionResponse' '404': description: Subscription not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agent-studio-chats: get: tags: - User API summary: Toolhouse Get Agent Studio Chats description: Get all agent studio chats for the authenticated user operationId: get_agent_studio_chats_me_agent_studio_chats_get responses: '200': description: Successfully retrieved agent studio chats content: application/json: schema: items: $ref: '#/components/schemas/AgentStudioChat' type: array title: Response Get Agent Studio Chats Me Agent Studio Chats Get security: - HTTPBearer: [] post: tags: - User API summary: Toolhouse Create Agent Studio Chat description: Create a new agent studio chat or return existing one if run_id already exists operationId: create_agent_studio_chat_me_agent_studio_chats_post requestBody: content: application/json: schema: $ref: '#/components/schemas/AgentStudioChatCreate' required: true responses: '200': description: Successfully created agent studio chat content: application/json: schema: $ref: '#/components/schemas/AgentStudioChat' '400': description: Agent Studio creation failed or sandbox tier attempting to create private chat '409': description: Agent Studio chat with this run_id already exists '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /me/agent-studio-chats/{run_id}: get: tags: - User API summary: Toolhouse Get Agent Studio Chat description: Get a specific agent studio chat by ID operationId: get_agent_studio_chat_me_agent_studio_chats__run_id__get parameters: - name: run_id in: path required: true schema: type: string title: Run Id responses: '200': description: Successfully retrieved agent studio chat content: application/json: schema: $ref: '#/components/schemas/AgentStudioChat' '403': description: You don't have permission to access this chat '404': description: Agent studio chat not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - User API summary: Toolhouse Update Agent Studio Chat description: Update an agent studio chat (full update) operationId: update_agent_studio_chat_me_agent_studio_chats__run_id__put security: - HTTPBearer: [] parameters: - name: run_id in: path required: true schema: type: string title: Run Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentStudioChatCreate' responses: '200': description: Successfully updated agent studio chat content: application/json: schema: $ref: '#/components/schemas/AgentStudioChat' '400': description: Sandbox tier attempting to set chat as private '403': description: You don't have permission to access this chat '404': description: Agent studio chat not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - User API summary: Toolhouse Patch Agent Studio Chat description: Update an agent studio chat (partial update) operationId: patch_agent_studio_chat_me_agent_studio_chats__run_id__patch security: - HTTPBearer: [] parameters: - name: run_id in: path required: true schema: type: string title: Run Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentStudioChatUpdate' responses: '200': description: Successfully updated agent studio chat content: application/json: schema: $ref: '#/components/schemas/AgentStudioChat' '400': description: Sandbox tier attempting to set chat as private '403': description: You don't have permission to access this chat '404': description: Agent studio chat not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - User API summary: Toolhouse Delete Agent Studio Chat description: Delete an agent studio chat (soft delete) operationId: delete_agent_studio_chat_me_agent_studio_chats__run_id__delete security: - HTTPBearer: [] parameters: - name: run_id in: path required: true schema: type: string title: Run Id responses: '200': description: Successfully deleted agent studio chat content: application/json: schema: $ref: '#/components/schemas/AgentStudioChat' '400': description: Failed to delete agent studio chat '403': description: You don't have permission to access this chat '404': description: Agent studio chat not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agent-studio-chats/{run_id}/clone: post: tags: - User API summary: Toolhouse Clone Agent Studio Chat description: Clone an agent studio chat operationId: clone_agent_studio_chat_me_agent_studio_chats__run_id__clone_post security: - HTTPBearer: [] parameters: - name: run_id in: path required: true schema: type: string title: Run Id responses: '201': description: Successfully cloned agent studio chat content: application/json: schema: $ref: '#/components/schemas/AgentStudioChat' '400': description: Private agent studio chats cannot be cloned '404': description: Agent studio chat not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents/{agent_id}/customizations/theme: get: tags: - User API summary: Toolhouse Get Agent Theme Preference operationId: get_agent_theme_preference_me_agents__agent_id__customizations_theme_get security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string format: uuid title: Agent Id responses: '200': description: Successfully retrieved agent theme preference content: application/json: schema: anyOf: - $ref: '#/components/schemas/AgentThemePreferenceResponse' - type: 'null' title: Response Get Agent Theme Preference Me Agents Agent Id Customizations Theme Get '403': description: Not authorized to access this agent '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - User API summary: Toolhouse Upsert Agent Theme Preference operationId: upsert_agent_theme_preference_me_agents__agent_id__customizations_theme_put security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string format: uuid title: Agent Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentThemePreferenceUpsertRequest' responses: '200': description: Successfully updated agent theme preference content: application/json: schema: $ref: '#/components/schemas/AgentThemePreferenceResponse' '400': description: Invalid theme color format '403': description: Not authorized to access this agent '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents/{agent_id}/files: get: tags: - User API summary: Toolhouse List Agent Files description: List all files for an agent operationId: list_agent_files_me_agents__agent_id__files_get security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string format: uuid title: Agent Id responses: '200': description: Successfully retrieved agent files content: application/json: schema: $ref: '#/components/schemas/AgentFileListResponse' '403': description: Not authorized to access this agent '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - User API summary: Toolhouse Create Agent File description: Create a new file reference for an agent operationId: create_agent_file_me_agents__agent_id__files_post security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string format: uuid title: Agent Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentFileCreateRequest' responses: '201': description: Successfully created agent file content: application/json: schema: $ref: '#/components/schemas/AgentFileResponse' '400': description: Invalid request or file limit exceeded '403': description: Not authorized to access this agent '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents/{agent_id}/files/{file_id}: get: tags: - User API summary: Toolhouse Get Agent File description: Get a specific agent file operationId: get_agent_file_me_agents__agent_id__files__file_id__get security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string format: uuid title: Agent Id - name: file_id in: path required: true schema: type: string format: uuid title: File Id responses: '200': description: Successfully retrieved agent file content: application/json: schema: $ref: '#/components/schemas/AgentFileResponse' '403': description: Not authorized to access this file '404': description: File not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - User API summary: Toolhouse Update Agent File description: Update an agent file (partial update) operationId: update_agent_file_me_agents__agent_id__files__file_id__patch security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string format: uuid title: Agent Id - name: file_id in: path required: true schema: type: string format: uuid title: File Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentFileUpdateRequest' responses: '200': description: Successfully updated agent file content: application/json: schema: $ref: '#/components/schemas/AgentFileResponse' '403': description: Not authorized to access this file '404': description: File not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - User API summary: Toolhouse Delete Agent File description: Delete an agent file operationId: delete_agent_file_me_agents__agent_id__files__file_id__delete security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string format: uuid title: Agent Id - name: file_id in: path required: true schema: type: string format: uuid title: File Id responses: '204': description: Successfully deleted agent file '403': description: Not authorized to access this file '404': description: File not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents/{agent_id}/files/positions: put: tags: - User API summary: Toolhouse Update File Positions description: Batch update file positions for ordering operationId: update_file_positions_me_agents__agent_id__files_positions_put security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string format: uuid title: Agent Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentFileBatchPositionRequest' responses: '200': description: Successfully updated file positions content: application/json: schema: $ref: '#/components/schemas/AgentFileListResponse' '403': description: Not authorized to access this agent '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents: get: tags: - User API summary: Toolhouse Get All Agents operationId: get_all_agents_me_agents_get responses: '200': description: Successfully retrieved all agents content: application/json: schema: items: $ref: '#/components/schemas/AgentModel' type: array title: Response Get All Agents Me Agents Get security: - HTTPBearer: [] post: tags: - User API summary: Toolhouse Upsert Agent operationId: upsert_agent_me_agents_post requestBody: content: application/json: schema: $ref: '#/components/schemas/AgentRequest' required: true responses: '200': description: Successfully created or updated agent content: application/json: schema: $ref: '#/components/schemas/AgentModel' '400': description: Missing chat prompt or sandbox tier attempting to set agent as private '403': description: You don't have permission to access this chat '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /me/agents/{agent_id}: get: tags: - User API summary: Toolhouse Get Agent operationId: get_agent_me_agents__agent_id__get parameters: - name: agent_id in: path required: true schema: type: string title: Agent Id responses: '200': description: Successfully retrieved agent content: application/json: schema: $ref: '#/components/schemas/AgentModel' '403': description: You don't have permission to access this chat '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents/{agent_id}/upsell-description: post: tags: - User API summary: Toolhouse Generate Agent Upsell Description operationId: generate_agent_upsell_description_me_agents__agent_id__upsell_description_post security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string title: Agent Id responses: '200': description: Successfully generated upsell description content: application/json: schema: $ref: '#/components/schemas/AgentModel' '404': description: Agent not found '500': description: Failed to generate upsell description '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents/vanity/slug: post: tags: - User API summary: Toolhouse Generate Slug operationId: generate_slug_me_agents_vanity_slug_post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SlugRequest' responses: '200': description: Successfully generated slug content: application/json: schema: {} '500': description: Failed to generate slug from internal agent '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' get: tags: - User API summary: Toolhouse Check Slug Availability operationId: check_slug_availability_me_agents_vanity_slug_get security: - HTTPBearer: [] parameters: - name: slug in: query required: true schema: type: string title: Slug responses: '200': description: Successfully validated slug content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/api-keys: get: tags: - API Keys - User API summary: Toolhouse Get Api Keys description: Get all API Keys operationId: get_api_keys_me_api_keys_get responses: '200': description: Successfully retrieved all API keys content: application/json: schema: items: $ref: '#/components/schemas/ApiKeyHidden' type: array title: Response Get Api Keys Me Api Keys Get '500': description: Internal server error security: - HTTPBearer: [] post: tags: - API Keys - User API summary: Toolhouse Post Create Api Key description: Create API Key operationId: post_create_api_key_me_api_keys_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ApiKeyCreate' required: true responses: '200': description: Successfully created API key content: application/json: schema: $ref: '#/components/schemas/ApiKey' '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /me/api-keys/default: get: tags: - API Keys - User API summary: Toolhouse Get Default Api Key description: Get default API Key operationId: get_default_api_key_me_api_keys_default_get responses: '200': description: Successfully retrieved default API key content: application/json: schema: $ref: '#/components/schemas/ApiKey' '500': description: Internal server error security: - HTTPBearer: [] /me/api-keys/{api_key_id}: get: tags: - API Keys - User API summary: Toolhouse Get Api Key description: Get API Key by ID operationId: get_api_key_me_api_keys__api_key_id__get security: - HTTPBearer: [] parameters: - name: api_key_id in: path required: true schema: type: integer title: Api Key Id responses: '200': description: Successfully retrieved API key content: application/json: schema: $ref: '#/components/schemas/ApiKey' '404': description: API key not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - API Keys - User API summary: Toolhouse Delete Api Key description: Delete API Key operationId: delete_api_key_me_api_keys__api_key_id__delete security: - HTTPBearer: [] parameters: - name: api_key_id in: path required: true schema: type: integer title: Api Key Id responses: '200': description: Successfully deleted API key content: application/json: schema: $ref: '#/components/schemas/ApiKeyHidden' '404': description: API key not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/billing: get: tags: - User API summary: Toolhouse Billing Information description: Get Billing Information operationId: billing_information_me_billing_get responses: '200': description: Successfully retrieved billing information content: application/json: schema: $ref: '#/components/schemas/BillingInformationSubscription' '500': description: Internal server error security: - HTTPBearer: [] /me/bundles: get: tags: - User API summary: Toolhouse Get Bundles description: Get Bundles operationId: get_bundles_me_bundles_get responses: '200': description: Successfully retrieved all bundles content: application/json: schema: items: $ref: '#/components/schemas/UserBundleSimplified' type: array title: Response Get Bundles Me Bundles Get '500': description: Internal server error security: - HTTPBearer: [] post: tags: - User API summary: Toolhouse Create Bundle description: Create Bundle operationId: create_bundle_me_bundles_post responses: '200': description: Successfully created bundle content: application/json: schema: $ref: '#/components/schemas/UserBundle' '409': description: Bundle creation failed '500': description: Internal server error security: - HTTPBearer: [] /me/bundles/{bundle_id}: get: tags: - User API summary: Toolhouse Get Bundle description: Get Bundle operationId: get_bundle_me_bundles__bundle_id__get security: - HTTPBearer: [] parameters: - name: bundle_id in: path required: true schema: type: integer title: Bundle Id responses: '200': description: Successfully retrieved bundle content: application/json: schema: $ref: '#/components/schemas/UserBundle' '404': description: Bundle not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - User API summary: Toolhouse Update Bundle description: Update Bundle operationId: update_bundle_me_bundles__bundle_id__put security: - HTTPBearer: [] parameters: - name: bundle_id in: path required: true schema: type: integer title: Bundle Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserBundleRequest' responses: '200': description: Successfully updated bundle content: application/json: schema: $ref: '#/components/schemas/UserBundle' '409': description: Bundle update failed '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - User API summary: Toolhouse Delete Bundle description: Delete Bundle operationId: delete_bundle_me_bundles__bundle_id__delete security: - HTTPBearer: [] parameters: - name: bundle_id in: path required: true schema: type: integer title: Bundle Id responses: '200': description: Successfully deleted bundle content: application/json: schema: $ref: '#/components/schemas/UserBundleRow' '404': description: Bundle not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/bundles/{bundle_id}/tools: get: tags: - User API summary: Toolhouse Get Bundle Tools description: Get Bundle Tools operationId: get_bundle_tools_me_bundles__bundle_id__tools_get security: - HTTPBearer: [] parameters: - name: bundle_id in: path required: true schema: type: integer title: Bundle Id responses: '200': description: Successfully retrieved bundle tools content: application/json: schema: type: array items: $ref: '#/components/schemas/UserBundleTool' title: Response Get Bundle Tools Me Bundles Bundle Id Tools Get '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - User API summary: Toolhouse Add Tool To Bundle Request description: Add Tool to Bundle operationId: add_tool_to_bundle_request_me_bundles__bundle_id__tools_post security: - HTTPBearer: [] parameters: - name: bundle_id in: path required: true schema: type: integer title: Bundle Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserBundleTool' responses: '200': description: Successfully added tool to bundle content: application/json: schema: $ref: '#/components/schemas/UserBundleTool' '404': description: Bundle not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/bundles/{bundle_id}/tools/{tool_id}: delete: tags: - User API summary: Toolhouse Remove Tool From Bundle Request operationId: remove_tool_from_bundle_request_me_bundles__bundle_id__tools__tool_id__delete security: - HTTPBearer: [] parameters: - name: bundle_id in: path required: true schema: type: integer title: Bundle Id - name: tool_id in: path required: true schema: type: string title: Tool Id responses: '200': description: Successfully removed tool from bundle content: application/json: schema: $ref: '#/components/schemas/UserBundleTool' '404': description: Bundle or tool not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/chats: get: tags: - User API summary: Toolhouse Get All Chats operationId: get_all_chats_me_chats_get responses: '200': description: Successfully retrieved all chats content: application/json: schema: items: $ref: '#/components/schemas/AgentModel' type: array title: Response Get All Chats Me Chats Get security: - HTTPBearer: [] post: tags: - User API summary: Toolhouse Create Chat operationId: create_chat_me_chats_post requestBody: content: application/json: schema: $ref: '#/components/schemas/AgentRequest' required: true responses: '200': description: Successfully created chat content: application/json: schema: $ref: '#/components/schemas/AgentModel' '400': description: Missing chat prompt or sandbox tier attempting to set agent as private '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' deprecated: true security: - HTTPBearer: [] /me/chats/{chat_id}: get: tags: - User API summary: Toolhouse Get Chat operationId: get_chat_me_chats__chat_id__get parameters: - name: chat_id in: path required: true schema: type: string title: Chat Id responses: '200': description: Successfully retrieved chat content: application/json: schema: $ref: '#/components/schemas/AgentModel' '403': description: You don't have permission to access this chat '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - User API summary: Toolhouse Edit Chat operationId: edit_chat_me_chats__chat_id__put security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string title: Chat Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentRequest' responses: '200': description: Successfully updated chat content: application/json: schema: $ref: '#/components/schemas/AgentModel' '400': description: Sandbox tier attempting to set agent as private '403': description: You don't have permission to access this chat '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - User API summary: Toolhouse Patch Chat operationId: patch_chat_me_chats__chat_id__patch security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string title: Chat Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentRequestPartial' responses: '200': description: Successfully updated chat content: application/json: schema: $ref: '#/components/schemas/AgentModel' '400': description: Sandbox tier attempting to set agent as private '403': description: You don't have permission to access this chat '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - User API summary: Toolhouse Del Chat operationId: del_chat_me_chats__chat_id__delete security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string title: Chat Id responses: '200': description: Successfully deleted chat content: application/json: schema: $ref: '#/components/schemas/AgentModel' '403': description: You don't have permission to access this chat '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/chats/{chat_id}/og: get: tags: - User API summary: Toolhouse Get Chat Og Metadata operationId: get_chat_og_metadata_me_chats__chat_id__og_get parameters: - name: chat_id in: path required: true schema: type: string format: uuid title: Chat Id responses: '200': description: Successfully retrieved chat OG metadata content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/chats/{chat_id}/clone: post: tags: - User API summary: Toolhouse Clone Chat operationId: clone_chat_me_chats__chat_id__clone_post security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string format: uuid title: Chat Id requestBody: content: application/json: schema: anyOf: - $ref: '#/components/schemas/AgentRequestPartial' - type: 'null' title: Clone Request responses: '200': description: Successfully cloned chat content: application/json: schema: $ref: '#/components/schemas/AgentModel' '403': description: This chat is not public '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/chats/{chat_id}/feedback: post: tags: - User API summary: Toolhouse Post Chat Feedback operationId: post_chat_feedback_me_chats__chat_id__feedback_post security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string format: uuid title: Chat Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserFeedbackRequest' responses: '200': description: Successfully submitted chat feedback content: application/json: schema: $ref: '#/components/schemas/AgentModel' '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/chats/{chat_id}/runs: post: tags: - User API summary: Toolhouse Post Agent Run Log description: Creates a new agent run log entry for a chat operationId: post_agent_run_log_me_chats__chat_id__runs_post security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string format: uuid title: Chat Id responses: '200': description: Successfully created agent run log content: application/json: schema: $ref: '#/components/schemas/AgentRunLog' '403': description: You don't have permission to access this chat '404': description: Agent not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/cli-auth: post: tags: - User API summary: Toolhouse Create Cli Auth description: Create a new CLI auth session. operationId: create_cli_auth_me_cli_auth_post responses: '200': description: Successfully created CLI auth session content: application/json: schema: $ref: '#/components/schemas/CliAuthModel' '503': description: Toolhouse CLI Authentication Service Unavailable /me/cli-auth/{cli_auth_id}: put: tags: - User API summary: Toolhouse Update Cli Auth description: Update CLI auth with user's JWT. operationId: update_cli_auth_me_cli_auth__cli_auth_id__put security: - HTTPBearer: [] parameters: - name: cli_auth_id in: path required: true schema: type: string format: uuid title: Cli Auth Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CliAuthInsertModel' responses: '200': description: Successfully updated CLI auth content: application/json: schema: $ref: '#/components/schemas/CliAuthModel' '403': description: Unauthorized to update this CLI auth '404': description: CLI auth not found '503': description: Toolhouse CLI Authentication Service Unavailable '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/cli-auth/{auth_id}: get: tags: - User API summary: Toolhouse Get Cli Auth description: Get and consume JWT for CLI auth. operationId: get_cli_auth_me_cli_auth__auth_id__get parameters: - name: auth_id in: path required: true schema: type: string format: uuid title: Auth Id responses: '200': description: Successfully retrieved CLI auth JWT content: application/json: schema: anyOf: - type: string - type: 'null' title: Response Get Cli Auth Me Cli Auth Auth Id Get '404': description: CLI auth not found '503': description: Toolhouse CLI Authentication Service Unavailable '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/credits: get: tags: - User API summary: Toolhouse Get User Credits description: User Installed Tools operationId: get_user_credits_me_credits_get responses: '200': description: Successfully retrieved user credits content: application/json: schema: $ref: '#/components/schemas/AgentExecutionCredits' '404': description: User credits not found '500': description: Internal server error security: - HTTPBearer: [] /me/credits/use: post: tags: - User API summary: Toolhouse Use User Credits description: Use User Credits operationId: use_user_credits_me_credits_use_post responses: '200': description: Successfully used user credits content: application/json: schema: $ref: '#/components/schemas/AgentExecutionCredits' '404': description: User credits not found '500': description: Internal server error security: - HTTPBearer: [] /me/executions: get: tags: - Logs - User API summary: Toolhouse Get User Logs description: User Installed Tools operationId: get_user_logs_me_executions_get security: - HTTPBearer: [] parameters: - name: next_cursor in: query required: false schema: anyOf: - type: string format: date-time - type: 'null' title: Next Cursor - name: limit in: query required: false schema: type: integer default: 30 title: Limit responses: '200': description: Successfully retrieved tool execution logs content: application/json: schema: $ref: '#/components/schemas/ToolExecutionLogsResponse' '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/executions/{log_id}: get: tags: - Logs - User API summary: Toolhouse Get User Log By Id description: User Installed Tools operationId: get_user_log_by_id_me_executions__log_id__get security: - HTTPBearer: [] parameters: - name: log_id in: path required: true schema: type: integer title: Log Id responses: '200': description: Successfully retrieved tool execution log content: application/json: schema: $ref: '#/components/schemas/ToolExecutionLog' '404': description: Tool execution log not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/monetization/summary: get: tags: - User API summary: Toolhouse Get Monetization Summary description: 'Get monetization summary: total subscribers and earnings for the period' operationId: get_monetization_summary_me_monetization_summary_get security: - HTTPBearer: [] parameters: - name: period in: query required: false schema: type: integer maximum: 365 minimum: 1 default: 28 title: Period responses: '200': description: Monetization summary content: application/json: schema: $ref: '#/components/schemas/MonetizationSummary' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/monetization/subscribers: get: tags: - User API summary: Toolhouse Get Monetization Subscribers description: Get daily total subscriber count over the period operationId: get_monetization_subscribers_me_monetization_subscribers_get security: - HTTPBearer: [] parameters: - name: period in: query required: false schema: type: integer maximum: 365 minimum: 1 default: 28 title: Period responses: '200': description: Daily new subscriber counts content: application/json: schema: $ref: '#/components/schemas/MonetizationSubscribersResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/monetization/earnings: get: tags: - User API summary: Toolhouse Get Monetization Earnings description: Get daily earnings for the period operationId: get_monetization_earnings_me_monetization_earnings_get security: - HTTPBearer: [] parameters: - name: period in: query required: false schema: type: integer maximum: 365 minimum: 1 default: 28 title: Period responses: '200': description: Daily earnings content: application/json: schema: $ref: '#/components/schemas/MonetizationEarningsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/stripe/webhook: post: tags: - User API summary: Toolhouse Stripe Webhook description: Get Billing Information operationId: stripe_webhook_me_stripe_webhook_post responses: '200': description: Successfully processed Stripe webhook content: application/json: schema: $ref: '#/components/schemas/StripeResponseSuccess' '400': description: Missing stripe signature or invalid event /me/stripe/sessions: post: tags: - User API summary: Toolhouse Get Stripe Sessions description: Get Stripe Sessions operationId: get_stripe_sessions_me_stripe_sessions_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StripeSessionRequest' required: true responses: '200': description: Successfully created Stripe sessions content: application/json: schema: $ref: '#/components/schemas/StripeSessionResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /me/schedules: get: tags: - User API summary: Toolhouse Get Schedule List operationId: get_schedule_list_me_schedules_get responses: '200': description: Successfully retrieved schedules content: application/json: schema: $ref: '#/components/schemas/ScheduleListResponse' '500': description: Internal server error security: - HTTPBearer: [] post: tags: - User API summary: Toolhouse Create Schedule operationId: create_schedule_me_schedules_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ScheduleRequest' required: true responses: '200': description: Successfully created schedule content: application/json: schema: {} '403': description: The chat ID is invalid or it refers to a chat that does not exist or does not belong to you '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /me/schedules/onboarding: get: tags: - User API summary: Toolhouse Get Onboarding Schedule operationId: get_onboarding_schedule_me_schedules_onboarding_get responses: '200': description: Successfully retrieved onboarding schedule content: application/json: schema: {} '500': description: Internal server error security: - HTTPBearer: [] /me/schedules/text-to-cron: get: tags: - User API summary: Toolhouse Text To Cron operationId: text_to_cron_me_schedules_text_to_cron_get security: - HTTPBearer: [] parameters: - name: cron in: query required: true schema: type: string title: Cron responses: '200': description: Successfully converted text to cron content: application/json: schema: {} '400': description: Invalid cron expression '500': description: An internal error occurred '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/schedules/{schedule_id}: get: tags: - User API summary: Toolhouse Get Schedule By Id operationId: get_schedule_by_id_me_schedules__schedule_id__get security: - HTTPBearer: [] parameters: - name: schedule_id in: path required: true schema: type: string format: uuid title: Schedule Id responses: '200': description: Successfully retrieved schedule content: application/json: schema: {} '404': description: Schedule not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - User API summary: Toolhouse Edit Schedule operationId: edit_schedule_me_schedules__schedule_id__put security: - HTTPBearer: [] parameters: - name: schedule_id in: path required: true schema: type: string format: uuid title: Schedule Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScheduleUpdateRequest' responses: '200': description: Successfully updated schedule content: application/json: schema: {} '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - User API summary: Toolhouse Del Schedule operationId: del_schedule_me_schedules__schedule_id__delete security: - HTTPBearer: [] parameters: - name: schedule_id in: path required: true schema: type: string format: uuid title: Schedule Id responses: '200': description: Successfully deleted schedule content: application/json: schema: {} '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/tools/list: get: tags: - User API summary: Toolhouse List Tools operationId: list_tools_me_tools_list_get responses: '200': description: List of available tools retrieved successfully content: application/json: schema: items: $ref: '#/components/schemas/mcp__types__Tool' type: array title: Response List Tools Me Tools List Get '500': description: Internal server error security: - HTTPBearer: [] /me/tools: get: tags: - User API summary: Toolhouse Get Available Tools description: Get Tools operationId: get_available_tools_me_tools_get responses: '200': description: Successfully retrieved available tools content: application/json: schema: items: $ref: '#/components/schemas/PublicTool' type: array title: Response Get Available Tools Me Tools Get '500': description: Internal server error /me/tools/search: get: tags: - User API summary: Toolhouse Search Tools operationId: search_tools_me_tools_search_get security: - HTTPBearer: [] parameters: - name: q in: query required: true schema: type: string minLength: 1 title: Q - name: toolkit in: query required: false schema: anyOf: - type: string - type: 'null' title: Toolkit - name: limit in: query required: false schema: type: integer maximum: 200 minimum: 1 default: 20 title: Limit - name: min_score in: query required: false schema: type: number maximum: 1.0 minimum: 0.0 default: 0.15 title: Min Score responses: '200': description: Search results retrieved successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/mcp__types__Tool' title: Response Search Tools Me Tools Search Get '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/tools/{tool_id}: get: tags: - User API summary: Toolhouse Get Available Tool description: Get Tools operationId: get_available_tool_me_tools__tool_id__get parameters: - name: tool_id in: path required: true schema: type: string title: Tool Id responses: '200': description: Successfully retrieved tool content: application/json: schema: $ref: '#/components/schemas/PublicTool' '404': description: Tool does not exist '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/tools/run/{tool_name}: post: tags: - User API summary: Toolhouse Run Tool operationId: run_tool_me_tools_run__tool_name__post security: - HTTPBearer: [] parameters: - name: tool_name in: path required: true schema: type: string title: Tool Name - name: toolhouse_id in: query required: false schema: type: string default: default title: Toolhouse Id - name: toolhouse_id_namespace in: query required: false schema: type: string default: global title: Toolhouse Id Namespace requestBody: required: true content: application/json: schema: type: object additionalProperties: true title: Input Data responses: '200': description: Tool executed successfully content: application/json: schema: $ref: '#/components/schemas/ToolResult' '400': description: Invalid input data or parameters '401': description: Unauthorized - invalid or missing JWT '404': description: Tool not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/toolsets/list: get: tags: - User API summary: Toolhouse List Toolsets operationId: list_toolsets_me_toolsets_list_get responses: '200': description: List of available tools retrieved successfully content: application/json: schema: items: $ref: '#/components/schemas/ToolSet' type: array title: Response List Toolsets Me Toolsets List Get '500': description: Internal server error security: - HTTPBearer: [] /me/toolsets/{toolset_name}: get: tags: - User API summary: Toolhouse Get Toolset operationId: get_toolset_me_toolsets__toolset_name__get security: - HTTPBearer: [] parameters: - name: toolset_name in: path required: true schema: type: string title: Toolset Name responses: '200': description: Toolset details retrieved successfully content: application/json: schema: $ref: '#/components/schemas/ToolSetWithTools' '404': description: Toolset not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/: get: tags: - User API summary: Toolhouse Get User description: Gets the current user operationId: get_user_me__get responses: '200': description: Successfully retrieved current user content: application/json: schema: $ref: '#/components/schemas/UserWithTier' security: - HTTPBearer: [] /me/user-tools: get: tags: - User API summary: Toolhouse Get Installed Tools description: Get Installed Tools operationId: get_installed_tools_me_user_tools_get responses: '200': description: Successfully retrieved installed tools content: application/json: schema: items: $ref: '#/components/schemas/UserTool' type: array title: Response Get Installed Tools Me User Tools Get '500': description: Internal server error security: - HTTPBearer: [] post: tags: - User API summary: Toolhouse Install Tool description: Install Tool operationId: install_tool_me_user_tools_post requestBody: content: application/json: schema: $ref: '#/components/schemas/UserInstallToolRequest' required: true responses: '200': description: Successfully installed tool content: application/json: schema: $ref: '#/components/schemas/UserInstalledTool' '409': description: Tool installation failed '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /me/user-tools/{tool_id}: get: tags: - User API summary: Toolhouse Get Installed Tool description: Get Installed Tools operationId: get_installed_tool_me_user_tools__tool_id__get security: - HTTPBearer: [] parameters: - name: tool_id in: path required: true schema: type: string title: Tool Id responses: '200': description: Successfully retrieved installed tool content: application/json: schema: $ref: '#/components/schemas/UserTool' '404': description: Tool not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - User API summary: Toolhouse Delete Installed Tool description: Delete Installed Tool operationId: delete_installed_tool_me_user_tools__tool_id__delete security: - HTTPBearer: [] parameters: - name: tool_id in: path required: true schema: type: string title: Tool Id responses: '200': description: Successfully deleted installed tool content: application/json: schema: $ref: '#/components/schemas/UserInstalledTool' '404': description: Tool not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/vibe/services: get: tags: - User API summary: Toolhouse Get Vibe Services operationId: get_vibe_services_me_vibe_services_get responses: '200': description: Successfully retrieved vibe services content: application/json: schema: $ref: '#/components/schemas/VibeCoderListResponse' /me/agents/{agent_id}/vibe: get: tags: - User API summary: Toolhouse Get Vibe Agent Prompt operationId: get_vibe_agent_prompt_me_agents__agent_id__vibe_get security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string title: Agent Id - name: service_name in: query required: true schema: enum: - lovable - bolt - v0 type: string title: Service Name responses: '200': description: Successfully retrieved vibe agent prompt content: application/json: schema: $ref: '#/components/schemas/VibeCoderPromptResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/vip: get: tags: - User API summary: Toolhouse Fetch Redemption Count operationId: fetch_redemption_count_me_vip_get responses: '200': description: Successfully retrieved VIP code redemption count content: application/json: schema: $ref: '#/components/schemas/VipCodeRedemptionCount' '400': description: Database error security: - HTTPBearer: [] post: tags: - User API summary: Toolhouse Redeem Code operationId: redeem_code_me_vip_post requestBody: content: application/json: schema: $ref: '#/components/schemas/VipCodeRequest' required: true responses: '200': description: Successfully redeemed VIP code content: application/json: schema: $ref: '#/components/schemas/VipCodeRedeemed' '400': description: Invalid VIP code, you cannot redeem your own VIP code, or you have already redeemed a VIP code '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /me/mcp-registry/servers: get: tags: - User API summary: Toolhouse Search Mcp Servers operationId: search_mcp_servers_me_mcp_registry_servers_get security: - HTTPBearer: [] parameters: - name: queries in: query required: true schema: type: array items: type: string maxItems: 12 description: optional search query title: Queries description: optional search query responses: '200': description: Successfully retrieved MCP servers from registry content: application/json: schema: type: array items: $ref: '#/components/schemas/ServerWithConnections' title: Response Search Mcp Servers Me Mcp Registry Servers Get '502': description: Could not fetch or parse MCP servers '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/mcp-servers: get: tags: - User API summary: Toolhouse Get Mcp Servers description: Get all MCP servers from the database, formatted as UserTool objects for frontend compatibility operationId: get_mcp_servers_me_mcp_servers_get responses: '200': description: Successfully retrieved MCP servers content: application/json: schema: items: $ref: '#/components/schemas/UserTool' type: array title: Response Get Mcp Servers Me Mcp Servers Get '500': description: Internal server error /me/mcp-servers/details: get: tags: - User API summary: Toolhouse Get Smithery Mcp Server Details description: Fetch a specific MCP server from Smithery Registry and convert to UserTool format (ID from query string) operationId: get_smithery_mcp_server_details_me_mcp_servers_details_get parameters: - name: id in: query required: true schema: type: string title: Id responses: '200': description: Successfully retrieved MCP server details content: application/json: schema: $ref: '#/components/schemas/UserTool' '400': description: Missing 'id' query parameter '404': description: MCP server not found '500': description: Smithery API not configured or failed to fetch MCP server details '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/agent-runs-from-schedule: post: tags: - Backoffice summary: Toolhouse Bo Create Agent Run From Schedule description: Creates an Agent Run on behalf of a user with the Schedule ID you specify. operationId: bo_create_agent_run_from_schedule_backoffice_agent_runs_from_schedule_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ScheduleBackofficeRequest' required: true responses: '200': description: Agent run successfully created from schedule content: application/json: schema: $ref: '#/components/schemas/AgentRun' '400': description: Schedule not found or invalid request '403': description: Chat ID does not belong to the user who created the schedule '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /backoffice/api-keys: post: tags: - Backoffice summary: Toolhouse Post Create Api Key description: Create API Key operationId: post_create_api_key_backoffice_api_keys_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ApiKey' required: true responses: '200': description: API key created successfully content: application/json: schema: $ref: '#/components/schemas/BaseApiKey' '409': description: API key creation failed - entry already exists '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /backoffice/users/{user_id}/bundles: post: tags: - Backoffice summary: Toolhouse Post Create Bundle description: Create Bundle operationId: post_create_bundle_backoffice_users__user_id__bundles_post security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id responses: '200': description: Bundle created successfully content: application/json: schema: $ref: '#/components/schemas/UserBundle' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' get: tags: - Backoffice summary: Toolhouse Get Bundles description: Get Bundles operationId: get_bundles_backoffice_users__user_id__bundles_get security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id responses: '200': description: Bundles retrieved successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/UserBundleSimplified' title: Response Get Bundles Backoffice Users User Id Bundles Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users/{user_id}/bundles/{bundle_id}: put: tags: - Backoffice summary: Toolhouse Update Bundle description: Create Bundle operationId: update_bundle_backoffice_users__user_id__bundles__bundle_id__put security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id - name: bundle_id in: path required: true schema: type: integer title: Bundle Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserBundleRequest' responses: '200': description: Bundle updated successfully content: application/json: schema: $ref: '#/components/schemas/UserBundle' '409': description: Bundle update failed - conflict with existing data '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Backoffice summary: Toolhouse Delete Bundle description: Get Bundles operationId: delete_bundle_backoffice_users__user_id__bundles__bundle_id__delete security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id - name: bundle_id in: path required: true schema: type: integer title: Bundle Id responses: '200': description: Bundle deleted successfully content: application/json: schema: $ref: '#/components/schemas/UserBundleRow' '404': description: Bundle not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users/{user_id}/credits: get: tags: - Backoffice summary: Toolhouse Get User Credits Request description: Get User Credits operationId: get_user_credits_request_backoffice_users__user_id__credits_get security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id responses: '200': description: User credits retrieved successfully content: application/json: schema: $ref: '#/components/schemas/AgentExecutionCredits' '404': description: User not found or credits entry is missing '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users/{user_id}/monthly_credit_allowance: put: tags: - Backoffice summary: Toolhouse Update User Credits Request description: 'Update User Credits Allowance This endpoint is used to increase or decrease the monthly credit allowance for a user. It is used to give users free credits every month. Note: if the user upgrades or downgrades, the credit allowance will be reset to the default value.' operationId: update_user_credits_request_backoffice_users__user_id__monthly_credit_allowance_put security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateMonthlyCreditAllowance' responses: '200': description: User credit allowance updated successfully content: application/json: schema: $ref: '#/components/schemas/AgentExecutionCredits' '404': description: User not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users/reset_credit_allowance: post: tags: - Backoffice summary: Toolhouse Post Reset Credit Allowance description: Resets credit allowance to all users (used to give users free credits every month) operationId: post_reset_credit_allowance_backoffice_users_reset_credit_allowance_post responses: '200': description: Credit allowance reset successfully for all users content: application/json: schema: {} '500': description: Failed to reset credit allowance security: - HTTPBearer: [] /backoffice/events: post: tags: - Backoffice summary: Toolhouse Proxy To Customerio description: Proxy request to Customer.io operationId: proxy_to_customerio_backoffice_events_post responses: '200': description: Event proxied to broker successfully content: application/json: schema: {} '400': description: Invalid request - missing required fields or payload '500': description: Failed to proxy event to broker security: - HTTPBearer: [] /backoffice/onboarding-runs: post: tags: - Backoffice summary: Toolhouse Create Run operationId: create_run_backoffice_onboarding_runs_post requestBody: content: application/json: schema: additionalProperties: true type: object title: Request required: true responses: '200': description: Onboarding run created successfully content: application/json: schema: {} '404': description: Onboarding chat or user not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /backoffice/schedules: get: tags: - Backoffice summary: Toolhouse Get Active Schedules description: Returns all the active schedules in the app operationId: get_active_schedules_backoffice_schedules_get responses: '200': description: Active schedules retrieved successfully content: application/json: schema: $ref: '#/components/schemas/ScheduleListResponse' '500': description: Internal server error security: - HTTPBearer: [] /backoffice/tools: get: tags: - Backoffice summary: Toolhouse Fetch Tools Route description: Get Tools operationId: fetch_tools_route_backoffice_tools_get responses: '200': description: Tools retrieved successfully content: application/json: schema: items: $ref: '#/components/schemas/toolhouse_app__models__user_tools__Tool-Output' type: array title: Response Fetch Tools Route Backoffice Tools Get '500': description: Internal server error security: - HTTPBearer: [] post: tags: - Backoffice summary: Toolhouse Create Tool Route description: Create Tool operationId: create_tool_route_backoffice_tools_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Tool-Input' required: true responses: '200': description: Tool created successfully content: application/json: schema: $ref: '#/components/schemas/toolhouse_app__models__user_tools__Tool-Output' '409': description: Tool creation failed - entry already exists '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /backoffice/tools/{tool_id}: get: tags: - Backoffice summary: Toolhouse Fetch Tool Route description: Get Tools operationId: fetch_tool_route_backoffice_tools__tool_id__get security: - HTTPBearer: [] parameters: - name: tool_id in: path required: true schema: type: string title: Tool Id responses: '200': description: Tool retrieved successfully content: application/json: schema: $ref: '#/components/schemas/toolhouse_app__models__user_tools__Tool-Output' '404': description: Tool not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Backoffice summary: Toolhouse Delete Tool Route description: Delete Tool operationId: delete_tool_route_backoffice_tools__tool_id__delete security: - HTTPBearer: [] parameters: - name: tool_id in: path required: true schema: type: string title: Tool Id responses: '200': description: Tool deleted successfully content: application/json: schema: $ref: '#/components/schemas/toolhouse_app__models__user_tools__Tool-Output' '404': description: Tool not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - Backoffice summary: Toolhouse Update Tool Route description: Update Tool operationId: update_tool_route_backoffice_tools__tool_id__put security: - HTTPBearer: [] parameters: - name: tool_id in: path required: true schema: type: string title: Tool Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Tool-Input' responses: '200': description: Tool updated successfully content: application/json: schema: $ref: '#/components/schemas/toolhouse_app__models__user_tools__Tool-Output' '404': description: Tool not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users/{user_id}/tools: get: tags: - Backoffice summary: Toolhouse Get Installed Tools description: Get Installed Tools operationId: get_installed_tools_backoffice_users__user_id__tools_get security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id responses: '200': description: Installed tools retrieved successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/UserTool' title: Response Get Installed Tools Backoffice Users User Id Tools Get '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - Backoffice summary: Toolhouse Post Install Tool description: Install Tool operationId: post_install_tool_backoffice_users__user_id__tools_post security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserInstallToolRequest' responses: '200': description: Tool installed successfully content: application/json: schema: $ref: '#/components/schemas/UserInstalledTool' '409': description: Tool installation failed - conflict with existing data '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users/{user_id}/tools/{tool_id}: get: tags: - Backoffice summary: Toolhouse Get Installed Tool description: Get Installed Tools operationId: get_installed_tool_backoffice_users__user_id__tools__tool_id__get security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id - name: tool_id in: path required: true schema: type: string title: Tool Id responses: '200': description: Installed tool retrieved successfully content: application/json: schema: $ref: '#/components/schemas/UserTool' '404': description: Tool not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users/{user_id}: get: tags: - Backoffice summary: Toolhouse Get User Route description: Get User operationId: get_user_route_backoffice_users__user_id__get security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id responses: '200': description: User retrieved successfully content: application/json: schema: $ref: '#/components/schemas/User' '404': description: User not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users/{user_id}/default-api-key: get: tags: - Backoffice summary: Toolhouse Get Default Api Key For User description: Get the user's default API Key operationId: get_default_api_key_for_user_backoffice_users__user_id__default_api_key_get security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id responses: '200': description: Default API key retrieved successfully content: application/json: schema: $ref: '#/components/schemas/ApiKey' '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users/by/email/{email}: get: tags: - Backoffice summary: Toolhouse Get User By Email Route description: Get User operationId: get_user_by_email_route_backoffice_users_by_email__email__get security: - HTTPBearer: [] parameters: - name: email in: path required: true schema: type: string title: Email responses: '200': description: User retrieved successfully content: application/json: schema: anyOf: - $ref: '#/components/schemas/User' - type: 'null' title: Response Get User By Email Route Backoffice Users By Email Email Get '404': description: User not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /backoffice/users: post: tags: - Backoffice summary: Toolhouse Create User Route description: Create User operationId: create_user_route_backoffice_users_post requestBody: content: application/json: schema: $ref: '#/components/schemas/UserCreate' required: true responses: '200': description: User created successfully content: application/json: schema: $ref: '#/components/schemas/User' '409': description: User creation failed - user already exists '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /backoffice/mcp-servers: get: tags: - Backoffice summary: Toolhouse Get Mcp Servers description: Get all MCP servers from the local database operationId: get_mcp_servers_backoffice_mcp_servers_get responses: '200': description: MCP servers retrieved successfully content: application/json: schema: items: $ref: '#/components/schemas/MCPServer' type: array title: Response Get Mcp Servers Backoffice Mcp Servers Get '500': description: Internal server error security: - HTTPBearer: [] post: tags: - Backoffice summary: Toolhouse Sync Mcp Servers description: 'Sync MCP servers from remote registry to local database. This endpoint fetches all pages of MCP servers from the remote registry API and stores them in the local mcp_servers table.' operationId: sync_mcp_servers_backoffice_mcp_servers_post responses: '200': description: MCP servers synced successfully content: application/json: schema: additionalProperties: true type: object title: Response Sync Mcp Servers Backoffice Mcp Servers Post '500': description: Internal server error '502': description: Failed to fetch servers from remote registry or parse response security: - HTTPBearer: [] /backoffice/cleanup: post: tags: - Backoffice summary: Toolhouse Perform Cleanup Tasks description: Perform Cleanup Tasks operationId: perform_cleanup_tasks_backoffice_cleanup_post responses: '200': description: Cleanup tasks completed successfully content: application/json: schema: {} security: - HTTPBearer: [] /backoffice/worker-status: get: tags: - Backoffice summary: Toolhouse Get Worker Status description: Returns the number of in-flight agent runs. operationId: get_worker_status_backoffice_worker_status_get responses: '200': description: Worker status content: application/json: schema: {} security: - HTTPBearer: [] /v1/agent-runs: get: tags: - SDK API summary: Toolhouse Get All Agent Runs operationId: get_all_agent_runs_v1_agent_runs_get responses: '200': description: Agent runs successfully retrieved content: application/json: schema: $ref: '#/components/schemas/AgentRunListResponse' '500': description: Internal server error security: - HTTPBearer: [] post: tags: - SDK API summary: Toolhouse Create Agent Run operationId: create_agent_run_v1_agent_runs_post requestBody: content: application/json: schema: $ref: '#/components/schemas/AgentRunRequest' required: true responses: '200': description: Agent run successfully created content: application/json: schema: {} '403': description: Chat ID is invalid or does not belong to you '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /v1/agent-runs/{run_id}: get: tags: - SDK API summary: Toolhouse Get Agent Run operationId: get_agent_run_v1_agent_runs__run_id__get security: - HTTPBearer: [] parameters: - name: run_id in: path required: true schema: type: string format: uuid title: Run Id responses: '200': description: Agent run successfully retrieved content: application/json: schema: $ref: '#/components/schemas/AgentRunAPIResponse' '403': description: Chat ID associated to this Agent Run is invalid '404': description: Agent run not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - SDK API summary: Toolhouse Put Agent Run operationId: put_agent_run_v1_agent_runs__run_id__put security: - HTTPBearer: [] parameters: - name: run_id in: path required: true schema: type: string format: uuid title: Run Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentRunUpdateRequest' responses: '200': description: Agent run successfully updated content: application/json: schema: {} '403': description: Chat ID is invalid or does not belong to you '406': description: You can only add messages to completed runs '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/agents/{agent_id}/files: get: tags: - SDK API summary: Toolhouse Get Agent Files For Service description: 'Get enabled files for an agent (for genservice). Returns only enabled files, ordered by position for deterministic injection. Access is allowed for the agent owner OR if the agent is public.' operationId: get_agent_files_for_service_v1_agents__agent_id__files_get parameters: - name: agent_id in: path required: true schema: type: string format: uuid title: Agent Id responses: '200': description: Successfully retrieved enabled agent files content: application/json: schema: $ref: '#/components/schemas/AgentFileListResponse' '403': description: Not authorized to access this agent '404': description: Agent not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/agents: get: tags: - SDK API summary: Toolhouse Get All Chats description: Gets all chats for this user operationId: get_all_chats_v1_agents_get responses: '200': description: Agents successfully retrieved content: application/json: schema: items: $ref: '#/components/schemas/AgentModel' type: array title: Response Get All Chats V1 Agents Get '500': description: Internal server error security: - HTTPBearer: [] post: tags: - SDK API summary: Toolhouse Upsert Agent description: Saves a chat operationId: upsert_agent_v1_agents_post requestBody: content: application/json: schema: $ref: '#/components/schemas/AgentRequest' required: true responses: '200': description: Agent successfully created or updated content: application/json: schema: $ref: '#/components/schemas/AgentModel' '400': description: Invalid request or missing prompt '403': description: You don't have permission to access this chat '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /v1/agents/{chat_id}: get: tags: - SDK API summary: Toolhouse Get Chat description: Gets a chat operationId: get_chat_v1_agents__chat_id__get parameters: - name: chat_id in: path required: true schema: type: string title: Chat Id responses: '200': description: Agent successfully retrieved content: application/json: schema: $ref: '#/components/schemas/AgentModel' '403': description: You don't have permission to access this chat '404': description: Agent not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - SDK API summary: Toolhouse Edit Chat description: 'Updates a chat This endpoint allows users to update Chats fields of a chat identified by its `chat_id`. - **chat_id**: The unique identifier of the chat to be patched. This field cannot be updated. - **request**: A ChatRequest object containing the fields to be updated. All fields will be updated, if a field is not provided default values will be used. The ID of the user who owns the chat and the chat''s ID cannot be updated. **Responses:** - 200: Returns the updated ChatModel. - 404: If the chat is not found. - 500: If there is an internal server error.' operationId: edit_chat_v1_agents__chat_id__put security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string title: Chat Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentRequest' responses: '200': description: Agent successfully updated content: application/json: schema: $ref: '#/components/schemas/AgentModel' '400': description: Invalid request '403': description: You don't have permission to access this chat '404': description: Agent not found '409': description: Conflict updating agent '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - SDK API summary: Toolhouse Patch Chat description: "Patches a chat.\n\nThis endpoint allows users to update specific fields of a chat identified by its `chat_id`.\n\n- **chat_id**: The unique identifier of the chat to be patched. This field cannot be updated.\n- **request**: A ChatModel object containing the fields to be updated. Only fields that are provided\n will be updated. The ID of the user who owns the chat and the chat's ID cannot be updated.\n\n**Responses:**\n- 200: Returns the updated ChatModel.\n- 404: If the chat is not found.\n- 500: If there is an internal server error." operationId: patch_chat_v1_agents__chat_id__patch security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string title: Chat Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AgentRequestPartial' responses: '200': description: Agent successfully patched content: application/json: schema: $ref: '#/components/schemas/AgentModel' '400': description: Invalid request '403': description: You don't have permission to access this chat '404': description: Agent not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - SDK API summary: Toolhouse Del Chat description: Deletes a chat operationId: del_chat_v1_agents__chat_id__delete security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string title: Chat Id responses: '200': description: Agent successfully deleted content: application/json: schema: $ref: '#/components/schemas/AgentModel' '403': description: You don't have permission to access this chat '404': description: Agent not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/agents/{chat_id}/og: get: tags: - SDK API summary: Toolhouse Get Chat Og Metadata description: Returns the OG metadata for a chat operationId: get_chat_og_metadata_v1_agents__chat_id__og_get parameters: - name: chat_id in: path required: true schema: type: string format: uuid title: Chat Id responses: '200': description: OG metadata successfully retrieved content: application/json: schema: {} '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/agents/{chat_id}/clone: post: tags: - SDK API summary: Toolhouse Clone Chat operationId: clone_chat_v1_agents__chat_id__clone_post security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string format: uuid title: Chat Id responses: '200': description: Agent successfully cloned content: application/json: schema: $ref: '#/components/schemas/AgentModel' '403': description: This chat is not public '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/agents/{chat_id}/feedback: post: tags: - SDK API summary: Toolhouse Post Chat Feedback description: Updates the feedback for a chat operationId: post_chat_feedback_v1_agents__chat_id__feedback_post security: - HTTPBearer: [] parameters: - name: chat_id in: path required: true schema: type: string format: uuid title: Chat Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserFeedbackRequest' responses: '200': description: Feedback successfully submitted content: application/json: schema: $ref: '#/components/schemas/AgentModel' '404': description: Agent not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/cli/version: get: tags: - SDK API summary: Toolhouse Cli description: Check if a new version of the CLI is available. operationId: cli_v1_cli_version_get parameters: - name: installed_version in: query required: true schema: type: string pattern: ^\d+\.\d+\.\d+([a-zA-Z0-9.\-+]+)?$ title: Installed Version description: The version of the CLI that is currently installed. examples: - 1.0.0 - 2.3.4 responses: '200': description: CLI version information retrieved successfully content: application/json: schema: $ref: '#/components/schemas/CliVersionResponse' '422': description: Invalid version format '503': description: Version not available /v1/cli-telemetry: post: tags: - SDK API summary: Toolhouse Post Cli Telemetry description: Stores a new CLI telemetry entry. operationId: post_cli_telemetry_v1_cli_telemetry_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CliTelemetryEvents' required: true responses: '200': description: CLI telemetry stored successfully content: application/json: schema: type: boolean title: Response Post Cli Telemetry V1 Cli Telemetry Post '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/get_tools: post: tags: - SDK API summary: Toolhouse Get Tools Endpoint description: Get tools operationId: get_tools_endpoint_v1_get_tools_post requestBody: content: application/json: schema: $ref: '#/components/schemas/GetToolsRequest' required: true responses: '200': description: Tools retrieved successfully content: application/json: schema: anyOf: - items: $ref: '#/components/schemas/toolhouse_app__models__providers__providers_tools__openai__Tool' type: array - items: $ref: '#/components/schemas/toolhouse_app__models__providers__providers_tools__anthropic__Tool' type: array - items: $ref: '#/components/schemas/toolhouse_app__models__providers__providers_tools__generic__Tool' type: array title: Response Get Tools Endpoint V1 Get Tools Post '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' deprecated: true security: - HTTPBearer: [] /v1/users: get: tags: - SDK API summary: Toolhouse Get Users Endpoint operationId: get_users_endpoint_v1_users_get responses: '200': description: Users retrieved successfully content: application/json: schema: {} '500': description: Internal server error security: - HTTPBearer: [] /v1/kv: get: tags: - SDK API summary: Toolhouse Get All Kv description: Gets all key-value pairs for a user operationId: get_all_kv_v1_kv_get responses: '200': description: All key-value pairs retrieved successfully content: application/json: schema: {} '500': description: Internal server error security: - HTTPBearer: [] post: tags: - SDK API summary: Toolhouse Upsert Kv description: Upserts a key-value pair for a user operationId: upsert_kv_v1_kv_post requestBody: content: application/json: schema: $ref: '#/components/schemas/BaseKV' required: true responses: '200': description: Key-value pair upserted successfully content: application/json: schema: {} '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /v1/kv/{key}: delete: tags: - SDK API summary: Toolhouse Delete Kv description: Deletes a key-value pair for a user operationId: delete_kv_v1_kv__key__delete security: - HTTPBearer: [] parameters: - name: key in: path required: true schema: type: string title: Key responses: '200': description: Key-value pair deleted successfully content: application/json: schema: {} '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/run_tools: post: tags: - SDK API summary: Toolhouse Run Tools Endpoint description: Run tools operationId: run_tools_endpoint_v1_run_tools_post requestBody: content: application/json: schema: $ref: '#/components/schemas/RunToolsRequest' required: true responses: '200': description: Tool executed successfully content: application/json: schema: $ref: '#/components/schemas/RunToolsResponse' '400': description: Invalid metadata, missing parameters '402': description: Insufficient user credits '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' deprecated: true security: - HTTPBearer: [] /v1/schedules: get: tags: - SDK API summary: Toolhouse Get Schedule List operationId: get_schedule_list_v1_schedules_get responses: '200': description: Schedules retrieved successfully content: application/json: schema: $ref: '#/components/schemas/ScheduleListResponse' '500': description: Internal server error security: - HTTPBearer: [] post: tags: - SDK API summary: Toolhouse Create Schedule operationId: create_schedule_v1_schedules_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ScheduleRequest' required: true responses: '200': description: Schedule created successfully content: application/json: schema: {} '403': description: Invalid chat ID or chat does not belong to user '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /v1/schedules/text-to-cron: get: tags: - SDK API summary: Toolhouse Text To Cron operationId: text_to_cron_v1_schedules_text_to_cron_get security: - HTTPBearer: [] parameters: - name: cron in: query required: true schema: type: string title: Cron responses: '200': description: Cron expression generated successfully content: application/json: schema: {} '400': description: Invalid cron text input '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/schedules/{schedule_id}: get: tags: - SDK API summary: Toolhouse Get Schedule By Id operationId: get_schedule_by_id_v1_schedules__schedule_id__get security: - HTTPBearer: [] parameters: - name: schedule_id in: path required: true schema: type: string format: uuid title: Schedule Id responses: '200': description: Schedule retrieved successfully content: application/json: schema: {} '404': description: Schedule not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - SDK API summary: Toolhouse Edit Schedule operationId: edit_schedule_v1_schedules__schedule_id__put security: - HTTPBearer: [] parameters: - name: schedule_id in: path required: true schema: type: string format: uuid title: Schedule Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ScheduleUpdateRequest' responses: '200': description: Schedule updated successfully content: application/json: schema: {} '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - SDK API summary: Toolhouse Del Schedule operationId: del_schedule_v1_schedules__schedule_id__delete security: - HTTPBearer: [] parameters: - name: schedule_id in: path required: true schema: type: string format: uuid title: Schedule Id responses: '200': description: Schedule deleted successfully content: application/json: schema: {} '400': description: Schedule not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/th-file-schema: get: tags: - SDK API summary: Toolhouse Get Th File Schema description: Returns the schema for the Toolhouse file. operationId: get_th_file_schema_v1_th_file_schema_get responses: '200': description: Toolhouse file schema retrieved successfully content: application/json: schema: additionalProperties: true type: object title: Response Get Th File Schema V1 Th File Schema Get /v1/me: get: tags: - SDK API summary: Toolhouse Get User description: Gets the current user operationId: get_user_v1_me_get responses: '200': description: Current user retrieved successfully content: application/json: schema: $ref: '#/components/schemas/UserAuthenticated' security: - HTTPBearer: [] /v1/vibe/services: get: tags: - SDK API summary: Toolhouse Get Vibe Services operationId: get_vibe_services_v1_vibe_services_get responses: '200': description: Vibe services retrieved successfully content: application/json: schema: $ref: '#/components/schemas/VibeCoderListResponse' /v1/agents/{agent_id}/vibe: get: tags: - SDK API summary: Toolhouse Get Vibe Agent Prompt operationId: get_vibe_agent_prompt_v1_agents__agent_id__vibe_get security: - HTTPBearer: [] parameters: - name: agent_id in: path required: true schema: type: string title: Agent Id - name: service_name in: query required: true schema: enum: - lovable - bolt - v0 type: string title: Service Name responses: '200': description: Vibe agent prompt retrieved successfully content: application/json: schema: $ref: '#/components/schemas/VibeCoderPromptResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /public/integrations/{auth_config_id}/connect: get: tags: - Public summary: Toolhouse Connect Integration operationId: connect_integration_public_integrations__auth_config_id__connect_get parameters: - name: auth_config_id in: path required: true schema: type: string title: Auth Config Id - name: toolhouse_id in: query required: false schema: anyOf: - type: string title: Toolhouse ID description: The Toolhouse ID query parameter is used to identify the source of the request. - type: 'null' title: Toolhouse Id - name: code in: query required: false schema: anyOf: - type: string - type: 'null' title: Code responses: '200': description: Successfully initiated integration connection content: application/json: schema: {} '400': description: Invalid request parameters or auth config ID '500': description: Failed to create connection record '502': description: Failed to initiate Composio connection '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /public/integrations/callback: get: tags: - Public summary: Toolhouse Callback operationId: callback_public_integrations_callback_get parameters: - name: token in: query required: true schema: type: string title: Token - name: status in: query required: true schema: type: string title: Status - name: appName in: query required: false schema: anyOf: - type: string - type: 'null' title: Appname - name: error in: query required: false schema: anyOf: - type: string - type: 'null' title: Error - name: connectedAccountId in: query required: false schema: anyOf: - type: string - type: 'null' title: Connectedaccountid responses: '200': description: Integration callback processed successfully content: application/json: schema: {} '400': description: Invalid callback parameters or unknown status '404': description: Callback payload not found '500': description: Failed to update connection status in database '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v2/tools/list: get: tags: - V2 summary: Toolhouse List Tools operationId: list_tools_v2_tools_list_get responses: '200': description: List of available tools retrieved successfully content: application/json: schema: items: $ref: '#/components/schemas/mcp__types__Tool' type: array title: Response List Tools V2 Tools List Get '500': description: Internal server error /v2/tools/search: get: tags: - V2 summary: Toolhouse Search Tools operationId: search_tools_v2_tools_search_get parameters: - name: q in: query required: true schema: type: string minLength: 1 maxLength: 1000 title: Q - name: toolkit in: query required: false schema: anyOf: - type: string - type: 'null' title: Toolkit - name: limit in: query required: false schema: type: integer maximum: 200 minimum: 1 default: 20 title: Limit - name: min_score in: query required: false schema: type: number maximum: 1.0 minimum: 0.0 default: 0.15 title: Min Score responses: '200': description: Search results retrieved successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/mcp__types__Tool' title: Response Search Tools V2 Tools Search Get '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v2/tools/run/{tool_name}: post: tags: - V2 summary: Toolhouse Run Tool operationId: run_tool_v2_tools_run__tool_name__post security: - HTTPBearer: [] parameters: - name: tool_name in: path required: true schema: type: string title: Tool Name - name: toolhouse_id in: query required: false schema: type: string default: default title: Toolhouse Id - name: toolhouse_id_namespace in: query required: false schema: type: string default: global title: Toolhouse Id Namespace requestBody: required: true content: application/json: schema: type: object additionalProperties: true title: Input Data responses: '200': description: Tool executed successfully content: application/json: schema: $ref: '#/components/schemas/ToolResult' '400': description: Invalid input data or parameters '401': description: Unauthorized - invalid or missing API key '404': description: Tool not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v2/toolsets/list: get: tags: - V2 summary: Toolhouse List Toolsets operationId: list_toolsets_v2_toolsets_list_get responses: '200': description: List of available tools retrieved successfully content: application/json: schema: items: $ref: '#/components/schemas/ToolSet' type: array title: Response List Toolsets V2 Toolsets List Get '500': description: Internal server error /v2/toolsets/{toolset_name}: get: tags: - V2 summary: Toolhouse Get Toolset operationId: get_toolset_v2_toolsets__toolset_name__get parameters: - name: toolset_name in: path required: true schema: type: string title: Toolset Name responses: '200': description: Toolset details retrieved successfully content: application/json: schema: $ref: '#/components/schemas/ToolSetWithTools' '404': description: Toolset not found '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v2/mcp: post: tags: - V2 summary: Toolhouse Mcp Server operationId: mcp_server_v2_mcp_post security: - HTTPBearer: [] parameters: - name: toolhouse_id in: query required: false schema: type: string default: default title: Toolhouse Id - name: toolhouse_id_namespace in: query required: false schema: type: string default: global title: Toolhouse Id Namespace - name: tools in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' title: Tools requestBody: required: true content: application/json: schema: anyOf: - $ref: '#/components/schemas/InitializeRequest' - $ref: '#/components/schemas/ListToolsRequest' - $ref: '#/components/schemas/CallToolRequest' - {} title: Request responses: '200': description: MCP request processed successfully content: application/json: schema: anyOf: - $ref: '#/components/schemas/JSONRPCResponse' - $ref: '#/components/schemas/JSONRPCError' - type: 'null' title: Response Mcp Server V2 Mcp Post '202': description: Notification accepted (no response required) '401': description: Unauthorized - invalid or missing API key '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: AgentExecutionCredits: properties: user_id: type: string title: User Id total_executions: type: integer title: Total Executions allowed_monthly_executions: type: integer title: Allowed Monthly Executions reset_datetime: type: string format: date-time title: Reset Datetime last_reset_datetime: type: string format: date-time title: Last Reset Datetime default: '2026-03-25T23:30:58.531373Z' type: object required: - user_id - total_executions - allowed_monthly_executions - reset_datetime title: AgentExecutionCredits AgentFileBatchPositionRequest: properties: positions: items: $ref: '#/components/schemas/AgentFilePositionUpdate' type: array title: Positions type: object required: - positions title: AgentFileBatchPositionRequest description: Request model for updating positions of multiple files AgentFileCreateRequest: properties: filename: type: string maxLength: 255 minLength: 1 title: Filename description: Original filename mime_type: type: string title: Mime Type description: MIME type of the file storage_url: type: string minLength: 1 format: uri title: Storage Url description: External URL where the file is hosted enabled: type: boolean title: Enabled description: Whether the file is active default: true position: type: integer minimum: 0.0 title: Position description: Order position for deterministic injection default: 0 auth: anyOf: - additionalProperties: true type: object - type: 'null' title: Auth description: Authentication configuration for accessing the file type: object required: - filename - mime_type - storage_url title: AgentFileCreateRequest description: Request model for creating a new agent file AgentFileListResponse: properties: data: items: $ref: '#/components/schemas/AgentFileModel' type: array title: Data type: object required: - data title: AgentFileListResponse description: API response wrapper for multiple files AgentFileModel: properties: filename: type: string maxLength: 255 minLength: 1 title: Filename description: Original filename mime_type: type: string title: Mime Type description: MIME type of the file storage_url: type: string minLength: 1 format: uri title: Storage Url description: External URL where the file is hosted enabled: type: boolean title: Enabled description: Whether the file is active default: true position: type: integer minimum: 0.0 title: Position description: Order position for deterministic injection default: 0 auth: anyOf: - additionalProperties: true type: object - type: 'null' title: Auth description: Authentication configuration for accessing the file id: type: string format: uuid title: Id agent_id: type: string format: uuid title: Agent Id created_at: type: string format: date-time title: Created At updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At type: object required: - filename - mime_type - storage_url - id - agent_id - created_at title: AgentFileModel description: Full model with database fields (ORM model) AgentFilePositionUpdate: properties: file_id: type: string format: uuid title: File Id position: type: integer minimum: 0.0 title: Position type: object required: - file_id - position title: AgentFilePositionUpdate description: Request model for batch position updates AgentFileResponse: properties: data: $ref: '#/components/schemas/AgentFileModel' type: object required: - data title: AgentFileResponse description: API response wrapper for a single file AgentFileUpdateRequest: properties: filename: anyOf: - type: string maxLength: 255 minLength: 1 - type: 'null' title: Filename mime_type: anyOf: - type: string - type: 'null' title: Mime Type storage_url: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Storage Url enabled: anyOf: - type: boolean - type: 'null' title: Enabled position: anyOf: - type: integer minimum: 0.0 - type: 'null' title: Position auth: anyOf: - additionalProperties: true type: object - type: 'null' title: Auth type: object title: AgentFileUpdateRequest description: Request model for updating an agent file (all fields optional) AgentModel: properties: id: type: string format: uuid title: Id prompt: anyOf: - type: string - type: 'null' title: Prompt vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars original_chat_id: anyOf: - type: string format: uuid - type: 'null' title: Original Chat Id title: anyOf: - type: string - type: 'null' title: Title history: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: History default: [] public: anyOf: - type: boolean - type: 'null' title: Public default: true bundle: anyOf: - type: string - type: 'null' title: Bundle default: default rag: anyOf: - type: string - type: 'null' title: Rag system_prompt: anyOf: - type: string - type: 'null' title: System Prompt model: anyOf: - type: string - type: 'null' title: Model mcp_servers: anyOf: - items: type: string type: array - type: 'null' title: Mcp Servers tools: anyOf: - items: type: string type: array - type: 'null' title: Tools description: List of tool slugs available to the agent slug: anyOf: - type: string - type: 'null' title: Slug price_in_cents: anyOf: - type: integer - type: 'null' title: Price In Cents trial_period_in_days: anyOf: - type: integer - type: 'null' title: Trial Period In Days upsell_description: anyOf: - $ref: '#/components/schemas/UpsellDescription' - type: 'null' count_runs: anyOf: - type: integer - type: 'null' title: Count Runs user_id: type: string title: User Id created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At user_feedback: type: string enum: - approved - rejected - pending title: User Feedback default: pending type: object required: - id - user_id title: AgentModel AgentRequest: properties: id: type: string format: uuid title: Id prompt: anyOf: - type: string - type: 'null' title: Prompt vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars original_chat_id: anyOf: - type: string format: uuid - type: 'null' title: Original Chat Id title: anyOf: - type: string - type: 'null' title: Title history: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: History default: [] public: anyOf: - type: boolean - type: 'null' title: Public default: true bundle: anyOf: - type: string - type: 'null' title: Bundle default: default rag: anyOf: - type: string - type: 'null' title: Rag system_prompt: anyOf: - type: string - type: 'null' title: System Prompt model: anyOf: - type: string - type: 'null' title: Model mcp_servers: anyOf: - items: type: string type: array - type: 'null' title: Mcp Servers tools: anyOf: - items: type: string type: array - type: 'null' title: Tools description: List of tool slugs available to the agent slug: anyOf: - type: string - type: 'null' title: Slug price_in_cents: anyOf: - type: integer - type: 'null' title: Price In Cents trial_period_in_days: anyOf: - type: integer - type: 'null' title: Trial Period In Days upsell_description: anyOf: - $ref: '#/components/schemas/UpsellDescription' - type: 'null' count_runs: anyOf: - type: integer - type: 'null' title: Count Runs type: object required: - id title: AgentRequest AgentRequestPartial: properties: id: anyOf: - type: string format: uuid - type: 'null' title: Id user_id: anyOf: - type: string - type: 'null' title: User Id original_chat_id: anyOf: - type: string format: uuid - type: 'null' title: Original Chat Id title: anyOf: - type: string - type: 'null' title: Title history: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: History default: [] vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars prompt: anyOf: - type: string - type: 'null' title: Prompt public: anyOf: - type: boolean - type: 'null' title: Public default: true bundle: anyOf: - type: string - type: 'null' title: Bundle default: default rag: anyOf: - type: string - type: 'null' title: Rag system_prompt: anyOf: - type: string - type: 'null' title: System Prompt model: anyOf: - type: string - type: 'null' title: Model description: Model name must start with one of ['@openai/', '@anthropic/', '@groq/', '@google/', '@togetherai/', '@openrouter/']. mcp_servers: anyOf: - items: type: string type: array - type: 'null' title: Mcp Servers tools: anyOf: - items: type: string type: array - type: 'null' title: Tools description: List of tool slugs available to the agent price_in_cents: anyOf: - type: integer - type: 'null' title: Price In Cents trial_period_in_days: anyOf: - type: integer - type: 'null' title: Trial Period In Days upsell_description: anyOf: - $ref: '#/components/schemas/UpsellDescription' - type: 'null' type: object title: AgentRequestPartial AgentRun: properties: id: anyOf: - type: string format: uuid - type: 'null' title: Id chat_id: type: string format: uuid title: Chat Id user_id: type: string title: User Id schedule_id: anyOf: - type: string format: uuid - type: 'null' title: Schedule Id status: type: string enum: - queued - in_progress - completed - failed title: Status results: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Results default: [] created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At bundle: anyOf: - type: string - type: 'null' title: Bundle default: default toolhouse_id: anyOf: - type: string - type: 'null' title: Toolhouse Id default: default vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars callback_url: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Callback Url error: anyOf: - type: string - type: 'null' title: Error type: object required: - chat_id - user_id - status title: AgentRun AgentRunAPIResponse: properties: data: $ref: '#/components/schemas/AgentRunResponse' type: object required: - data title: AgentRunAPIResponse AgentRunListResponse: properties: data: items: $ref: '#/components/schemas/AgentRun' type: array title: Data type: object required: - data title: AgentRunListResponse AgentRunLog: properties: id: anyOf: - type: string format: uuid - type: 'null' title: Id user_id: type: string title: User Id agent_id: type: string format: uuid title: Agent Id run_id: anyOf: - type: string format: uuid - type: 'null' title: Run Id type: type: string enum: - local - agent_stream - agent_run - agent_studio - agent_studio_v3 title: Type created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At start_time: anyOf: - type: string format: date-time - type: 'null' title: Start Time end_time: anyOf: - type: string format: date-time - type: 'null' title: End Time type: object required: - user_id - agent_id - type title: AgentRunLog AgentRunRequest: properties: chat_id: type: string format: uuid title: Chat Id schedule_id: anyOf: - type: string format: uuid - type: 'null' title: Schedule Id bundle: type: string title: Bundle default: default toolhouse_id: type: string title: Toolhouse Id default: default vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars callback_url: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Callback Url type: object required: - chat_id title: AgentRunRequest AgentRunResponse: properties: id: anyOf: - type: string format: uuid - type: 'null' title: Id chat_id: type: string format: uuid title: Chat Id schedule_id: anyOf: - type: string format: uuid - type: 'null' title: Schedule Id results: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Results default: [] status: type: string enum: - queued - in_progress - completed - failed title: Status created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At bundle: anyOf: - type: string - type: 'null' title: Bundle default: default toolhouse_id: anyOf: - type: string - type: 'null' title: Toolhouse Id default: default vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars callback_url: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Callback Url last_agent_message: anyOf: - type: string - type: 'null' title: Last Agent Message type: object required: - chat_id - status title: AgentRunResponse AgentRunUpdateRequest: properties: message: type: string title: Message type: object required: - message title: AgentRunUpdateRequest AgentRunView: properties: id: anyOf: - type: string format: uuid - type: 'null' title: Id chat_id: type: string format: uuid title: Chat Id user_id: type: string title: User Id schedule_id: anyOf: - type: string format: uuid - type: 'null' title: Schedule Id status: type: string enum: - queued - in_progress - completed - failed title: Status results: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Results default: [] created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At bundle: anyOf: - type: string - type: 'null' title: Bundle default: default toolhouse_id: anyOf: - type: string - type: 'null' title: Toolhouse Id default: default vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars callback_url: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Callback Url error: anyOf: - type: string - type: 'null' title: Error title: type: string title: Title chat_archived: type: boolean title: Chat Archived type: object required: - chat_id - user_id - status - title - chat_archived title: AgentRunView AgentRunViewListResponse: properties: data: items: $ref: '#/components/schemas/AgentRunView' type: array title: Data next_cursor: anyOf: - type: string format: date-time - type: 'null' title: Next Cursor type: object required: - data - next_cursor title: AgentRunViewListResponse AgentStudioChat: properties: run_id: type: string format: uuid title: Run Id visibility: $ref: '#/components/schemas/ChatVisibility' title: type: string title: Title archived: type: boolean title: Archived default: false deployed: type: boolean title: Deployed default: false user_id: type: string title: User Id created_at: type: string format: date-time title: Created At updated_at: type: string format: date-time title: Updated At last_ran_at: anyOf: - type: string format: date-time - type: 'null' title: Last Ran At sandbox_agent_id: type: string format: uuid title: Sandbox Agent Id type: object required: - run_id - visibility - title - user_id - created_at - updated_at - sandbox_agent_id title: AgentStudioChat AgentStudioChatCreate: properties: run_id: type: string format: uuid title: Run Id visibility: $ref: '#/components/schemas/ChatVisibility' title: type: string title: Title archived: type: boolean title: Archived default: false deployed: type: boolean title: Deployed default: false type: object required: - run_id - visibility - title title: AgentStudioChatCreate AgentStudioChatUpdate: properties: run_id: anyOf: - type: string format: uuid - type: 'null' title: Run Id visibility: anyOf: - $ref: '#/components/schemas/ChatVisibility' - type: 'null' title: anyOf: - type: string - type: 'null' title: Title archived: anyOf: - type: boolean - type: 'null' title: Archived type: object title: AgentStudioChatUpdate AgentSubscribeRequest: properties: success_url: type: string title: Success Url cancel_url: type: string title: Cancel Url type: object required: - success_url - cancel_url title: AgentSubscribeRequest AgentSubscribeResponse: properties: checkout_url: type: string title: Checkout Url type: object required: - checkout_url title: AgentSubscribeResponse AgentSubscriptionListResponse: properties: data: items: $ref: '#/components/schemas/AgentSubscriptionResponse' type: array title: Data type: object required: - data title: AgentSubscriptionListResponse AgentSubscriptionResponse: properties: agent_id: type: string title: Agent Id agent_title: anyOf: - type: string - type: 'null' title: Agent Title agent_slug: anyOf: - type: string - type: 'null' title: Agent Slug subscription_status: type: string enum: - incomplete - incomplete_expired - trialing - active - past_due - canceled - unpaid - paused title: Subscription Status trial_end: anyOf: - type: string format: date-time - type: 'null' title: Trial End cancel_at_period_end: type: boolean title: Cancel At Period End default: false subscription_period_end: anyOf: - type: string format: date-time - type: 'null' title: Subscription Period End type: object required: - agent_id - subscription_status title: AgentSubscriptionResponse AgentThemePreferenceResponse: properties: agent_id: type: string format: uuid title: Agent Id theme_color: type: string pattern: ^#[0-9A-F]{6}$ title: Theme Color updated_at: type: string format: date-time title: Updated At type: object required: - agent_id - theme_color - updated_at title: AgentThemePreferenceResponse AgentThemePreferenceUpsertRequest: properties: theme_color: type: string title: Theme Color type: object required: - theme_color title: AgentThemePreferenceUpsertRequest Annotations: properties: audience: anyOf: - items: type: string enum: - user - assistant type: array - type: 'null' title: Audience priority: anyOf: - type: number maximum: 1.0 minimum: 0.0 - type: 'null' title: Priority additionalProperties: true type: object title: Annotations AnthropicToolRequest: properties: id: type: string title: Id input: additionalProperties: true type: object title: Input name: type: string title: Name type: type: string const: tool_use title: Type type: object required: - id - input - name - type title: AnthropicToolRequest description: Represents a tool call for Anthropic. AnthropicToolResponse: properties: tool_use_id: type: string title: Tool Use Id content: type: string title: Content type: type: string const: tool_result title: Type type: object required: - tool_use_id - content - type title: AnthropicToolResponse description: Represents the results of a tool call for Anthropic. ApiKey: properties: id: type: integer title: Id user_id: type: string title: User Id name: type: string title: Name archived: type: boolean title: Archived default: false api_key: type: string title: Api Key type: object required: - id - user_id - name - api_key title: ApiKey description: API Key ApiKeyCreate: properties: name: type: string title: Name type: object required: - name title: ApiKeyCreate description: API Key Create ApiKeyHidden: properties: id: type: integer title: Id user_id: type: string title: User Id name: type: string title: Name archived: type: boolean title: Archived default: false type: object required: - id - user_id - name title: ApiKeyHidden description: API Key Hidden Argument-Input: properties: name: type: string title: Name items: anyOf: - $ref: '#/components/schemas/ArrayItemsType-Input' - type: 'null' type: type: string enum: - string - number - integer - array - boolean title: Type source: type: string enum: - llm - user - metadata title: Source label: type: string title: Label description: type: string title: Description required: type: boolean title: Required type: object required: - name - type - source - label - description - required title: Argument description: Tool Arguments ArrayItemsType-Input: properties: type: type: string enum: - string - number - integer - boolean title: Type type: object required: - type title: ArrayItemsType description: Array Items AudioContent: properties: type: type: string const: audio title: Type data: type: string title: Data mimeType: type: string title: Mimetype annotations: anyOf: - $ref: '#/components/schemas/Annotations' - type: 'null' _meta: anyOf: - additionalProperties: true type: object - type: 'null' title: Meta additionalProperties: true type: object required: - type - data - mimeType title: AudioContent description: Audio content for a message. BaseApiKey: properties: id: type: integer title: Id user_id: type: string title: User Id name: type: string title: Name archived: type: boolean title: Archived default: false type: object required: - id - user_id - name title: BaseApiKey BaseKV: properties: key: type: string title: Key value: anyOf: - type: string - type: 'null' title: Value type: object required: - key title: BaseKV BillingInformationSubscription: properties: user_id: type: string title: User Id stripe_customer_id: type: string title: Stripe Customer Id plan_type: type: string enum: - trial - pay_as_you_go - subscription title: Plan Type tier: type: string enum: - sandbox - pro - business - enterprise title: Tier default: sandbox subscription_period_start: anyOf: - type: string format: date-time - type: 'null' title: Subscription Period Start subscription_period_end: anyOf: - type: string format: date-time - type: 'null' title: Subscription Period End subscription_status: anyOf: - type: string enum: - incomplete - incomplete_expired - trialing - active - past_due - canceled - unpaid - paused - type: 'null' title: Subscription Status interval: anyOf: - type: string enum: - day - week - month - year - type: 'null' title: Interval cancel_at_period_end: anyOf: - type: boolean - type: 'null' title: Cancel At Period End price_id: anyOf: - type: string - type: 'null' title: Price Id type: object required: - user_id - stripe_customer_id - plan_type title: BillingInformationSubscription description: Billing Information Response BlobResourceContents: properties: uri: type: string minLength: 1 format: uri title: Uri mimeType: anyOf: - type: string - type: 'null' title: Mimetype _meta: anyOf: - additionalProperties: true type: object - type: 'null' title: Meta blob: type: string title: Blob additionalProperties: true type: object required: - uri - blob title: BlobResourceContents description: Binary contents of a resource. CallToolRequest: properties: method: type: string const: tools/call title: Method default: tools/call params: $ref: '#/components/schemas/CallToolRequestParams' additionalProperties: true type: object required: - params title: CallToolRequest description: Used by the client to invoke a tool provided by the server. CallToolRequestParams: properties: _meta: anyOf: - $ref: '#/components/schemas/Meta' - type: 'null' name: type: string title: Name arguments: anyOf: - additionalProperties: true type: object - type: 'null' title: Arguments additionalProperties: true type: object required: - name title: CallToolRequestParams description: Parameters for calling a tool. ChatVisibility: type: string enum: - public - private title: ChatVisibility CliAuthInsertModel: properties: jwt: anyOf: - type: string - type: 'null' title: Jwt type: object title: CliAuthInsertModel CliAuthModel: properties: id: type: string format: uuid title: Id created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At user_id: anyOf: - type: string - type: 'null' title: User Id jwt: anyOf: - type: string - type: 'null' title: Jwt type: object required: - id title: CliAuthModel CliTelemetryEvents: properties: session_id: type: string title: Session Id events: items: additionalProperties: true type: object type: array title: Events type: object required: - session_id - events title: CliTelemetryEvents CliVersionResponse: properties: installed_version: type: string title: Installed Version latest_version: type: string title: Latest Version is_update_available: type: boolean title: Is Update Available type: object required: - installed_version - latest_version - is_update_available title: CliVersionResponse ClientCapabilities: properties: experimental: anyOf: - additionalProperties: additionalProperties: true type: object type: object - type: 'null' title: Experimental sampling: anyOf: - $ref: '#/components/schemas/SamplingCapability' - type: 'null' elicitation: anyOf: - $ref: '#/components/schemas/ElicitationCapability' - type: 'null' roots: anyOf: - $ref: '#/components/schemas/RootsCapability' - type: 'null' additionalProperties: true type: object title: ClientCapabilities description: Capabilities a client may support. DailyEarnings: properties: date: type: string format: date title: Date earnings_cents: type: integer title: Earnings Cents type: object required: - date - earnings_cents title: DailyEarnings DailyTotalSubscribers: properties: date: type: string format: date title: Date total_subscribers: type: integer title: Total Subscribers type: object required: - date - total_subscribers title: DailyTotalSubscribers ElicitationCapability: properties: {} additionalProperties: true type: object title: ElicitationCapability description: Capability for elicitation operations. EmbeddedResource: properties: type: type: string const: resource title: Type resource: anyOf: - $ref: '#/components/schemas/TextResourceContents' - $ref: '#/components/schemas/BlobResourceContents' title: Resource annotations: anyOf: - $ref: '#/components/schemas/Annotations' - type: 'null' _meta: anyOf: - additionalProperties: true type: object - type: 'null' title: Meta additionalProperties: true type: object required: - type - resource title: EmbeddedResource description: 'The contents of a resource, embedded into a prompt or tool call result. It is up to the client how best to render embedded resources for the benefit of the LLM and/or the user.' ErrorData: properties: code: type: integer title: Code message: type: string title: Message data: anyOf: - {} - type: 'null' title: Data additionalProperties: true type: object required: - code - message title: ErrorData description: Error information for JSON-RPC error responses. Function: properties: name: type: string title: Name description: type: string title: Description parameters: $ref: '#/components/schemas/Parameters' type: object required: - name - description - parameters title: Function GenericToolRequest: properties: input: additionalProperties: true type: object title: Input name: type: string title: Name type: object required: - input - name title: GenericToolRequest description: Represents a tool call for Generic. GenericToolResponse: properties: content: type: string title: Content type: object required: - content title: GenericToolResponse description: Represents the results of a tool call for Generic. GetToolsRequest: properties: metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Metadata provider: type: string enum: - openai - anthropic - vercel - llamaindex title: Provider bundle: anyOf: - type: string - type: 'null' title: Bundle examples: - default type: object required: - provider title: GetToolsRequest description: Represents a tool call for Toolhouse. HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError Icon: properties: src: type: string title: Src mimeType: anyOf: - type: string - type: 'null' title: Mimetype sizes: anyOf: - items: type: string type: array - type: 'null' title: Sizes additionalProperties: true type: object required: - src title: Icon description: An icon for display in user interfaces. ImageContent: properties: type: type: string const: image title: Type data: type: string title: Data mimeType: type: string title: Mimetype annotations: anyOf: - $ref: '#/components/schemas/Annotations' - type: 'null' _meta: anyOf: - additionalProperties: true type: object - type: 'null' title: Meta additionalProperties: true type: object required: - type - data - mimeType title: ImageContent description: Image content for a message. Implementation: properties: name: type: string title: Name title: anyOf: - type: string - type: 'null' title: Title version: type: string title: Version websiteUrl: anyOf: - type: string - type: 'null' title: Websiteurl icons: anyOf: - items: $ref: '#/components/schemas/Icon' type: array - type: 'null' title: Icons additionalProperties: true type: object required: - name - version title: Implementation description: Describes the name and version of an MCP implementation. InitializeRequest: properties: method: type: string const: initialize title: Method default: initialize params: $ref: '#/components/schemas/InitializeRequestParams' additionalProperties: true type: object required: - params title: InitializeRequest description: 'This request is sent from the client to the server when it first connects, asking it to begin initialization.' InitializeRequestParams: properties: _meta: anyOf: - $ref: '#/components/schemas/Meta' - type: 'null' protocolVersion: anyOf: - type: string - type: integer title: Protocolversion capabilities: $ref: '#/components/schemas/ClientCapabilities' clientInfo: $ref: '#/components/schemas/Implementation' additionalProperties: true type: object required: - protocolVersion - capabilities - clientInfo title: InitializeRequestParams description: Parameters for the initialize request. InputSchema: properties: type: type: string const: object title: Type properties: additionalProperties: anyOf: - $ref: '#/components/schemas/Property' - $ref: '#/components/schemas/toolhouse_app__models__providers__providers_tools__anthropic__ArrayProperty' type: object title: Properties required: items: type: string type: array title: Required type: object required: - type - properties - required title: InputSchema JSONRPCError: properties: jsonrpc: type: string const: '2.0' title: Jsonrpc id: anyOf: - type: string - type: integer title: Id error: $ref: '#/components/schemas/ErrorData' additionalProperties: true type: object required: - jsonrpc - id - error title: JSONRPCError description: A response to a request that indicates an error occurred. JSONRPCResponse: properties: jsonrpc: type: string const: '2.0' title: Jsonrpc id: anyOf: - type: integer - type: string title: Id result: additionalProperties: true type: object title: Result additionalProperties: true type: object required: - jsonrpc - id - result title: JSONRPCResponse description: A successful (non-error) response to a request. ListToolsRequest: properties: method: type: string const: tools/list title: Method default: tools/list params: anyOf: - $ref: '#/components/schemas/PaginatedRequestParams' - type: 'null' additionalProperties: true type: object title: ListToolsRequest description: Sent from the client to request a list of tools the server has. MCPServer: properties: qualified_name: type: string title: Qualified Name description: Fully qualified server name display_name: type: string title: Display Name description: Display name for the server description: anyOf: - type: string - type: 'null' title: Description description: Server description use_count: type: integer minimum: 0.0 title: Use Count description: Number of times the server has been used is_remote: type: boolean title: Is Remote description: True if server is designed to run remotely created_at: type: string format: date-time title: Created At description: Creation timestamp homepage: anyOf: - type: string - type: 'null' title: Homepage description: Link to Smithery server page type: object required: - qualified_name - display_name - use_count - is_remote - created_at title: MCPServer description: MCP Server model for database storage MCPServerConnection: properties: type: type: string title: Type url: anyOf: - type: string maxLength: 2083 minLength: 1 format: uri - type: 'null' title: Url configSchema: additionalProperties: true type: object title: Configschema default: {} type: object required: - type title: MCPServerConnection McpServerLog: properties: id: type: string format: uuid title: Id user_id: type: string title: User Id agent_id: type: string format: uuid title: Agent Id run_id: type: string format: uuid title: Run Id tool_name: type: string title: Tool Name tool_call_id: type: string title: Tool Call Id start_time: type: string format: date-time title: Start Time end_time: anyOf: - type: string format: date-time - type: 'null' title: End Time type: object required: - id - user_id - agent_id - run_id - tool_name - tool_call_id - start_time - end_time title: McpServerLog Meta: properties: progressToken: anyOf: - type: string - type: integer - type: 'null' title: Progresstoken additionalProperties: true type: object title: Meta Metadata: properties: toolhouse_id: anyOf: - type: string - type: 'null' title: Toolhouse Id default: default toolhouse_timezone: anyOf: - type: number - type: 'null' title: Toolhouse Timezone default: 0 type: object title: Metadata description: Metadata Model MonetizationEarningsResponse: properties: data: items: $ref: '#/components/schemas/DailyEarnings' type: array title: Data type: object required: - data title: MonetizationEarningsResponse MonetizationSubscribersResponse: properties: data: items: $ref: '#/components/schemas/DailyTotalSubscribers' type: array title: Data type: object required: - data title: MonetizationSubscribersResponse MonetizationSummary: properties: total_subscribers: type: integer title: Total Subscribers description: Current active/trialing subscriber count (not period-filtered) total_earnings_cents: type: integer title: Total Earnings Cents description: Total earnings in cents within the requested period type: object required: - total_subscribers - total_earnings_cents title: MonetizationSummary OpenAIFunction: properties: arguments: additionalProperties: true type: object title: Arguments name: type: string title: Name type: object required: - arguments - name title: OpenAIFunction description: Represents a function call for OpenAI. examples: - arguments: '{"location": "San Francisco, CA"}' name: get_weather OpenAIToolRequest: properties: id: type: string title: Id function: $ref: '#/components/schemas/OpenAIFunction' type: type: string const: function title: Type type: object required: - id - function - type title: OpenAIToolRequest description: Represents a tool call for OpenAI. examples: - function: arguments: '{"location": "San Francisco, CA"}' name: get_weather id: this_is_the_id type: function OpenAIToolResponse: properties: role: type: string const: tool title: Role tool_call_id: type: string title: Tool Call Id name: type: string title: Name content: type: string title: Content type: object required: - role - tool_call_id - name - content title: OpenAIToolResponse description: Represents the results of a tool call for OpenAI. PaginatedRequestParams: properties: _meta: anyOf: - $ref: '#/components/schemas/Meta' - type: 'null' cursor: anyOf: - type: string - type: 'null' title: Cursor type: object title: PaginatedRequestParams Parameters: properties: type: type: string const: object title: Type properties: additionalProperties: anyOf: - $ref: '#/components/schemas/Property' - $ref: '#/components/schemas/toolhouse_app__models__providers__providers_tools__openai__ArrayProperty' type: object title: Properties type: object required: - type - properties title: Parameters Property: properties: type: type: string enum: - string - number - integer - object - array - boolean title: Type description: type: string title: Description type: object required: - type - description title: Property PublicTool: properties: id: type: string title: Id publisher: type: string title: Publisher tool_type: type: string enum: - local - remote title: Tool Type default: remote logo: type: string pattern: ^data:image\/svg\+xml;base64, title: Logo title: type: string title: Title category: type: string title: Category short_description: type: string title: Short Description long_description: type: string title: Long Description price_per_execution: type: number minimum: 0.0 title: Price Per Execution star_rating: type: number maximum: 5.0 minimum: 0.0 title: Star Rating executions: type: integer title: Executions description_for_model: type: string title: Description For Model arguments: anyOf: - items: $ref: '#/components/schemas/toolhouse_app__models__user_tools__Argument-Output' type: array - type: 'null' title: Arguments requires_config: type: boolean title: Requires Config default: false background_image: anyOf: - type: string - type: 'null' title: Background Image timeout: type: integer minimum: 1.0 title: Timeout default: 30 hidden: type: boolean title: Hidden default: false version: type: string title: Version featured: type: boolean title: Featured default: false upvotes: type: integer title: Upvotes default: 0 status: $ref: '#/components/schemas/ToolStatus' default: active type: object required: - id - publisher - logo - title - category - short_description - long_description - price_per_execution - star_rating - executions - description_for_model - version title: PublicTool ResourceLink: properties: name: type: string title: Name title: anyOf: - type: string - type: 'null' title: Title uri: type: string minLength: 1 format: uri title: Uri description: anyOf: - type: string - type: 'null' title: Description mimeType: anyOf: - type: string - type: 'null' title: Mimetype size: anyOf: - type: integer - type: 'null' title: Size icons: anyOf: - items: $ref: '#/components/schemas/Icon' type: array - type: 'null' title: Icons annotations: anyOf: - $ref: '#/components/schemas/Annotations' - type: 'null' _meta: anyOf: - additionalProperties: true type: object - type: 'null' title: Meta type: type: string const: resource_link title: Type additionalProperties: true type: object required: - name - uri - type title: ResourceLink description: 'A resource that the server is capable of reading, included in a prompt or tool call result. Note: resource links returned by tools are not guaranteed to appear in the results of `resources/list` requests.' RootsCapability: properties: listChanged: anyOf: - type: boolean - type: 'null' title: Listchanged additionalProperties: true type: object title: RootsCapability description: Capability for root operations. RunToolsRequest: properties: metadata: $ref: '#/components/schemas/Metadata' provider: type: string enum: - openai - anthropic - vercel - llamaindex title: Provider content: anyOf: - $ref: '#/components/schemas/AnthropicToolRequest' - $ref: '#/components/schemas/OpenAIToolRequest' - $ref: '#/components/schemas/GenericToolRequest' title: Content bundle: anyOf: - type: string - type: 'null' title: Bundle type: object required: - metadata - provider - content title: RunToolsRequest description: Represents a tool call for Toolhouse. RunToolsResponse: properties: provider: type: string enum: - openai - anthropic - vercel - llamaindex title: Provider content: anyOf: - $ref: '#/components/schemas/OpenAIToolResponse' - $ref: '#/components/schemas/AnthropicToolResponse' - $ref: '#/components/schemas/GenericToolResponse' title: Content type: object required: - provider - content title: RunToolsResponse description: Represents the results of a tool call for Toolhouse. SamplingCapability: properties: {} additionalProperties: true type: object title: SamplingCapability description: Capability for sampling operations. Schedule: properties: id: anyOf: - type: string format: uuid - type: 'null' title: Id user_id: type: string title: User Id chat_id: type: string format: uuid title: Chat Id created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At last_ran_at: anyOf: - type: string format: date-time - type: 'null' title: Last Ran At active: type: boolean title: Active default: true archived: type: boolean title: Archived default: false cadence: type: string title: Cadence bundle: anyOf: - type: string - type: 'null' title: Bundle default: default toolhouse_id: anyOf: - type: string - type: 'null' title: Toolhouse Id default: default vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars title: anyOf: - type: string - type: 'null' title: Title chat_archived: anyOf: - type: boolean - type: 'null' title: Chat Archived callback_url: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Callback Url type: object required: - user_id - chat_id - cadence title: Schedule ScheduleBackofficeRequest: properties: id: anyOf: - type: string format: uuid - type: 'null' title: Id type: object required: - id title: ScheduleBackofficeRequest ScheduleListResponse: properties: data: items: $ref: '#/components/schemas/Schedule' type: array title: Data type: object required: - data title: ScheduleListResponse ScheduleRequest: properties: chat_id: type: string format: uuid title: Chat Id cadence: type: string title: Cadence bundle: type: string title: Bundle default: default toolhouse_id: type: string title: Toolhouse Id default: default vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars callback_url: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Callback Url type: object required: - chat_id - cadence title: ScheduleRequest ScheduleUpdateRequest: properties: active: type: boolean title: Active default: true cadence: type: string title: Cadence bundle: anyOf: - type: string - type: 'null' title: Bundle default: default toolhouse_id: anyOf: - type: string - type: 'null' title: Toolhouse Id default: default vars: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Vars chat_id: anyOf: - type: string format: uuid - type: 'null' title: Chat Id callback_url: anyOf: - type: string minLength: 1 format: uri - type: 'null' title: Callback Url type: object required: - cadence title: ScheduleUpdateRequest ServerWithConnections: properties: connections: items: $ref: '#/components/schemas/MCPServerConnection' type: array title: Connections qualifiedName: type: string title: Qualifiedname description: Fully qualified server name displayName: type: string title: Displayname description: Display name for the server description: type: string title: Description description: Server description iconUrl: anyOf: - type: string maxLength: 2083 minLength: 1 format: uri - type: 'null' title: Iconurl description: URL to the server icon type: object required: - connections - qualifiedName - displayName - description title: ServerWithConnections Service: properties: name: type: string title: Name url: type: string maxLength: 2083 minLength: 1 format: uri title: Url type: object required: - name - url title: Service SlugRequest: properties: agent: type: string title: Agent type: object required: - agent title: SlugRequest StripeResponseSuccess: properties: success: type: boolean title: Success type: object required: - success title: StripeResponseSuccess description: Stripe Response Success StripeSession: properties: price_id: type: string title: Price Id session_url: type: string title: Session Url type: object required: - price_id - session_url title: StripeSession description: Stripe Session StripeSessionRequest: properties: price_ids: items: type: string type: array title: Price Ids success_payment_url: type: string title: Success Payment Url cancel_payment_url: type: string title: Cancel Payment Url billing_url: type: string title: Billing Url mode: type: string enum: - subscription - payment title: Mode default: subscription type: object required: - price_ids - success_payment_url - cancel_payment_url - billing_url title: StripeSessionRequest description: Stripe Session StripeSessionResponse: properties: sessions_urls: items: $ref: '#/components/schemas/StripeSession' type: array title: Sessions Urls billing_portal_url: type: string title: Billing Portal Url type: object required: - sessions_urls - billing_portal_url title: StripeSessionResponse description: Stripe Session Response TextContent: properties: type: type: string const: text title: Type text: type: string title: Text annotations: anyOf: - $ref: '#/components/schemas/Annotations' - type: 'null' _meta: anyOf: - additionalProperties: true type: object - type: 'null' title: Meta additionalProperties: true type: object required: - type - text title: TextContent description: Text content for a message. TextResourceContents: properties: uri: type: string minLength: 1 format: uri title: Uri mimeType: anyOf: - type: string - type: 'null' title: Mimetype _meta: anyOf: - additionalProperties: true type: object - type: 'null' title: Meta text: type: string title: Text additionalProperties: true type: object required: - uri - text title: TextResourceContents description: Text contents of a resource. Tool-Input: properties: id: type: string title: Id publisher: type: string title: Publisher tool_type: type: string enum: - local - remote title: Tool Type default: remote logo: type: string pattern: ^data:image\/svg\+xml;base64, title: Logo title: type: string title: Title category: type: string title: Category short_description: type: string title: Short Description long_description: type: string title: Long Description price_per_execution: type: number minimum: 0.0 title: Price Per Execution star_rating: type: number maximum: 5.0 minimum: 0.0 title: Star Rating executions: type: integer title: Executions url: type: string title: Url description_for_model: type: string title: Description For Model arguments: anyOf: - items: $ref: '#/components/schemas/Argument-Input' type: array - type: 'null' title: Arguments hidden: type: boolean title: Hidden default: false version: type: string title: Version featured: type: boolean title: Featured default: false status: $ref: '#/components/schemas/ToolStatus' default: active background_image: anyOf: - type: string - type: 'null' title: Background Image timeout: type: integer minimum: 1.0 title: Timeout default: 30 type: object required: - id - publisher - logo - title - category - short_description - long_description - price_per_execution - star_rating - executions - url - description_for_model - version title: Tool description: ToolHouse Tools Configuration ToolAnnotations: properties: title: anyOf: - type: string - type: 'null' title: Title readOnlyHint: anyOf: - type: boolean - type: 'null' title: Readonlyhint destructiveHint: anyOf: - type: boolean - type: 'null' title: Destructivehint idempotentHint: anyOf: - type: boolean - type: 'null' title: Idempotenthint openWorldHint: anyOf: - type: boolean - type: 'null' title: Openworldhint additionalProperties: true type: object title: ToolAnnotations description: 'Additional properties describing a Tool to clients. NOTE: all properties in ToolAnnotations are **hints**. They are not guaranteed to provide a faithful description of tool behavior (including descriptive properties like `title`). Clients should never make tool use decisions based on ToolAnnotations received from untrusted servers.' ToolExecutionLog: properties: user_id: type: string title: User Id tool_id: type: string title: Tool Id start_date: type: string format: date-time title: Start Date end_date: type: string format: date-time title: End Date duration_ms: type: number title: Duration Ms execution_cost: type: integer title: Execution Cost input: additionalProperties: true type: object title: Input output: type: string title: Output provider: type: string title: Provider id: type: integer title: Id type: object required: - user_id - tool_id - start_date - end_date - duration_ms - execution_cost - input - output - provider - id title: ToolExecutionLog description: Tool Execution Log ToolExecutionLogsResponse: properties: logs: items: $ref: '#/components/schemas/ToolExecutionLog' type: array title: Logs next_cursor: anyOf: - type: string format: date-time - type: 'null' title: Next Cursor type: object required: - logs - next_cursor title: ToolExecutionLogsResponse description: Tool Execution Log Response ToolResult: properties: content: items: anyOf: - $ref: '#/components/schemas/TextContent' - $ref: '#/components/schemas/ImageContent' - $ref: '#/components/schemas/AudioContent' - $ref: '#/components/schemas/ResourceLink' - $ref: '#/components/schemas/EmbeddedResource' type: array title: Content structuredContent: anyOf: - additionalProperties: true type: object - type: 'null' title: Structuredcontent type: object required: - content title: ToolResult ToolSet: properties: name: type: string title: Name description: type: string title: Description image: anyOf: - type: string - type: 'null' title: Image type: object required: - name - description title: ToolSet ToolSetWithTools: properties: name: type: string title: Name description: type: string title: Description image: anyOf: - type: string - type: 'null' title: Image tools: items: type: string type: array title: Tools type: object required: - name - description - tools title: ToolSetWithTools ToolStatus: type: string enum: - active - pending - rejected title: ToolStatus description: Tool Status UpdateMonthlyCreditAllowance: properties: amount: type: integer title: Amount type: object required: - amount title: UpdateMonthlyCreditAllowance description: Update Monthly Credit Allowance UpsellDescription: properties: description: type: string title: Description use_cases: items: type: string type: array title: Use Cases type: object required: - description - use_cases title: UpsellDescription User: properties: id: type: string title: Id auth_id: type: string title: Auth Id email: type: string title: Email created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At type: object required: - id - auth_id - email title: User description: User UserAuthenticated: properties: user_id: type: string title: User Id api_key: type: string title: Api Key authorization_header: type: string title: Authorization Header tier: type: string title: Tier type: object required: - user_id - api_key - authorization_header - tier title: UserAuthenticated description: User Authenticated UserBundle: properties: name: type: string title: Name hidden: type: boolean title: Hidden default: false id: type: integer title: Id user_id: type: string title: User Id type: object required: - name - id - user_id title: UserBundle UserBundleRequest: properties: name: type: string title: Name hidden: type: boolean title: Hidden default: false type: object required: - name title: UserBundleRequest description: User Bundle Create UserBundleRow: properties: id: type: integer title: Id name: type: string title: Name user_id: type: string title: User Id hidden: type: boolean title: Hidden type: object required: - id - name - user_id - hidden title: UserBundleRow description: User Bundle UserBundleSimplified: properties: id: type: integer title: Id name: type: string title: Name user_id: type: string title: User Id number_of_tools: type: integer title: Number Of Tools default: 0 hidden: type: boolean title: Hidden type: object required: - id - name - user_id - hidden title: UserBundleSimplified description: User Bundle UserBundleTool: properties: id: anyOf: - type: integer - type: 'null' title: Id user_bundle_id: anyOf: - type: integer - type: 'null' title: User Bundle Id tool_id: type: string title: Tool Id config: anyOf: - additionalProperties: true type: object - type: 'null' title: Config type: object required: - tool_id title: UserBundleTool UserCreate: properties: first_name: anyOf: - type: string - type: 'null' title: First Name last_name: anyOf: - type: string - type: 'null' title: Last Name email: type: string format: email title: Email verified: type: boolean title: Verified default: false type: object required: - email title: UserCreate description: User model for the backend API. UserFeedbackRequest: properties: user_feedback: type: string enum: - approved - rejected - pending title: User Feedback type: object required: - user_feedback title: UserFeedbackRequest UserInstallToolRequest: properties: tool_id: type: string title: Tool Id config: anyOf: - additionalProperties: true type: object - type: 'null' title: Config type: object required: - tool_id title: UserInstallToolRequest description: User Install Tool Request UserInstalledTool: properties: id: type: integer title: Id user_id: type: string title: User Id tool_id: type: string title: Tool Id config: anyOf: - additionalProperties: true type: object - type: 'null' title: Config type: object required: - id - user_id - tool_id title: UserInstalledTool description: User Installed Tool UserTool: properties: id: type: string title: Id publisher: type: string title: Publisher tool_type: type: string enum: - local - remote title: Tool Type default: remote logo: type: string pattern: ^data:image\/svg\+xml;base64, title: Logo title: type: string title: Title category: type: string title: Category short_description: type: string title: Short Description long_description: type: string title: Long Description price_per_execution: type: number minimum: 0.0 title: Price Per Execution star_rating: type: number maximum: 5.0 minimum: 0.0 title: Star Rating executions: type: integer title: Executions description_for_model: type: string title: Description For Model arguments: anyOf: - items: $ref: '#/components/schemas/toolhouse_app__models__user_tools__Argument-Output' type: array - type: 'null' title: Arguments requires_config: type: boolean title: Requires Config default: false background_image: anyOf: - type: string - type: 'null' title: Background Image timeout: type: integer minimum: 1.0 title: Timeout default: 30 user_tool_id: anyOf: - type: integer - type: 'null' title: User Tool Id user_id: anyOf: - type: string - type: 'null' title: User Id config: anyOf: - additionalProperties: true type: object - type: 'null' title: Config hidden: type: boolean title: Hidden default: false version: type: string title: Version featured: type: boolean title: Featured default: false status: $ref: '#/components/schemas/ToolStatus' default: active connections: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Connections installed: type: boolean title: Installed description: Installed readOnly: true type: object required: - id - publisher - logo - title - category - short_description - long_description - price_per_execution - star_rating - executions - description_for_model - version - installed title: UserTool description: User Tool UserWithTier: properties: id: type: string title: Id auth_id: type: string title: Auth Id email: type: string title: Email created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At tier: type: string enum: - sandbox - pro - business - enterprise title: Tier default: sandbox type: object required: - id - auth_id - email title: UserWithTier description: User with tier ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError VibeCoderListResponse: properties: services: items: $ref: '#/components/schemas/Service' type: array title: Services type: object required: - services title: VibeCoderListResponse VibeCoderPromptResponse: properties: prompt: type: string title: Prompt url: type: string maxLength: 2083 minLength: 1 format: uri title: Url type: object required: - prompt - url title: VibeCoderPromptResponse description: Vibe Coder Response VipCodeRedeemed: properties: redeemed: type: boolean title: Redeemed type: object required: - redeemed title: VipCodeRedeemed VipCodeRedemptionCount: properties: redemption_count: type: integer title: Redemption Count vip_code: type: string title: Vip Code type: object required: - redemption_count - vip_code title: VipCodeRedemptionCount VipCodeRequest: properties: vip_code: type: string title: Vip Code type: object required: - vip_code title: VipCodeRequest mcp__types__Tool: properties: name: type: string title: Name title: anyOf: - type: string - type: 'null' title: Title description: anyOf: - type: string - type: 'null' title: Description inputSchema: additionalProperties: true type: object title: Inputschema outputSchema: anyOf: - additionalProperties: true type: object - type: 'null' title: Outputschema icons: anyOf: - items: $ref: '#/components/schemas/Icon' type: array - type: 'null' title: Icons annotations: anyOf: - $ref: '#/components/schemas/ToolAnnotations' - type: 'null' _meta: anyOf: - additionalProperties: true type: object - type: 'null' title: Meta additionalProperties: true type: object required: - name - inputSchema title: Tool description: Definition for a tool the client can call. toolhouse_app__models__providers__providers_tools__anthropic__ArrayItemsType: properties: type: type: string enum: - string - number - integer - boolean title: Type type: object required: - type title: ArrayItemsType toolhouse_app__models__providers__providers_tools__anthropic__ArrayProperty: properties: type: type: string enum: - string - number - integer - object - array - boolean title: Type description: type: string title: Description items: $ref: '#/components/schemas/toolhouse_app__models__providers__providers_tools__anthropic__ArrayItemsType' type: object required: - type - description - items title: ArrayProperty toolhouse_app__models__providers__providers_tools__anthropic__Tool: properties: name: type: string title: Name description: type: string title: Description input_schema: $ref: '#/components/schemas/InputSchema' type: object required: - name - description - input_schema title: Tool toolhouse_app__models__providers__providers_tools__generic__Argument: properties: name: type: string title: Name items: anyOf: - $ref: '#/components/schemas/toolhouse_app__models__providers__providers_tools__generic__ArrayItemsType' - type: 'null' type: type: string enum: - string - number - integer - object - array - boolean title: Type description: type: string title: Description required: type: boolean title: Required type: object required: - name - type - description - required title: Argument description: Tool Arguments toolhouse_app__models__providers__providers_tools__generic__ArrayItemsType: properties: type: type: string enum: - string - number - integer - boolean title: Type type: object required: - type title: ArrayItemsType description: Array Items toolhouse_app__models__providers__providers_tools__generic__Tool: properties: name: type: string title: Name title: type: string title: Title description: type: string title: Description arguments: items: $ref: '#/components/schemas/toolhouse_app__models__providers__providers_tools__generic__Argument' type: array title: Arguments type: object required: - name - title - description - arguments title: Tool description: Generic Tool Configuration toolhouse_app__models__providers__providers_tools__openai__ArrayItemsType: properties: type: type: string enum: - string - number - integer - boolean title: Type type: object required: - type title: ArrayItemsType toolhouse_app__models__providers__providers_tools__openai__ArrayProperty: properties: type: type: string enum: - string - number - integer - object - array - boolean title: Type description: type: string title: Description items: $ref: '#/components/schemas/toolhouse_app__models__providers__providers_tools__openai__ArrayItemsType' type: object required: - type - description - items title: ArrayProperty toolhouse_app__models__providers__providers_tools__openai__Tool: properties: type: type: string const: function title: Type function: $ref: '#/components/schemas/Function' required: items: type: string type: array title: Required type: object required: - type - function - required title: Tool toolhouse_app__models__user_tools__Argument-Output: properties: name: type: string title: Name items: anyOf: - $ref: '#/components/schemas/toolhouse_app__models__user_tools__ArrayItemsType' - type: 'null' type: type: string enum: - string - number - integer - array - boolean title: Type source: type: string enum: - llm - user - metadata title: Source label: type: string title: Label description: type: string title: Description required: type: boolean title: Required type: object required: - name - type - source - label - description - required title: Argument description: Tool Arguments toolhouse_app__models__user_tools__ArrayItemsType: properties: type: type: string enum: - string - number - integer - boolean title: Type type: object required: - type title: ArrayItemsType description: Array Items toolhouse_app__models__user_tools__Tool-Output: properties: id: type: string title: Id publisher: type: string title: Publisher tool_type: type: string enum: - local - remote title: Tool Type default: remote logo: type: string pattern: ^data:image\/svg\+xml;base64, title: Logo title: type: string title: Title category: type: string title: Category short_description: type: string title: Short Description long_description: type: string title: Long Description price_per_execution: type: number minimum: 0.0 title: Price Per Execution star_rating: type: number maximum: 5.0 minimum: 0.0 title: Star Rating executions: type: integer title: Executions url: type: string title: Url description_for_model: type: string title: Description For Model arguments: anyOf: - items: $ref: '#/components/schemas/toolhouse_app__models__user_tools__Argument-Output' type: array - type: 'null' title: Arguments hidden: type: boolean title: Hidden default: false version: type: string title: Version featured: type: boolean title: Featured default: false status: $ref: '#/components/schemas/ToolStatus' default: active background_image: anyOf: - type: string - type: 'null' title: Background Image timeout: type: integer minimum: 1.0 title: Timeout default: 30 type: object required: - id - publisher - logo - title - category - short_description - long_description - price_per_execution - star_rating - executions - url - description_for_model - version title: Tool description: ToolHouse Tools Configuration securitySchemes: HTTPBearer: type: http scheme: bearer tags: - name: Agent Runs - name: API Keys - name: Backoffice - name: Logs - name: Public - name: SDK API - name: User API - name: V2