# Tasks Base URL `https://api.sniphunter.com` 异步任务状态和进度。 # Tasks ## GET /api/v1/tasks/history Get Async Task History Endpoint ```json { "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 50, "minimum": 1, "default": 10, "title": "Page Size" } }, { "name": "job_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Job Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AsyncTaskHistoryResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } ``` ## GET /api/v1/tasks/{task_id} Get Async Task Endpoint ```json { "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "task_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Task Id" } }, { "name": "progress_token", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Progress Token" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AsyncTaskDetail" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } ``` ## GET /api/v1/tasks/{task_id}/progress Get Async Task Progress Endpoint ```json { "security": [ { "HTTPBearer": [] } ], "parameters": [ { "name": "task_id", "in": "path", "required": true, "schema": { "type": "integer", "title": "Task Id" } }, { "name": "token", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token" } }, { "name": "progress_token", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Progress Token" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } ``` # Components ```json { "schemas": { "AsyncTaskDetail": { "properties": { "task_id": { "type": "integer", "title": "Task Id" }, "job_type": { "type": "string", "title": "Job Type" }, "status": { "type": "string", "title": "Status" }, "progress": { "type": "number", "title": "Progress", "default": 0 }, "current_step": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Current Step" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Params" }, "result_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Result Url" }, "output_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Output Url" }, "result_video_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Result Video Url" }, "result_payload": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Result Payload" }, "processing_time_seconds": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Processing Time Seconds" }, "estimated_time_seconds": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Estimated Time Seconds" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "started_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Started At" }, "completed_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Completed At" } }, "type": "object", "required": [ "task_id", "job_type", "status" ], "title": "AsyncTaskDetail" }, "AsyncTaskHistoryItem": { "properties": { "task_id": { "type": "integer", "title": "Task Id" }, "job_type": { "type": "string", "title": "Job Type" }, "status": { "type": "string", "title": "Status" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "result_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Result Url" }, "processing_time_seconds": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Processing Time Seconds" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "completed_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Completed At" } }, "type": "object", "required": [ "task_id", "job_type", "status" ], "title": "AsyncTaskHistoryItem" }, "AsyncTaskHistoryResponse": { "properties": { "items": { "items": { "$ref": "#/components/schemas/AsyncTaskHistoryItem" }, "type": "array", "title": "Items" }, "total": { "type": "integer", "title": "Total" }, "page": { "type": "integer", "title": "Page" }, "page_size": { "type": "integer", "title": "Page Size" } }, "type": "object", "required": [ "items", "total", "page", "page_size" ], "title": "AsyncTaskHistoryResponse" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "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": { "HTTPBearer": { "type": "http", "scheme": "bearer" } } } ```