{"openapi":"3.0.0","paths":{"/openapi/tools":{"get":{"operationId":"OpenApiToolsController_listTools","parameters":[],"responses":{"200":{"description":""},"401":{"description":"API Key 无效、已过期、已撤销，或账号被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"账号达到 QPM 10","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"等待秒数"}}}},"tags":["system"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"summary":"查看公开工具目录"}},"/openapi/tools/{slug}":{"get":{"operationId":"OpenApiToolsController_getTool","parameters":[{"name":"slug","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""},"401":{"description":"API Key 无效、已过期、已撤销，或账号被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"账号达到 QPM 10","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"等待秒数"}}}},"tags":["system"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"summary":"查看工具详情"}},"/openapi/jobs":{"post":{"operationId":"OpenApiJobsController_create","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateJobDto"},"example":{"kind":"tool","action":"seo-checker","payload":{"url":"https://example.com"}}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"tags":["jobs"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"description":"只允许访问当前账号的任务。API Key 请求计入统一 QPM 10；建议轮询间隔至少 6 秒，429 后等待 Retry-After。","x-credit-cost":1,"x-job-async":true,"summary":"创建通用异步任务"},"get":{"operationId":"OpenApiJobsController_list","parameters":[],"responses":{"200":{"description":"当前账号最近 50 个任务，按创建时间倒序；任务结果只对所属账号可见。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobListResponse"}}}},"401":{"description":"API Key 无效、已过期、已撤销，或账号被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"账号达到 QPM 10","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"等待秒数"}}}},"tags":["jobs"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"description":"只允许访问当前账号的任务。API Key 请求计入统一 QPM 10；建议轮询间隔至少 6 秒，429 后等待 Retry-After。","summary":"查看最近 50 个任务"}},"/openapi/jobs/{id}":{"get":{"operationId":"OpenApiJobsController_get","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"任务状态；终态 succeeded 的 data.result 为工具结果；failed/canceled 的 data.error 包含失败信息。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"},"examples":{"queued":{"summary":"排队中，积分已预扣","value":{"code":0,"message":"ok","data":{"id":"550e8400-e29b-41d4-a716-446655440000","kind":"tool","action":"seo-checker","status":"queued","result":null,"error":null,"creditCost":1,"creditsRefunded":false,"attempts":0,"createdAt":"2026-10-13T00:00:00.000Z","startedAt":null,"completedAt":null,"deadlineAt":"2026-10-13T00:15:00.000Z","pollAfterMs":6000,"statusUrl":"/openapi/jobs/550e8400-e29b-41d4-a716-446655440000"}}},"succeeded":{"summary":"DNS 查询成功，读取 result","value":{"code":0,"message":"ok","data":{"id":"550e8400-e29b-41d4-a716-446655440000","kind":"tool","action":"dns-lookup","status":"succeeded","result":{"domain":"example.com","nameservers":["ns1.example.net"],"records":[{"type":"A","values":["192.0.2.1"]}],"errors":[]},"error":null,"creditCost":1,"creditsRefunded":false,"attempts":1,"createdAt":"2026-10-13T00:00:00.000Z","startedAt":"2026-10-13T00:00:01.000Z","completedAt":"2026-10-13T00:00:02.000Z","deadlineAt":"2026-10-13T00:15:00.000Z","pollAfterMs":6000,"statusUrl":"/openapi/jobs/550e8400-e29b-41d4-a716-446655440000"}}},"failed":{"summary":"任务失败，HTTP 查询仍为 200，积分已退回","value":{"code":0,"message":"ok","data":{"id":"550e8400-e29b-41d4-a716-446655440000","kind":"tool","action":"seo-checker","status":"failed","result":null,"error":{"code":400,"message":"无法访问目标页面"},"creditCost":1,"creditsRefunded":true,"attempts":1,"createdAt":"2026-10-13T00:00:00.000Z","startedAt":"2026-10-13T00:00:01.000Z","completedAt":"2026-10-13T00:00:02.000Z","deadlineAt":"2026-10-13T00:15:00.000Z","pollAfterMs":6000,"statusUrl":"/openapi/jobs/550e8400-e29b-41d4-a716-446655440000"}}},"canceled":{"summary":"排队任务取消，积分已退回","value":{"code":0,"message":"ok","data":{"id":"550e8400-e29b-41d4-a716-446655440000","kind":"tool","action":"seo-checker","status":"canceled","result":null,"error":{"code":409,"message":"任务已取消，积分已退回"},"creditCost":1,"creditsRefunded":true,"attempts":0,"createdAt":"2026-10-13T00:00:00.000Z","startedAt":null,"completedAt":"2026-10-13T00:00:02.000Z","deadlineAt":"2026-10-13T00:15:00.000Z","pollAfterMs":6000,"statusUrl":"/openapi/jobs/550e8400-e29b-41d4-a716-446655440000"}}}}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"任务不存在或不属于当前账号","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"运行中或已完成的任务无法取消","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"tags":["jobs"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"description":"只允许访问当前账号的任务。API Key 请求计入统一 QPM 10；建议轮询间隔至少 6 秒，429 后等待 Retry-After。","summary":"查询任务状态与结果"}},"/openapi/jobs/{id}/cancel":{"post":{"operationId":"OpenApiJobsController_cancel","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"仅 queued 任务可取消，事务内退款；重复取消不再退款。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"任务不存在或不属于当前账号","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"运行中或已完成的任务无法取消","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"tags":["jobs"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"description":"只允许访问当前账号的任务。API Key 请求计入统一 QPM 10；建议轮询间隔至少 6 秒，429 后等待 Retry-After。","summary":"取消排队任务并退款"}},"/openapi/image-tools/convert":{"post":{"operationId":"OpenApiImageToolsController_convert","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertImageDto"},"example":{"taskId":"UPLOAD_TASK_ID","format":"webp","quality":85}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"tags":["images"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"x-credit-cost":1,"x-job-async":true,"summary":"图片格式转换"}},"/openapi/image-tools/compress":{"post":{"operationId":"OpenApiImageToolsController_compress","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompressImageDto"},"example":{"taskId":"UPLOAD_TASK_ID","quality":75}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"tags":["images"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"x-credit-cost":1,"x-job-async":true,"summary":"图片压缩"}},"/openapi/image-tools/resize":{"post":{"operationId":"OpenApiImageToolsController_resize","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResizeImageDto"},"example":{"taskId":"UPLOAD_TASK_ID","width":640}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"tags":["images"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"x-credit-cost":1,"x-job-async":true,"summary":"图片缩放"}},"/openapi/image-tools/crop":{"post":{"operationId":"OpenApiImageToolsController_crop","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CropImageDto"},"example":{"taskId":"UPLOAD_TASK_ID","left":0,"top":0,"width":100,"height":100}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"tags":["images"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"x-credit-cost":1,"x-job-async":true,"summary":"图片裁剪"}},"/openapi/image-tools/ico":{"post":{"operationId":"OpenApiImageToolsController_convertToIco","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConvertIcoDto"},"example":{"taskId":"UPLOAD_TASK_ID","sizes":[16,32,48]}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"tags":["images"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"x-credit-cost":1,"x-job-async":true,"summary":"生成 ICO 图标"}},"/openapi/uploads/tasks":{"post":{"operationId":"OpenApiUploadsController_createSession","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUploadSessionDto"},"example":{"fileName":"image.png","mimeType":"image/png","size":1024}}}},"responses":{"201":{"description":"上传会话；按返回的 chunkSize 切分文件","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadSessionResponse"}}}},"401":{"description":"API Key 无效、已过期、已撤销，或账号被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"账号达到 QPM 10","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"等待秒数"}}}},"tags":["uploads"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"description":"上传准备操作不消耗积分；API 请求计入统一 QPM 10。","summary":"创建图片上传会话"}},"/openapi/uploads/tasks/{taskId}/chunks":{"post":{"operationId":"OpenApiUploadsController_uploadChunk","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["chunk","index"],"properties":{"chunk":{"type":"string","format":"binary"},"index":{"type":"integer","minimum":0}}}}}},"responses":{"201":{"description":"分片接收进度，index 从 0 开始","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadChunkResponse"}}}},"401":{"description":"API Key 无效、已过期、已撤销，或账号被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"账号达到 QPM 10","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"等待秒数"}}}},"tags":["uploads"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"description":"上传准备操作不消耗积分；API 请求计入统一 QPM 10。","summary":"上传图片分片"}},"/openapi/uploads/tasks/{taskId}/complete":{"post":{"operationId":"OpenApiUploadsController_completeSession","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteUploadSessionDto"},"example":{"totalChunks":1}}}},"responses":{"201":{"description":"合并后的源图片资产","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadAssetResponse"}}}},"401":{"description":"API Key 无效、已过期、已撤销，或账号被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"账号达到 QPM 10","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"等待秒数"}}}},"tags":["uploads"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"description":"上传准备操作不消耗积分；API 请求计入统一 QPM 10。","summary":"完成并合并上传"}},"/openapi/uploads/tasks/{taskId}/file":{"get":{"operationId":"OpenApiUploadsController_streamAsset","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"string"}},{"name":"role","in":"query","required":false,"schema":{"type":"string","enum":["output","preview","uploaded_source","input"]},"description":"请求文件角色，默认根据任务自动选择"},{"name":"download","in":"query","required":false,"schema":{"type":"string","enum":["0","1"],"default":"0"}}],"responses":{"200":{"description":"直接返回文件内容，不使用 JSON 响应封装。默认预览；download=1 下载。","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"API Key 无效、已过期、已撤销，或账号被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"账号达到 QPM 10","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"等待秒数"}}}},"tags":["uploads"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"summary":"预览或下载资产文件"}},"/openapi/uploads/tasks/{taskId}/meta":{"get":{"operationId":"OpenApiUploadsController_getTaskAsset","parameters":[{"name":"taskId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"文件元信息及有效期","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UploadAssetResponse"}}}},"401":{"description":"API Key 无效、已过期、已撤销，或账号被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"账号达到 QPM 10","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"等待秒数"}}}},"tags":["uploads"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"summary":"查询资产元信息"}},"/openapi/mermaid/share":{"post":{"operationId":"OpenApiMermaidShareController_create","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["code","image"],"properties":{"code":{"type":"string","example":"graph TD; A-->B"},"image":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"分享已创建，消耗 1 积分；此接口同步返回结果。","headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MermaidShareResponse"}}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"执行失败，积分自动退回","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"tags":["sharing"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"x-credit-cost":1,"x-job-async":false,"summary":"创建 Mermaid 分享"}},"/openapi/mermaid/share/{id}":{"get":{"operationId":"OpenApiMermaidShareController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"公开分享的 Mermaid 代码及图片地址","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MermaidShareDetailResponse"}}}},"401":{"description":"API Key 无效、已过期、已撤销，或账号被禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"账号达到 QPM 10","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"等待秒数"}}}},"tags":["sharing"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"summary":"读取 Mermaid 分享"}},"/openapi/tools/meta-checker/execute":{"post":{"operationId":"execute_meta_checker","summary":"Meta Checker","description":"Inspect meta tags, Open Graph, and sharing metadata. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["website"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetaCheckerDto"},"example":{"url":"https://example.com"}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}},"/openapi/tools/dns-lookup/execute":{"post":{"operationId":"execute_dns_lookup","summary":"DNS Lookup","description":"Check common DNS records and verify domain configuration. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["domains"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnsLookupDto"},"example":{"domain":"example.com","types":["A","NS"]}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}},"/openapi/tools/whois-lookup/execute":{"post":{"operationId":"execute_whois_lookup","summary":"WHOIS Lookup","description":"Query domain registration details and original WHOIS records. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["domains"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainRegistrationDto"},"example":{"domain":"example.com"}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}},"/openapi/tools/rdap-lookup/execute":{"post":{"operationId":"execute_rdap_lookup","summary":"RDAP Lookup","description":"Query structured domain registration data from authoritative RDAP services. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["domains"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainRegistrationDto"},"example":{"domain":"example.com"}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}},"/openapi/tools/domain-vendor-lookup/execute":{"post":{"operationId":"execute_domain_vendor_lookup","summary":"Domain Vendor Lookup","description":"Inspect DNS zone ownership, Domain Connect discovery, and registrar signals. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["domains"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainVendorLookupDto"},"example":{"domain":"example.com"}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}},"/openapi/tools/domain-connect-link/execute":{"post":{"operationId":"execute_domain_connect_link","summary":"Domain Connect Link","description":"Verify Domain Connect settings by generating a signed apply link from user-provided config. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["domains"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainConnectLinkDto"},"example":{"domain":"example.com","host":"@","providerId":"provider","serviceId":"website","syncUxUrl":"https://provider.example.com","keyName":"my-key","privateKey":"YOUR_PRIVATE_KEY_PEM","redirectUri":"https://example.com","params":[{"key":"ip","value":"192.0.2.1"}]}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}},"/openapi/tools/seo-checker/execute":{"post":{"operationId":"execute_seo_checker","summary":"SEO Checker","description":"Audit core on-page SEO signals, then route into deeper checks. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["website"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeoCheckerDto"},"example":{"url":"https://example.com"}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}},"/openapi/tools/geo-checker/execute":{"post":{"operationId":"execute_geo_checker","summary":"GEO Checker","description":"Check AI crawler access, readability, structured data and citation readiness. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["website"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeoCheckerDto"},"example":{"url":"https://example.com"}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}},"/openapi/tools/link-preview/execute":{"post":{"operationId":"execute_link_preview","summary":"Link Preview","description":"Preview how a URL may render across sharing contexts. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["website"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkPreviewDto"},"example":{"url":"https://example.com"}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}},"/openapi/tools/domain-setup-checker/execute":{"post":{"operationId":"execute_domain_setup_checker","summary":"Domain Setup Checker","description":"Validate DNS and HTTP setup before a site goes live. 创建异步任务时预扣 1 积分，失败自动退款。","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"同一账号重复提交相同键和参数，返回原任务且不重复扣费；参数不一致返回 409。最长 128 字符。","schema":{"type":"string","maxLength":128}}],"tags":["domains"],"security":[{"apiKeyBearer":[]},{"apiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainSetupCheckerDto"},"example":{"domain":"example.com"}}}},"responses":{"202":{"description":"任务已持久化并预扣 1 积分；使用 data.id 查询状态。执行错误通过终态 error 返回。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobResponse"}}},"headers":{"X-Credits-Balance":{"schema":{"type":"integer"},"description":"扣费后的积分余额"},"X-Credits-Cost":{"schema":{"type":"integer","enum":[1]},"description":"本次消耗"}}},"400":{"description":"参数错误，积分不扣除","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"API Key 无效、已撤销、已过期，或账号已禁用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"402":{"description":"积分不足，工具不会执行","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"幂等键被不同请求占用","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"达到统一 QPM 10，积分不扣除","headers":{"Retry-After":{"schema":{"type":"integer"},"description":"需要等待的秒数"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"500":{"description":"提交异常；任务可能已创建，可用相同 Idempotency-Key 重试确认。","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}},"x-credit-cost":1,"x-job-async":true}}},"info":{"title":"1ms.tools OpenAPI","description":"使用 Bearer API Key 或 X-API-Key 调用接口。接口只接受 API Key。同一账号的全部 Key 共享外部 QPM 10（每个自然分钟），与网页执行额度独立。工具和图片接口返回 HTTP 202 任务信息，通过 GET /openapi/jobs/{id} 轮询结果；创建时预扣 1 积分，失败、超时或取消排队任务自动退回。API Key 轮询也计入 QPM，建议间隔至少 6 秒，429 时遵守 Retry-After。注册赠送 10 积分，北京时间每日签到赠送 10 积分，无充值功能。","version":"2.0.0","contact":{}},"tags":[{"name":"website","description":"网站 SEO、GEO、Meta 信息与社交链接预览。异步执行，成功消耗 1 积分。"},{"name":"domains","description":"DNS、WHOIS、RDAP、服务商查询与域名配置检查。异步执行，成功消耗 1 积分。"},{"name":"jobs","description":"创建任务、查询状态、查看最近任务与取消排队任务。轮询不扣积分，API Key 请求计入 QPM。"},{"name":"images","description":"先完成图片上传，再使用资产 taskId 创建处理任务。异步执行，成功消耗 1 积分。"},{"name":"uploads","description":"创建上传会话、上传分片、合并文件与下载资产。准备操作不扣积分。"},{"name":"sharing","description":"Mermaid 云端分享同步返回结果，成功消耗 1 积分；对外读取仍需 API Key。"},{"name":"system","description":"可用 API 能力目录。"}],"servers":[{"url":"https://1ms.tools"}],"components":{"securitySchemes":{"apiKeyBearer":{"scheme":"bearer","bearerFormat":"API Key","type":"http"},"apiKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}},"schemas":{"CreateJobDto":{"type":"object","properties":{"kind":{"type":"string","minLength":1,"maxLength":64,"enum":["tool","image"]},"action":{"type":"string","minLength":1,"maxLength":128},"payload":{"type":"object","additionalProperties":true}},"required":["kind","action","payload"]},"ConvertImageDto":{"type":"object","properties":{"format":{"type":"string","enum":["png","jpeg","webp","avif","tiff"]},"quality":{"type":"number","minimum":1,"maximum":100},"background":{"type":"string","pattern":"^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$"},"taskId":{"type":"string"}},"required":["format","taskId"]},"CompressImageDto":{"type":"object","properties":{"format":{"type":"string","enum":["png","jpeg","webp","avif","tiff"]},"quality":{"type":"number","minimum":1,"maximum":100},"maxWidth":{"type":"number","minimum":1},"background":{"type":"string","pattern":"^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$"},"stripMetadata":{"type":"boolean"},"taskId":{"type":"string"}},"required":["quality","taskId"]},"ResizeImageDto":{"type":"object","properties":{"width":{"type":"number","minimum":1},"height":{"type":"number","minimum":1},"fit":{"type":"string","enum":["cover","contain","fill","inside","outside"]},"format":{"type":"string","enum":["png","jpeg","webp","avif","tiff"]},"quality":{"type":"number","minimum":1,"maximum":100},"background":{"type":"string","pattern":"^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$"},"taskId":{"type":"string"}},"required":["taskId"]},"CropImageDto":{"type":"object","properties":{"left":{"type":"number","minimum":0},"top":{"type":"number","minimum":0},"width":{"type":"number","minimum":1},"height":{"type":"number","minimum":1},"format":{"type":"string","enum":["png","jpeg","webp","avif","tiff"]},"quality":{"type":"number","minimum":1,"maximum":100},"background":{"type":"string","pattern":"^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$"},"taskId":{"type":"string"}},"required":["left","top","width","height","taskId"]},"ConvertIcoDto":{"type":"object","properties":{"sizes":{"minItems":1,"type":"array","items":{"type":"number","maximum":512,"minimum":16}},"background":{"type":"string","pattern":"^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$"},"taskId":{"type":"string"}},"required":["taskId"]},"CreateUploadSessionDto":{"type":"object","properties":{"fileName":{"type":"string"},"mimeType":{"type":"string"},"size":{"type":"number","minimum":1},"fileSize":{"type":"number","minimum":1},"chunkSize":{"type":"number","minimum":1,"maximum":8388608}},"required":["fileName","mimeType"]},"CompleteUploadSessionDto":{"type":"object","properties":{"totalChunks":{"type":"number","minimum":1}},"required":["totalChunks"]},"MetaCheckerDto":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"DnsLookupDto":{"type":"object","properties":{"domain":{"type":"string"},"types":{"type":"array","minItems":1,"items":{"type":"string","enum":["A","AAAA","CNAME","MX","TXT","NS","SOA","SRV","CAA","PTR"]}},"nameservers":{"type":"array","items":{"type":"string"}}},"required":["domain","types"]},"DomainRegistrationDto":{"type":"object","properties":{"domain":{"type":"string"}},"required":["domain"]},"DomainVendorLookupDto":{"type":"object","properties":{"domain":{"type":"string"}},"required":["domain"]},"DomainConnectLinkDto":{"type":"object","properties":{"domain":{"type":"string"},"host":{"type":"string"},"providerId":{"type":"string"},"serviceId":{"type":"string"},"syncUxUrl":{"type":"string"},"apiUrl":{"type":"string"},"keyName":{"type":"string"},"privateKey":{"type":"string"},"redirectUri":{"type":"string"},"params":{"type":"array","items":{"type":"object"}}},"required":["domain","host","providerId","serviceId","syncUxUrl","keyName","privateKey","redirectUri","params"]},"SeoCheckerDto":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"GeoCheckerDto":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"LinkPreviewDto":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"DomainSetupCheckerDto":{"type":"object","properties":{"domain":{"type":"string"}},"required":["domain"]},"Job":{"type":"object","required":["id","kind","action","status","statusUrl","pollAfterMs","deadlineAt"],"properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string"},"action":{"type":"string"},"status":{"type":"string","enum":["queued","running","succeeded","failed","canceled"]},"result":{"type":"object","additionalProperties":true,"nullable":true,"description":"succeeded 时为工具结果；其他状态为 null"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"integer"},"message":{"type":"string"}}},"creditCost":{"type":"integer","enum":[1]},"creditsRefunded":{"type":"boolean"},"attempts":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"startedAt":{"type":"string","format":"date-time","nullable":true},"completedAt":{"type":"string","format":"date-time","nullable":true},"deadlineAt":{"type":"string","format":"date-time"},"pollAfterMs":{"type":"integer","example":6000,"description":"至少 6000ms，并遵守 Retry-After"},"statusUrl":{"type":"string","example":"/openapi/jobs/JOB_ID"}}},"JobResponse":{"type":"object","properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"$ref":"#/components/schemas/Job"}},"example":{"code":0,"message":"ok","data":{"id":"550e8400-e29b-41d4-a716-446655440000","kind":"tool","action":"seo-checker","status":"queued","result":null,"error":null,"creditCost":1,"creditsRefunded":false,"attempts":0,"createdAt":"2026-10-13T00:00:00.000Z","startedAt":null,"completedAt":null,"deadlineAt":"2026-10-13T00:15:00.000Z","pollAfterMs":6000,"statusUrl":"/openapi/jobs/550e8400-e29b-41d4-a716-446655440000"}}},"ApiError":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","minimum":400,"maximum":599,"example":400},"message":{"type":"string","example":"ok"},"data":{"type":"object","properties":{"path":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}}}}},"JobListResponse":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Job"}}}}}},"CreditSummary":{"type":"object","required":["balance","checkedInToday","nextCheckInAt"],"properties":{"balance":{"type":"integer","minimum":0,"example":10},"isAnonymous":{"type":"boolean","description":"是否为匿名试用身份"},"anonymousSpent":{"type":"integer","minimum":0},"anonymousSpendLimit":{"type":"integer","minimum":0,"example":5},"anonymousRemaining":{"type":"integer","nullable":true,"minimum":0},"registrationRequired":{"type":"boolean","description":"匿名额度或累计消耗阈值已用完，需要注册或登录"},"checkedInToday":{"type":"boolean"},"dailyReward":{"type":"integer","example":10},"signupReward":{"type":"integer","example":10},"toolCost":{"type":"integer","example":1},"nextCheckInAt":{"type":"string","format":"date-time"},"timeZone":{"type":"string","example":"Asia/Shanghai"}}},"CreditSummaryResponse":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"$ref":"#/components/schemas/CreditSummary"}}},"CheckInResponse":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"allOf":[{"$ref":"#/components/schemas/CreditSummary"},{"type":"object","properties":{"granted":{"type":"boolean","description":"此次是否实际获得签到积分"}}}]}}},"CreditLedgerEntry":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"},"reason":{"type":"string","enum":["signup","anonymous_trial","daily_checkin","tool_use","refund"]},"amount":{"type":"integer","description":"正数为赠送或退款，负数为任务预扣"},"balanceAfter":{"type":"integer","minimum":0},"reference":{"type":"string","description":"任务预扣关联 job:ID，退款关联 refund:RESERVATION_ID"},"operation":{"type":"string","nullable":true},"createdAt":{"type":"string","format":"date-time"}}},"CreditHistoryResponse":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"type":"object","properties":{"items":{"type":"array","maxItems":20,"items":{"$ref":"#/components/schemas/CreditLedgerEntry"}},"hasMore":{"type":"boolean"},"page":{"type":"integer","minimum":1}}}}},"UploadSessionResponse":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"type":"object","required":["taskId","chunkSize","totalChunks","expiresAt"],"properties":{"taskId":{"type":"string","format":"uuid","description":"图片上传资产 ID，区别于异步 Job ID"},"chunkSize":{"type":"integer","example":5242880},"totalChunks":{"type":"integer","minimum":1},"expiresAt":{"type":"string","format":"date-time"}}}}},"UploadChunkResponse":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"type":"object","properties":{"taskId":{"type":"string"},"chunkIndex":{"type":"integer","minimum":0},"uploadedChunks":{"type":"integer"},"totalChunks":{"type":"integer"}}}}},"UploadAsset":{"type":"object","properties":{"taskId":{"type":"string"},"kind":{"type":"string","enum":["uploaded","generated"]},"fileName":{"type":"string"},"mimeType":{"type":"string"},"extension":{"type":"string"},"size":{"type":"integer"},"fileSize":{"type":"integer"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"width":{"type":"integer","nullable":true},"height":{"type":"integer","nullable":true},"downloadPath":{"type":"string"},"previewPath":{"type":"string"}}},"UploadAssetResponse":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"$ref":"#/components/schemas/UploadAsset"}}},"MermaidShareResponse":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"imageUrl":{"type":"string","format":"uri"}}}}},"MermaidShareDetailResponse":{"type":"object","required":["code","message","data"],"properties":{"code":{"type":"integer","example":0},"message":{"type":"string","example":"ok"},"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string"},"imageUrl":{"type":"string","format":"uri"}}}}}}}}