{"info":{"_postman_id":"d4ebbf8f-d691-4ced-8582-1e7fe5e9280d","name":"ZLogin Open API","description":"<html><head></head><body><p>通过 ZLogin 本机 Open API 查询、启动和管理浏览器环境，并使用返回的 CDP 地址连接自动化框架。默认服务地址为 <a href=\"http://127.0.0.1:50025%E3%80%82\">http://127.0.0.1:50025。</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"57724262","collectionId":"d4ebbf8f-d691-4ced-8582-1e7fe5e9280d","publishedId":"2sBYAvuqMY","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-09-03T05:35:23.000Z"},"item":[{"name":"接口检查","item":[{"name":"检查本地服务状态","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"f77da3fb-f50e-4c61-b751-a5ca3d745912"}}],"id":"2a6c6c4f-c00a-4f0a-bde7-21bc91a0c864","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://127.0.0.1:50025/status","description":"<p>检查本地服务状态。</p>\n<p>此接口无需 API Key，可用于检查本机服务是否可用。</p>\n","urlObject":{"path":["status"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"2b17e113-1d88-4d9e-b880-09181a661249","name":"200 OK","originalRequest":{"method":"GET","header":[],"url":"http://127.0.0.1:50025/status","description":"检查本地服务状态。\n\n此接口无需 API Key，可用于检查本机服务是否可用。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"status\": \"ok\",\n        \"version\": \"130.0.0.0\",\n        \"timeUtc\": \"2026-01-01T00:00:00.000Z\",\n        \"apiPrefix\": \"/api/v1\"\n    }\n}"}],"_postman_id":"2a6c6c4f-c00a-4f0a-bde7-21bc91a0c864"},{"name":"获取 API Key 调用上下文","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"0b3a99b3-dd67-4704-8f60-558f7a023d1b"}}],"id":"bdc6831b-efb5-4e19-9421-ff820d23f88f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/context","description":"<p>获取 API Key 调用上下文。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","context"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"8c099812-ecfe-4608-b220-c7a549490d2e","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":"http://127.0.0.1:50025/api/v1/context","description":"获取 API Key 调用上下文。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"teamId\": \"123\",\n        \"openApiClientId\": \"123\",\n        \"clientName\": \"示例\",\n        \"credentialId\": \"123\",\n        \"keyId\": \"123\"\n    }\n}"}],"_postman_id":"bdc6831b-efb5-4e19-9421-ff820d23f88f"},{"name":"获取环境管理能力","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"c8faae48-590c-4ca7-ad49-2e9f582f2126"}}],"id":"da020bb4-6583-4d00-a723-f1fd183bad49","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/capabilities","description":"<p>获取环境管理能力。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","capabilities"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"a5acd74f-fa22-4dfc-9051-5841ddd8bad6","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":"http://127.0.0.1:50025/api/v1/capabilities","description":"获取环境管理能力。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"contractVersion\": \"130.0.0.0\",\n        \"contractMajor\": 1,\n        \"contractMinor\": 0,\n        \"maxBatchRuntimeSize\": 1,\n        \"profileManagement\": {\n            \"version\": \"130.0.0.0\",\n            \"enabled\": true,\n            \"maxBatchSize\": 1,\n            \"batchCreateEnabled\": true,\n            \"deleteEnabled\": true,\n            \"idempotencySupported\": true,\n            \"groupMergeEnabled\": true,\n            \"groupPinningEnabled\": true\n        },\n        \"fingerprintManagement\": {\n            \"version\": \"130.0.0.0\",\n            \"enabled\": true,\n            \"randomValuesResolvedOnWrite\": true\n        },\n        \"profileConfiguration\": {\n            \"minVersion\": \"130.0.0.0\",\n            \"maxVersion\": \"130.0.0.0\",\n            \"enabled\": true,\n            \"minClientVersion\": \"130.0.0.0\",\n            \"writableModules\": [\n                \"example\"\n            ],\n            \"writableBasicFields\": [\n                \"example\"\n            ],\n            \"randomizers\": [\n                \"example\"\n            ]\n        },\n        \"proxy\": {\n            \"minVersion\": \"130.0.0.0\",\n            \"maxVersion\": \"130.0.0.0\",\n            \"enabled\": true,\n            \"maxBatchSize\": 1,\n            \"idempotencySupported\": true,\n            \"checkEnabled\": true,\n            \"tagManagementEnabled\": true\n        },\n        \"extension\": {\n            \"minVersion\": \"130.0.0.0\",\n            \"maxVersion\": \"130.0.0.0\",\n            \"enabled\": true\n        },\n        \"extensionPackage\": {\n            \"minVersion\": \"130.0.0.0\",\n            \"maxVersion\": \"130.0.0.0\",\n            \"enabled\": true,\n            \"allowedSources\": [\n                \"chrome_web_store\"\n            ],\n            \"webStoreCreateEnabled\": true,\n            \"statusUpdateEnabled\": true,\n            \"deleteEnabled\": true,\n            \"sha256Verification\": true,\n            \"sourceVerification\": true,\n            \"malwareScanEnabled\": true,\n            \"rollbackEnabled\": true,\n            \"uploadEnabled\": true,\n            \"autoUpdateEnabled\": true,\n            \"idempotencySupported\": true\n        },\n        \"trash\": {\n            \"minVersion\": \"130.0.0.0\",\n            \"maxVersion\": \"130.0.0.0\",\n            \"enabled\": true\n        },\n        \"launchOverride\": {\n            \"minVersion\": \"130.0.0.0\",\n            \"maxVersion\": \"130.0.0.0\",\n            \"enabled\": true,\n            \"allowedFields\": [\n                \"startupUrls\"\n            ],\n            \"windowModes\": [\n                \"inherit\"\n            ],\n            \"maxStartupUrls\": 50\n        },\n        \"browserPackage\": {\n            \"minVersion\": \"130.0.0.0\",\n            \"maxVersion\": \"130.0.0.0\",\n            \"enabled\": true,\n            \"clientTargets\": [\n                \"win-ia32\"\n            ],\n            \"asyncDownload\": true,\n            \"asyncInstall\": true,\n            \"sha256Verification\": true,\n            \"recoveryInstall\": true,\n            \"runtimeUseProtection\": true\n        }\n    }\n}"}],"_postman_id":"da020bb4-6583-4d00-a723-f1fd183bad49"}],"id":"22f0efdb-96ce-4c0f-9578-d7916e0e8479","description":"<p>检查本机服务、API Key 调用上下文和当前团队开放的管理能力。</p>\n","_postman_id":"22f0efdb-96ce-4c0f-9578-d7916e0e8479"},{"name":"浏览器环境","item":[{"name":"运行控制","item":[{"name":"分页查询授权环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","pm.test(\"目标环境在授权列表中\", () => pm.expect(payload.data.items.some(item => String(item.profileId) === pm.collectionVariables.get(\"profileId\"))).to.eql(true));"],"id":"2a028339-a769-4baf-9593-384586ded50b"}}],"id":"59a61600-247e-41c0-b859-81066cc23c5d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"pageNumber\": 1,\n    \"pageSize\": 20\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/list","description":"<p>分页查询授权环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-profiles","list"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"1e1818b4-cf5c-407a-b4b1-3135a3002a6c","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"pageNumber\": 1,\n    \"pageSize\": 20\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/list","description":"分页查询授权环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"revision\": 1,\n                \"profileId\": \"123\",\n                \"profileNo\": \"10001\",\n                \"profileCode\": \"profile-code\",\n                \"localProfileId\": \"123\",\n                \"customNo\": \"10001\",\n                \"name\": \"示例\",\n                \"browser\": \"ZLoginBrowser\",\n                \"group\": {\n                    \"id\": \"123\",\n                    \"code\": \"example-code\",\n                    \"name\": \"示例\"\n                },\n                \"tags\": [\n                    {\n                        \"code\": \"example-code\",\n                        \"name\": \"示例\"\n                    }\n                ],\n                \"hasCookie\": true,\n                \"hasProxy\": true,\n                \"isOpened\": true,\n                \"isLocalOpened\": true,\n                \"quotaLocked\": true,\n                \"canOpen\": true\n            }\n        ],\n        \"pageNumber\": 1,\n        \"pageSize\": 1,\n        \"totalCount\": 1\n    }\n}"}],"_postman_id":"59a61600-247e-41c0-b859-81066cc23c5d"},{"name":"获取环境轻量详情","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"45932c2d-2ed5-40e8-aebf-b23b27928458"}}],"id":"3a298f36-82d5-429b-92fb-ce20cc222dd0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/browser-profiles/123","description":"<p>获取环境轻量详情。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-profiles","123"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"0095ac35-6e54-47f6-82c6-1e9ce33e0cd0","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"4a4ecd4f-248e-4b71-a879-be2ef743e64c","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/browser-profiles/123","host":["http://127.0.0.1:50025"],"path":["api","v1","browser-profiles","123"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"获取环境轻量详情。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"revision\": 1,\n        \"profileId\": \"123\",\n        \"profileNo\": \"10001\",\n        \"profileCode\": \"profile-code\",\n        \"localProfileId\": \"123\",\n        \"customNo\": \"10001\",\n        \"name\": \"示例\",\n        \"browser\": \"ZLoginBrowser\",\n        \"group\": {\n            \"id\": \"123\",\n            \"code\": \"example-code\",\n            \"name\": \"示例\"\n        },\n        \"tags\": [\n            {\n                \"code\": \"example-code\",\n                \"name\": \"示例\"\n            }\n        ],\n        \"hasCookie\": true,\n        \"hasProxy\": true,\n        \"isOpened\": true,\n        \"isLocalOpened\": true,\n        \"quotaLocked\": true,\n        \"canOpen\": true\n    }\n}"}],"_postman_id":"3a298f36-82d5-429b-92fb-ce20cc222dd0"},{"name":"按显式选择器获取环境轻量详情","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"5cd92c83-8d0a-4a1d-ae06-5905937445ef"}}],"id":"307bfa8d-ca53-4b59-8ea7-f17c2a365925","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"profileCode\": \"profile-code\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/detail","description":"<p>按显式选择器获取环境轻量详情。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。</p>\n","urlObject":{"path":["api","v1","browser-profiles","detail"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"cc3ead97-b5b3-4612-9f52-c3f3876d7985","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"profileCode\": \"profile-code\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/detail","description":"按显式选择器获取环境轻量详情。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"revision\": 1,\n        \"profileId\": \"123\",\n        \"profileNo\": \"10001\",\n        \"profileCode\": \"profile-code\",\n        \"localProfileId\": \"123\",\n        \"customNo\": \"10001\",\n        \"name\": \"示例\",\n        \"browser\": \"ZLoginBrowser\",\n        \"group\": {\n            \"id\": \"123\",\n            \"code\": \"example-code\",\n            \"name\": \"示例\"\n        },\n        \"tags\": [\n            {\n                \"code\": \"example-code\",\n                \"name\": \"示例\"\n            }\n        ],\n        \"hasCookie\": true,\n        \"hasProxy\": true,\n        \"isOpened\": true,\n        \"isLocalOpened\": true,\n        \"quotaLocked\": true,\n        \"canOpen\": true\n    }\n}"}],"_postman_id":"307bfa8d-ca53-4b59-8ea7-f17c2a365925"},{"name":"启动环境并返回 CDP 连接","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","pm.test(\"启动响应包含 CDP 连接\", () => { pm.expect(payload.data.automation.protocol).to.eql(\"cdp\"); pm.expect(payload.data.automation.debuggerAddress).to.be.a(\"string\").and.not.empty; pm.expect(payload.data.automation.webSocketDebuggerUrl).to.match(/^ws:\\/\\/127\\.0\\.0\\.1:/); });","pm.collectionVariables.set(\"debuggerAddress\", payload.data.automation.debuggerAddress);","pm.collectionVariables.set(\"webSocketDebuggerUrl\", payload.data.automation.webSocketDebuggerUrl);"],"id":"a66e31d5-6b78-442c-a574-7a9ff1d61adc"}}],"id":"6fbf5fed-dac1-4b98-92e0-b8059ef7e2ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"profileId\": \"123\",\n    \"launchOverrides\": {\n        \"startupUrls\": [\n            \"https://example.com/\"\n        ],\n        \"windowMode\": \"maximized\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/start","description":"<p>启动环境并返回 CDP 连接。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。</p>\n","urlObject":{"path":["api","v1","browser-profiles","start"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"2bf50518-8604-43f5-8022-23f3c506a54a","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"profileId\": \"123\",\n    \"launchOverrides\": {\n        \"startupUrls\": [\n            \"https://example.com/\"\n        ],\n        \"windowMode\": \"maximized\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/start","description":"启动环境并返回 CDP 连接。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"profileCode\": \"profile-code\",\n        \"runtimeId\": \"123\",\n        \"pid\": 1,\n        \"startedAt\": \"2026-01-01T00:00:00.000Z\",\n        \"alreadyRunning\": false,\n        \"automation\": {\n            \"protocol\": \"cdp\",\n            \"debuggerAddress\": \"127.0.0.1:9222\",\n            \"webSocketDebuggerUrl\": \"ws://127.0.0.1:9222/devtools/browser/example\"\n        },\n        \"launchOverrides\": {\n            \"requestedFields\": [\n                \"startupUrls\"\n            ],\n            \"adoptedFields\": [\n                \"startupUrls\"\n            ]\n        }\n    }\n}"}],"_postman_id":"6fbf5fed-dac1-4b98-92e0-b8059ef7e2ae"},{"name":"查询本机环境状态","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","pm.test(\"环境处于运行状态\", () => pm.expect(payload.data.isActive).to.eql(true));"],"id":"c67e9b49-bd8a-44b8-8e13-561ad51c3dc8"}}],"id":"62513635-9a21-4e7a-baf9-3c70e595d885","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/browser-profiles/active?profileId=123","description":"<p>查询本机环境状态。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。</p>\n","urlObject":{"path":["api","v1","browser-profiles","active"],"host":["http://127.0.0.1:50025"],"query":[{"description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"key":"profileId","value":"123"},{"disabled":true,"description":{"content":"<p>环境编号。与 profileId、profileCode 三选一。</p>\n","type":"text/plain"},"key":"profileNo","value":"10001"},{"disabled":true,"description":{"content":"<p>环境编码。与 profileId、profileNo 三选一。</p>\n","type":"text/plain"},"key":"profileCode","value":"profile-code"}],"variable":[]}},"response":[{"id":"b6fcd6cb-7007-4870-9caa-da29e5c346f1","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/browser-profiles/active?profileId=123","host":["http://127.0.0.1:50025"],"path":["api","v1","browser-profiles","active"],"query":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"},{"key":"profileNo","value":"10001","description":"环境编号。与 profileId、profileCode 三选一。","disabled":true},{"key":"profileCode","value":"profile-code","description":"环境编码。与 profileId、profileNo 三选一。","disabled":true}]},"description":"查询本机环境状态。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"profileCode\": \"profile-code\",\n        \"isActive\": true,\n        \"runtime\": {\n            \"profileId\": \"123\",\n            \"profileCode\": \"profile-code\",\n            \"runtimeId\": \"123\",\n            \"pid\": 1,\n            \"startedAt\": \"2026-01-01T00:00:00.000Z\"\n        },\n        \"automation\": {\n            \"protocol\": \"cdp\",\n            \"debuggerAddress\": \"127.0.0.1:9222\",\n            \"webSocketDebuggerUrl\": \"ws://127.0.0.1:9222/devtools/browser/example\"\n        }\n    }\n}"}],"_postman_id":"62513635-9a21-4e7a-baf9-3c70e595d885"},{"name":"批量查询环境跨设备与本机运行状态","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"2108d6f7-9e97-4d9e-96f6-62c0e09058d2"}}],"id":"f19cfe2d-5ba9-470e-8a34-829738a730f5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"profiles\": [\n        {\n            \"profileId\": \"123\"\n        },\n        {\n            \"profileCode\": \"profile-code\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/active-batch","description":"<p>批量查询环境跨设备与本机运行状态。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>批量请求按输入顺序返回结果，每个环境选择器必须且只能提供一个标识字段。</p>\n","urlObject":{"path":["api","v1","browser-profiles","active-batch"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"5ef332a7-6728-4e04-8970-d398de4cb365","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"profiles\": [\n        {\n            \"profileId\": \"123\"\n        },\n        {\n            \"profileCode\": \"profile-code\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/active-batch","description":"批量查询环境跨设备与本机运行状态。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n批量请求按输入顺序返回结果，每个环境选择器必须且只能提供一个标识字段。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"selector\": {\n                    \"profileId\": 1\n                },\n                \"success\": true,\n                \"code\": \"PROFILE_NOT_FOUND\",\n                \"profileId\": \"123\",\n                \"profileNo\": \"10001\",\n                \"profileCode\": \"profile-code\",\n                \"isOpened\": true,\n                \"isOpenedByCurrentClient\": true,\n                \"isLocalOpened\": true,\n                \"isControllable\": true,\n                \"occupiedElsewhere\": true,\n                \"runtime\": {\n                    \"profileId\": \"123\",\n                    \"profileCode\": \"profile-code\",\n                    \"runtimeId\": \"123\",\n                    \"pid\": 1,\n                    \"startedAt\": \"2026-01-01T00:00:00.000Z\"\n                },\n                \"runtimeUpdatedAt\": \"2026-01-01T00:00:00.000Z\"\n            }\n        ]\n    }\n}"}],"_postman_id":"f19cfe2d-5ba9-470e-8a34-829738a730f5"},{"name":"查询本机已打开环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","pm.test(\"本机运行列表包含目标环境\", () => pm.expect(payload.data.some(item => String(item.profileId) === pm.collectionVariables.get(\"profileId\"))).to.eql(true));"],"id":"76f79975-b937-4f02-955d-d7206dc66972"}}],"id":"8d2df685-9ac3-44b8-9ca3-d0724f664874","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/browser-profiles/local-active","description":"<p>查询本机已打开环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-profiles","local-active"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"d2f1a7e2-6bbf-4e07-b478-09524f56c3ab","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":"http://127.0.0.1:50025/api/v1/browser-profiles/local-active","description":"查询本机已打开环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": [\n        {\n            \"profileId\": \"123\",\n            \"profileCode\": \"profile-code\",\n            \"runtimeId\": \"123\",\n            \"pid\": 1,\n            \"startedAt\": \"2026-01-01T00:00:00.000Z\"\n        }\n    ]\n}"}],"_postman_id":"8d2df685-9ac3-44b8-9ca3-d0724f664874"},{"name":"获取已打开环境的 CDP 连接","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","pm.test(\"连接接口与启动响应一致\", () => { pm.expect(payload.data.debuggerAddress).to.eql(pm.collectionVariables.get(\"debuggerAddress\")); pm.expect(payload.data.webSocketDebuggerUrl).to.eql(pm.collectionVariables.get(\"webSocketDebuggerUrl\")); });"],"id":"5e3025b2-45aa-4140-8199-9d2f5cc156a8"}}],"id":"09f001b4-b562-40bd-b808-00bc50831a00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/browser-profiles/123/connection","description":"<p>获取已打开环境的 CDP 连接。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-profiles","123","connection"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"678c0e25-b358-4c39-a2be-eccd5e122e03","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"f620504f-7905-4632-ba3a-737866fd246f","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/browser-profiles/123/connection","host":["http://127.0.0.1:50025"],"path":["api","v1","browser-profiles","123","connection"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"获取已打开环境的 CDP 连接。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"protocol\": \"cdp\",\n        \"debuggerAddress\": \"127.0.0.1:9222\",\n        \"webSocketDebuggerUrl\": \"ws://127.0.0.1:9222/devtools/browser/example\"\n    }\n}"}],"_postman_id":"09f001b4-b562-40bd-b808-00bc50831a00"},{"name":"按显式选择器获取已打开环境的 CDP 连接","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"d8133c6d-aee9-4064-a390-f4fa37e6de59"}}],"id":"b02e4fd5-9386-41cd-9e95-d3a8fa486817","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"profileCode\": \"profile-code\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/connection","description":"<p>按显式选择器获取已打开环境的 CDP 连接。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。</p>\n","urlObject":{"path":["api","v1","browser-profiles","connection"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"1c84cab8-67e4-435c-847c-67083d46088c","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"profileCode\": \"profile-code\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/connection","description":"按显式选择器获取已打开环境的 CDP 连接。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"protocol\": \"cdp\",\n        \"debuggerAddress\": \"127.0.0.1:9222\",\n        \"webSocketDebuggerUrl\": \"ws://127.0.0.1:9222/devtools/browser/example\"\n    }\n}"}],"_postman_id":"b02e4fd5-9386-41cd-9e95-d3a8fa486817"},{"name":"显示浏览器窗口","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","pm.test(\"窗口显示成功\", () => pm.expect(payload.data.shown).to.eql(true));"],"id":"e6267f3b-a443-4af8-95da-1e0ecbdfa2c0"}}],"id":"046df787-d6ca-48e3-adbc-c0eda4caca51","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"profileId\": \"123\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/show","description":"<p>显示浏览器窗口。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。</p>\n","urlObject":{"path":["api","v1","browser-profiles","show"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"a357ffd3-59f5-464f-a344-63664ce81508","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"profileId\": \"123\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/show","description":"显示浏览器窗口。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"profileCode\": \"profile-code\",\n        \"shown\": true\n    }\n}"}],"_postman_id":"046df787-d6ca-48e3-adbc-c0eda4caca51"},{"name":"关闭本机环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","pm.test(\"环境关闭成功\", () => pm.expect(payload.data.wasRunning).to.eql(true));"],"id":"c37bae98-a27d-4ff0-85c8-93dc45754dd0"}}],"id":"b06d64ec-cfec-4c8c-ae79-a91f0d4a1906","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"profileId\": \"123\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/stop","description":"<p>关闭本机环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。</p>\n","urlObject":{"path":["api","v1","browser-profiles","stop"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"836c85ec-5bfd-4177-ae6d-6c2d556c7a9b","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"profileId\": \"123\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/stop","description":"关闭本机环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n环境选择器必须且只能提供 profileId、profileNo 或 profileCode 之一。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"profileCode\": \"profile-code\",\n        \"wasRunning\": true\n    }\n}"}],"_postman_id":"b06d64ec-cfec-4c8c-ae79-a91f0d4a1906"},{"name":"关闭当前 API Key 可控制的本机环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"602d8017-e686-4865-b6fc-2f2e2c612d10"}}],"id":"b030a2ff-f0a1-4a00-932c-ef9b87606e5c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/stop-all","description":"<p>关闭当前 API Key 可控制的本机环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-profiles","stop-all"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"f99eb37a-24a6-487c-80b4-85265935db47","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/stop-all","description":"关闭当前 API Key 可控制的本机环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"closedProfileIds\": [\n            \"123\"\n        ],\n        \"skippedCount\": 1,\n        \"failedProfileIds\": [\n            \"123\"\n        ]\n    }\n}"}],"_postman_id":"b030a2ff-f0a1-4a00-932c-ef9b87606e5c"},{"name":"按输入顺序批量启动环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"63365cae-b4b9-40b1-ac92-21789e2d06e3"}}],"id":"d111fd2e-59d2-45b0-93da-c898de012480","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"profiles\": [\n        {\n            \"profileId\": \"123\"\n        },\n        {\n            \"profileCode\": \"profile-code\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/start-batch","description":"<p>按输入顺序批量启动环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>批量请求按输入顺序返回结果，每个环境选择器必须且只能提供一个标识字段。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","browser-profiles","start-batch"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"5a1e323f-4cf5-4252-9a5e-e4fbda3765b8","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"profiles\": [\n        {\n            \"profileId\": \"123\"\n        },\n        {\n            \"profileCode\": \"profile-code\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/start-batch","description":"按输入顺序批量启动环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n批量请求按输入顺序返回结果，每个环境选择器必须且只能提供一个标识字段。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"batchId\": \"11111111-1111-4111-8111-111111111111\",\n        \"action\": \"start\",\n        \"operationRequestId\": \"11111111-1111-4111-8111-111111111111\",\n        \"replayed\": false,\n        \"completed\": true,\n        \"items\": [\n            {\n                \"index\": 0,\n                \"selector\": {\n                    \"profileId\": 1\n                },\n                \"itemRequestId\": \"11111111-1111-4111-8111-111111111111\",\n                \"status\": \"pending\",\n                \"code\": \"example-code\",\n                \"profileId\": \"123\",\n                \"profileCode\": \"profile-code\",\n                \"alreadyRunning\": false,\n                \"wasRunning\": true,\n                \"automation\": {\n                    \"protocol\": \"cdp\",\n                    \"debuggerAddress\": \"127.0.0.1:9222\",\n                    \"webSocketDebuggerUrl\": \"ws://127.0.0.1:9222/devtools/browser/example\"\n                }\n            }\n        ],\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"completedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"d111fd2e-59d2-45b0-93da-c898de012480"},{"name":"按输入顺序批量关闭环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"4137a794-e58e-4566-9c84-9ca8a5b2cb34"}}],"id":"ba7e775a-9396-4c5b-99d5-aa8dbea98d47","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"profiles\": [\n        {\n            \"profileId\": \"123\"\n        },\n        {\n            \"profileCode\": \"profile-code\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/stop-batch","description":"<p>按输入顺序批量关闭环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>批量请求按输入顺序返回结果，每个环境选择器必须且只能提供一个标识字段。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","browser-profiles","stop-batch"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"ede87bda-f023-42c3-86a4-ab6a14dacdd7","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"profiles\": [\n        {\n            \"profileId\": \"123\"\n        },\n        {\n            \"profileCode\": \"profile-code\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/stop-batch","description":"按输入顺序批量关闭环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n批量请求按输入顺序返回结果，每个环境选择器必须且只能提供一个标识字段。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"batchId\": \"11111111-1111-4111-8111-111111111111\",\n        \"action\": \"start\",\n        \"operationRequestId\": \"11111111-1111-4111-8111-111111111111\",\n        \"replayed\": false,\n        \"completed\": true,\n        \"items\": [\n            {\n                \"index\": 0,\n                \"selector\": {\n                    \"profileId\": 1\n                },\n                \"itemRequestId\": \"11111111-1111-4111-8111-111111111111\",\n                \"status\": \"pending\",\n                \"code\": \"example-code\",\n                \"profileId\": \"123\",\n                \"profileCode\": \"profile-code\",\n                \"alreadyRunning\": false,\n                \"wasRunning\": true,\n                \"automation\": {\n                    \"protocol\": \"cdp\",\n                    \"debuggerAddress\": \"127.0.0.1:9222\",\n                    \"webSocketDebuggerUrl\": \"ws://127.0.0.1:9222/devtools/browser/example\"\n                }\n            }\n        ],\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"completedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"ba7e775a-9396-4c5b-99d5-aa8dbea98d47"}],"id":"98c76fe1-f57a-49e4-b6f9-42f0f037a527","description":"<p>查询环境并控制当前 Open API Client 所拥有的本机浏览器运行实例。</p>\n","_postman_id":"98c76fe1-f57a-49e4-b6f9-42f0f037a527"},{"name":"环境管理","item":[{"name":"获取环境创建选项","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"67202986-6d3b-4738-8eaa-cf064b722fed"}}],"id":"d44affe3-66ec-45d8-960d-fcd6413252dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profiles/environment-options","description":"<p>获取环境创建选项。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profiles","environment-options"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"6bfaecee-9eb5-466f-930a-4ad5ebe1dab2","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":"http://127.0.0.1:50025/api/v1/profiles/environment-options","description":"获取环境创建选项。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"browser_list\": [\n            {\n                \"browser\": \"ZLoginBrowser\",\n                \"kernel\": \"chromium\"\n            }\n        ]\n    }\n}"}],"_postman_id":"d44affe3-66ec-45d8-960d-fcd6413252dd"},{"name":"创建环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);","pm.collectionVariables.set(\"profileId\", String(payload.data.profileId));"],"id":"efe8fa75-c83e-4af9-872c-5f66cfc71ded"}}],"id":"e0f23bd9-197a-407f-8a4a-572562b3e70f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Automation profile 001\",\n    \"browser\": \"ZLoginBrowser\",\n    \"browserVersion\": \"130\",\n    \"os\": \"Windows\",\n    \"osVersion\": \"10\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles","description":"<p>创建环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","profiles"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"9aee62e7-6cb7-450b-9bb4-3275d585e6e1","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Automation profile 001\",\n    \"browser\": \"ZLoginBrowser\",\n    \"browserVersion\": \"130\",\n    \"os\": \"Windows\",\n    \"osVersion\": \"10\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles","description":"创建环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"revision\": 1,\n        \"profileId\": \"123\",\n        \"profileNo\": \"10001\",\n        \"profileCode\": \"profile-code\",\n        \"localProfileId\": \"123\",\n        \"name\": \"示例\",\n        \"customNo\": \"10001\",\n        \"remark\": \"example\",\n        \"platformVersion\": \"130.0.0.0\",\n        \"group\": {\n            \"id\": \"123\",\n            \"code\": \"example-code\",\n            \"name\": \"示例\"\n        },\n        \"tags\": [\n            {\n                \"code\": \"example-code\",\n                \"name\": \"示例\"\n            }\n        ],\n        \"proxy\": {\n            \"source\": \"example\",\n            \"proxyId\": \"123\",\n            \"code\": \"example-code\",\n            \"title\": \"example\",\n            \"proxyType\": \"example\",\n            \"hasAuthentication\": true\n        },\n        \"fingerprint\": {\n            \"web_rtc\": {\n                \"status\": \"example\",\n                \"value\": \"example\",\n                \"enabled\": true\n            },\n            \"timezone\": {\n                \"status\": \"example\",\n                \"value\": \"example\",\n                \"enabled\": true\n            },\n            \"location\": {\n                \"status\": \"example\",\n                \"longitude\": -180,\n                \"latitude\": -90\n            }\n        },\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"e0f23bd9-197a-407f-8a4a-572562b3e70f"},{"name":"原子批量创建环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"667413eb-764f-46a5-aff9-5b775d8245d6"}}],"id":"2dded6f2-f674-45ef-a583-10647f579f0a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"creationMethod\": \"quick_create\",\n    \"quantity\": 2,\n    \"profileTemplate\": {\n        \"name\": \"Automation\",\n        \"browser\": \"ZLoginBrowser\",\n        \"browserVersion\": \"146\",\n        \"os\": \"Windows\",\n        \"osVersion\": \"10\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/batch-create","description":"<p>原子批量创建环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","browser-profiles","batch-create"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"dcf3056b-c2bf-42f8-9ad2-1904e746cf4b","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"creationMethod\": \"quick_create\",\n    \"quantity\": 2,\n    \"profileTemplate\": {\n        \"name\": \"Automation\",\n        \"browser\": \"ZLoginBrowser\",\n        \"browserVersion\": \"146\",\n        \"os\": \"Windows\",\n        \"osVersion\": \"10\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-profiles/batch-create","description":"原子批量创建环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"batchId\": \"11111111-1111-4111-8111-111111111111\",\n        \"creationMethod\": \"quick_create\",\n        \"requestedCount\": 1,\n        \"createdCount\": 1,\n        \"createdItems\": [\n            {\n                \"profileId\": \"123\",\n                \"profileCode\": \"profile-code\",\n                \"name\": \"示例\"\n            }\n        ]\n    }\n}"}],"_postman_id":"2dded6f2-f674-45ef-a583-10647f579f0a"},{"name":"部分更新环境基础字段","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"1b7411f8-c35d-42be-b576-96db4a68d173"}}],"id":"e5b4956b-3b9d-4e53-a475-8af2002648f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"profile-123-r1\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"New name\",\n    \"remark\": null\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123","description":"<p>部分更新环境基础字段。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"ff8043d5-e3d4-4eed-b26a-5c5dab12fc18","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"84b45179-fae0-4a9a-bcac-d9ccdf81442a","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"profile-123-r1\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"New name\",\n    \"remark\": null\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"部分更新环境基础字段。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"revision\": 1,\n        \"profileId\": \"123\",\n        \"profileNo\": \"10001\",\n        \"profileCode\": \"profile-code\",\n        \"localProfileId\": \"123\",\n        \"name\": \"示例\",\n        \"customNo\": \"10001\",\n        \"remark\": \"example\",\n        \"platformVersion\": \"130.0.0.0\",\n        \"group\": {\n            \"id\": \"123\",\n            \"code\": \"example-code\",\n            \"name\": \"示例\"\n        },\n        \"tags\": [\n            {\n                \"code\": \"example-code\",\n                \"name\": \"示例\"\n            }\n        ],\n        \"proxy\": {\n            \"source\": \"example\",\n            \"proxyId\": \"123\",\n            \"code\": \"example-code\",\n            \"title\": \"example\",\n            \"proxyType\": \"example\",\n            \"hasAuthentication\": true\n        },\n        \"fingerprint\": {\n            \"web_rtc\": {\n                \"status\": \"example\",\n                \"value\": \"example\",\n                \"enabled\": true\n            },\n            \"timezone\": {\n                \"status\": \"example\",\n                \"value\": \"example\",\n                \"enabled\": true\n            },\n            \"location\": {\n                \"status\": \"example\",\n                \"longitude\": -180,\n                \"latitude\": -90\n            }\n        },\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"e5b4956b-3b9d-4e53-a475-8af2002648f7"},{"name":"批量移动环境分组","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"caf2b70e-2d9e-4254-8f19-ce69bb0e3d72"}}],"id":"f9482d59-f6c1-4a86-85e8-4c05d1270eaa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"profileIds\": [\n        10001,\n        10002\n    ],\n    \"targetGroupId\": \"11111111-1111-4111-8111-111111111111\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/group-batch","description":"<p>批量移动环境分组。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","profiles","group-batch"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"a100a8fe-f926-4cc3-b5e8-30cb83cac9c9","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"profileIds\": [\n        10001,\n        10002\n    ],\n    \"targetGroupId\": \"11111111-1111-4111-8111-111111111111\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/group-batch","description":"批量移动环境分组。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"targetGroup\": {\n            \"id\": \"123\",\n            \"code\": \"example-code\",\n            \"name\": \"示例\",\n            \"isBuiltIn\": true\n        },\n        \"movedCount\": 1\n    }\n}"}],"_postman_id":"f9482d59-f6c1-4a86-85e8-4c05d1270eaa"},{"name":"批量将环境移入回收站","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"ae1e6a60-1f8e-4fd6-b5f3-3891ea929f29"}}],"id":"7c2267c4-a55f-4c54-b603-9c69e9502422","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"profileIds\": [\n        10001,\n        10002\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles","description":"<p>批量将环境移入回收站。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","profiles"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"9fd4177b-7b2e-4116-bd5d-85ab8afe6bf1","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"profileIds\": [\n        10001,\n        10002\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles","description":"批量将环境移入回收站。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"deletedProfileIds\": [\n            \"123\"\n        ],\n        \"alreadyDeletedProfileIds\": [\n            \"123\"\n        ],\n        \"profiles\": [\n            {\n                \"profileId\": \"123\",\n                \"profileCode\": \"profile-code\",\n                \"localProfileId\": \"123\"\n            }\n        ],\n        \"deletedCount\": 1,\n        \"localCleanup\": {\n            \"success\": true,\n            \"deletedLocalProfileIds\": [\n                \"123\"\n            ],\n            \"failedLocalProfileIds\": [\n                \"123\"\n            ],\n            \"retryScheduled\": true\n        }\n    }\n}"}],"_postman_id":"7c2267c4-a55f-4c54-b603-9c69e9502422"},{"name":"整体替换环境标签","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"5efbf2d7-4b97-4238-84a0-5a5cbbe09394"}}],"id":"d1432361-7e7e-43cb-bc6c-24c0d0f7403f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"tagCodes\": [\n        \"campaign-a\",\n        \"priority\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/tags","description":"<p>整体替换环境标签。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profiles","123","tags"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"fd6aea16-f7af-4adf-824b-6cf1cf33e212","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"435c0ff0-f05e-48f4-b310-73c796fd9bf6","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"tagCodes\": [\n        \"campaign-a\",\n        \"priority\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/tags","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","tags"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"整体替换环境标签。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"tags\": [\n            {\n                \"code\": \"example-code\",\n                \"name\": \"示例\"\n            }\n        ]\n    }\n}"}],"_postman_id":"d1432361-7e7e-43cb-bc6c-24c0d0f7403f"},{"name":"绑定、设置或解绑环境代理","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"821c303b-5bc6-4879-aaa1-38a293ff4078"}}],"id":"56ad881f-98a5-41b1-99f5-a4ee7ccb01be","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"proxySource\": \"custom\",\n    \"proxySettings\": {\n        \"proxyType\": \"http\",\n        \"host\": \"proxy.example.com\",\n        \"port\": 8080\n    }\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/proxy","description":"<p>绑定、设置或解绑环境代理。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profiles","123","proxy"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"f0e49972-7abe-4c71-9b09-f59072e6d4bc","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"4f9cde51-c152-40bc-bf77-21cd1b95e628","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"proxySource\": \"custom\",\n    \"proxySettings\": {\n        \"proxyType\": \"http\",\n        \"host\": \"proxy.example.com\",\n        \"port\": 8080\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/proxy","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","proxy"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"绑定、设置或解绑环境代理。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"source\": \"example\",\n        \"proxyId\": \"123\",\n        \"code\": \"example-code\",\n        \"title\": \"example\",\n        \"proxyType\": \"example\",\n        \"hasAuthentication\": true\n    }\n}"}],"_postman_id":"56ad881f-98a5-41b1-99f5-a4ee7ccb01be"}],"id":"c6e3d629-2ce1-42e1-9b82-29a852e49a80","description":"<p>创建环境并更新基础字段、分组、标签和代理绑定。</p>\n","_postman_id":"c6e3d629-2ce1-42e1-9b82-29a852e49a80"},{"name":"指纹与高级设置","item":[{"name":"获取环境持久指纹","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"ae276c98-9318-4491-9df6-b077529b9e8b"}}],"id":"fc3216d3-9dbc-4a3d-9549-470bf281cb50","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profiles/123/fingerprint","description":"<p>获取环境持久指纹。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profiles","123","fingerprint"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"799bb6ce-a6e0-424e-b66e-adbe8e213b78","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"59045051-794c-4332-9560-80c351370f9c","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/fingerprint","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","fingerprint"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"获取环境持久指纹。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"web_rtc\": {\n            \"status\": \"example\",\n            \"value\": \"example\",\n            \"enabled\": true\n        },\n        \"timezone\": {\n            \"status\": \"example\",\n            \"value\": \"example\",\n            \"enabled\": true\n        },\n        \"location\": {\n            \"status\": \"example\",\n            \"longitude\": -180,\n            \"latitude\": -90\n        }\n    }\n}"}],"_postman_id":"fc3216d3-9dbc-4a3d-9549-470bf281cb50"},{"name":"部分更新环境持久指纹","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"6068d32a-1310-48fb-91e4-9cf1a550ccd2"}}],"id":"9a948d3a-4c10-43a5-a7f1-776512aca8f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"profile-123-r1\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"fingerprint\": {\n        \"timezone\": {\n            \"status\": \"custom\",\n            \"value\": \"Asia/Hong_Kong\"\n        },\n        \"cpu\": {\n            \"status\": \"random\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/fingerprint","description":"<p>部分更新环境持久指纹。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123","fingerprint"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"570e31e6-91be-4e29-9fe0-e9238a6b1dc0","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"55fa584b-6be1-4189-981d-6145d9822335","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"profile-123-r1\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"{\n    \"fingerprint\": {\n        \"timezone\": {\n            \"status\": \"custom\",\n            \"value\": \"Asia/Hong_Kong\"\n        },\n        \"cpu\": {\n            \"status\": \"random\"\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/fingerprint","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","fingerprint"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"部分更新环境持久指纹。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"web_rtc\": {\n            \"status\": \"example\",\n            \"value\": \"example\",\n            \"enabled\": true\n        },\n        \"timezone\": {\n            \"status\": \"example\",\n            \"value\": \"example\",\n            \"enabled\": true\n        },\n        \"location\": {\n            \"status\": \"example\",\n            \"longitude\": -180,\n            \"latitude\": -90\n        }\n    }\n}"}],"_postman_id":"9a948d3a-4c10-43a5-a7f1-776512aca8f4"},{"name":"读取环境高级设置","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"20176106-f144-47d7-a69e-76940fb2f538"}}],"id":"4d049fa4-1b8e-4a26-a755-2160e2e7428f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profiles/123/advanced-settings","description":"<p>读取环境高级设置。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profiles","123","advanced-settings"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"18a7c9db-cffe-4df0-b5bd-2b50a0f3d859","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"220cbeb3-85d1-47c5-a9bb-2dcefe1c5caa","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/advanced-settings","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","advanced-settings"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"读取环境高级设置。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"syncSettingsMode\": \"global\",\n        \"syncSettings\": {\n            \"sync_bookmarks\": {\n                \"status\": \"enabled\"\n            },\n            \"sync_cookies\": {\n                \"status\": \"enabled\"\n            },\n            \"sync_localstorage\": {\n                \"status\": \"enabled\"\n            }\n        },\n        \"browserSettingsMode\": \"global\"\n    }\n}"}],"_postman_id":"4d049fa4-1b8e-4a26-a755-2160e2e7428f"},{"name":"按叶子更新环境高级设置","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"9d330369-fe05-4d06-b0e0-cf793d3f90f6"}}],"id":"c0cdc8bb-38d4-40a8-86ae-3e94b156b860","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"profile-123-r1\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"advancedSettings\": {\n        \"browserSettings\": {\n            \"onStartup\": {\n                \"muteSound\": {\n                    \"enabled\": true\n                }\n            }\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/advanced-settings","description":"<p>按叶子更新环境高级设置。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123","advanced-settings"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"d9f16c6b-77be-4ed5-be18-875d8cbb5747","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"a2e03dc7-4055-4b84-bfa7-64690043b45d","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"profile-123-r1\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"{\n    \"advancedSettings\": {\n        \"browserSettings\": {\n            \"onStartup\": {\n                \"muteSound\": {\n                    \"enabled\": true\n                }\n            }\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/advanced-settings","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","advanced-settings"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"按叶子更新环境高级设置。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"syncSettingsMode\": \"global\",\n        \"syncSettings\": {\n            \"sync_bookmarks\": {\n                \"status\": \"enabled\"\n            },\n            \"sync_cookies\": {\n                \"status\": \"enabled\"\n            },\n            \"sync_localstorage\": {\n                \"status\": \"enabled\"\n            }\n        },\n        \"browserSettingsMode\": \"global\"\n    }\n}"}],"_postman_id":"c0cdc8bb-38d4-40a8-86ae-3e94b156b860"},{"name":"生成 User-Agent 候选","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"d2476c3a-75de-411a-9c55-60c5673f4da6"}}],"id":"f878b415-1c1e-4f5c-93ff-00cd1f8828d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"browser\": \"ZLoginBrowser\",\n    \"browserVersion\": \"146\",\n    \"os\": \"Windows\",\n    \"osVersion\": \"10\",\n    \"uaVersion\": \"146\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/fingerprint/user-agent/random","description":"<p>生成 User-Agent 候选。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","fingerprint","user-agent","random"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"6dd0bf31-2f73-4b12-b0f9-742ad257ea98","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"browser\": \"ZLoginBrowser\",\n    \"browserVersion\": \"146\",\n    \"os\": \"Windows\",\n    \"osVersion\": \"10\",\n    \"uaVersion\": \"146\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/fingerprint/user-agent/random","description":"生成 User-Agent 候选。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"userAgent\": \"example\",\n        \"uaVersion\": \"130.0.0.0\",\n        \"uaFullVersion\": \"130.0.0.0\",\n        \"architecture\": \"example\",\n        \"bitness\": 1,\n        \"os\": \"Windows\",\n        \"osVersion\": \"130.0.0.0\",\n        \"platformVersion\": \"130.0.0.0\",\n        \"wow64\": 1,\n        \"mobile\": true,\n        \"uaPlatform\": \"example\",\n        \"model\": \"example\"\n    }\n}"}],"_postman_id":"f878b415-1c1e-4f5c-93ff-00cd1f8828d3"},{"name":"生成 WebGL 候选","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"f84528c7-a292-4620-81d4-c4a602ec8797"}}],"id":"f56d563c-26a9-4c1e-b90f-3e62c9f1c9fb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"platform\": \"Windows\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/fingerprint/webgl/random","description":"<p>生成 WebGL 候选。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","fingerprint","webgl","random"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"b6a8d6b0-51dd-4f60-a251-07b980eda8d3","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"platform\": \"Windows\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/fingerprint/webgl/random","description":"生成 WebGL 候选。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"platform\": \"example\",\n        \"vendor\": \"example\",\n        \"renderer\": \"example\",\n        \"vendors\": [\n            \"example\"\n        ]\n    }\n}"}],"_postman_id":"f56d563c-26a9-4c1e-b90f-3e62c9f1c9fb"}],"id":"2206239a-1b44-43f8-937d-4fa432fe6644","description":"<p>读取和更新环境指纹、高级设置，并生成安全的随机候选值。</p>\n","_postman_id":"2206239a-1b44-43f8-937d-4fa432fe6644"},{"name":"Cookie 管理","item":[{"name":"读取环境 Cookie","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"021f4a51-7f24-4a1f-84bc-2e5b6a8dfcbd"}}],"id":"65d267e3-860a-4640-b87e-347317683e0d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profiles/123/cookies","description":"<p>读取环境 Cookie。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profiles","123","cookies"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"60284ff7-8727-4626-a06f-5c65d095b25b","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"c666584b-ef5a-4a3c-89fe-2f8902e47fbf","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/cookies","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","cookies"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"读取环境 Cookie。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"cookie-123-r0123456789abcdef\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"cookies\": [\n            {\n                \"name\": \"示例\",\n                \"value\": \"example\",\n                \"domain\": \"example\",\n                \"path\": \"example\",\n                \"hostOnly\": true,\n                \"httpOnly\": true,\n                \"sameSite\": \"example\",\n                \"secure\": true,\n                \"session\": true,\n                \"storeId\": \"123\"\n            }\n        ],\n        \"totalCount\": 1,\n        \"cleanedExpiredCount\": 1\n    }\n}"}],"_postman_id":"65d267e3-860a-4640-b87e-347317683e0d"},{"name":"整体替换环境 Cookie","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"810d08a5-56ca-4519-806c-886e7f717e51"}}],"id":"d536b41a-d05d-4711-ae58-5ced0722dc86","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"cookie-123-r0123456789abcdef\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"[]","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/cookies","description":"<p>整体替换环境 Cookie。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123","cookies"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"57b8cd3b-1b91-413b-905c-ec5a5ac3a083","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"f4ef0692-f4db-40c5-b141-4771d78a5958","name":"200 OK","originalRequest":{"method":"PUT","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"cookie-123-r0123456789abcdef\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"[]","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/cookies","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","cookies"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"整体替换环境 Cookie。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"cookie-123-r0123456789abcdef\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"cookies\": [\n            {\n                \"name\": \"示例\",\n                \"value\": \"example\",\n                \"domain\": \"example\",\n                \"path\": \"example\",\n                \"hostOnly\": true,\n                \"httpOnly\": true,\n                \"sameSite\": \"example\",\n                \"secure\": true,\n                \"session\": true,\n                \"storeId\": \"123\"\n            }\n        ],\n        \"totalCount\": 1,\n        \"cleanedExpiredCount\": 1\n    }\n}"}],"_postman_id":"d536b41a-d05d-4711-ae58-5ced0722dc86"},{"name":"合并或删除环境 Cookie","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"e401363d-c8bc-4bd3-97f0-cbcfc22f3634"}}],"id":"d977070a-22cf-4c6e-8e53-e81ea33aea08","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"cookie-123-r0123456789abcdef\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"upsert\": [],\n    \"delete\": []\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/cookies","description":"<p>合并或删除环境 Cookie。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123","cookies"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"f44cca17-9f6f-4f34-81a8-dfe2b461351a","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"dce6edc5-9441-430b-9861-ee1b52006321","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"cookie-123-r0123456789abcdef\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"{\n    \"upsert\": [],\n    \"delete\": []\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/cookies","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","cookies"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"合并或删除环境 Cookie。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"cookie-123-r0123456789abcdef\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"cookies\": [\n            {\n                \"name\": \"示例\",\n                \"value\": \"example\",\n                \"domain\": \"example\",\n                \"path\": \"example\",\n                \"hostOnly\": true,\n                \"httpOnly\": true,\n                \"sameSite\": \"example\",\n                \"secure\": true,\n                \"session\": true,\n                \"storeId\": \"123\"\n            }\n        ],\n        \"totalCount\": 1,\n        \"cleanedExpiredCount\": 1\n    }\n}"}],"_postman_id":"d977070a-22cf-4c6e-8e53-e81ea33aea08"}],"id":"1cc5a35a-a67d-49f3-98b8-6f71dd7eddf9","description":"<p>读取、整体替换、合并或删除环境 Cookie。</p>\n","_postman_id":"1cc5a35a-a67d-49f3-98b8-6f71dd7eddf9"},{"name":"账号管理","item":[{"name":"查询环境账号平台候选项","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"a2c806db-6f5a-4387-80b1-3514da8e5871"}}],"id":"4b421e9a-e30e-4b26-a8a6-19edbb7e31af","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/account-platforms","description":"<p>查询环境账号平台候选项。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","account-platforms"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"992c5fb6-ecae-4d1f-88aa-98d5eea8d7c9","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":"http://127.0.0.1:50025/api/v1/account-platforms","description":"查询环境账号平台候选项。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": [\n        {\n            \"domain\": \"example\",\n            \"logoUrl\": \"https://example.com/\"\n        }\n    ]\n}"}],"_postman_id":"4b421e9a-e30e-4b26-a8a6-19edbb7e31af"},{"name":"读取环境账号安全摘要","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"95a97609-3432-4178-9bc7-beeda124fe29"}}],"id":"35fdec13-84fc-44c8-81b1-01f08db7c7c2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profiles/123/accounts?includePasswords=false","description":"<p>读取环境账号安全摘要。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。</p>\n","urlObject":{"path":["api","v1","profiles","123","accounts"],"host":["http://127.0.0.1:50025"],"query":[{"description":{"content":"<p>是否在具备秘密字段权限时返回密码；默认 false。</p>\n","type":"text/plain"},"key":"includePasswords","value":"false"}],"variable":[{"id":"30055335-e4ef-4587-8ee9-aebf0e2dc2c1","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"cb43dae2-abe2-4b56-a76e-1b3cc47e53e0","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/accounts?includePasswords=false","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","accounts"],"query":[{"key":"includePasswords","value":"false","description":"是否在具备秘密字段权限时返回密码；默认 false。"}],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"读取环境账号安全摘要。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"accounts\": [\n            {\n                \"index\": 0,\n                \"platform\": \"example\",\n                \"account\": \"example\"\n            }\n        ],\n        \"username\": \"示例\",\n        \"email\": \"example\",\n        \"phone\": \"example\",\n        \"remark\": \"example\"\n    }\n}"}],"_postman_id":"35fdec13-84fc-44c8-81b1-01f08db7c7c2"},{"name":"整体替换环境账号模块","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"eda0af5b-711d-4ba5-aeca-e8f8c1cacf7b"}}],"id":"9eefcffa-6541-4273-8b68-c47e35fd7965","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"profile-123-r1\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"accounts\": [\n        {\n            \"platform\": \"example.com\",\n            \"account\": \"user@example.com\",\n            \"password\": \"write-only\",\n            \"twoFactorSecret\": \"write-only\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/accounts","description":"<p>整体替换环境账号模块。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123","accounts"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"c71f476f-fa3b-4c1b-af43-95d0ebfe7a32","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"1219dc3d-06dd-4f6b-afc4-fc10b8bdacfd","name":"200 OK","originalRequest":{"method":"PUT","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"profile-123-r1\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"{\n    \"accounts\": [\n        {\n            \"platform\": \"example.com\",\n            \"account\": \"user@example.com\",\n            \"password\": \"write-only\",\n            \"twoFactorSecret\": \"write-only\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/accounts","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","accounts"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"整体替换环境账号模块。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"accounts\": [\n            {\n                \"index\": 0,\n                \"platform\": \"example\",\n                \"account\": \"example\"\n            }\n        ],\n        \"username\": \"示例\",\n        \"email\": \"example\",\n        \"phone\": \"example\",\n        \"remark\": \"example\"\n    }\n}"}],"_postman_id":"9eefcffa-6541-4273-8b68-c47e35fd7965"},{"name":"部分更新环境账号和秘密","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"e693dc30-9fcf-4232-abeb-6aba47ec7497"}}],"id":"e8355253-cb47-4494-b60f-e336a7e3406b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"profile-123-r1\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"upsert\": [\n        {\n            \"index\": 0,\n            \"password\": \"new-write-only-password\"\n        }\n    ],\n    \"deleteIndices\": []\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/accounts","description":"<p>部分更新环境账号和秘密。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123","accounts"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"c58b8867-d8bb-467c-a876-ed3d932ac811","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"d09cc49a-8f28-4639-8ac2-3100f52a00fa","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"profile-123-r1\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"{\n    \"upsert\": [\n        {\n            \"index\": 0,\n            \"password\": \"new-write-only-password\"\n        }\n    ],\n    \"deleteIndices\": []\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/accounts","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","accounts"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"部分更新环境账号和秘密。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"accounts\": [\n            {\n                \"index\": 0,\n                \"platform\": \"example\",\n                \"account\": \"example\"\n            }\n        ],\n        \"username\": \"示例\",\n        \"email\": \"example\",\n        \"phone\": \"example\",\n        \"remark\": \"example\"\n    }\n}"}],"_postman_id":"e8355253-cb47-4494-b60f-e336a7e3406b"}],"id":"06601f0f-9a71-40c1-b868-58da295cc9bf","description":"<p>查询账号平台并读取或更新环境账号和秘密字段。</p>\n","_postman_id":"06601f0f-9a71-40c1-b868-58da295cc9bf"},{"name":"启动页管理","item":[{"name":"读取环境启动页","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"a2af8eb1-5546-423f-a9fe-71604eb0ffd7"}}],"id":"09daae9a-06b2-48cd-9578-4cafe0be22cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profiles/123/startup-pages","description":"<p>读取环境启动页。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profiles","123","startup-pages"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"335aa78d-9188-4464-9052-d548f745d975","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"6bb6268d-8d8e-48e8-a3b8-5bd8ab4e7a66","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/startup-pages","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","startup-pages"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"读取环境启动页。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"startupUrls\": [\n            \"https://example.com/\"\n        ]\n    }\n}"}],"_postman_id":"09daae9a-06b2-48cd-9578-4cafe0be22cd"},{"name":"整体替换环境启动页","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"3b5e8a3a-851f-44a6-8599-e369248a618b"}}],"id":"72fe5069-fbe7-4aa1-bd0c-500c6e32f0fa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"profile-123-r1\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"startupUrls\": [\n        \"https://example.com/\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/startup-pages","description":"<p>整体替换环境启动页。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123","startup-pages"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"45f06d5b-746f-4ca8-9fcb-5ec7f1b2dd1e","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"31b63bfe-8f06-4781-928a-2bb3018171b9","name":"200 OK","originalRequest":{"method":"PUT","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"profile-123-r1\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"{\n    \"startupUrls\": [\n        \"https://example.com/\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/startup-pages","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","startup-pages"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"整体替换环境启动页。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"startupUrls\": [\n            \"https://example.com/\"\n        ]\n    }\n}"}],"_postman_id":"72fe5069-fbe7-4aa1-bd0c-500c6e32f0fa"},{"name":"合并或删除环境启动页","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});","const profileEtag = pm.response.headers.get(\"ETag\");","pm.test(\"响应包含环境强 ETag\", () => pm.expect(profileEtag).to.match(/^\"profile-[1-9]\\d*-r[1-9]\\d*\"$/));","pm.collectionVariables.set(\"profileEtag\", profileEtag);"],"id":"d85e294e-6755-4216-9bdb-0bae97fab753"}}],"id":"fcce08db-3da5-4e22-b0cb-01ce4d8d08a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"profile-123-r1\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"add\": [\n        \"https://example.org/\"\n    ],\n    \"remove\": [\n        \"https://example.com/\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/startup-pages","description":"<p>合并或删除环境启动页。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123","startup-pages"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"fa2fd786-3da4-4b7e-9820-e2fd781a7060","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"6bb80057-bce7-4e86-9811-e795f1e55dc4","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"profile-123-r1\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"{\n    \"add\": [\n        \"https://example.org/\"\n    ],\n    \"remove\": [\n        \"https://example.com/\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/startup-pages","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","startup-pages"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"合并或删除环境启动页。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"startupUrls\": [\n            \"https://example.com/\"\n        ]\n    }\n}"}],"_postman_id":"fcce08db-3da5-4e22-b0cb-01ce4d8d08a1"}],"id":"533839da-0fda-403b-b375-8b5cf29dac82","description":"<p>读取、整体替换、合并或删除环境启动页。</p>\n","_postman_id":"533839da-0fda-403b-b375-8b5cf29dac82"},{"name":"回收站","item":[{"name":"分页查询回收站环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"fa8c4321-fbad-4a37-a1b4-d368526b6c2f"}}],"id":"ccd20be9-ccd9-4346-8b12-ee79acc9c826","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"pageNumber\": 1,\n    \"pageSize\": 20\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/trash/profiles/list","description":"<p>分页查询回收站环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","trash","profiles","list"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"3dae8c6b-59ae-4f0d-b5ab-5f16369235cd","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"pageNumber\": 1,\n    \"pageSize\": 20\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/trash/profiles/list","description":"分页查询回收站环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"profileId\": \"123\",\n                \"profileCode\": \"profile-code\",\n                \"localProfileId\": \"123\",\n                \"name\": \"示例\",\n                \"customNo\": \"10001\",\n                \"remark\": \"example\",\n                \"browser\": \"ZLoginBrowser\",\n                \"browserVersion\": \"130.0.0.0\",\n                \"os\": \"Windows\",\n                \"osVersion\": \"130.0.0.0\",\n                \"group\": {\n                    \"id\": \"123\",\n                    \"code\": \"example-code\",\n                    \"name\": \"示例\"\n                },\n                \"tags\": [\n                    {\n                        \"code\": \"example-code\",\n                        \"name\": \"示例\"\n                    }\n                ],\n                \"deletedAt\": \"2026-01-01T00:00:00.000Z\",\n                \"deleteExpiresAt\": \"2026-01-01T00:00:00.000Z\"\n            }\n        ],\n        \"pageNumber\": 1,\n        \"pageSize\": 1,\n        \"totalCount\": 0\n    }\n}"}],"_postman_id":"ccd20be9-ccd9-4346-8b12-ee79acc9c826"},{"name":"按显式环境 ID 从回收站恢复","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"ff94707b-d574-4980-abd0-2a22551a7885"}}],"id":"50776990-3027-4b37-9376-ffafc6e16a59","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"profileIds\": [\n        10001,\n        10002\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/trash/profiles/restore","description":"<p>按显式环境 ID 从回收站恢复。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","trash","profiles","restore"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"d83ce50e-e5e5-418e-a850-6cb4818d8aa2","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"profileIds\": [\n        10001,\n        10002\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/trash/profiles/restore","description":"按显式环境 ID 从回收站恢复。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"restoredCount\": 1,\n        \"profiles\": [\n            {\n                \"profileId\": \"123\",\n                \"profileCode\": \"profile-code\",\n                \"localProfileId\": \"123\"\n            }\n        ]\n    }\n}"}],"_postman_id":"50776990-3027-4b37-9376-ffafc6e16a59"},{"name":"按显式环境 ID 永久删除回收站环境","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"99ba714f-9610-4d54-be82-c121605a2c9d"}}],"id":"197b3a8a-7bb0-49d7-8f28-3a2b58f0c5f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"profileIds\": [\n        10001,\n        10002\n    ],\n    \"confirmed\": true\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/trash/profiles","description":"<p>按显式环境 ID 永久删除回收站环境。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","trash","profiles"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"52036de1-239c-44bf-a1f0-6d9f05092cce","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"profileIds\": [\n        10001,\n        10002\n    ],\n    \"confirmed\": true\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/trash/profiles","description":"按显式环境 ID 永久删除回收站环境。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"deletedCount\": 1,\n        \"profiles\": [\n            {\n                \"profileId\": \"123\",\n                \"profileCode\": \"profile-code\",\n                \"localProfileId\": \"123\"\n            }\n        ],\n        \"localCleanup\": {\n            \"success\": true,\n            \"deletedLocalProfileIds\": [\n                \"123\"\n            ],\n            \"failedLocalProfileIds\": [\n                \"123\"\n            ],\n            \"retryScheduled\": true\n        }\n    }\n}"}],"_postman_id":"197b3a8a-7bb0-49d7-8f28-3a2b58f0c5f6"}],"id":"59a3e955-d36e-4b1b-8949-d5746690c8f0","description":"<p>查询、恢复或永久删除回收站中的环境。</p>\n","_postman_id":"59a3e955-d36e-4b1b-8949-d5746690c8f0"}],"id":"91791d35-9d5c-4288-bd2d-951450fa6ba4","description":"<p>对浏览器环境进行查询、运行控制、配置和数据管理。</p>\n","_postman_id":"91791d35-9d5c-4288-bd2d-951450fa6ba4"},{"name":"标签管理","item":[{"name":"分页查询环境标签定义","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"733c5724-4a68-43af-acc7-8394b6b4e98d"}}],"id":"a586f6ab-86f8-4411-becf-699faa61ee14","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profile-tags?pageNumber=1&pageSize=100","description":"<p>分页查询环境标签定义。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。</p>\n","urlObject":{"path":["api","v1","profile-tags"],"host":["http://127.0.0.1:50025"],"query":[{"description":{"content":"<p>页码，从 1 开始。</p>\n","type":"text/plain"},"key":"pageNumber","value":"1"},{"description":{"content":"<p>每页数量，范围为 1 至 100。</p>\n","type":"text/plain"},"key":"pageSize","value":"100"},{"disabled":true,"description":{"content":"<p>可选的名称或编码关键词。</p>\n","type":"text/plain"},"key":"keyword","value":""}],"variable":[]}},"response":[{"id":"cef8d48e-78ce-4c9d-9add-0515930f3494","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profile-tags?pageNumber=1&pageSize=100","host":["http://127.0.0.1:50025"],"path":["api","v1","profile-tags"],"query":[{"key":"pageNumber","value":"1","description":"页码，从 1 开始。"},{"key":"pageSize","value":"100","description":"每页数量，范围为 1 至 100。"},{"key":"keyword","value":"","description":"可选的名称或编码关键词。","disabled":true}]},"description":"分页查询环境标签定义。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"code\": \"example-code\",\n                \"name\": \"示例\",\n                \"color\": \"example\",\n                \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n                \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n            }\n        ],\n        \"pageNumber\": 1,\n        \"pageSize\": 1,\n        \"totalCount\": 1\n    }\n}"}],"_postman_id":"a586f6ab-86f8-4411-becf-699faa61ee14"},{"name":"创建环境标签定义","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"856457e6-f714-440e-8af3-2098e363c7df"}}],"id":"c4a09368-c45d-42e8-ac8f-8a67d4f0501d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"campaign-a\",\n    \"name\": \"Campaign A\",\n    \"color\": \"#3B82F6\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-tags","description":"<p>创建环境标签定义。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","profile-tags"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"0762b979-5511-44cf-bd78-ede16f7cb5e9","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"campaign-a\",\n    \"name\": \"Campaign A\",\n    \"color\": \"#3B82F6\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-tags","description":"创建环境标签定义。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"code\": \"example-code\",\n        \"name\": \"示例\",\n        \"color\": \"example\",\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"c4a09368-c45d-42e8-ac8f-8a67d4f0501d"},{"name":"部分更新环境标签定义","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"0683e7d8-41f6-4c5e-881b-6758d3ffd773"}}],"id":"0a594ed5-6b52-472a-8467-d7159f1e6517","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Campaign Alpha\",\n    \"color\": \"#2563EB\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-tags/campaign-a","description":"<p>部分更新环境标签定义。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profile-tags","campaign-a"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"706c9528-e5b5-441f-afee-0b35257ca3ac","description":{"content":"<p>标签编码。</p>\n","type":"text/plain"},"type":"any","value":"campaign-a","key":"tagCode"}]}},"response":[{"id":"a960c9ad-ea72-4c1a-a19e-d322218fcb9e","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Campaign Alpha\",\n    \"color\": \"#2563EB\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profile-tags/campaign-a","host":["http://127.0.0.1:50025"],"path":["api","v1","profile-tags","campaign-a"],"variable":[{"key":"tagCode","value":"campaign-a","description":"标签编码。"}]},"description":"部分更新环境标签定义。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"code\": \"example-code\",\n        \"name\": \"示例\",\n        \"color\": \"example\",\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"0a594ed5-6b52-472a-8467-d7159f1e6517"},{"name":"批量删除未使用的环境标签定义","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"aacd42eb-75b4-4385-bef6-3070c2e112fd"}}],"id":"6cda82ca-8824-4c2e-b22c-7202bc96fdc1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"codes\": [\n        \"campaign-a\",\n        \"priority\"\n    ],\n    \"forceDeleteInUse\": false\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-tags","description":"<p>批量删除未使用的环境标签定义。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profile-tags"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"c9d4eadf-a9d1-4b1e-aece-c7124f94272f","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"codes\": [\n        \"campaign-a\",\n        \"priority\"\n    ],\n    \"forceDeleteInUse\": false\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-tags","description":"批量删除未使用的环境标签定义。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"deletedCount\": 1,\n        \"deletedCodes\": [\n            \"example-code\"\n        ]\n    }\n}"}],"_postman_id":"6cda82ca-8824-4c2e-b22c-7202bc96fdc1"}],"id":"c6ca6ec9-ad52-4d8a-9d4f-a394243108b7","description":"<p>管理团队环境标签定义；环境标签绑定位于“浏览器环境 / 环境管理”。</p>\n","_postman_id":"c6ca6ec9-ad52-4d8a-9d4f-a394243108b7"},{"name":"分组管理","item":[{"name":"分页查询环境分组","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"be24f371-64da-4981-a275-9b8d8d8a5039"}}],"id":"48062812-a209-4f39-9dc4-ce2b1aec5803","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profile-groups?pageNumber=1&pageSize=100","description":"<p>分页查询环境分组。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。</p>\n","urlObject":{"path":["api","v1","profile-groups"],"host":["http://127.0.0.1:50025"],"query":[{"description":{"content":"<p>页码，从 1 开始。</p>\n","type":"text/plain"},"key":"pageNumber","value":"1"},{"description":{"content":"<p>每页数量，范围为 1 至 100。</p>\n","type":"text/plain"},"key":"pageSize","value":"100"},{"disabled":true,"description":{"content":"<p>可选的名称或编码关键词。</p>\n","type":"text/plain"},"key":"keyword","value":""}],"variable":[]}},"response":[{"id":"698f5354-bf4a-4b47-92d6-9996f6110392","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profile-groups?pageNumber=1&pageSize=100","host":["http://127.0.0.1:50025"],"path":["api","v1","profile-groups"],"query":[{"key":"pageNumber","value":"1","description":"页码，从 1 开始。"},{"key":"pageSize","value":"100","description":"每页数量，范围为 1 至 100。"},{"key":"keyword","value":"","description":"可选的名称或编码关键词。","disabled":true}]},"description":"分页查询环境分组。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"id\": \"123\",\n                \"code\": \"example-code\",\n                \"name\": \"示例\",\n                \"isBuiltIn\": true,\n                \"remark\": \"example\",\n                \"sortOrder\": 1,\n                \"isPinned\": true,\n                \"profileCount\": 1,\n                \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n                \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n            }\n        ],\n        \"pageNumber\": 1,\n        \"pageSize\": 1,\n        \"totalCount\": 1\n    }\n}"}],"_postman_id":"48062812-a209-4f39-9dc4-ce2b1aec5803"},{"name":"创建环境分组","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"9636fed2-d7d0-468d-aed2-6f3b2ae3e4f4"}}],"id":"38a46f1d-7f9b-4226-a3ae-86d6b1ee59bc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Automation\",\n    \"remark\": \"Desktop created\",\n    \"sortOrder\": 10\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-groups","description":"<p>创建环境分组。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","profile-groups"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"b001e5cf-3abb-440f-bfb7-40495e3af5bc","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Automation\",\n    \"remark\": \"Desktop created\",\n    \"sortOrder\": 10\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-groups","description":"创建环境分组。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"id\": \"123\",\n        \"code\": \"example-code\",\n        \"name\": \"示例\",\n        \"isBuiltIn\": true,\n        \"remark\": \"example\",\n        \"sortOrder\": 1,\n        \"isPinned\": true,\n        \"profileCount\": 1,\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"38a46f1d-7f9b-4226-a3ae-86d6b1ee59bc"},{"name":"部分更新环境分组","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"8944da8c-0cbf-42eb-a3b8-2c2bb4f2147d"}}],"id":"510773f5-fac4-4935-9f82-27138a848f4e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Automation updated\",\n    \"sortOrder\": 20\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-groups/11111111-1111-4111-8111-111111111111","description":"<p>部分更新环境分组。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profile-groups","11111111-1111-4111-8111-111111111111"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"cd4a7969-c525-45f3-92cf-12e961037437","description":{"content":"<p>环境分组 UUID。</p>\n","type":"text/plain"},"type":"any","value":"11111111-1111-4111-8111-111111111111","key":"groupId"}]}},"response":[{"id":"7d489b03-8057-4fd7-afe9-66456e448063","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Automation updated\",\n    \"sortOrder\": 20\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profile-groups/11111111-1111-4111-8111-111111111111","host":["http://127.0.0.1:50025"],"path":["api","v1","profile-groups","11111111-1111-4111-8111-111111111111"],"variable":[{"key":"groupId","value":"11111111-1111-4111-8111-111111111111","description":"环境分组 UUID。"}]},"description":"部分更新环境分组。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"id\": \"123\",\n        \"code\": \"example-code\",\n        \"name\": \"示例\",\n        \"isBuiltIn\": true,\n        \"remark\": \"example\",\n        \"sortOrder\": 1,\n        \"isPinned\": true,\n        \"profileCount\": 1,\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"510773f5-fac4-4935-9f82-27138a848f4e"},{"name":"删除未使用的环境分组","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"d170d8bb-3dc0-4a2f-9e58-5a419080b8d0"}}],"id":"bd2903b9-1010-4e03-ae26-27d21025009d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profile-groups/11111111-1111-4111-8111-111111111111","description":"<p>删除未使用的环境分组。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profile-groups","11111111-1111-4111-8111-111111111111"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"c73fe68f-7785-44e4-97a1-31d33679dd00","description":{"content":"<p>环境分组 UUID。</p>\n","type":"text/plain"},"type":"any","value":"11111111-1111-4111-8111-111111111111","key":"groupId"}]}},"response":[{"id":"fdbbbddc-b0d5-46a4-9699-999792b64201","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profile-groups/11111111-1111-4111-8111-111111111111","host":["http://127.0.0.1:50025"],"path":["api","v1","profile-groups","11111111-1111-4111-8111-111111111111"],"variable":[{"key":"groupId","value":"11111111-1111-4111-8111-111111111111","description":"环境分组 UUID。"}]},"description":"删除未使用的环境分组。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"id\": \"11111111-1111-4111-8111-111111111111\"\n    }\n}"}],"_postman_id":"bd2903b9-1010-4e03-ae26-27d21025009d"},{"name":"原子合并环境分组","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"831a6818-d48d-48e7-a1d3-8f58ccf777d6"}}],"id":"6e85deb7-aa00-4af9-9398-921cf8ffd3a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"targetGroupId\": \"11111111-1111-4111-8111-111111111111\",\n    \"sourceGroupIds\": [\n        \"22222222-2222-4222-8222-222222222222\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-groups/merge","description":"<p>原子合并环境分组。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","profile-groups","merge"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"b6547c2b-1fdf-452d-8afd-c4b97515a826","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"targetGroupId\": \"11111111-1111-4111-8111-111111111111\",\n    \"sourceGroupIds\": [\n        \"22222222-2222-4222-8222-222222222222\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profile-groups/merge","description":"原子合并环境分组。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"targetGroup\": {\n            \"id\": \"123\",\n            \"code\": \"example-code\",\n            \"name\": \"示例\"\n        },\n        \"removedSourceGroupIds\": [\n            \"11111111-1111-4111-8111-111111111111\"\n        ],\n        \"movedProfileCount\": 0,\n        \"skippedProfileCount\": 0,\n        \"conflictProfileCount\": 0,\n        \"removedGroupCount\": 1\n    }\n}"}],"_postman_id":"6e85deb7-aa00-4af9-9398-921cf8ffd3a2"},{"name":"置顶环境分组","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"efaebde6-ad02-450d-bcd1-c48fe7223416"}}],"id":"5328c8b5-d72e-462f-ac56-009ea732d5f5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profile-groups/11111111-1111-4111-8111-111111111111/pin","description":"<p>置顶环境分组。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profile-groups","11111111-1111-4111-8111-111111111111","pin"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"eb2058c1-e46a-47d0-8bc9-b47af6e91107","description":{"content":"<p>环境分组 UUID。</p>\n","type":"text/plain"},"type":"any","value":"11111111-1111-4111-8111-111111111111","key":"groupId"}]}},"response":[{"id":"dc5f2e2a-a722-48e3-ace3-ff1b5380f5e0","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profile-groups/11111111-1111-4111-8111-111111111111/pin","host":["http://127.0.0.1:50025"],"path":["api","v1","profile-groups","11111111-1111-4111-8111-111111111111","pin"],"variable":[{"key":"groupId","value":"11111111-1111-4111-8111-111111111111","description":"环境分组 UUID。"}]},"description":"置顶环境分组。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"id\": \"123\",\n        \"code\": \"example-code\",\n        \"name\": \"示例\",\n        \"isBuiltIn\": true,\n        \"remark\": \"example\",\n        \"sortOrder\": 1,\n        \"isPinned\": true,\n        \"profileCount\": 1,\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"5328c8b5-d72e-462f-ac56-009ea732d5f5"},{"name":"取消置顶环境分组","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"47b971f7-6064-46d1-8a23-04544fed5412"}}],"id":"fa4d3262-d3d5-48cb-91af-6ce159da5bbe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profile-groups/11111111-1111-4111-8111-111111111111/unpin","description":"<p>取消置顶环境分组。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profile-groups","11111111-1111-4111-8111-111111111111","unpin"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"a73c05b4-5b2b-4b88-94ff-57fac67d824b","description":{"content":"<p>环境分组 UUID。</p>\n","type":"text/plain"},"type":"any","value":"11111111-1111-4111-8111-111111111111","key":"groupId"}]}},"response":[{"id":"fdf735e9-d3f3-4d13-925d-cbe0da1d3d2c","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profile-groups/11111111-1111-4111-8111-111111111111/unpin","host":["http://127.0.0.1:50025"],"path":["api","v1","profile-groups","11111111-1111-4111-8111-111111111111","unpin"],"variable":[{"key":"groupId","value":"11111111-1111-4111-8111-111111111111","description":"环境分组 UUID。"}]},"description":"取消置顶环境分组。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"id\": \"123\",\n        \"code\": \"example-code\",\n        \"name\": \"示例\",\n        \"isBuiltIn\": true,\n        \"remark\": \"example\",\n        \"sortOrder\": 1,\n        \"isPinned\": true,\n        \"profileCount\": 1,\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"fa4d3262-d3d5-48cb-91af-6ce159da5bbe"}],"id":"16dafa17-a495-4298-aea4-ce89bd606021","description":"<p>查询和维护环境分组，包括合并、置顶和取消置顶。</p>\n","_postman_id":"16dafa17-a495-4298-aea4-ce89bd606021"},{"name":"代理管理","item":[{"name":"代理","item":[{"name":"分页查询已保存代理安全摘要","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"c1effca2-bd52-4b04-9075-b255b72a66e6"}}],"id":"b0aefafe-f9a3-4078-b1dc-0d7c15d3dc1f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/proxies?pageNumber=1&pageSize=100","description":"<p>分页查询已保存代理安全摘要。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。</p>\n","urlObject":{"path":["api","v1","proxies"],"host":["http://127.0.0.1:50025"],"query":[{"description":{"content":"<p>页码，从 1 开始。</p>\n","type":"text/plain"},"key":"pageNumber","value":"1"},{"description":{"content":"<p>每页数量，范围为 1 至 100。</p>\n","type":"text/plain"},"key":"pageSize","value":"100"},{"disabled":true,"description":{"content":"<p>可选的名称或编码关键词。</p>\n","type":"text/plain"},"key":"keyword","value":""}],"variable":[]}},"response":[{"id":"224d86ea-abda-42ab-a9b0-9db5d260ff57","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/proxies?pageNumber=1&pageSize=100","host":["http://127.0.0.1:50025"],"path":["api","v1","proxies"],"query":[{"key":"pageNumber","value":"1","description":"页码，从 1 开始。"},{"key":"pageSize","value":"100","description":"每页数量，范围为 1 至 100。"},{"key":"keyword","value":"","description":"可选的名称或编码关键词。","disabled":true}]},"description":"分页查询已保存代理安全摘要。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"proxyId\": \"123\",\n                \"code\": \"example-code\",\n                \"title\": \"example\",\n                \"proxyType\": \"example\",\n                \"providerName\": \"示例\",\n                \"countryCode\": \"example-code\",\n                \"available\": true,\n                \"expiresAt\": \"2026-01-01T00:00:00.000Z\",\n                \"lastCheckedAt\": \"2026-01-01T00:00:00.000Z\"\n            }\n        ],\n        \"pageNumber\": 1,\n        \"pageSize\": 1,\n        \"totalCount\": 1\n    }\n}"}],"_postman_id":"b0aefafe-f9a3-4078-b1dc-0d7c15d3dc1f"},{"name":"批量创建已保存代理","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"b54817c8-eb3d-4545-b330-3edf40027e18"}}],"id":"3ac4b3e7-0843-4b00-a568-1b6f370aaa95","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"items\": [\n        {\n            \"title\": \"Automation proxy\",\n            \"proxyType\": \"http\",\n            \"host\": \"127.0.0.1\",\n            \"port\": 8080,\n            \"tagCodes\": [\n                \"automation\"\n            ]\n        }\n    ],\n    \"checkDuplicate\": true\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxies","description":"<p>批量创建已保存代理。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","proxies"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"0b02f628-4944-40d2-aa9d-ed4c85884418","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"items\": [\n        {\n            \"title\": \"Automation proxy\",\n            \"proxyType\": \"http\",\n            \"host\": \"127.0.0.1\",\n            \"port\": 8080,\n            \"tagCodes\": [\n                \"automation\"\n            ]\n        }\n    ],\n    \"checkDuplicate\": true\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxies","description":"批量创建已保存代理。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"createdCount\": 1,\n        \"skippedDuplicateCount\": 1,\n        \"createdItems\": [\n            {\n                \"proxyId\": \"123\",\n                \"code\": \"example-code\",\n                \"title\": \"example\",\n                \"proxyType\": \"http\",\n                \"host\": \"example\",\n                \"port\": 1,\n                \"username\": \"示例\",\n                \"ipChecker\": \"example\",\n                \"providerName\": \"示例\",\n                \"tags\": [\n                    {\n                        \"code\": \"example-code\",\n                        \"name\": \"示例\",\n                        \"color\": \"example\"\n                    }\n                ],\n                \"remark\": \"example\",\n                \"expiresAt\": \"2026-01-01T00:00:00.000Z\",\n                \"countryCode\": \"example-code\",\n                \"exitIp\": \"example\",\n                \"lastCheckedAt\": \"2026-01-01T00:00:00.000Z\",\n                \"referenceCount\": 0,\n                \"available\": true,\n                \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n                \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n            }\n        ]\n    }\n}"}],"_postman_id":"3ac4b3e7-0843-4b00-a568-1b6f370aaa95"},{"name":"获取已保存代理安全详情","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"fffec16e-946c-4450-a35f-e770a0063924"}}],"id":"ec04a58b-8880-4f56-94d9-463c902c188d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/proxies/20001","description":"<p>获取已保存代理安全详情。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","proxies","20001"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"cf14080e-e8d6-4af8-bcca-18231da53416","description":{"content":"<p>已保存代理主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"20001","key":"proxyId"}]}},"response":[{"id":"b12d015f-0748-424c-9e5e-87dca83acf18","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/proxies/20001","host":["http://127.0.0.1:50025"],"path":["api","v1","proxies","20001"],"variable":[{"key":"proxyId","value":"20001","description":"已保存代理主键，使用正整数或十进制数字字符串。"}]},"description":"获取已保存代理安全详情。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"proxyId\": \"123\",\n        \"code\": \"example-code\",\n        \"title\": \"example\",\n        \"proxyType\": \"http\",\n        \"host\": \"example\",\n        \"port\": 1,\n        \"username\": \"示例\",\n        \"ipChecker\": \"example\",\n        \"providerName\": \"示例\",\n        \"tags\": [\n            {\n                \"code\": \"example-code\",\n                \"name\": \"示例\",\n                \"color\": \"example\"\n            }\n        ],\n        \"remark\": \"example\",\n        \"expiresAt\": \"2026-01-01T00:00:00.000Z\",\n        \"countryCode\": \"example-code\",\n        \"exitIp\": \"example\",\n        \"lastCheckedAt\": \"2026-01-01T00:00:00.000Z\",\n        \"referenceCount\": 0,\n        \"available\": true,\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"ec04a58b-8880-4f56-94d9-463c902c188d"},{"name":"部分更新已保存代理","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"7722d2fe-1c25-4995-82fb-b4f2675926d0"}}],"id":"f39d92a3-e787-4a99-901a-a801278d1b9c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Automation proxy updated\",\n    \"remark\": null\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxies/20001","description":"<p>部分更新已保存代理。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","proxies","20001"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"6a6ac15c-b93f-4e3f-af60-911ca4624845","description":{"content":"<p>已保存代理主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"20001","key":"proxyId"}]}},"response":[{"id":"ab8e0285-c34b-45b6-8d13-6e018536c947","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"title\": \"Automation proxy updated\",\n    \"remark\": null\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/proxies/20001","host":["http://127.0.0.1:50025"],"path":["api","v1","proxies","20001"],"variable":[{"key":"proxyId","value":"20001","description":"已保存代理主键，使用正整数或十进制数字字符串。"}]},"description":"部分更新已保存代理。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"proxyId\": \"123\",\n        \"code\": \"example-code\",\n        \"title\": \"example\",\n        \"proxyType\": \"http\",\n        \"host\": \"example\",\n        \"port\": 1,\n        \"username\": \"示例\",\n        \"ipChecker\": \"example\",\n        \"providerName\": \"示例\",\n        \"tags\": [\n            {\n                \"code\": \"example-code\",\n                \"name\": \"示例\",\n                \"color\": \"example\"\n            }\n        ],\n        \"remark\": \"example\",\n        \"expiresAt\": \"2026-01-01T00:00:00.000Z\",\n        \"countryCode\": \"example-code\",\n        \"exitIp\": \"example\",\n        \"lastCheckedAt\": \"2026-01-01T00:00:00.000Z\",\n        \"referenceCount\": 0,\n        \"available\": true,\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"f39d92a3-e787-4a99-901a-a801278d1b9c"},{"name":"批量删除未被环境引用的代理","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"c4db4765-de4b-4272-8f8b-edfa743a7e9a"}}],"id":"fb998421-0a35-4f60-9932-0ad1be60f0f0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"proxyIds\": [\n        20001,\n        20002\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxies","description":"<p>批量删除未被环境引用的代理。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","proxies"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"3bd6c3e2-3ae8-442e-8ac5-90e95e31fc2e","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"proxyIds\": [\n        20001,\n        20002\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxies","description":"批量删除未被环境引用的代理。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"deletedCount\": 1,\n        \"deletedProxyIds\": [\n            \"123\"\n        ]\n    }\n}"}],"_postman_id":"fb998421-0a35-4f60-9932-0ad1be60f0f0"},{"name":"检测已保存代理或内联代理","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"f4bdbf19-0ce0-42ae-941b-6721a5994a8d"}}],"id":"8eb1b5f7-aba2-4cea-986a-61a9e575e0d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"proxyId\": 20001\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxies/check","description":"<p>检测已保存代理或内联代理。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","proxies","check"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"95bbfa07-66d6-4eba-9c27-602b70ecbf66","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"proxyId\": 20001\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxies/check","description":"检测已保存代理或内联代理。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"success\": true,\n        \"proxyId\": \"123\",\n        \"exitIp\": \"example\",\n        \"countryCode\": \"example-code\",\n        \"latencyMs\": 0,\n        \"checker\": \"example\",\n        \"errorCode\": \"example-code\",\n        \"checkedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"8eb1b5f7-aba2-4cea-986a-61a9e575e0d2"}],"id":"5d823f8f-d2e4-4b6a-965a-5d9eaa44e21b","description":"<p>查询、创建、更新、删除和检测已保存代理或内联代理。</p>\n","_postman_id":"5d823f8f-d2e4-4b6a-965a-5d9eaa44e21b"},{"name":"代理标签","item":[{"name":"分页查询代理标签定义","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"9fe36476-fd70-42e8-80bf-5aeb21386f95"}}],"id":"fe249c57-119a-41b0-8b06-e5276b4baaba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/proxy-tags?pageNumber=1&pageSize=100","description":"<p>分页查询代理标签定义。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。</p>\n","urlObject":{"path":["api","v1","proxy-tags"],"host":["http://127.0.0.1:50025"],"query":[{"description":{"content":"<p>页码，从 1 开始。</p>\n","type":"text/plain"},"key":"pageNumber","value":"1"},{"description":{"content":"<p>每页数量，范围为 1 至 100。</p>\n","type":"text/plain"},"key":"pageSize","value":"100"},{"disabled":true,"description":{"content":"<p>可选的名称或编码关键词。</p>\n","type":"text/plain"},"key":"keyword","value":""}],"variable":[]}},"response":[{"id":"6774875a-8ba5-43c5-9312-298f0ad9116a","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/proxy-tags?pageNumber=1&pageSize=100","host":["http://127.0.0.1:50025"],"path":["api","v1","proxy-tags"],"query":[{"key":"pageNumber","value":"1","description":"页码，从 1 开始。"},{"key":"pageSize","value":"100","description":"每页数量，范围为 1 至 100。"},{"key":"keyword","value":"","description":"可选的名称或编码关键词。","disabled":true}]},"description":"分页查询代理标签定义。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"code\": \"example-code\",\n                \"name\": \"示例\",\n                \"color\": \"example\",\n                \"proxyCount\": 0,\n                \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n                \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n            }\n        ],\n        \"pageNumber\": 1,\n        \"pageSize\": 1,\n        \"totalCount\": 1\n    }\n}"}],"_postman_id":"fe249c57-119a-41b0-8b06-e5276b4baaba"},{"name":"创建代理标签定义","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"ea47b051-57d3-4fd5-9f96-965c52426641"}}],"id":"8a702e7b-228f-47b7-aa7d-1fb7123f7483","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"automation\",\n    \"name\": \"Automation\",\n    \"color\": \"#0EA5E9\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxy-tags","description":"<p>创建代理标签定义。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","proxy-tags"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"38bcd135-b27c-4ab5-9130-e250de6e6a80","name":"200 OK","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"code\": \"automation\",\n    \"name\": \"Automation\",\n    \"color\": \"#0EA5E9\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxy-tags","description":"创建代理标签定义。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"code\": \"example-code\",\n        \"name\": \"示例\",\n        \"color\": \"example\",\n        \"proxyCount\": 0,\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"8a702e7b-228f-47b7-aa7d-1fb7123f7483"},{"name":"部分更新代理标签定义","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"ad0b6a84-4a62-433a-b862-90dc6776e77e"}}],"id":"95565963-213e-4054-9d8f-7951ce753335","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Automation updated\",\n    \"color\": \"#34D399\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxy-tags/campaign-a","description":"<p>部分更新代理标签定义。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","proxy-tags","campaign-a"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"32029e82-0c3b-4b73-a0d9-e94aa79dbca5","description":{"content":"<p>标签编码。</p>\n","type":"text/plain"},"type":"any","value":"campaign-a","key":"tagCode"}]}},"response":[{"id":"8ce9a1aa-032d-410e-947e-bb4e8dc1b9b9","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"name\": \"Automation updated\",\n    \"color\": \"#34D399\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/proxy-tags/campaign-a","host":["http://127.0.0.1:50025"],"path":["api","v1","proxy-tags","campaign-a"],"variable":[{"key":"tagCode","value":"campaign-a","description":"标签编码。"}]},"description":"部分更新代理标签定义。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"code\": \"example-code\",\n        \"name\": \"示例\",\n        \"color\": \"example\",\n        \"proxyCount\": 0,\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"95565963-213e-4054-9d8f-7951ce753335"},{"name":"批量删除未被代理引用的代理标签","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"a9167e0e-8deb-4403-84f6-3f3125405f38"}}],"id":"4c9b1280-cfe6-4d0d-83ab-0ce298d453e1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"codes\": [\n        \"automation\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxy-tags","description":"<p>批量删除未被代理引用的代理标签。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","proxy-tags"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"1f985efe-d7d0-4f0d-b67f-ca809156c905","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"codes\": [\n        \"automation\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/proxy-tags","description":"批量删除未被代理引用的代理标签。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"deletedCount\": 1,\n        \"deletedCodes\": [\n            \"example-code\"\n        ]\n    }\n}"}],"_postman_id":"4c9b1280-cfe6-4d0d-83ab-0ce298d453e1"}],"id":"a41b8f69-27a0-47da-b202-675acbcf9e38","description":"<p>查询和维护代理标签定义。</p>\n","_postman_id":"a41b8f69-27a0-47da-b202-675acbcf9e38"}],"id":"7f82a78d-c5a1-4aa4-9b3c-b7903288fd83","description":"<p>管理已保存代理、代理检测和代理标签。</p>\n","_postman_id":"7f82a78d-c5a1-4aa4-9b3c-b7903288fd83"},{"name":"应用中心","item":[{"name":"扩展管理","item":[{"name":"查询团队扩展分类安全目录","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"b895cf8b-6442-4c61-9fb3-ab6f5e65ff53"}}],"id":"c7373904-2e31-40cc-8905-6ae4dcbc6839","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/extension-categories?pageNumber=1&pageSize=100","description":"<p>查询团队扩展分类安全目录。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。</p>\n","urlObject":{"path":["api","v1","extension-categories"],"host":["http://127.0.0.1:50025"],"query":[{"description":{"content":"<p>页码，从 1 开始。</p>\n","type":"text/plain"},"key":"pageNumber","value":"1"},{"description":{"content":"<p>每页数量，范围为 1 至 100。</p>\n","type":"text/plain"},"key":"pageSize","value":"100"},{"disabled":true,"description":{"content":"<p>可选的名称或编码关键词。</p>\n","type":"text/plain"},"key":"keyword","value":""}],"variable":[]}},"response":[{"id":"e5590cd6-93ed-49be-ad11-252d0a193e25","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/extension-categories?pageNumber=1&pageSize=100","host":["http://127.0.0.1:50025"],"path":["api","v1","extension-categories"],"query":[{"key":"pageNumber","value":"1","description":"页码，从 1 开始。"},{"key":"pageSize","value":"100","description":"每页数量，范围为 1 至 100。"},{"key":"keyword","value":"","description":"可选的名称或编码关键词。","disabled":true}]},"description":"查询团队扩展分类安全目录。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"id\": \"11111111-1111-4111-8111-111111111111\",\n                \"name\": \"示例\",\n                \"remark\": \"example\",\n                \"sortOrder\": 1,\n                \"extensionCount\": 0,\n                \"extensions\": [\n                    {\n                        \"id\": \"11111111-1111-4111-8111-111111111111\",\n                        \"sourceType\": \"example\",\n                        \"name\": \"示例\",\n                        \"intro\": \"example\",\n                        \"provider\": \"example\",\n                        \"iconUrl\": \"https://example.com/\",\n                        \"version\": \"130.0.0.0\",\n                        \"isEnabled\": true,\n                        \"installStatus\": \"pending\",\n                        \"packageAvailable\": true,\n                        \"pinMode\": \"customize\"\n                    }\n                ]\n            }\n        ],\n        \"pageNumber\": 1,\n        \"pageSize\": 1,\n        \"totalCount\": 0\n    }\n}"}],"_postman_id":"c7373904-2e31-40cc-8905-6ae4dcbc6839"},{"name":"查询团队扩展安全元数据和安装状态","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"1836bdf5-1d69-4a60-966e-2cb9257470d9"}}],"id":"22de7d12-c3f8-4169-ade4-7b15ae114267","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/extensions?pageNumber=1&pageSize=100","description":"<p>查询团队扩展安全元数据和安装状态。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。</p>\n","urlObject":{"path":["api","v1","extensions"],"host":["http://127.0.0.1:50025"],"query":[{"description":{"content":"<p>页码，从 1 开始。</p>\n","type":"text/plain"},"key":"pageNumber","value":"1"},{"description":{"content":"<p>每页数量，范围为 1 至 100。</p>\n","type":"text/plain"},"key":"pageSize","value":"100"},{"disabled":true,"description":{"content":"<p>可选的名称或编码关键词。</p>\n","type":"text/plain"},"key":"keyword","value":""},{"disabled":true,"description":{"content":"<p>可选的扩展分类 UUID。</p>\n","type":"text/plain"},"key":"categoryId","value":""},{"disabled":true,"description":{"content":"<p>可选的启用状态过滤条件。</p>\n","type":"text/plain"},"key":"isEnabled","value":"true"},{"disabled":true,"description":{"content":"<p>可选的安装状态过滤条件。</p>\n","type":"text/plain"},"key":"installStatus","value":"available"}],"variable":[]}},"response":[{"id":"3ea8e308-9784-44ac-a74e-7290650ab913","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/extensions?pageNumber=1&pageSize=100","host":["http://127.0.0.1:50025"],"path":["api","v1","extensions"],"query":[{"key":"pageNumber","value":"1","description":"页码，从 1 开始。"},{"key":"pageSize","value":"100","description":"每页数量，范围为 1 至 100。"},{"key":"keyword","value":"","description":"可选的名称或编码关键词。","disabled":true},{"key":"categoryId","value":"","description":"可选的扩展分类 UUID。","disabled":true},{"key":"isEnabled","value":"true","description":"可选的启用状态过滤条件。","disabled":true},{"key":"installStatus","value":"available","description":"可选的安装状态过滤条件。","disabled":true}]},"description":"查询团队扩展安全元数据和安装状态。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"id\": \"11111111-1111-4111-8111-111111111111\",\n                \"sourceType\": \"example\",\n                \"name\": \"示例\",\n                \"intro\": \"example\",\n                \"provider\": \"example\",\n                \"iconUrl\": \"https://example.com/\",\n                \"version\": \"130.0.0.0\",\n                \"isEnabled\": true,\n                \"installStatus\": \"pending\",\n                \"packageAvailable\": true,\n                \"pinMode\": \"customize\"\n            }\n        ],\n        \"pageNumber\": 1,\n        \"pageSize\": 1,\n        \"totalCount\": 0\n    }\n}"}],"_postman_id":"22de7d12-c3f8-4169-ade4-7b15ae114267"},{"name":"查询受信 Web Store 扩展包","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"12ef4bff-b6a5-4eb7-8c86-81b5379898e7"}}],"id":"d0426a59-4140-4567-afc9-ab34f0776b0d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/extension-packages?pageNumber=1&pageSize=100","description":"<p>查询受信 Web Store 扩展包。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。</p>\n","urlObject":{"path":["api","v1","extension-packages"],"host":["http://127.0.0.1:50025"],"query":[{"description":{"content":"<p>页码，从 1 开始。</p>\n","type":"text/plain"},"key":"pageNumber","value":"1"},{"description":{"content":"<p>每页数量，范围为 1 至 100。</p>\n","type":"text/plain"},"key":"pageSize","value":"100"},{"disabled":true,"description":{"content":"<p>可选的名称或编码关键词。</p>\n","type":"text/plain"},"key":"keyword","value":""},{"disabled":true,"description":{"content":"<p>可选的启用状态过滤条件。</p>\n","type":"text/plain"},"key":"isEnabled","value":"true"},{"disabled":true,"description":{"content":"<p>可选的安装状态过滤条件。</p>\n","type":"text/plain"},"key":"installStatus","value":"available"}],"variable":[]}},"response":[{"id":"b69972a7-9d53-406f-8a97-bf7d7cccf99b","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/extension-packages?pageNumber=1&pageSize=100","host":["http://127.0.0.1:50025"],"path":["api","v1","extension-packages"],"query":[{"key":"pageNumber","value":"1","description":"页码，从 1 开始。"},{"key":"pageSize","value":"100","description":"每页数量，范围为 1 至 100。"},{"key":"keyword","value":"","description":"可选的名称或编码关键词。","disabled":true},{"key":"isEnabled","value":"true","description":"可选的启用状态过滤条件。","disabled":true},{"key":"installStatus","value":"available","description":"可选的安装状态过滤条件。","disabled":true}]},"description":"查询受信 Web Store 扩展包。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n列表过滤条件均为可选；pageNumber 和 pageSize 使用文档中的默认示例值。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"items\": [\n            {\n                \"id\": \"11111111-1111-4111-8111-111111111111\",\n                \"sourceType\": \"web_store\",\n                \"externalExtensionId\": \"123\",\n                \"webStoreUrl\": \"https://example.com/\",\n                \"name\": \"示例\",\n                \"intro\": \"example\",\n                \"provider\": \"example\",\n                \"iconUrl\": \"https://example.com/\",\n                \"version\": \"130.0.0.0\",\n                \"packageSizeBytes\": 1,\n                \"packageSha256\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                \"isEnabled\": true,\n                \"installStatus\": \"pending\",\n                \"packageAvailable\": true,\n                \"pinMode\": \"customize\",\n                \"sourceVerified\": true,\n                \"scanStatus\": \"not_scanned\",\n                \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n                \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n            }\n        ],\n        \"pageNumber\": 1,\n        \"pageSize\": 1,\n        \"totalCount\": 0\n    }\n}"}],"_postman_id":"d0426a59-4140-4567-afc9-ab34f0776b0d"},{"name":"从 Chrome Web Store 添加扩展包","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 201\", () => pm.response.to.have.status(201));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"5d02b1f9-2148-4fd3-85f6-380ae5451f58"}}],"id":"37b12fa7-a800-4212-b8af-518276d4fe66","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","description":"<p>业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"webStoreUrl\": \"https://chromewebstore.google.com/detail/example/abcdefghijklmnopabcdefghijklmnop\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/extension-packages/from-web-store","description":"<p>从 Chrome Web Store 添加扩展包。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>写操作必须提供 Idempotency-Key，以便安全重试。</p>\n","urlObject":{"path":["api","v1","extension-packages","from-web-store"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"375bd85f-27d2-4e2e-a84c-ac3243e0de4f","name":"201 Created","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"Idempotency-Key","value":"YOUR_IDEMPOTENCY_KEY","type":"text","description":"业务动作幂等键；同一业务动作重试时保持不变，不同动作使用不同值。"}],"body":{"mode":"raw","raw":"{\n    \"webStoreUrl\": \"https://chromewebstore.google.com/detail/example/abcdefghijklmnopabcdefghijklmnop\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/extension-packages/from-web-store","description":"从 Chrome Web Store 添加扩展包。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n写操作必须提供 Idempotency-Key，以便安全重试。"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"id\": \"11111111-1111-4111-8111-111111111111\",\n        \"sourceType\": \"web_store\",\n        \"externalExtensionId\": \"123\",\n        \"webStoreUrl\": \"https://example.com/\",\n        \"name\": \"示例\",\n        \"intro\": \"example\",\n        \"provider\": \"example\",\n        \"iconUrl\": \"https://example.com/\",\n        \"version\": \"130.0.0.0\",\n        \"packageSizeBytes\": 1,\n        \"packageSha256\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n        \"isEnabled\": true,\n        \"installStatus\": \"pending\",\n        \"packageAvailable\": true,\n        \"pinMode\": \"customize\",\n        \"sourceVerified\": true,\n        \"scanStatus\": \"not_scanned\",\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"37b12fa7-a800-4212-b8af-518276d4fe66"},{"name":"启用或停用 Web Store 扩展包","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"1add11af-2a0a-4bbb-a24b-a49dd8e1fb77"}}],"id":"b87a8301-8b42-46ac-ba24-5618237e9a2b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"isEnabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/extension-packages/22222222-2222-4222-8222-222222222222/status","description":"<p>启用或停用 Web Store 扩展包。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","extension-packages","22222222-2222-4222-8222-222222222222","status"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"f21771aa-f28f-45c4-957b-10433ffad5af","description":{"content":"<p>扩展包 UUID。</p>\n","type":"text/plain"},"type":"any","value":"22222222-2222-4222-8222-222222222222","key":"extensionId"}]}},"response":[{"id":"59b7878b-763f-4db9-97f7-4dd84832304e","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"isEnabled\": true\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/extension-packages/22222222-2222-4222-8222-222222222222/status","host":["http://127.0.0.1:50025"],"path":["api","v1","extension-packages","22222222-2222-4222-8222-222222222222","status"],"variable":[{"key":"extensionId","value":"22222222-2222-4222-8222-222222222222","description":"扩展包 UUID。"}]},"description":"启用或停用 Web Store 扩展包。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"id\": \"11111111-1111-4111-8111-111111111111\",\n        \"sourceType\": \"web_store\",\n        \"externalExtensionId\": \"123\",\n        \"webStoreUrl\": \"https://example.com/\",\n        \"name\": \"示例\",\n        \"intro\": \"example\",\n        \"provider\": \"example\",\n        \"iconUrl\": \"https://example.com/\",\n        \"version\": \"130.0.0.0\",\n        \"packageSizeBytes\": 1,\n        \"packageSha256\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n        \"isEnabled\": true,\n        \"installStatus\": \"pending\",\n        \"packageAvailable\": true,\n        \"pinMode\": \"customize\",\n        \"sourceVerified\": true,\n        \"scanStatus\": \"not_scanned\",\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"b87a8301-8b42-46ac-ba24-5618237e9a2b"},{"name":"删除 Web Store 扩展包","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"19ec299b-3037-4afc-85a4-d330fe2fba91"}}],"id":"8f8efa9e-297f-44ac-929f-749f079766ea","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/extension-packages/22222222-2222-4222-8222-222222222222","description":"<p>删除 Web Store 扩展包。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","extension-packages","22222222-2222-4222-8222-222222222222"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"b73282f7-766d-49b9-be63-817cced5114e","description":{"content":"<p>扩展包 UUID。</p>\n","type":"text/plain"},"type":"any","value":"22222222-2222-4222-8222-222222222222","key":"extensionId"}]}},"response":[{"id":"36b96ec4-b366-4185-a04c-c841d7b5ca48","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/extension-packages/22222222-2222-4222-8222-222222222222","host":["http://127.0.0.1:50025"],"path":["api","v1","extension-packages","22222222-2222-4222-8222-222222222222"],"variable":[{"key":"extensionId","value":"22222222-2222-4222-8222-222222222222","description":"扩展包 UUID。"}]},"description":"删除 Web Store 扩展包。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"id\": \"11111111-1111-4111-8111-111111111111\",\n        \"sourceType\": \"web_store\",\n        \"externalExtensionId\": \"123\",\n        \"webStoreUrl\": \"https://example.com/\",\n        \"name\": \"示例\",\n        \"intro\": \"example\",\n        \"provider\": \"example\",\n        \"iconUrl\": \"https://example.com/\",\n        \"version\": \"130.0.0.0\",\n        \"packageSizeBytes\": 1,\n        \"packageSha256\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n        \"isEnabled\": true,\n        \"installStatus\": \"pending\",\n        \"packageAvailable\": true,\n        \"pinMode\": \"customize\",\n        \"sourceVerified\": true,\n        \"scanStatus\": \"not_scanned\",\n        \"createdAt\": \"2026-01-01T00:00:00.000Z\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"8f8efa9e-297f-44ac-929f-749f079766ea"},{"name":"读取环境扩展绑定和安装状态","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"87b088b7-9055-4e79-9b65-52f9865675f7"}}],"id":"172fd332-a563-45e9-933b-1f1b3aa996fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/profiles/123/extensions","description":"<p>读取环境扩展绑定和安装状态。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","profiles","123","extensions"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"fd39225e-a257-40ac-8780-ea25b1d92c88","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"13825f63-9afd-43df-9949-6a57160d8b8b","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/extensions","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","extensions"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"读取环境扩展绑定和安装状态。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"mode\": \"all\",\n        \"category\": {\n            \"id\": \"11111111-1111-4111-8111-111111111111\",\n            \"name\": \"示例\",\n            \"remark\": \"example\",\n            \"sortOrder\": 1,\n            \"extensionCount\": 0,\n            \"extensions\": [\n                {\n                    \"id\": \"11111111-1111-4111-8111-111111111111\",\n                    \"sourceType\": \"example\",\n                    \"name\": \"示例\",\n                    \"intro\": \"example\",\n                    \"provider\": \"example\",\n                    \"iconUrl\": \"https://example.com/\",\n                    \"version\": \"130.0.0.0\",\n                    \"isEnabled\": true,\n                    \"installStatus\": \"pending\",\n                    \"packageAvailable\": true,\n                    \"pinMode\": \"customize\"\n                }\n            ]\n        },\n        \"extensions\": [\n            {\n                \"id\": \"11111111-1111-4111-8111-111111111111\",\n                \"sourceType\": \"example\",\n                \"name\": \"示例\",\n                \"intro\": \"example\",\n                \"provider\": \"example\",\n                \"iconUrl\": \"https://example.com/\",\n                \"version\": \"130.0.0.0\",\n                \"isEnabled\": true,\n                \"installStatus\": \"pending\",\n                \"packageAvailable\": true,\n                \"pinMode\": \"customize\"\n            }\n        ],\n        \"allPackagesAvailable\": true\n    }\n}"}],"_postman_id":"172fd332-a563-45e9-933b-1f1b3aa996fe"},{"name":"绑定团队全部扩展或一个扩展分类","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"b152fcba-d452-4aa0-a979-f153b4808389"}}],"id":"b78ce897-af32-4b35-806e-f26551e9e7d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"},{"key":"If-Match","value":"\"profile-123-r1\"","description":"<p>最近一次读取资源时返回的 ETag，用于防止并发覆盖。</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"mode\": \"categories\",\n    \"categoryId\": \"11111111-1111-4111-8111-111111111111\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/profiles/123/extensions","description":"<p>绑定团队全部扩展或一个扩展分类。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n<p>更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。</p>\n","urlObject":{"path":["api","v1","profiles","123","extensions"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"71142754-28e8-4c44-8819-f4a25d9abc7d","description":{"content":"<p>环境主键，使用正整数或十进制数字字符串。</p>\n","type":"text/plain"},"type":"any","value":"123","key":"profileId"}]}},"response":[{"id":"66c44325-b40b-4cda-9e4d-475bda85a8b2","name":"200 OK","originalRequest":{"method":"PATCH","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"},{"key":"If-Match","value":"\"profile-123-r1\"","type":"text","description":"最近一次读取资源时返回的 ETag，用于防止并发覆盖。"}],"body":{"mode":"raw","raw":"{\n    \"mode\": \"categories\",\n    \"categoryId\": \"11111111-1111-4111-8111-111111111111\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"http://127.0.0.1:50025/api/v1/profiles/123/extensions","host":["http://127.0.0.1:50025"],"path":["api","v1","profiles","123","extensions"],"variable":[{"key":"profileId","value":"123","description":"环境主键，使用正整数或十进制数字字符串。"}]},"description":"绑定团队全部扩展或一个扩展分类。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。\n\n更新前先读取最新 ETag，并通过 If-Match 提交以执行乐观并发控制。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"},{"key":"ETag","value":"\"profile-123-r1\""}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"profileId\": \"123\",\n        \"mode\": \"all\",\n        \"category\": {\n            \"id\": \"11111111-1111-4111-8111-111111111111\",\n            \"name\": \"示例\",\n            \"remark\": \"example\",\n            \"sortOrder\": 1,\n            \"extensionCount\": 0,\n            \"extensions\": [\n                {\n                    \"id\": \"11111111-1111-4111-8111-111111111111\",\n                    \"sourceType\": \"example\",\n                    \"name\": \"示例\",\n                    \"intro\": \"example\",\n                    \"provider\": \"example\",\n                    \"iconUrl\": \"https://example.com/\",\n                    \"version\": \"130.0.0.0\",\n                    \"isEnabled\": true,\n                    \"installStatus\": \"pending\",\n                    \"packageAvailable\": true,\n                    \"pinMode\": \"customize\"\n                }\n            ]\n        },\n        \"extensions\": [\n            {\n                \"id\": \"11111111-1111-4111-8111-111111111111\",\n                \"sourceType\": \"example\",\n                \"name\": \"示例\",\n                \"intro\": \"example\",\n                \"provider\": \"example\",\n                \"iconUrl\": \"https://example.com/\",\n                \"version\": \"130.0.0.0\",\n                \"isEnabled\": true,\n                \"installStatus\": \"pending\",\n                \"packageAvailable\": true,\n                \"pinMode\": \"customize\"\n            }\n        ],\n        \"allPackagesAvailable\": true\n    }\n}"}],"_postman_id":"b78ce897-af32-4b35-806e-f26551e9e7d6"}],"id":"3602e4c6-9088-4959-a742-c177ad874dc6","description":"<p>查询扩展目录和分类，管理 Web Store 扩展包及环境扩展绑定。</p>\n","_postman_id":"3602e4c6-9088-4959-a742-c177ad874dc6"},{"name":"浏览器内核","item":[{"name":"查询当前设备浏览器内核包目录","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"3bda33d9-3113-42c4-a3d5-7dcd09d583a5"}}],"id":"d64f0ab1-09ef-4000-8da1-4162631b72c5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/browser-packages","description":"<p>查询当前设备浏览器内核包目录。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-packages"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"52c53a5f-ee9c-449c-968a-2f5928e5fdb0","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":"http://127.0.0.1:50025/api/v1/browser-packages","description":"查询当前设备浏览器内核包目录。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"clientTarget\": \"example\",\n        \"clientVersion\": \"130.0.0.0\",\n        \"browsers\": [\n            {\n                \"browser\": \"ZLoginBrowser\",\n                \"name\": \"示例\",\n                \"kernel\": \"chromium\",\n                \"versions\": [\n                    {\n                        \"version\": \"130.0.0.0\",\n                        \"buildVersion\": \"130.0.0.0\",\n                        \"recommended\": true,\n                        \"fileSize\": 0,\n                        \"sha256\": \"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\n                        \"signatureAvailable\": true,\n                        \"entryPoint\": \"example\",\n                        \"releaseNotes\": \"example\",\n                        \"releaseNotesLanguage\": \"example\",\n                        \"installed\": true,\n                        \"installedBuildVersion\": \"130.0.0.0\",\n                        \"status\": \"example\",\n                        \"runningProfileCount\": 0\n                    }\n                ]\n            }\n        ]\n    }\n}"}],"_postman_id":"d64f0ab1-09ef-4000-8da1-4162631b72c5"},{"name":"创建浏览器内核包下载任务","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 202\", () => pm.response.to.have.status(202));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"43aa835c-1240-42cb-8545-a42c05109ab6"}}],"id":"31b59f7b-a5e6-40a8-b384-83c1bd600d76","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"},{"key":"Content-Type","value":"application/json","description":"<p>请求体使用 JSON 编码。</p>\n"}],"body":{"mode":"raw","raw":"{\n    \"browser\": \"ZLoginBrowser\",\n    \"kernel\": \"chrome\",\n    \"version\": \"146\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-packages/downloads","description":"<p>创建浏览器内核包下载任务。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-packages","downloads"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[]}},"response":[{"id":"d16329f0-e723-4d3a-8a1f-ded26150b129","name":"202 Accepted","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"},{"key":"Content-Type","value":"application/json","description":"请求体使用 JSON 编码。"}],"body":{"mode":"raw","raw":"{\n    \"browser\": \"ZLoginBrowser\",\n    \"kernel\": \"chrome\",\n    \"version\": \"146\"\n}","options":{"raw":{"language":"json"}}},"url":"http://127.0.0.1:50025/api/v1/browser-packages/downloads","description":"创建浏览器内核包下载任务。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"taskId\": \"11111111-1111-4111-8111-111111111111\",\n        \"status\": \"downloading\",\n        \"browser\": \"ZLoginBrowser\",\n        \"kernel\": \"chromium\",\n        \"version\": \"130.0.0.0\",\n        \"buildVersion\": \"130.0.0.0\",\n        \"progress\": {\n            \"percent\": 0,\n            \"transferred\": 0,\n            \"total\": 0,\n            \"bytesPerSecond\": 0\n        },\n        \"runningProfileCount\": 0,\n        \"errorCode\": \"example-code\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"31b59f7b-a5e6-40a8-b384-83c1bd600d76"},{"name":"查询浏览器内核包异步任务","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"d83d53cd-fe32-464a-b263-7962fea2f160"}}],"id":"c592da01-a145-4e03-a7e4-def5ddc964a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/browser-packages/downloads/33333333-3333-4333-8333-333333333333","description":"<p>查询浏览器内核包异步任务。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-packages","downloads","33333333-3333-4333-8333-333333333333"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"f0b73709-1b5c-44de-96ae-d14655f4cc64","description":{"content":"<p>浏览器内核包异步任务 UUID。</p>\n","type":"text/plain"},"type":"any","value":"33333333-3333-4333-8333-333333333333","key":"taskId"}]}},"response":[{"id":"4d4a1bb6-38cf-43a0-a602-9c4e4d488919","name":"200 OK","originalRequest":{"method":"GET","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/browser-packages/downloads/33333333-3333-4333-8333-333333333333","host":["http://127.0.0.1:50025"],"path":["api","v1","browser-packages","downloads","33333333-3333-4333-8333-333333333333"],"variable":[{"key":"taskId","value":"33333333-3333-4333-8333-333333333333","description":"浏览器内核包异步任务 UUID。"}]},"description":"查询浏览器内核包异步任务。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"taskId\": \"11111111-1111-4111-8111-111111111111\",\n        \"status\": \"downloading\",\n        \"browser\": \"ZLoginBrowser\",\n        \"kernel\": \"chromium\",\n        \"version\": \"130.0.0.0\",\n        \"buildVersion\": \"130.0.0.0\",\n        \"progress\": {\n            \"percent\": 0,\n            \"transferred\": 0,\n            \"total\": 0,\n            \"bytesPerSecond\": 0\n        },\n        \"runningProfileCount\": 0,\n        \"errorCode\": \"example-code\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"c592da01-a145-4e03-a7e4-def5ddc964a2"},{"name":"创建浏览器内核包安装任务","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 202\", () => pm.response.to.have.status(202));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"553da903-7c89-4988-9546-55274edd84b9"}}],"id":"c4a0bc1e-2bab-452d-bcf3-ced8dedc9965","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/browser-packages/chromium/130.0.0.0/install","description":"<p>创建浏览器内核包安装任务。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-packages","chromium","130.0.0.0","install"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"1dc34444-5253-4f20-8918-0e3e7bba3a22","description":{"content":"<p>浏览器内核标识。</p>\n","type":"text/plain"},"type":"any","value":"chromium","key":"kernel"},{"id":"028ec1b8-373f-47db-9fe3-4557179b700f","description":{"content":"<p>浏览器内核版本号。</p>\n","type":"text/plain"},"type":"any","value":"130.0.0.0","key":"version"}]}},"response":[{"id":"967befbb-09bc-4e66-a121-4d05379ecbd9","name":"202 Accepted","originalRequest":{"method":"POST","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/browser-packages/chromium/130.0.0.0/install","host":["http://127.0.0.1:50025"],"path":["api","v1","browser-packages","chromium","130.0.0.0","install"],"variable":[{"key":"kernel","value":"chromium","description":"浏览器内核标识。"},{"key":"version","value":"130.0.0.0","description":"浏览器内核版本号。"}]},"description":"创建浏览器内核包安装任务。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"taskId\": \"11111111-1111-4111-8111-111111111111\",\n        \"status\": \"downloading\",\n        \"browser\": \"ZLoginBrowser\",\n        \"kernel\": \"chromium\",\n        \"version\": \"130.0.0.0\",\n        \"buildVersion\": \"130.0.0.0\",\n        \"progress\": {\n            \"percent\": 0,\n            \"transferred\": 0,\n            \"total\": 0,\n            \"bytesPerSecond\": 0\n        },\n        \"runningProfileCount\": 0,\n        \"errorCode\": \"example-code\",\n        \"updatedAt\": \"2026-01-01T00:00:00.000Z\"\n    }\n}"}],"_postman_id":"c4a0bc1e-2bab-452d-bcf3-ced8dedc9965"},{"name":"卸载未被环境占用的浏览器内核包","event":[{"listen":"test","script":{"type":"text/javascript","exec":["pm.test(\"HTTP 200\", () => pm.response.to.have.status(200));","const payload = pm.response.json();","pm.test(\"统一成功响应\", () => {","    pm.expect(payload.success).to.eql(true);","    pm.expect(payload.code).to.eql(\"OK\");","    pm.expect(payload.message).to.be.a(\"string\");","    pm.expect(payload.requestId).to.be.a(\"string\").and.not.empty;","    pm.expect(pm.response.headers.get(\"X-Request-Id\")).to.eql(payload.requestId);","});"],"id":"2c996af6-5ac2-4342-8c4f-648e6fdb6291"}}],"id":"d6a482a1-b4b0-49cc-b106-d58dc1ddcd0d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","description":"<p>ZLogin Open API 调用密钥。</p>\n","type":"text"}],"url":"http://127.0.0.1:50025/api/v1/browser-packages/chromium/130.0.0.0","description":"<p>卸载未被环境占用的浏览器内核包。</p>\n<p>请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。</p>\n","urlObject":{"path":["api","v1","browser-packages","chromium","130.0.0.0"],"host":["http://127.0.0.1:50025"],"query":[],"variable":[{"id":"9a9d946e-e2c3-4b2c-a8ab-e19dfcb839bd","description":{"content":"<p>浏览器内核标识。</p>\n","type":"text/plain"},"type":"any","value":"chromium","key":"kernel"},{"id":"831d35c1-8c5b-49f7-8b2e-4c615247290d","description":{"content":"<p>浏览器内核版本号。</p>\n","type":"text/plain"},"type":"any","value":"130.0.0.0","key":"version"}]}},"response":[{"id":"6e5e148e-8dd2-4656-88ca-32296764dea9","name":"200 OK","originalRequest":{"method":"DELETE","header":[{"key":"X-Api-Key","value":"YOUR_API_KEY","type":"text","description":"ZLogin Open API 调用密钥。"}],"url":{"raw":"http://127.0.0.1:50025/api/v1/browser-packages/chromium/130.0.0.0","host":["http://127.0.0.1:50025"],"path":["api","v1","browser-packages","chromium","130.0.0.0"],"variable":[{"key":"kernel","value":"chromium","description":"浏览器内核标识。"},{"key":"version","value":"130.0.0.0","description":"浏览器内核版本号。"}]},"description":"卸载未被环境占用的浏览器内核包。\n\n请求头必须提供 X-Api-Key；成功响应返回统一 envelope 和 X-Request-Id。"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Request-Id","value":"11111111-1111-4111-8111-111111111111"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1767225660"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"code\": \"OK\",\n    \"message\": \"成功\",\n    \"requestId\": \"11111111-1111-4111-8111-111111111111\",\n    \"data\": {\n        \"kernel\": \"chromium\",\n        \"version\": \"130.0.0.0\",\n        \"removed\": false\n    }\n}"}],"_postman_id":"d6a482a1-b4b0-49cc-b106-d58dc1ddcd0d"}],"id":"63a8501f-8e4a-4cea-afd6-33d24946370d","description":"<p>查询、下载、安装和卸载当前设备的浏览器内核包。</p>\n","_postman_id":"63a8501f-8e4a-4cea-afd6-33d24946370d"}],"id":"31579c3b-e8e5-48c6-bf57-b83fb62c5428","description":"<p>管理团队扩展、环境扩展绑定和当前设备浏览器内核包。</p>\n","_postman_id":"31579c3b-e8e5-48c6-bf57-b83fb62c5428"},{"name":"附录","item":[{"name":"调用约定","item":[],"id":"935d4a8f-0882-49ab-affa-ea9d76282339","description":"<p>默认地址为 <a href=\"http://127.0.0.1:50025%E3%80%82%E9%99%A4%E6%9C%8D%E5%8A%A1%E7%8A%B6%E6%80%81%E5%A4%96%EF%BC%8C%E8%AF%B7%E6%B1%82%E9%80%9A%E8%BF%87\">http://127.0.0.1:50025。除服务状态外，请求通过</a> X-Api-Key 鉴权；响应使用统一 envelope 并返回 X-Request-Id。</p>\n","_postman_id":"935d4a8f-0882-49ab-affa-ea9d76282339"},{"name":"环境标识","item":[],"id":"6831f10d-f1b8-4cb3-8de1-2d0acc1f19ad","description":"<p>支持 profileId、profileNo 或 profileCode。选择器接口必须且只能提供其中一个标识。</p>\n","_postman_id":"6831f10d-f1b8-4cb3-8de1-2d0acc1f19ad"},{"name":"幂等与并发控制","item":[],"id":"db5e8516-a244-4b1a-a9e2-d034b025c92f","description":"<p>要求 Idempotency-Key 的写操作应为每次业务动作生成稳定唯一值；环境配置写操作先读取最新 ETag，再通过 If-Match 提交。</p>\n","_postman_id":"db5e8516-a244-4b1a-a9e2-d034b025c92f"},{"name":"限流与错误码","item":[],"id":"04c71f94-93e8-4069-9671-0c3466ba6c2d","description":"<p>成功响应包含限流响应头；遇到 429 时按 X-RateLimit-Reset 等待。业务失败使用稳定 HTTP 状态和错误码。</p>\n","_postman_id":"04c71f94-93e8-4069-9671-0c3466ba6c2d"},{"name":"自动化连接","item":[],"id":"38a2225b-2fa3-4b09-986c-958d43fd1c72","description":"<p>启动环境后使用响应中的本机 CDP debuggerAddress 或 webSocketDebuggerUrl 连接 Playwright、Puppeteer 或 Selenium。</p>\n","_postman_id":"38a2225b-2fa3-4b09-986c-958d43fd1c72"}],"id":"499694b1-d932-4861-aa2e-0cf96851ed50","description":"<p>ZLogin Open API 的通用调用约定。详细字段、错误码和示例以同版本 OpenAPI 3.1 与 API 参考文档为准。</p>\n","_postman_id":"499694b1-d932-4861-aa2e-0cf96851ed50"}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":["const delay = Number(pm.collectionVariables.get(\"requestDelayMs\"));","if (Number.isFinite(delay) && delay > 0) setTimeout(() => {}, delay);"],"id":"2014f548-022e-41bc-a681-2906ad7d4a30"}}],"variable":[{"key":"baseUrl","value":"http://127.0.0.1:50025"},{"key":"apiKey","value":"YOUR_API_KEY"},{"key":"profileId","value":"123"},{"key":"profileNo","value":"10001"},{"key":"profileCode","value":"profile-code"},{"key":"proxyId","value":"20001"},{"key":"groupId","value":"11111111-1111-4111-8111-111111111111"},{"key":"tagCode","value":"campaign-a"},{"key":"extensionId","value":"22222222-2222-4222-8222-222222222222"},{"key":"taskId","value":"33333333-3333-4333-8333-333333333333"},{"key":"kernel","value":"chromium"},{"key":"version","value":"130.0.0.0"},{"key":"idempotencyKey","value":"YOUR_IDEMPOTENCY_KEY"},{"key":"profileEtag","value":"\"profile-123-r1\""},{"key":"cookieEtag","value":"\"cookie-123-r0123456789abcdef\""},{"key":"requestDelayMs","value":"600"},{"key":"debuggerAddress","value":""},{"key":"webSocketDebuggerUrl","value":""}]}