Download docs/public/openapi.json from qa1145/astrbbbb: direct link, hf CLI and curl.
- Browser
- Download file 17.4 kB
-
https://huggingface.co/spaces/qa1145/astrbbbb/resolve/main/docs/public/openapi.json
- Command line
-
hf download hf://spaces/qa1145/astrbbbb/docs/public/openapi.json
-
curl -L -o openapi.json https://huggingface.co/spaces/qa1145/astrbbbb/resolve/main/docs/public/openapi.json
17.4 kB
| { | |
| "openapi": "3.1.0", | |
| "info": { | |
| "title": "AstrBot Open API", | |
| "version": "1.0.0", | |
| "description": "Developer HTTP APIs for AstrBot. Use API Key authentication for /api/v1/* endpoints." | |
| }, | |
| "servers": [ | |
| { | |
| "url": "http://localhost:7860" | |
| } | |
| ], | |
| "tags": [ | |
| { | |
| "name": "Open API", | |
| "description": "Developer APIs authenticated by API Key" | |
| } | |
| ], | |
| "paths": { | |
| "/api/v1/im/bots": { | |
| "get": { | |
| "tags": [ | |
| "Open API" | |
| ], | |
| "summary": "List bot IDs", | |
| "description": "Returns configured bot/platform IDs.", | |
| "security": [ | |
| { | |
| "ApiKeyHeader": [] | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "OK", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ApiResponseBotList" | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/Unauthorized" | |
| }, | |
| "403": { | |
| "$ref": "#/components/responses/Forbidden" | |
| } | |
| } | |
| } | |
| }, | |
| "/api/v1/file": { | |
| "post": { | |
| "tags": [ | |
| "Open API" | |
| ], | |
| "summary": "Upload attachment file", | |
| "description": "Upload a file and get attachment_id for later use in chat/message APIs.", | |
| "security": [ | |
| { | |
| "ApiKeyHeader": [] | |
| } | |
| ], | |
| "requestBody": { | |
| "required": true, | |
| "content": { | |
| "multipart/form-data": { | |
| "schema": { | |
| "type": "object", | |
| "required": [ | |
| "file" | |
| ], | |
| "properties": { | |
| "file": { | |
| "type": "string", | |
| "format": "binary" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "OK", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ApiResponseUpload" | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/Unauthorized" | |
| }, | |
| "403": { | |
| "$ref": "#/components/responses/Forbidden" | |
| } | |
| } | |
| } | |
| }, | |
| "/api/v1/chat": { | |
| "post": { | |
| "tags": [ | |
| "Open API" | |
| ], | |
| "summary": "Send chat message (SSE)", | |
| "description": "Send message to AstrBot chat pipeline and receive streaming SSE response. Reuses /api/chat/send behavior. If session_id/conversation_id is omitted, server will create a new UUID session_id.", | |
| "security": [ | |
| { | |
| "ApiKeyHeader": [] | |
| } | |
| ], | |
| "requestBody": { | |
| "required": true, | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ChatSendRequest" | |
| }, | |
| "examples": { | |
| "plain": { | |
| "value": { | |
| "message": "Hello", | |
| "username": "alice", | |
| "session_id": "my_session_001", | |
| "enable_streaming": true | |
| } | |
| }, | |
| "multipartMessage": { | |
| "value": { | |
| "message": [ | |
| { | |
| "type": "plain", | |
| "text": "Please analyze this file" | |
| }, | |
| { | |
| "type": "file", | |
| "attachment_id": "9a2f8c72-e7af-4c0e-b352-111111111111" | |
| } | |
| ], | |
| "username": "alice", | |
| "session_id": "my_session_001", | |
| "selected_provider": "openai_chat_completion", | |
| "selected_model": "gpt-4.1-mini", | |
| "enable_streaming": true | |
| } | |
| }, | |
| "withConfig": { | |
| "value": { | |
| "message": "Use a specific config for this session", | |
| "username": "alice", | |
| "session_id": "my_session_001", | |
| "config_id": "default", | |
| "enable_streaming": true | |
| } | |
| }, | |
| "autoSessionWithUsername": { | |
| "value": { | |
| "message": "hello", | |
| "username": "alice", | |
| "enable_streaming": true | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "SSE stream", | |
| "content": { | |
| "text/event-stream": { | |
| "schema": { | |
| "type": "string" | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/Unauthorized" | |
| }, | |
| "403": { | |
| "$ref": "#/components/responses/Forbidden" | |
| } | |
| } | |
| } | |
| }, | |
| "/api/v1/chat/sessions": { | |
| "get": { | |
| "tags": [ | |
| "Open API" | |
| ], | |
| "summary": "List chat sessions with pagination", | |
| "description": "List chat sessions for the specified username.", | |
| "security": [ | |
| { | |
| "ApiKeyHeader": [] | |
| } | |
| ], | |
| "parameters": [ | |
| { | |
| "name": "page", | |
| "in": "query", | |
| "schema": { | |
| "type": "integer", | |
| "default": 1, | |
| "minimum": 1 | |
| } | |
| }, | |
| { | |
| "name": "page_size", | |
| "in": "query", | |
| "schema": { | |
| "type": "integer", | |
| "default": 20, | |
| "minimum": 1, | |
| "maximum": 100 | |
| } | |
| }, | |
| { | |
| "name": "platform_id", | |
| "in": "query", | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "description": "Optional platform filter" | |
| }, | |
| { | |
| "name": "username", | |
| "in": "query", | |
| "required": true, | |
| "schema": { | |
| "type": "string" | |
| }, | |
| "description": "Target username." | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "OK", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ApiResponseChatSessions" | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/Unauthorized" | |
| }, | |
| "403": { | |
| "$ref": "#/components/responses/Forbidden" | |
| } | |
| } | |
| } | |
| }, | |
| "/api/v1/im/message": { | |
| "post": { | |
| "tags": [ | |
| "Open API" | |
| ], | |
| "summary": "Send proactive message to a platform bot", | |
| "description": "Send message directly to platform bot by umo + message chain payload.", | |
| "security": [ | |
| { | |
| "ApiKeyHeader": [] | |
| } | |
| ], | |
| "requestBody": { | |
| "required": true, | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/SendMessageRequest" | |
| }, | |
| "examples": { | |
| "plain": { | |
| "value": { | |
| "umo": "webchat:FriendMessage:openapi_probe", | |
| "message": "ping from api key" | |
| } | |
| }, | |
| "chain": { | |
| "value": { | |
| "umo": "webchat:FriendMessage:openapi_probe", | |
| "message": [ | |
| { | |
| "type": "plain", | |
| "text": "hello" | |
| }, | |
| { | |
| "type": "image", | |
| "attachment_id": "9a2f8c72-e7af-4c0e-b352-111111111111" | |
| } | |
| ] | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "OK", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ApiResponseEmpty" | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/Unauthorized" | |
| }, | |
| "403": { | |
| "$ref": "#/components/responses/Forbidden" | |
| } | |
| } | |
| } | |
| }, | |
| "/api/v1/configs": { | |
| "get": { | |
| "tags": [ | |
| "Open API" | |
| ], | |
| "summary": "List available chat config files", | |
| "description": "Returns all available AstrBot config files that can be selected by Chat API using config_id/config_name.", | |
| "security": [ | |
| { | |
| "ApiKeyHeader": [] | |
| } | |
| ], | |
| "responses": { | |
| "200": { | |
| "description": "OK", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/ApiResponseChatConfigList" | |
| } | |
| } | |
| } | |
| }, | |
| "401": { | |
| "$ref": "#/components/responses/Unauthorized" | |
| }, | |
| "403": { | |
| "$ref": "#/components/responses/Forbidden" | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "components": { | |
| "securitySchemes": { | |
| "ApiKeyHeader": { | |
| "type": "apiKey", | |
| "in": "header", | |
| "name": "X-API-Key", | |
| "description": "Open API key. Authorization: Bearer <api_key> is also accepted." | |
| } | |
| }, | |
| "responses": { | |
| "Unauthorized": { | |
| "description": "Unauthorized" | |
| }, | |
| "Forbidden": { | |
| "description": "Forbidden" | |
| } | |
| }, | |
| "schemas": { | |
| "ApiResponseEmpty": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "example": "ok" | |
| }, | |
| "message": { | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "additionalProperties": true | |
| } | |
| } | |
| }, | |
| "ApiResponseBotList": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "example": "ok" | |
| }, | |
| "message": { | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "bot_ids": { | |
| "type": "array", | |
| "items": { | |
| "type": "string" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "ApiResponseUpload": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "example": "ok" | |
| }, | |
| "message": { | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "attachment_id": { | |
| "type": "string" | |
| }, | |
| "filename": { | |
| "type": "string" | |
| }, | |
| "type": { | |
| "type": "string" | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "ApiResponseChatSessions": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "example": "ok" | |
| }, | |
| "message": { | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "sessions": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/ChatSessionItem" | |
| } | |
| }, | |
| "page": { | |
| "type": "integer" | |
| }, | |
| "page_size": { | |
| "type": "integer" | |
| }, | |
| "total": { | |
| "type": "integer" | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "ChatSessionItem": { | |
| "type": "object", | |
| "properties": { | |
| "session_id": { | |
| "type": "string" | |
| }, | |
| "platform_id": { | |
| "type": "string" | |
| }, | |
| "creator": { | |
| "type": "string" | |
| }, | |
| "display_name": { | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| }, | |
| "is_group": { | |
| "type": "integer" | |
| }, | |
| "created_at": { | |
| "type": "string", | |
| "format": "date-time" | |
| }, | |
| "updated_at": { | |
| "type": "string", | |
| "format": "date-time" | |
| } | |
| } | |
| }, | |
| "MessagePart": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": [ | |
| "plain", | |
| "reply", | |
| "image", | |
| "record", | |
| "file", | |
| "video" | |
| ] | |
| }, | |
| "text": { | |
| "type": "string" | |
| }, | |
| "message_id": { | |
| "type": [ | |
| "string", | |
| "integer" | |
| ] | |
| }, | |
| "selected_text": { | |
| "type": "string" | |
| }, | |
| "attachment_id": { | |
| "type": "string" | |
| }, | |
| "filename": { | |
| "type": "string" | |
| }, | |
| "path": { | |
| "type": "string" | |
| } | |
| }, | |
| "required": [ | |
| "type" | |
| ] | |
| }, | |
| "ChatSendRequest": { | |
| "type": "object", | |
| "required": [ | |
| "message", | |
| "username" | |
| ], | |
| "properties": { | |
| "message": { | |
| "oneOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/MessagePart" | |
| } | |
| } | |
| ] | |
| }, | |
| "session_id": { | |
| "type": "string", | |
| "description": "Optional chat session ID. If omitted (and conversation_id is also omitted), server creates a UUID automatically." | |
| }, | |
| "conversation_id": { | |
| "type": "string", | |
| "description": "Alias of session_id." | |
| }, | |
| "username": { | |
| "type": "string", | |
| "description": "Target username." | |
| }, | |
| "selected_provider": { | |
| "type": "string" | |
| }, | |
| "selected_model": { | |
| "type": "string" | |
| }, | |
| "enable_streaming": { | |
| "type": "boolean", | |
| "default": true | |
| }, | |
| "config_id": { | |
| "type": "string", | |
| "description": "Optional AstrBot config file ID. If provided, the chat session will use this config file. Use \"default\" to reset to default config." | |
| }, | |
| "config_name": { | |
| "type": "string", | |
| "description": "Optional AstrBot config file name. Used only when config_id is not provided." | |
| } | |
| } | |
| }, | |
| "SendMessageRequest": { | |
| "type": "object", | |
| "required": [ | |
| "umo", | |
| "message" | |
| ], | |
| "properties": { | |
| "umo": { | |
| "type": "string", | |
| "description": "Unified message origin. Format: platform:message_type:session_id" | |
| }, | |
| "message": { | |
| "oneOf": [ | |
| { | |
| "type": "string" | |
| }, | |
| { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/MessagePart" | |
| } | |
| } | |
| ] | |
| } | |
| } | |
| }, | |
| "ChatConfigFile": { | |
| "type": "object", | |
| "properties": { | |
| "id": { | |
| "type": "string" | |
| }, | |
| "name": { | |
| "type": "string" | |
| }, | |
| "path": { | |
| "type": "string" | |
| }, | |
| "is_default": { | |
| "type": "boolean" | |
| } | |
| }, | |
| "required": [ | |
| "id", | |
| "name", | |
| "path", | |
| "is_default" | |
| ] | |
| }, | |
| "ApiResponseChatConfigList": { | |
| "type": "object", | |
| "properties": { | |
| "status": { | |
| "type": "string", | |
| "example": "ok" | |
| }, | |
| "message": { | |
| "type": [ | |
| "string", | |
| "null" | |
| ] | |
| }, | |
| "data": { | |
| "type": "object", | |
| "properties": { | |
| "configs": { | |
| "type": "array", | |
| "items": { | |
| "$ref": "#/components/schemas/ChatConfigFile" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |