{ "openapi": "3.1.0", "info": { "title": "OpenHands", "description": "OpenHands: Code Less, Make More", "version": "0.53.0" }, "paths": { "/api/options/models": { "get": { "summary": "List Supported Models", "description": "List model identifiers available on this server based on configured providers.", "operationId": "get_litellm_models_api_options_models_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array", "title": "Response Get Litellm Models Api Options Models Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/options/agents": { "get": { "summary": "List Agents", "description": "List available agent types supported by this server.", "operationId": "get_agents_api_options_agents_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array", "title": "Response Get Agents Api Options Agents Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/options/security-analyzers": { "get": { "summary": "List Security Analyzers", "description": "List supported security analyzers.", "operationId": "get_security_analyzers_api_options_security_analyzers_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array", "title": "Response Get Security Analyzers Api Options Security Analyzers Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/options/config": { "get": { "summary": "Get Config", "description": "Get current config.", "operationId": "get_config_api_options_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Get Config Api Options Config Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/conversations/{conversation_id}/list-files": { "get": { "summary": "List Workspace Files", "description": "List workspace files visible to the conversation runtime. Applies .gitignore and internal ignore rules.", "operationId": "list_files_api_conversations__conversation_id__list_files_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } }, { "name": "path", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" }, "title": "Response List Files Api Conversations Conversation Id List Files Get" } } } }, "404": { "description": "Runtime not initialized", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response 404 List Files Api Conversations Conversation Id List Files Get" } } } }, "500": { "description": "Error listing or filtering files", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response 500 List Files Api Conversations Conversation Id List Files Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/select-file": { "get": { "summary": "Get File Content", "description": "Return the content of the given file from the conversation workspace.", "operationId": "select_file_api_conversations__conversation_id__select_file_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } }, { "name": "file", "in": "query", "required": true, "schema": { "type": "string", "title": "File" } } ], "responses": { "200": { "description": "File content returned as JSON", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "string" }, "title": "Response 200 Select File Api Conversations Conversation Id Select File Get" } } } }, "500": { "description": "Error opening file", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response 500 Select File Api Conversations Conversation Id Select File Get" } } } }, "415": { "description": "Unsupported media type", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response 415 Select File Api Conversations Conversation Id Select File Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/zip-directory": { "get": { "summary": "Download Workspace Archive", "operationId": "zip_current_workspace_api_conversations__conversation_id__zip_directory_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Zipped workspace returned as FileResponse", "content": { "application/json": { "schema": {} } } }, "500": { "description": "Error zipping workspace", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response 500 Zip Current Workspace Api Conversations Conversation Id Zip Directory Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "description": "Return a ZIP archive of the current conversation workspace." } }, "/api/conversations/{conversation_id}/git/changes": { "get": { "summary": "Git Changes", "operationId": "git_changes_api_conversations__conversation_id__git_changes_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "string" } }, "title": "Response Git Changes Api Conversations Conversation Id Git Changes Get" } } } }, "404": { "description": "Not a git repository", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response 404 Git Changes Api Conversations Conversation Id Git Changes Get" } } } }, "500": { "description": "Error getting changes", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response 500 Git Changes Api Conversations Conversation Id Git Changes Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/git/diff": { "get": { "summary": "Git Diff", "operationId": "git_diff_api_conversations__conversation_id__git_diff_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } }, { "name": "path", "in": "query", "required": true, "schema": { "type": "string", "title": "Path" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Git Diff Api Conversations Conversation Id Git Diff Get" } } } }, "500": { "description": "Error getting diff", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response 500 Git Diff Api Conversations Conversation Id Git Diff Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/upload-files": { "post": { "summary": "Upload Files", "operationId": "upload_files_api_conversations__conversation_id__upload_files_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_upload_files_api_conversations__conversation_id__upload_files_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/POSTUploadFilesModel" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/submit-feedback": { "post": { "summary": "Submit Feedback", "description": "Submit user feedback.\n\nThis function stores the provided feedback data.\n\nTo submit feedback:", "operationId": "submit_feedback_api_conversations__conversation_id__submit_feedback_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/config": { "get": { "summary": "Get Remote Runtime Config", "description": "Retrieve the runtime configuration.\n\nCurrently, this is the session ID and runtime ID (if available).", "operationId": "get_remote_runtime_config_api_conversations__conversation_id__config_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/events": { "get": { "summary": "Search Events", "description": "Search through the event stream with filtering and pagination.", "operationId": "search_events_api_conversations__conversation_id__events_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } }, { "name": "start_id", "in": "query", "required": false, "schema": { "type": "integer", "default": 0, "title": "Start Id" } }, { "name": "end_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "End Id" } }, { "name": "reverse", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Reverse" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "title": "Limit" } } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/EventFilter" }, { "type": "null" } ], "title": "Filter" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "summary": "Add Event", "operationId": "add_event_api_conversations__conversation_id__events_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/microagents": { "get": { "summary": "Get Microagents", "description": "Get all microagents associated with the conversation.\n\nThis endpoint returns all repository and knowledge microagents that are loaded for the conversation.", "operationId": "get_microagents_api_conversations__conversation_id__microagents_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations": { "post": { "summary": "New Conversation", "description": "Initialize a new session or join an existing one.\n\nAfter successful initialization, the client should connect to the WebSocket\nusing the returned conversation ID.", "operationId": "new_conversation_api_conversations_post", "security": [ { "APIKeyHeader": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InitSessionRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "summary": "Search Conversations", "operationId": "search_conversations_api_conversations_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "page_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Page Id" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "default": 20, "title": "Limit" } }, { "name": "selected_repository", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Selected Repository" } }, { "name": "conversation_trigger", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ConversationTrigger" }, { "type": "null" } ], "title": "Conversation Trigger" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationInfoResultSet" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}": { "get": { "summary": "Get Conversation", "operationId": "get_conversation_api_conversations__conversation_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/ConversationInfo" }, { "type": "null" } ], "title": "Response Get Conversation Api Conversations Conversation Id Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "summary": "Delete Conversation", "operationId": "delete_conversation_api_conversations__conversation_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "boolean", "title": "Response Delete Conversation Api Conversations Conversation Id Delete" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "summary": "Update Conversation", "description": "Update conversation metadata.\n\nThis endpoint allows updating conversation details like title.\nOnly the conversation owner can update the conversation.", "operationId": "update_conversation_api_conversations__conversation_id__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateConversationRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "boolean", "title": "Response Update Conversation Api Conversations Conversation Id Patch" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/remember-prompt": { "get": { "summary": "Get Prompt", "operationId": "get_prompt_api_conversations__conversation_id__remember_prompt_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } }, { "name": "event_id", "in": "query", "required": true, "schema": { "type": "integer", "title": "Event Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/start": { "post": { "summary": "Start Conversation", "description": "Start an agent loop for a conversation.\n\nThis endpoint calls the conversation_manager's maybe_start_agent_loop method\nto start a conversation. If the conversation is already running, it will\nreturn the existing agent loop info.", "operationId": "start_conversation_api_conversations__conversation_id__start_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProvidersSetModel" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/stop": { "post": { "summary": "Stop Conversation", "description": "Stop an agent loop for a conversation.\n\nThis endpoint calls the conversation_manager's close_session method\nto stop a conversation.", "operationId": "stop_conversation_api_conversations__conversation_id__stop_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/settings": { "get": { "summary": "Load Settings", "operationId": "load_settings_api_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GETSettingsModel" } } } }, "404": { "description": "Settings not found", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response 404 Load Settings Api Settings Get" } } } }, "401": { "description": "Invalid token", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response 401 Load Settings Api Settings Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "summary": "Store Settings", "operationId": "store_settings_api_settings_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Settings" } } }, "required": true }, "responses": { "200": { "description": "Settings stored successfully", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response 200 Store Settings Api Settings Post" } } } }, "500": { "description": "Error storing settings", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response 500 Store Settings Api Settings Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/reset-settings": { "post": { "summary": "Reset Settings", "description": "Resets user settings. (Deprecated)", "operationId": "reset_settings_api_reset_settings_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "410": { "description": "Reset settings functionality has been removed", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response 410 Reset Settings Api Reset Settings Post" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/add-git-providers": { "post": { "summary": "Store Provider Tokens", "operationId": "store_provider_tokens_api_add_git_providers_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/POSTProviderModel" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/unset-provider-tokens": { "post": { "summary": "Unset Provider Tokens", "operationId": "unset_provider_tokens_api_unset_provider_tokens_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Response Unset Provider Tokens Api Unset Provider Tokens Post" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/secrets": { "get": { "summary": "Load Custom Secrets Names", "operationId": "load_custom_secrets_names_api_secrets_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GETCustomSecrets" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "summary": "Create Custom Secret", "operationId": "create_custom_secret_api_secrets_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomSecretModel" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Response Create Custom Secret Api Secrets Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/secrets/{secret_id}": { "put": { "summary": "Update Custom Secret", "operationId": "update_custom_secret_api_secrets__secret_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "secret_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Secret Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomSecretWithoutValueModel" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "type": "string" }, "title": "Response Update Custom Secret Api Secrets Secret Id Put" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "summary": "Delete Custom Secret", "operationId": "delete_custom_secret_api_secrets__secret_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "secret_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Secret Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/user/installations": { "get": { "summary": "Get User Installations", "operationId": "get_user_installations_api_user_installations_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "query", "required": true, "schema": { "$ref": "#/components/schemas/ProviderType" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" }, "title": "Response Get User Installations Api User Installations Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/user/repositories": { "get": { "summary": "Get User Repositories", "operationId": "get_user_repositories_api_user_repositories_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "sort", "in": "query", "required": false, "schema": { "type": "string", "default": "pushed", "title": "Sort" } }, { "name": "selected_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ProviderType" }, { "type": "null" } ], "title": "Selected Provider" } }, { "name": "page", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Page" } }, { "name": "per_page", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Per Page" } }, { "name": "installation_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Installation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Repository" }, "title": "Response Get User Repositories Api User Repositories Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/user/info": { "get": { "summary": "Get User", "operationId": "get_user_api_user_info_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/User" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/user/search/repositories": { "get": { "summary": "Search Repositories", "operationId": "search_repositories_api_user_search_repositories_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "query", "in": "query", "required": true, "schema": { "type": "string", "title": "Query" } }, { "name": "per_page", "in": "query", "required": false, "schema": { "type": "integer", "default": 5, "title": "Per Page" } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": "string", "default": "stars", "title": "Sort" } }, { "name": "order", "in": "query", "required": false, "schema": { "type": "string", "default": "desc", "title": "Order" } }, { "name": "selected_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ProviderType" }, { "type": "null" } ], "title": "Selected Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Repository" }, "title": "Response Search Repositories Api User Search Repositories Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/user/suggested-tasks": { "get": { "summary": "Get Suggested Tasks", "description": "Get suggested tasks for the authenticated user across their most recently pushed repositories.", "operationId": "get_suggested_tasks_api_user_suggested_tasks_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SuggestedTask" }, "type": "array", "title": "Response Get Suggested Tasks Api User Suggested Tasks Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/user/repository/branches": { "get": { "summary": "Get Repository Branches", "description": "Get branches for a repository.", "operationId": "get_repository_branches_api_user_repository_branches_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "repository", "in": "query", "required": true, "schema": { "type": "string", "title": "Repository" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Branch" }, "title": "Response Get Repository Branches Api User Repository Branches Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/user/repository/{repository_name}/microagents": { "get": { "summary": "Get Repository Microagents", "description": "Scan the microagents directory of a repository and return the list of microagents.\n\nThe microagents directory location depends on the git provider and actual repository name:\n- If git provider is not GitLab and actual repository name is \".openhands\": scans \"microagents\" folder\n- If git provider is GitLab and actual repository name is \"openhands-config\": scans \"microagents\" folder\n- Otherwise: scans \".openhands/microagents\" folder", "operationId": "get_repository_microagents_api_user_repository__repository_name__microagents_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "repository_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Repository Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MicroagentResponse" }, "title": "Response Get Repository Microagents Api User Repository Repository Name Microagents Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/user/repository/{repository_name}/microagents/content": { "get": { "summary": "Get Repository Microagent Content", "description": "Fetch the content of a specific microagent file from a repository.", "operationId": "get_repository_microagent_content_api_user_repository__repository_name__microagents_content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "repository_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Repository Name" } }, { "name": "file_path", "in": "query", "required": true, "schema": { "type": "string", "description": "Path to the microagent file within the repository", "title": "File Path" }, "description": "Path to the microagent file within the repository" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MicroagentContentResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/api/conversations/{conversation_id}/trajectory": { "get": { "summary": "Get Trajectory", "description": "Get trajectory.\n\nThis function retrieves the current trajectory and returns it.", "operationId": "get_trajectory_api_conversations__conversation_id__trajectory_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "conversation_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Conversation Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/alive": { "get": { "summary": "Alive", "operationId": "alive_alive_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/health": { "get": { "summary": "Health", "operationId": "health_health_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "string", "title": "Response Health Health Get" } } } } } } } }, "components": { "schemas": { "Body_upload_files_api_conversations__conversation_id__upload_files_post": { "properties": { "files": { "items": { "type": "string", "format": "binary" }, "type": "array", "title": "Files" } }, "type": "object", "required": [ "files" ], "title": "Body_upload_files_api_conversations__conversation_id__upload_files_post" }, "Branch": { "properties": { "name": { "type": "string", "title": "Name" }, "commit_sha": { "type": "string", "title": "Commit Sha" }, "protected": { "type": "boolean", "title": "Protected" }, "last_push_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Push Date" } }, "type": "object", "required": [ "name", "commit_sha", "protected" ], "title": "Branch" }, "ConversationInfo": { "properties": { "conversation_id": { "type": "string", "title": "Conversation Id" }, "title": { "type": "string", "title": "Title" }, "last_updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Updated At" }, "status": { "$ref": "#/components/schemas/ConversationStatus", "default": "STOPPED" }, "runtime_status": { "anyOf": [ { "$ref": "#/components/schemas/RuntimeStatus" }, { "type": "null" } ] }, "selected_repository": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Selected Repository" }, "selected_branch": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Selected Branch" }, "git_provider": { "anyOf": [ { "$ref": "#/components/schemas/ProviderType" }, { "type": "null" } ] }, "trigger": { "anyOf": [ { "$ref": "#/components/schemas/ConversationTrigger" }, { "type": "null" } ] }, "num_connections": { "type": "integer", "title": "Num Connections", "default": 0 }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "session_api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Api Key" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "pr_number": { "items": { "type": "integer" }, "type": "array", "title": "Pr Number" } }, "type": "object", "required": [ "conversation_id", "title" ], "title": "ConversationInfo" }, "ConversationInfoResultSet": { "properties": { "results": { "items": { "$ref": "#/components/schemas/ConversationInfo" }, "type": "array", "title": "Results" }, "next_page_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Next Page Id" } }, "type": "object", "title": "ConversationInfoResultSet" }, "ConversationResponse": { "properties": { "status": { "type": "string", "title": "Status" }, "conversation_id": { "type": "string", "title": "Conversation Id" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Message" }, "conversation_status": { "anyOf": [ { "$ref": "#/components/schemas/ConversationStatus" }, { "type": "null" } ] } }, "type": "object", "required": [ "status", "conversation_id" ], "title": "ConversationResponse" }, "ConversationStatus": { "type": "string", "enum": [ "STARTING", "RUNNING", "STOPPED" ], "title": "ConversationStatus" }, "ConversationTrigger": { "type": "string", "enum": [ "resolver", "gui", "suggested_task", "openhands_api", "slack", "microagent_management", "jira", "jira_dc", "linear" ], "title": "ConversationTrigger" }, "CreateMicroagent": { "properties": { "repo": { "type": "string", "title": "Repo" }, "git_provider": { "anyOf": [ { "$ref": "#/components/schemas/ProviderType" }, { "type": "null" } ] }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title" } }, "type": "object", "required": [ "repo" ], "title": "CreateMicroagent" }, "CustomSecretModel": { "properties": { "name": { "type": "string", "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "value": { "type": "string", "format": "password", "title": "Value", "writeOnly": true } }, "type": "object", "required": [ "name", "value" ], "title": "CustomSecretModel", "description": "Custom secret model with value" }, "CustomSecretWithoutValueModel": { "properties": { "name": { "type": "string", "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" } }, "type": "object", "required": [ "name" ], "title": "CustomSecretWithoutValueModel", "description": "Custom secret model without value" }, "EventFilter": { "properties": { "exclude_hidden": { "type": "boolean", "title": "Exclude Hidden", "default": false }, "query": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Query" }, "include_types": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Include Types" }, "exclude_types": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Exclude Types" }, "source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source" }, "start_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Date" }, "end_date": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Date" } }, "type": "object", "title": "EventFilter" }, "ExperimentConfig": { "properties": { "config": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Config" } }, "type": "object", "title": "ExperimentConfig" }, "GETCustomSecrets": { "properties": { "custom_secrets": { "anyOf": [ { "items": { "$ref": "#/components/schemas/CustomSecretWithoutValueModel" }, "type": "array" }, { "type": "null" } ], "title": "Custom Secrets" } }, "type": "object", "title": "GETCustomSecrets", "description": "Custom secrets names" }, "GETSettingsModel": { "properties": { "language": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Language" }, "agent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent" }, "max_iterations": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Iterations" }, "security_analyzer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Security Analyzer" }, "confirmation_mode": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Confirmation Mode" }, "llm_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Llm Model" }, "llm_api_key": { "anyOf": [ { "type": "string", "format": "password", "writeOnly": true }, { "type": "null" } ], "title": "Llm Api Key" }, "llm_base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Llm Base Url" }, "remote_runtime_resource_factor": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Remote Runtime Resource Factor" }, "secrets_store": { "$ref": "#/components/schemas/UserSecrets-Output" }, "enable_default_condenser": { "type": "boolean", "title": "Enable Default Condenser", "default": true }, "enable_sound_notifications": { "type": "boolean", "title": "Enable Sound Notifications", "default": false }, "enable_proactive_conversation_starters": { "type": "boolean", "title": "Enable Proactive Conversation Starters", "default": true }, "enable_solvability_analysis": { "type": "boolean", "title": "Enable Solvability Analysis", "default": true }, "user_consents_to_analytics": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "User Consents To Analytics" }, "sandbox_base_container_image": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sandbox Base Container Image" }, "sandbox_runtime_container_image": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sandbox Runtime Container Image" }, "mcp_config": { "anyOf": [ { "$ref": "#/components/schemas/MCPConfig" }, { "type": "null" } ] }, "search_api_key": { "anyOf": [ { "type": "string", "format": "password", "writeOnly": true }, { "type": "null" } ], "title": "Search Api Key" }, "sandbox_api_key": { "anyOf": [ { "type": "string", "format": "password", "writeOnly": true }, { "type": "null" } ], "title": "Sandbox Api Key" }, "max_budget_per_task": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget Per Task" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "email_verified": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Email Verified" }, "git_user_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Git User Name" }, "git_user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Git User Email" }, "provider_tokens_set": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "propertyNames": { "$ref": "#/components/schemas/ProviderType" }, "type": "object" }, { "type": "null" } ], "title": "Provider Tokens Set" }, "llm_api_key_set": { "type": "boolean", "title": "Llm Api Key Set" }, "search_api_key_set": { "type": "boolean", "title": "Search Api Key Set", "default": false } }, "type": "object", "required": [ "llm_api_key_set" ], "title": "GETSettingsModel", "description": "Settings with additional token data for the frontend" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "InitSessionRequest": { "properties": { "repository": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Repository" }, "git_provider": { "anyOf": [ { "$ref": "#/components/schemas/ProviderType" }, { "type": "null" } ] }, "selected_branch": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Selected Branch" }, "initial_user_msg": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Initial User Msg" }, "image_urls": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Image Urls" }, "replay_json": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Replay Json" }, "suggested_task": { "anyOf": [ { "$ref": "#/components/schemas/SuggestedTask" }, { "type": "null" } ] }, "create_microagent": { "anyOf": [ { "$ref": "#/components/schemas/CreateMicroagent" }, { "type": "null" } ] }, "conversation_instructions": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Conversation Instructions" }, "mcp_config": { "anyOf": [ { "$ref": "#/components/schemas/MCPConfig" }, { "type": "null" } ] }, "conversation_id": { "type": "string", "title": "Conversation Id" } }, "additionalProperties": false, "type": "object", "title": "InitSessionRequest" }, "MCPConfig": { "properties": { "sse_servers": { "items": { "$ref": "#/components/schemas/MCPSSEServerConfig" }, "type": "array", "title": "Sse Servers" }, "stdio_servers": { "items": { "$ref": "#/components/schemas/MCPStdioServerConfig" }, "type": "array", "title": "Stdio Servers" }, "shttp_servers": { "items": { "$ref": "#/components/schemas/MCPSHTTPServerConfig" }, "type": "array", "title": "Shttp Servers" } }, "additionalProperties": false, "type": "object", "title": "MCPConfig", "description": "Configuration for MCP (Message Control Protocol) settings.\n\nAttributes:\n sse_servers: List of MCP SSE server configs\n stdio_servers: List of MCP stdio server configs. These servers will be added to the MCP Router running inside runtime container.\n shttp_servers: List of MCP HTTP server configs." }, "MCPSHTTPServerConfig": { "properties": { "url": { "type": "string", "title": "Url" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" } }, "type": "object", "required": [ "url" ], "title": "MCPSHTTPServerConfig" }, "MCPSSEServerConfig": { "properties": { "url": { "type": "string", "title": "Url" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" } }, "type": "object", "required": [ "url" ], "title": "MCPSSEServerConfig", "description": "Configuration for a single MCP server.\n\nAttributes:\n url: The server URL\n api_key: Optional API key for authentication" }, "MCPStdioServerConfig": { "properties": { "name": { "type": "string", "title": "Name" }, "command": { "type": "string", "title": "Command" }, "args": { "items": { "type": "string" }, "type": "array", "title": "Args" }, "env": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Env" } }, "type": "object", "required": [ "name", "command" ], "title": "MCPStdioServerConfig", "description": "Configuration for a MCP server that uses stdio.\n\nAttributes:\n name: The name of the server\n command: The command to run the server\n args: The arguments to pass to the server\n env: The environment variables to set for the server" }, "MicroagentContentResponse": { "properties": { "content": { "type": "string", "title": "Content" }, "path": { "type": "string", "title": "Path" }, "triggers": { "items": { "type": "string" }, "type": "array", "title": "Triggers", "default": [] }, "git_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Git Provider" } }, "type": "object", "required": [ "content", "path" ], "title": "MicroagentContentResponse", "description": "Response model for individual microagent content endpoint." }, "MicroagentResponse": { "properties": { "name": { "type": "string", "title": "Name" }, "path": { "type": "string", "title": "Path" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" } }, "type": "object", "required": [ "name", "path", "created_at" ], "title": "MicroagentResponse", "description": "Response model for microagents endpoint.\n\nNote: This model only includes basic metadata that can be determined\nwithout parsing microagent content. Use the separate content API\nto get detailed microagent information." }, "OwnerType": { "type": "string", "enum": [ "user", "organization" ], "title": "OwnerType" }, "POSTProviderModel": { "properties": { "mcp_config": { "anyOf": [ { "$ref": "#/components/schemas/MCPConfig" }, { "type": "null" } ] }, "provider_tokens": { "additionalProperties": { "$ref": "#/components/schemas/ProviderToken" }, "propertyNames": { "$ref": "#/components/schemas/ProviderType" }, "type": "object", "title": "Provider Tokens", "default": {} } }, "type": "object", "title": "POSTProviderModel", "description": "Settings for POST requests" }, "POSTUploadFilesModel": { "properties": { "file_urls": { "items": { "type": "string" }, "type": "array", "title": "File Urls" }, "skipped_files": { "items": { "type": "string" }, "type": "array", "title": "Skipped Files" } }, "type": "object", "required": [ "file_urls", "skipped_files" ], "title": "POSTUploadFilesModel", "description": "Upload files response model" }, "ProviderToken": { "properties": { "token": { "anyOf": [ { "type": "string", "format": "password", "writeOnly": true }, { "type": "null" } ], "title": "Token" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "host": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Host" } }, "type": "object", "title": "ProviderToken" }, "ProviderType": { "type": "string", "enum": [ "github", "gitlab", "bitbucket", "enterprise_sso" ], "title": "ProviderType" }, "ProvidersSetModel": { "properties": { "providers_set": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ProviderType" }, "type": "array" }, { "type": "null" } ], "title": "Providers Set" } }, "type": "object", "title": "ProvidersSetModel" }, "Repository": { "properties": { "id": { "type": "string", "title": "Id" }, "full_name": { "type": "string", "title": "Full Name" }, "git_provider": { "$ref": "#/components/schemas/ProviderType" }, "is_public": { "type": "boolean", "title": "Is Public" }, "stargazers_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Stargazers Count" }, "link_header": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Link Header" }, "pushed_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pushed At" }, "owner_type": { "anyOf": [ { "$ref": "#/components/schemas/OwnerType" }, { "type": "null" } ] }, "main_branch": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Main Branch" } }, "type": "object", "required": [ "id", "full_name", "git_provider", "is_public" ], "title": "Repository" }, "RuntimeStatus": { "type": "string", "enum": [ "STATUS$STOPPED", "STATUS$BUILDING_RUNTIME", "STATUS$STARTING_RUNTIME", "STATUS$RUNTIME_STARTED", "STATUS$SETTING_UP_WORKSPACE", "STATUS$SETTING_UP_GIT_HOOKS", "STATUS$READY", "STATUS$ERROR", "STATUS$ERROR_RUNTIME_DISCONNECTED", "STATUS$ERROR_LLM_AUTHENTICATION", "STATUS$ERROR_LLM_SERVICE_UNAVAILABLE", "STATUS$ERROR_LLM_INTERNAL_SERVER_ERROR", "STATUS$ERROR_LLM_OUT_OF_CREDITS", "STATUS$ERROR_LLM_CONTENT_POLICY_VIOLATION", "CHAT_INTERFACE$AGENT_RATE_LIMITED_STOPPED_MESSAGE", "STATUS$GIT_PROVIDER_AUTHENTICATION_ERROR", "STATUS$LLM_RETRY", "STATUS$ERROR_MEMORY" ], "title": "RuntimeStatus" }, "Settings": { "properties": { "language": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Language" }, "agent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent" }, "max_iterations": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Iterations" }, "security_analyzer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Security Analyzer" }, "confirmation_mode": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Confirmation Mode" }, "llm_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Llm Model" }, "llm_api_key": { "anyOf": [ { "type": "string", "format": "password", "writeOnly": true }, { "type": "null" } ], "title": "Llm Api Key" }, "llm_base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Llm Base Url" }, "remote_runtime_resource_factor": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Remote Runtime Resource Factor" }, "secrets_store": { "$ref": "#/components/schemas/UserSecrets-Input" }, "enable_default_condenser": { "type": "boolean", "title": "Enable Default Condenser", "default": true }, "enable_sound_notifications": { "type": "boolean", "title": "Enable Sound Notifications", "default": false }, "enable_proactive_conversation_starters": { "type": "boolean", "title": "Enable Proactive Conversation Starters", "default": true }, "enable_solvability_analysis": { "type": "boolean", "title": "Enable Solvability Analysis", "default": true }, "user_consents_to_analytics": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "User Consents To Analytics" }, "sandbox_base_container_image": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sandbox Base Container Image" }, "sandbox_runtime_container_image": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sandbox Runtime Container Image" }, "mcp_config": { "anyOf": [ { "$ref": "#/components/schemas/MCPConfig" }, { "type": "null" } ] }, "search_api_key": { "anyOf": [ { "type": "string", "format": "password", "writeOnly": true }, { "type": "null" } ], "title": "Search Api Key" }, "sandbox_api_key": { "anyOf": [ { "type": "string", "format": "password", "writeOnly": true }, { "type": "null" } ], "title": "Sandbox Api Key" }, "max_budget_per_task": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget Per Task" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "email_verified": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Email Verified" }, "git_user_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Git User Name" }, "git_user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Git User Email" } }, "type": "object", "title": "Settings", "description": "Persisted settings for OpenHands sessions" }, "SuggestedTask": { "properties": { "git_provider": { "$ref": "#/components/schemas/ProviderType" }, "task_type": { "$ref": "#/components/schemas/TaskType" }, "repo": { "type": "string", "title": "Repo" }, "issue_number": { "type": "integer", "title": "Issue Number" }, "title": { "type": "string", "title": "Title" } }, "type": "object", "required": [ "git_provider", "task_type", "repo", "issue_number", "title" ], "title": "SuggestedTask" }, "TaskType": { "type": "string", "enum": [ "MERGE_CONFLICTS", "FAILING_CHECKS", "UNRESOLVED_COMMENTS", "OPEN_ISSUE", "OPEN_PR", "CREATE_MICROAGENT" ], "title": "TaskType" }, "UpdateConversationRequest": { "properties": { "title": { "type": "string", "maxLength": 200, "minLength": 1, "title": "Title", "description": "New conversation title" } }, "additionalProperties": false, "type": "object", "required": [ "title" ], "title": "UpdateConversationRequest", "description": "Request model for updating conversation metadata." }, "User": { "properties": { "id": { "type": "string", "title": "Id" }, "login": { "type": "string", "title": "Login" }, "avatar_url": { "type": "string", "title": "Avatar Url" }, "company": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Company" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" } }, "type": "object", "required": [ "id", "login", "avatar_url" ], "title": "User" }, "UserSecrets-Input": { "properties": { "provider_tokens": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Provider Tokens" }, "custom_secrets": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Secrets" } }, "type": "object", "title": "UserSecrets" }, "UserSecrets-Output": { "properties": { "provider_tokens": { "additionalProperties": { "additionalProperties": { "anyOf": [ { "type": "string" }, {} ] }, "type": "object" }, "type": "object", "title": "Provider Tokens" }, "custom_secrets": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Custom Secrets" } }, "type": "object", "title": "UserSecrets" }, "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" } }, "securitySchemes": { "APIKeyHeader": { "type": "apiKey", "in": "header", "name": "X-Session-API-Key" } } }, "servers": [ { "url": "https://app.all-hands.dev", "description": "Production server" }, { "url": "http://localhost:3000", "description": "Local development server" } ] }