OpenHands/docs/openapi.json
Engel Nyst 5ce5469bfa
docs: update OpenAPI specification to include all current endpoints (#10412)
Co-authored-by: openhands <openhands@all-hands.dev>
2025-08-20 21:58:35 +02:00

3942 lines
101 KiB
JSON

{
"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"
}
]
}