openapi: 3.1.0 info: title: Toolhouse Agent Runs User API API description: All the API! \o/ version: 0.1.0 tags: - name: User API paths: /me/agent-runs: get: tags: - User API summary: 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: - User API summary: 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: - User API summary: 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: - User API summary: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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/list: get: tags: - User API summary: Get Agents List operationId: get_agents_list_me_agents_list_get security: - HTTPBearer: [] parameters: - name: limit in: query required: false schema: type: integer default: 30 title: Limit - name: next_cursor in: query required: false schema: anyOf: - type: string - type: 'null' title: Next Cursor - name: search in: query required: false schema: anyOf: - type: string - type: 'null' title: Search responses: '200': description: Successfully retrieved paginated agents content: application/json: schema: $ref: '#/components/schemas/AgentListResponse' '400': description: Invalid pagination cursor '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/agents/{agent_id}: get: tags: - User API summary: 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: 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: 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: 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/agents/{agent_id}/transfer: post: tags: - User API summary: Transfer Agent description: Transfer agent ownership to another user (Toolhouse employees only) operationId: transfer_agent_me_agents__agent_id__transfer_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/TransferAgentRequest' responses: '200': description: Successfully transferred agent content: application/json: schema: type: object additionalProperties: true title: Response Transfer Agent Me Agents Agent Id Transfer Post '403': description: Only Toolhouse employees can transfer agents '404': description: Agent or recipient user not found '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/api-keys: get: tags: - User API summary: 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: - User API summary: 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: - User API summary: 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: - User API summary: 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: - User API summary: 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: 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/chats: get: tags: - User API summary: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: - User API summary: 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: - User API summary: 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/metrics/agent-runs: get: tags: - User API summary: Get Agent Run Metrics operationId: get_agent_run_metrics_me_metrics_agent_runs_get security: - HTTPBearer: [] parameters: - name: days in: query required: false schema: type: integer maximum: 90 minimum: 1 default: 7 title: Days - name: bucket_hours in: query required: false schema: $ref: '#/components/schemas/BucketHours' default: 12 responses: '200': description: Successfully retrieved agent run metrics content: application/json: schema: $ref: '#/components/schemas/AgentRunMetricsResponse' '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/metrics/agent-runs/summary: get: tags: - User API summary: Get Agent Run Metrics Summary operationId: get_agent_run_metrics_summary_me_metrics_agent_runs_summary_get security: - HTTPBearer: [] parameters: - name: days in: query required: false schema: type: integer maximum: 90 minimum: 1 default: 7 title: Days - name: bucket_hours in: query required: false schema: $ref: '#/components/schemas/BucketHours' default: 12 responses: '200': description: Successfully retrieved agent run metrics summary content: application/json: schema: $ref: '#/components/schemas/AgentRunMetricsSummary' '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/metrics/agent-runs/volume: get: tags: - User API summary: Get Agent Run Metrics Volume operationId: get_agent_run_metrics_volume_me_metrics_agent_runs_volume_get security: - HTTPBearer: [] parameters: - name: days in: query required: false schema: type: integer maximum: 90 minimum: 1 default: 7 title: Days - name: bucket_hours in: query required: false schema: $ref: '#/components/schemas/BucketHours' default: 12 responses: '200': description: Successfully retrieved agent run volume metrics content: application/json: schema: $ref: '#/components/schemas/RunVolumeResponse' '500': description: Internal server error '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /me/metrics/agent-runs/agents: get: tags: - User API summary: Get Agent Run Metrics Agents operationId: get_agent_run_metrics_agents_me_metrics_agent_runs_agents_get security: - HTTPBearer: [] parameters: - name: days in: query required: false schema: type: integer maximum: 90 minimum: 1 default: 7 title: Days - name: bucket_hours in: query required: false schema: $ref: '#/components/schemas/BucketHours' default: 12 responses: '200': description: Successfully retrieved agent run metrics by agent content: application/json: schema: $ref: '#/components/schemas/AgentRunBreakdownResponse' '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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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/: get: tags: - User API summary: 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/vibe/services: get: tags: - User API summary: 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: 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: 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: 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: 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: Get Mcp Servers operationId: get_mcp_servers_me_mcp_servers_get responses: '200': description: Successfully retrieved MCP servers content: application/json: schema: items: $ref: '#/components/schemas/MCPServerTool' 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: Get Smithery Mcp Server Details 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/MCPServerTool' '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' components: schemas: VibeCoderListResponse: properties: services: items: $ref: '#/components/schemas/Service' type: array title: Services type: object required: - services title: VibeCoderListResponse SlugRequest: properties: agent: type: string title: Agent type: object required: - agent title: SlugRequest 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 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 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 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 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 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 last_ran_at: anyOf: - type: string format: date-time - type: 'null' title: Last Ran At user_feedback: type: string enum: - approved - rejected - pending title: User Feedback default: pending type: object required: - id - user_id title: AgentModel 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 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 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 AgentSubscriptionListResponse: properties: data: items: $ref: '#/components/schemas/AgentSubscriptionResponse' type: array title: Data type: object required: - data title: AgentSubscriptionListResponse 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 AgentRunTrendPoint: properties: bucket_start: type: string format: date-time title: Bucket Start bucket_end: type: string format: date-time title: Bucket End label: type: string title: Label total: type: integer title: Total type: object required: - bucket_start - bucket_end - label - total title: AgentRunTrendPoint 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 HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError 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 AgentRunBreakdownRow: properties: agent_id: type: string format: uuid title: Agent Id title: type: string title: Title total: type: integer title: Total completed: type: integer title: Completed failed: type: integer title: Failed active: type: integer title: Active success_rate: anyOf: - type: number - type: 'null' title: Success Rate latest_run_at: type: string format: date-time title: Latest Run At trend: items: $ref: '#/components/schemas/AgentRunTrendPoint' type: array title: Trend type: object required: - agent_id - title - total - completed - failed - active - success_rate - latest_run_at - trend title: AgentRunBreakdownRow MonetizationEarningsResponse: properties: data: items: $ref: '#/components/schemas/DailyEarnings' type: array title: Data type: object required: - data title: MonetizationEarningsResponse 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 CliAuthInsertModel: properties: jwt: anyOf: - type: string - type: 'null' title: Jwt type: object title: CliAuthInsertModel 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 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) 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 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-05-15T16:42:26.132612Z' type: object required: - user_id - total_executions - allowed_monthly_executions - reset_datetime title: AgentExecutionCredits 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 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 ScheduleUpdateRequest: properties: active: type: boolean title: Active default: true cadence: type: string title: Cadence 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 BucketHours: type: integer enum: - 1 - 2 - 3 - 4 - 6 - 8 - 12 - 24 title: BucketHours 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 UserFeedbackRequest: properties: user_feedback: type: string enum: - approved - rejected - pending title: User Feedback type: object required: - user_feedback title: UserFeedbackRequest RunVolumeResponse: properties: data: items: $ref: '#/components/schemas/RunVolumeRow' type: array title: Data type: object required: - data title: RunVolumeResponse 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 AgentRunMetricsSummary: properties: total_runs: type: integer title: Total Runs completed_runs: type: integer title: Completed Runs failed_runs: type: integer title: Failed Runs active_runs: type: integer title: Active Runs success_rate: anyOf: - type: number - type: 'null' title: Success Rate failure_rate: anyOf: - type: number - type: 'null' title: Failure Rate type: object required: - total_runs - completed_runs - failed_runs - active_runs - success_rate - failure_rate title: AgentRunMetricsSummary AgentRunMetricsResponse: properties: total_runs: type: integer title: Total Runs completed_runs: type: integer title: Completed Runs failed_runs: type: integer title: Failed Runs active_runs: type: integer title: Active Runs success_rate: anyOf: - type: number - type: 'null' title: Success Rate failure_rate: anyOf: - type: number - type: 'null' title: Failure Rate days: type: integer title: Days bucket_hours: type: integer title: Bucket Hours chart_rows: items: $ref: '#/components/schemas/RunVolumeRow' type: array title: Chart Rows agent_rows: items: $ref: '#/components/schemas/AgentRunBreakdownRow' type: array title: Agent Rows type: object required: - total_runs - completed_runs - failed_runs - active_runs - success_rate - failure_rate - days - bucket_hours - chart_rows - agent_rows title: AgentRunMetricsResponse ChatVisibility: type: string enum: - public - private title: ChatVisibility 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 AgentListItem: properties: id: type: string format: uuid title: Id title: anyOf: - type: string - type: 'null' title: Title slug: anyOf: - type: string - type: 'null' title: Slug public: anyOf: - type: boolean - type: 'null' title: Public 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 last_ran_at: anyOf: - type: string format: date-time - type: 'null' title: Last Ran At count_runs: type: integer title: Count Runs default: 0 type: object required: - id - user_id title: AgentListItem ScheduleRequest: properties: chat_id: type: string format: uuid title: Chat Id cadence: type: string title: Cadence 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 TransferAgentRequest: properties: recipient_email: type: string title: Recipient Email description: Email of the recipient user type: object required: - recipient_email title: TransferAgentRequest ApiKeyCreate: properties: name: type: string title: Name type: object required: - name title: ApiKeyCreate description: API Key Create MCPServerTool: properties: id: type: string title: Id publisher: type: string title: Publisher tool_type: type: string title: Tool Type logo: type: string 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 title: Price Per Execution star_rating: type: number title: Star Rating executions: type: integer title: Executions description_for_model: type: string title: Description For Model arguments: items: additionalProperties: true type: object type: array title: Arguments hidden: type: boolean title: Hidden version: type: string title: Version featured: type: boolean title: Featured requires_config: type: boolean title: Requires Config background_image: anyOf: - type: string - type: 'null' title: Background Image timeout: type: integer title: Timeout connections: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Connections installed: type: boolean title: Installed readOnly: true type: object required: - id - publisher - tool_type - logo - title - category - short_description - long_description - price_per_execution - star_rating - executions - description_for_model - arguments - hidden - version - featured - requires_config - background_image - timeout - installed title: MCPServerTool DailyEarnings: properties: date: type: string format: date title: Date earnings_cents: type: integer title: Earnings Cents type: object required: - date - earnings_cents title: DailyEarnings 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 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 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 DailyTotalSubscribers: properties: date: type: string format: date title: Date total_subscribers: type: integer title: Total Subscribers type: object required: - date - total_subscribers title: DailyTotalSubscribers 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 AgentListResponse: properties: data: items: $ref: '#/components/schemas/AgentListItem' type: array title: Data next_cursor: anyOf: - type: string - type: 'null' title: Next Cursor total_count: type: integer title: Total Count type: object required: - data - next_cursor - total_count title: AgentListResponse RunVolumeRow: properties: bucket_start: type: string format: date-time title: Bucket Start bucket_end: type: string format: date-time title: Bucket End label: type: string title: Label total: type: integer title: Total completed: type: integer title: Completed failed: type: integer title: Failed active: type: integer title: Active type: object required: - bucket_start - bucket_end - label - total - completed - failed - active title: RunVolumeRow VipCodeRedeemed: properties: redeemed: type: boolean title: Redeemed type: object required: - redeemed title: VipCodeRedeemed 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) 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 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 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 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 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' type: object title: AgentRequestPartial 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 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 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 AgentSubscribeResponse: properties: checkout_url: type: string title: Checkout Url type: object required: - checkout_url title: AgentSubscribeResponse 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 VipCodeRequest: properties: vip_code: type: string title: Vip Code type: object required: - vip_code title: VipCodeRequest ScheduleListResponse: properties: data: items: $ref: '#/components/schemas/Schedule' type: array title: Data type: object required: - data title: ScheduleListResponse 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 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 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 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 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 AgentRunBreakdownResponse: properties: data: items: $ref: '#/components/schemas/AgentRunBreakdownRow' type: array title: Data type: object required: - data title: AgentRunBreakdownResponse MonetizationSubscribersResponse: properties: data: items: $ref: '#/components/schemas/DailyTotalSubscribers' type: array title: Data type: object required: - data title: MonetizationSubscribersResponse 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 AgentThemePreferenceUpsertRequest: properties: theme_color: type: string title: Theme Color type: object required: - theme_color title: AgentThemePreferenceUpsertRequest AgentFileResponse: properties: data: $ref: '#/components/schemas/AgentFileModel' type: object required: - data title: AgentFileResponse description: API response wrapper for a single file 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 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 securitySchemes: HTTPBearer: type: http scheme: bearer