{
 "info": {
  "name": "ADSSPEED — API cục bộ (Bản mới)",
  "description": "64 lệnh API cục bộ của ADSSPEED — Bản mới. Đặt biến api_key = khoá trong Cài đặt → API & Tích hợp; base_url mặc định http://127.0.0.1:19555. Tài liệu: https://adsspeed.com/adsspeed_api.html",
  "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
 },
 "auth": {
  "type": "apikey",
  "apikey": [
   {
    "key": "key",
    "value": "X-API-Key",
    "type": "string"
   },
   {
    "key": "value",
    "value": "{{api_key}}",
    "type": "string"
   },
   {
    "key": "in",
    "value": "header",
    "type": "string"
   }
  ]
 },
 "variable": [
  {
   "key": "base_url",
   "value": "http://127.0.0.1:19555"
  },
  {
   "key": "api_key",
   "value": "API_KEY"
  }
 ],
 "item": [
  {
   "name": "Điều khiển hồ sơ",
   "item": [
    {
     "name": "Mở hồ sơ",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/browser/start?profile_id=1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "browser",
        "start"
       ],
       "query": [
        {
         "key": "profile_id",
         "value": "1"
        }
       ]
      },
      "description": "Mở trình duyệt của hồ sơ, trả cổng điều khiển cho Selenium / Puppeteer / Playwright. Đang mở rồi thì trả luôn cổng đang dùng (already_open). Gửi kèm proxy / launch_args thì LƯU vào hồ sơ rồi mới mở. Proxy dạng object thì gọi bằng POST. Hồ sơ vượt hạn mức gói không mở được."
     }
    },
    {
     "name": "Đóng hồ sơ",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/browser/stop?profile_id=1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "browser",
        "stop"
       ],
       "query": [
        {
         "key": "profile_id",
         "value": "1"
        }
       ]
      },
      "description": "Đóng trình duyệt của hồ sơ."
     }
    },
    {
     "name": "Hồ sơ có đang mở?",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/browser/active?profile_id=1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "browser",
        "active"
       ],
       "query": [
        {
         "key": "profile_id",
         "value": "1"
        }
       ]
      },
      "description": "Active / Inactive kèm cổng điều khiển nếu đang mở."
     }
    },
    {
     "name": "Hồ sơ đang mở",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/browser/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "browser",
        "list"
       ]
      },
      "description": "Mọi hồ sơ đang mở cùng cổng điều khiển."
     }
    },
    {
     "name": "Xoá cache",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/browser/clear-cache",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "browser",
        "clear-cache"
       ]
      },
      "description": "Xoá bộ nhớ đệm, GIỮ cookie và đăng nhập. Hồ sơ phải đang đóng.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_id\": 2\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    }
   ]
  },
  {
   "name": "Thông tin hồ sơ",
   "item": [
    {
     "name": "Danh sách hồ sơ",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/list?page=1&page_size=50",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "list"
       ],
       "query": [
        {
         "key": "page",
         "value": "1"
        },
        {
         "key": "page_size",
         "value": "50"
        }
       ]
      },
      "description": "Lọc và sắp như bảng hồ sơ trong app. Có phân trang."
     }
    },
    {
     "name": "Chi tiết hồ sơ",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/detail?profile_id=1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "detail"
       ],
       "query": [
        {
         "key": "profile_id",
         "value": "1"
        }
       ]
      },
      "description": "Tên, nhóm, nhãn, ghi chú, proxy (mật khẩu che ***), bản lõi, tham số khởi động, URL mở đầu, IP/nước đo qua proxy, thư mục dữ liệu. KHÔNG có thông số vân tay."
     }
    },
    {
     "name": "Trạng thái để lọc",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/statuses",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "statuses"
       ]
      },
      "description": "Các trạng thái dùng cho tham số status của profile/list."
     }
    },
    {
     "name": "Danh sách nhãn",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/tag/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "tag",
        "list"
       ]
      },
      "description": "Nhãn đang dùng và số hồ sơ mỗi nhãn."
     }
    },
    {
     "name": "Danh sách nhóm",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/group/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "group",
        "list"
       ]
      },
      "description": "Nhóm hồ sơ và số hồ sơ mỗi nhóm."
     }
    },
    {
     "name": "Lựa chọn khi tạo hồ sơ",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/browser/versions",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "browser",
        "versions"
       ]
      },
      "description": "Trình duyệt hợp lệ và phiên bản OS của từng hệ điều hành; các bản lõi trình duyệt đã cài trên máy (browser_build)."
     }
    }
   ]
  },
  {
   "name": "Thao tác hồ sơ",
   "item": [
    {
     "name": "Tạo hồ sơ",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/create",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "create"
       ]
      },
      "description": "Tạo MỘT hồ sơ. Tính vào hạn mức gói và lượt tạo trong ngày như nút Tạo. Vân tay do app sinh — muốn kiểu khác thì tạo Cấu hình mẫu trong app rồi gửi config_id.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"name\": \"Shop VN 01\",\n  \"os\": \"Windows\",\n  \"browser\": \"Chrome\",\n  \"group\": \"Shop VN\",\n  \"tags\": [\n    \"shopee\",\n    \"vn\"\n  ],\n  \"proxy\": \"203.0.113.10:8000:user1:pass1\",\n  \"start_url\": \"https://shopee.vn/\",\n  \"launch_args\": \"--lang=vi\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Sửa hồ sơ",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/update",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "update"
       ]
      },
      "description": "Chỉ đổi trường được gửi. Hồ sơ vượt hạn mức gói là chỉ đọc (không sửa, không mở). Đổi proxy / tham số lúc hồ sơ đang mở thì restart_required = true.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_id\": 1,\n  \"note\": \"Tài khoản chính\",\n  \"launch_args\": \"--lang=vi --start-maximized\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Nhãn nhiều hồ sơ",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/tags",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "tags"
       ]
      },
      "description": "Đặt / thêm / bớt nhãn cho nhiều hồ sơ một lần.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_ids\": [\n    1,\n    2\n  ],\n  \"tags\": [\n    \"vip\"\n  ],\n  \"mode\": \"add\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Ghim hồ sơ",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/pin",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "pin"
       ]
      },
      "description": "Ghim / bỏ ghim — hồ sơ ghim luôn nằm đầu bảng.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_ids\": [\n    1\n  ],\n  \"pinned\": true\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Nhân bản hồ sơ",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/duplicate",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "duplicate"
       ]
      },
      "description": "Tạo bản sao (tính vào hạn mức như tạo mới).",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_id\": 2\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Xoá hồ sơ",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "delete"
       ]
      },
      "description": "Đóng trình duyệt nếu đang mở rồi đưa vào Thùng rác (khôi phục được).",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_ids\": [\n    4\n  ]\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Chuyển nhóm",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/group/assign",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "group",
        "assign"
       ]
      },
      "description": "Đưa các hồ sơ vào một nhóm.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_ids\": [\n    3\n  ],\n  \"group\": \"TikTok\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Đổi tên nhóm",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/group/rename",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "group",
        "rename"
       ]
      },
      "description": "Đổi tên nhóm",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"old\": \"TikTok\",\n  \"new\": \"TikTok US\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Xoá nhóm",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/group/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "group",
        "delete"
       ]
      },
      "description": "Mặc định chỉ bỏ nhóm, giữ hồ sơ. drop_profiles = true thì hồ sơ vào Thùng rác.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"group\": \"Tạm\",\n  \"drop_profiles\": false\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Cấu hình mẫu",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/config/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "config",
        "list"
       ]
      },
      "description": "Các cấu hình mẫu tạo trong app (dùng cho config_id khi tạo hồ sơ)."
     }
    },
    {
     "name": "Chi tiết cấu hình mẫu",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/config/detail?config_id=1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "config",
        "detail"
       ],
       "query": [
        {
         "key": "config_id",
         "value": "1"
        }
       ]
      },
      "description": "Tên, OS, trình duyệt, phiên bản OS, URL, nhóm, nhãn."
     }
    },
    {
     "name": "Bật cấu hình mẫu",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/config/apply",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "config",
        "apply"
       ]
      },
      "description": "Hồ sơ tạo qua API mà không gửi config_id sẽ theo cấu hình này. 0 = tắt.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"config_id\": 1\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    }
   ]
  },
  {
   "name": "Proxy",
   "item": [
    {
     "name": "Đổi proxy nhiều hồ sơ",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/update-profiles",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "update-profiles"
       ]
      },
      "description": "Mỗi hồ sơ một proxy (items), hoặc một proxy cho cả danh sách (profile_ids + proxy).",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"items\": [\n    {\n      \"profile_id\": 1,\n      \"proxy\": \"203.0.113.30:8000:user5:pass5\"\n    },\n    {\n      \"profile_id\": 2,\n      \"proxy\": {\n        \"type\": \"socks5\",\n        \"host\": \"203.0.113.31\",\n        \"port\": 1080,\n        \"user\": \"user6\",\n        \"pass\": \"pass6\"\n      }\n    }\n  ]\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Kiểm một proxy",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/test",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "test"
       ]
      },
      "description": "Đi thật qua proxy: sống/chết, IP, quốc gia, thành phố, múi giờ, nhà mạng, độ trễ.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"proxy\": \"socks5://user7:pass7@203.0.113.40:1080\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Kiểm proxy của hồ sơ",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/check-proxy",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "check-proxy"
       ]
      },
      "description": "Chạy nền, ghi IP / nước vào hồ sơ (đọc lại ở profile/detail hoặc lọc status).",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_ids\": [\n    1,\n    2\n  ]\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Kho proxy",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "list"
       ]
      },
      "description": "Proxy trong kho (mật khẩu che ***)."
     }
    },
    {
     "name": "Nhập proxy vào kho",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/import",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "import"
       ]
      },
      "description": "Nhập proxy vào kho",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"proxies\": [\n    \"203.0.113.21:8000:user3:pass3\",\n    \"socks5://user4:pass4@203.0.113.22:1080\"\n  ],\n  \"group\": \"US-Res\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Gán proxy kho cho hồ sơ",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/assign",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "assign"
       ]
      },
      "description": "1 proxy → mọi hồ sơ; N proxy → chia vòng.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"proxy_ids\": [\n    1\n  ],\n  \"profile_ids\": [\n    3\n  ]\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Kiểm proxy trong kho",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/check",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "check"
       ]
      },
      "description": "Chạy nền. Không gửi proxy_ids = kiểm cả kho; stop = true để dừng.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"proxy_ids\": [\n    1,\n    2\n  ]\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Tiến độ kiểm kho",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/check-status",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "check-status"
       ]
      },
      "description": "Tiến độ kiểm kho"
     }
    },
    {
     "name": "Xoá proxy khỏi kho",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "delete"
       ]
      },
      "description": "Hồ sơ đang dùng proxy đó giữ nguyên.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"proxy_ids\": [\n    2\n  ]\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Nhóm proxy",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/group/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "group",
        "list"
       ]
      },
      "description": "Nhóm proxy"
     }
    },
    {
     "name": "Proxy trong nhóm",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/group/detail?name=US-Res",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "group",
        "detail"
       ],
       "query": [
        {
         "key": "name",
         "value": "US-Res"
        }
       ]
      },
      "description": "Proxy trong nhóm"
     }
    },
    {
     "name": "Đưa proxy vào nhóm",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/proxy/group/assign",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "proxy",
        "group",
        "assign"
       ]
      },
      "description": "Đưa proxy vào nhóm",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"proxy_ids\": [\n    2\n  ],\n  \"name\": \"US-Res\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Dcom 4G",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/dcom/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "dcom",
        "list"
       ]
      },
      "description": "Thiết bị Dcom và proxy của chúng (mật khẩu che)."
     }
    },
    {
     "name": "Đổi IP Dcom",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/dcom/rotate?name=DCOM-1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "dcom",
        "rotate"
       ],
       "query": [
        {
         "key": "name",
         "value": "DCOM-1"
        }
       ]
      },
      "description": "Đổi IP Dcom"
     }
    }
   ]
  },
  {
   "name": "Kịch bản",
   "item": [
    {
     "name": "Danh sách kịch bản",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/script/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "script",
        "list"
       ]
      },
      "description": "Thông tin chung (không trả nội dung bước)."
     }
    },
    {
     "name": "Chạy kịch bản",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/script/run",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "script",
        "run"
       ]
      },
      "description": "Chạy kịch bản kéo-thả trên các hồ sơ, lần lượt từng hồ sơ, chạy nền.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"script_id\": 1,\n  \"profile_ids\": [\n    1,\n    2\n  ]\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Tiến độ kịch bản",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/script/status",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "script",
        "status"
       ]
      },
      "description": "Tiến độ kịch bản"
     }
    },
    {
     "name": "Dừng kịch bản",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/script/stop",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "script",
        "stop"
       ]
      },
      "description": "Dừng ở bước kế tiếp (không đóng trình duyệt).",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    }
   ]
  },
  {
   "name": "Chiến dịch",
   "item": [
    {
     "name": "Danh sách chiến dịch",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/campaign/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "campaign",
        "list"
       ]
      },
      "description": "Chiến dịch = một kịch bản chạy hàng loạt trên nhiều hồ sơ (gọi bằng script_id)."
     }
    },
    {
     "name": "Chi tiết chiến dịch",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/campaign/detail?script_id=1",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "campaign",
        "detail"
       ],
       "query": [
        {
         "key": "script_id",
         "value": "1"
        }
       ]
      },
      "description": "Cài đặt, hồ sơ, tên biến {{...}} kịch bản cần, hồ sơ nào đã điền biến."
     }
    },
    {
     "name": "Lưu cài đặt",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/campaign/save",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "campaign",
        "save"
       ]
      },
      "description": "Chỉ khoá được gửi thay đổi.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"script_id\": 1,\n  \"threads\": 2,\n  \"thread_delay\": 0,\n  \"rest\": [\n    0,\n    0\n  ],\n  \"retries\": 1,\n  \"on_error\": \"skip\",\n  \"order\": \"sequential\",\n  \"close_after\": true,\n  \"conditions\": {\n    \"success\": [\n      {\n        \"type\": \"url\",\n        \"value\": \"/buyer\"\n      }\n    ],\n    \"fail\": [\n      {\n        \"type\": \"text\",\n        \"value\": \"Sai mật khẩu\"\n      }\n    ]\n  }\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Hồ sơ của chiến dịch",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/campaign/profiles",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "campaign",
        "profiles"
       ]
      },
      "description": "Hồ sơ của chiến dịch",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"script_id\": 1,\n  \"profile_ids\": [\n    1,\n    2\n  ],\n  \"mode\": \"set\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Biến đầu vào",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/campaign/data",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "campaign",
        "data"
       ]
      },
      "description": "Điền biến {{...}} cho từng hồ sơ (data) hoặc cho mọi hồ sơ (all). Trộn vào dữ liệu đang có.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"script_id\": 1,\n  \"data\": {\n    \"1\": {\n      \"email\": \"shop01@mail.com\",\n      \"password\": \"******\"\n    },\n    \"2\": {\n      \"email\": \"shop02@mail.com\",\n      \"password\": \"******\"\n    }\n  }\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Chạy chiến dịch",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/campaign/run",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "campaign",
        "run"
       ]
      },
      "description": "Gửi kèm khoá cài đặt thì lưu luôn rồi chạy. Mỗi lúc chỉ chạy một chiến dịch.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"script_id\": 1\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Tiến độ chiến dịch",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/campaign/status",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "campaign",
        "status"
       ]
      },
      "description": "Tổng hợp + từng hồ sơ (state: waiting · running · success · failed · error · stopped)."
     }
    },
    {
     "name": "Dừng / tạm dừng",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/campaign/stop",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "campaign",
        "stop"
       ]
      },
      "description": "Dừng / tạm dừng",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"mode\": \"after\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Chạy lại hồ sơ lỗi",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/campaign/retry-failed",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "campaign",
        "retry-failed"
       ]
      },
      "description": "Chỉ các hồ sơ lỗi / bị dừng của lượt trước.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    }
   ]
  },
  {
   "name": "Lịch chạy",
   "item": [
    {
     "name": "Danh sách lịch",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/schedule/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "schedule",
        "list"
       ]
      },
      "description": "Danh sách lịch"
     }
    },
    {
     "name": "Thêm lịch",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/schedule/create",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "schedule",
        "create"
       ]
      },
      "description": "Hằng ngày lúc HH:MM, hoặc chạy một lần sau N phút. Chỉ kịch bản kéo-thả không khoá.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"script_id\": 1,\n  \"profile_ids\": [\n    1,\n    2\n  ],\n  \"mode\": \"daily\",\n  \"at\": \"08:30\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Bật / tắt lịch",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/schedule/toggle",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "schedule",
        "toggle"
       ]
      },
      "description": "Bật / tắt lịch",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"schedule_id\": 1,\n  \"enabled\": false\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Xoá lịch",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/schedule/delete",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "schedule",
        "delete"
       ]
      },
      "description": "Xoá lịch",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"schedule_ids\": [\n    1\n  ]\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    }
   ]
  },
  {
   "name": "Thùng rác · Cookie · Tiện ích",
   "item": [
    {
     "name": "Thùng rác",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/trash/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "trash",
        "list"
       ]
      },
      "description": "Có phân trang."
     }
    },
    {
     "name": "Khôi phục",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/trash/restore",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "trash",
        "restore"
       ]
      },
      "description": "Không chặn theo hạn mức (giữ dữ liệu cho khách); hồ sơ vượt hạn mức gói thành chỉ đọc và không mở được — vẫn xuất cookie, xoá được.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_ids\": [\n    4\n  ]\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Xoá vĩnh viễn",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/trash/purge",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "trash",
        "purge"
       ]
      },
      "description": "Xoá hẳn cả dữ liệu, không hoàn tác. Chỉ hồ sơ đang ở Thùng rác.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_ids\": [\n    4\n  ],\n  \"confirm\": true\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Xuất cookie",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/cookies?profile_id=1&domain=shopee.vn",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "cookies"
       ],
       "query": [
        {
         "key": "profile_id",
         "value": "1"
        },
        {
         "key": "domain",
         "value": "shopee.vn"
        }
       ]
      },
      "description": "Xuất cookie"
     }
    },
    {
     "name": "Nhập cookie",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/profile/cookies",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "profile",
        "cookies"
       ]
      },
      "description": "Như ô Dán cookie: nạp vào trình duyệt ở lần mở kế tiếp (ghi đè cookie trùng tên, không xoá cookie khác).",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"profile_id\": 1,\n  \"mode\": \"merge\",\n  \"cookies\": \"# Netscape HTTP Cookie File\\n.shopee.vn\\tTRUE\\t/\\tTRUE\\t1893456000\\tSPC_F\\t…\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Kho tiện ích",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/extension/list",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "extension",
        "list"
       ]
      },
      "description": "Kho tiện ích"
     }
    },
    {
     "name": "Bật / tắt tiện ích",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/extension/toggle",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "extension",
        "toggle"
       ]
      },
      "description": "Áp cho hồ sơ mở sau lệnh này.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"key\": \"metamask\",\n  \"enabled\": true\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Cài tiện ích",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/extension/install",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "extension",
        "install"
       ]
      },
      "description": "Từ Chrome Web Store. Tiện ích mới mặc định tắt.",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"url\": \"https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    },
    {
     "name": "Gỡ tiện ích",
     "request": {
      "method": "POST",
      "url": {
       "raw": "{{base_url}}/api/v1/extension/remove",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "extension",
        "remove"
       ]
      },
      "description": "Gỡ tiện ích",
      "header": [
       {
        "key": "Content-Type",
        "value": "application/json"
       }
      ],
      "body": {
       "mode": "raw",
       "raw": "{\n  \"key\": \"hlkenndednhfkekhgcdicdfddnkalmdm\"\n}",
       "options": {
        "raw": {
         "language": "json"
        }
       }
      }
     }
    }
   ]
  },
  {
   "name": "Người dùng · Hệ thống",
   "item": [
    {
     "name": "Tài khoản",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/api/v1/user/info",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "api",
        "v1",
        "user",
        "info"
       ]
      },
      "description": "Gói, trạng thái, hạn dùng, hạn mức hồ sơ, số hồ sơ, lượt tạo hôm nay."
     }
    },
    {
     "name": "API có đang chạy?",
     "request": {
      "method": "GET",
      "url": {
       "raw": "{{base_url}}/status",
       "host": [
        "{{base_url}}"
       ],
       "path": [
        "status"
       ]
      },
      "description": "Không cần khoá. Trả phiên bản app.",
      "auth": {
       "type": "noauth"
      }
     }
    }
   ]
  }
 ]
}