Files
proxycast/docs/research/nextbrowser-debugger.md
T

24 KiB
Raw Permalink Blame History

  • generic [active] [ref=e1]:
    • generic [ref=e2]:
      • link "Skip to main content" [ref=e3] [cursor=pointer]:
        • /url: "#content-area"
      • generic [ref=e6]:
        • generic [ref=e7]:
          • generic [ref=e8]:
            • generic [ref=e9]:
              • link "Nextbrowser home page light logo" [ref=e10] [cursor=pointer]:
                • /url: /
                • generic [ref=e11]: Nextbrowser home page
                • img "light logo" [ref=e12]
              • button "Toggle dark mode" [ref=e13] [cursor=pointer]:
                • generic [ref=e14]:
                  • img [ref=e15]
                  • img [ref=e22]
            • button "Open search" [ref=e28] [cursor=pointer]:
              • generic [ref=e29]:
                • img [ref=e30]
                • generic [ref=e33]: Search...
              • generic [ref=e34]: ⌘K
            • generic [ref=e35]:
              • list [ref=e36]:
                • listitem [ref=e37]:
                  • link "Documentation" [ref=e38] [cursor=pointer]:
                    • /url: /NB-Intro
                    • img [ref=e39]
                    • generic [ref=e40]: Documentation
                • listitem [ref=e41]:
                  • link "API Documentation" [ref=e42] [cursor=pointer]:
                    • /url: /getting-started
                    • img [ref=e43]
                    • generic [ref=e44]: API Documentation
              • generic [ref=e45]:
                • heading "Developer Hub" [level=5] [ref=e47]
                • list [ref=e48]:
                  • listitem [ref=e49]:
                    • link "Quick start" [ref=e50] [cursor=pointer]:
                      • /url: /getting-started
                      • generic [ref=e52]: Quick start
                  • listitem [ref=e53]:
                    • link "Debugger" [ref=e54] [cursor=pointer]:
                      • /url: /debugger
                      • generic [ref=e56]: Debugger
                  • listitem [ref=e57]:
                    • link "Browser & Proxy settings" [ref=e58] [cursor=pointer]:
                      • /url: /browser-proxy-settings
                      • generic [ref=e60]: Browser & Proxy settings
              • generic [ref=e61]:
                • heading "API Guide" [level=5] [ref=e63]
                • list [ref=e64]:
                  • listitem [ref=e65]:
                    • button "Toggle API Reference section" [ref=e66] [cursor=pointer]:
                      • generic [ref=e67]: API Reference
                      • img [ref=e68]
          • list [ref=e70]:
            • listitem
        • generic [ref=e72]:
          • banner [ref=e73]:
            • generic [ref=e74]:
              • generic [ref=e75]: Developer Hub
              • heading "Quick start" [level=1] [ref=e77]
            • paragraph [ref=e79]: Learn how to get started with NextBrowser
          • generic [ref=e80]:
            • generic [ref=e81]: NextBrowser lets you build and manage browser automation workflows with unparalleled precision, leveraging advanced anti-detection techniques to stay completely stealthy
            • heading "Navigate to header Before the start" [level=2] [ref=e82]:
              • link "Navigate to header" [ref=e83] [cursor=pointer]:
                • /url: "#before-the-start"
                • img [ref=e85]
              • generic [ref=e87] [cursor=pointer]: Before the start
            • heading "Navigate to header API key" [level=3] [ref=e88]:
              • link "Navigate to header" [ref=e89] [cursor=pointer]:
                • /url: "#api-key"
                • img [ref=e91]
              • generic [ref=e93] [cursor=pointer]: API key
            • generic [ref=e94]: The first step is a generation of an API key. That can be made in the Settings
            • blockquote [ref=e95]:
              • generic [ref=e96]:
                • text: Go to
                • code [ref=e97]: Profile
                • text: →
                • code [ref=e98]: Settings
                • text: →
                • code [ref=e99]: API Key
                • text: → Copy your API key
            • generic [ref=e100]:
              • img "API.gif" [ref=e103]
              • generic:
                • 'button "Expand image: API.gif"'
            • heading "Navigate to header Security best practices" [level=3] [ref=e104]:
              • link "Navigate to header" [ref=e105] [cursor=pointer]:
                • /url: "#security-best-practices"
                • img [ref=e107]
              • generic [ref=e109] [cursor=pointer]: Security best practices
            • list [ref=e110]:
              • listitem [ref=e111]: Keep your API key secure and never share it publicly
              • listitem [ref=e112]: Do not commit API keys to version control
              • listitem [ref=e113]: Rotate your API keys periodically
              • listitem [ref=e114]: Use environment variables to store API keys in your applications
            • heading "Navigate to header Error responses" [level=3] [ref=e115]:
              • link "Navigate to header" [ref=e116] [cursor=pointer]:
                • /url: "#error-responses"
                • img [ref=e118]
              • generic [ref=e120] [cursor=pointer]: Error responses
            • generic [ref=e121]: "Common authentication-related error responses:"
            • table [ref=e124]:
              • rowgroup [ref=e125]:
                • row "Status Code Description" [ref=e126]:
                  • columnheader "Status Code" [ref=e127]
                  • columnheader "Description" [ref=e128]
              • rowgroup [ref=e129]:
                • row "401 Unauthorized - Invalid or missing API key" [ref=e130]:
                  • cell "401" [ref=e131]
                  • cell "Unauthorized - Invalid or missing API key" [ref=e132]
                • row "403 Forbidden - Valid API key but insufficient permissions" [ref=e133]:
                  • cell "403" [ref=e134]
                  • cell "Forbidden - Valid API key but insufficient permissions" [ref=e135]
                • row "429 Too Many Requests - Rate limit exceeded" [ref=e136]:
                  • cell "429" [ref=e137]
                  • cell "Too Many Requests - Rate limit exceeded" [ref=e138]
            • generic [ref=e139]: "Example error response:"
            • generic [ref=e140]:
              • generic [ref=e142]:
                • button "Copy the contents from the code block" [ref=e143] [cursor=pointer]:
                  • img [ref=e144]
                • generic [ref=e147]: Copy
              • code [ref=e151]:
                • generic [ref=e152]: "{"
                • generic [ref=e153]: ""description": "Invalid API key","
                • generic [ref=e154]: ""status_code": 401"
                • generic [ref=e155]: "}"
            • heading "Navigate to header Base URL" [level=2] [ref=e156]:
              • link "Navigate to header" [ref=e157] [cursor=pointer]:
                • /url: "#base-url"
                • img [ref=e159]
              • generic [ref=e161] [cursor=pointer]: Base URL
            • generic [ref=e162]: "All API endpoints are relative to the base URL:"
            • generic [ref=e163]:
              • generic [ref=e165]:
                • button "Copy the contents from the code block" [ref=e166] [cursor=pointer]:
                  • img [ref=e167]
                • generic [ref=e170]: Copy
              • code [ref=e174]:
            • generic [ref=e176]: "If you want ot create a task, it can be specified the following way:"
            • generic [ref=e177]:
            • blockquote [ref=e190]: Learn more about all API endpoints
            • heading "Navigate to header Create a task" [level=2] [ref=e191]:
              • link "Navigate to header" [ref=e192] [cursor=pointer]:
                • /url: "#create-a-task"
                • img [ref=e194]
              • generic [ref=e196] [cursor=pointer]: Create a task
            • generic [ref=e197]: "Here is an example of the task that will provide a research on the latest news about artificial intelligence and present the summery of the top 3 articles in a bullet format:"
            • generic [ref=e198]:
              • generic [ref=e200]:
                • button "Copy the contents from the code block" [ref=e201] [cursor=pointer]:
                  • img [ref=e202]
                • generic [ref=e205]: Copy
              • code [ref=e209]:
                • generic [ref=e210]: curl --request POST
                • generic [ref=e211]: "--url https://app.nextbrowser.com/api/v1/chat/tasks"
                • generic [ref=e212]: "--header 'Authorization: '"
                • generic [ref=e213]: "--header 'Content-Type: application/json'"
                • generic [ref=e214]: "--data '{"
                • generic [ref=e215]: ""llm_model": "gemini-2.0-flash","
                • generic [ref=e216]: ""browser_settings": {"
                • generic [ref=e217]: ""browser_type": "persistent","
                • generic [ref=e218]: ""os_type": "windows""
                • generic [ref=e219]: "},"
                • generic [ref=e220]: ""task_description": "Extract the current price of Bitcoin (BTC)","
                • generic [ref=e221]: ""proxy_settings": {"
                • generic [ref=e222]: ""country": "US","
                • generic [ref=e223]: ""region": "California","
                • generic [ref=e224]: ""city": "Canyon country","
                • generic [ref=e225]: ""isp": "Spectrum","
                • generic [ref=e226]: ""proxy_type": "Residential""
                • generic [ref=e227]: "}"
                • generic [ref=e228]: "}'"
            • generic [ref=e229]: "Do not forget to add you API key:"
            • generic [ref=e230]:
              • generic [ref=e232]:
                • button "Copy the contents from the code block" [ref=e233] [cursor=pointer]:
                  • img [ref=e234]
                • generic [ref=e237]: Copy
              • code [ref=e241]:
                • generic [ref=e242]: "--header "Authorization: x-api-key YOUR_API_KEY""
            • generic [ref=e243]: "You will get result in the following format:"
            • generic [ref=e244]:
              • generic [ref=e246]:
                • button "Copy the contents from the code block" [ref=e247] [cursor=pointer]:
                  • img [ref=e248]
                • generic [ref=e251]: Copy
              • code [ref=e255]:
                • generic [ref=e256]: "{"
                • generic [ref=e257]: ""success": true,"
                • generic [ref=e258]: ""payload": {"
                • generic [ref=e259]: ""id": "94b8dd65-0988-4b2b-984c-b4ce26c87c2b","
                • generic [ref=e260]: ""chat_session_id": "a9cba3e5-61c8-475e-8df0-41cd1ab23f99","
                • generic [ref=e261]: ""browser_instance_id": "cc619900-a5aa-421d-a18c-2c6193a44077","
                • generic [ref=e262]: ""browser_id": "958faf53","
                • generic [ref=e263]: ""user_id": "","
                • generic [ref=e264]: ""created_at": "2025-06-06T14:21:55.524791Z","
                • generic [ref=e265]: ""state": "processing","
                • generic [ref=e266]: ""task_description": "Extract the current price of Bitcoin (BTC)","
                • generic [ref=e267]: ""llm_model": "gemini-2.0-flash","
                • generic [ref=e268]: ""chat_title": "Extracte the current price of Bitcoin (BTC)""
                • generic [ref=e269]: "},"
                • generic [ref=e270]: ""errors": {},"
                • generic [ref=e271]: ""description": "Task creation started""
                • generic [ref=e272]: "}"
            • heading "Navigate to header Get the task status" [level=2] [ref=e273]:
              • link "Navigate to header" [ref=e274] [cursor=pointer]:
                • /url: "#get-the-task-status"
                • img [ref=e276]
              • generic [ref=e278] [cursor=pointer]: Get the task status
            • heading "Navigate to header Types of statuses" [level=3] [ref=e279]:
              • link "Navigate to header" [ref=e280] [cursor=pointer]:
                • /url: "#types-of-statuses"
                • img [ref=e282]
              • generic [ref=e284] [cursor=pointer]: Types of statuses
            • list [ref=e285]:
              • listitem [ref=e286]:
                • code [ref=e287]: active
                • text: – the task is ongoing
              • listitem [ref=e288]:
                • code [ref=e289]: completed
                • text: – the task is completed
              • listitem [ref=e290]:
                • code [ref=e291]: failed
                • text: – an error aquired during the task run
            • heading "Navigate to header GET the task status" [level=3] [ref=e292]:
              • link "Navigate to header" [ref=e293] [cursor=pointer]:
                • /url: "#get-the-task-status-2"
                • img [ref=e295]
              • generic [ref=e297] [cursor=pointer]: GET the task status
            • generic [ref=e298]: "After launching the task, it will take some time for the AI agent to process it and prepare the automation result. While waiting, you can check the task’s status as follows:"
            • generic [ref=e299]:
            • generic [ref=e314]:
              • text: Add the
              • code [ref=e315]: chat_session_id
              • text: "that you will receive with the responce of task creation request:"
            • generic [ref=e316]:
            • generic [ref=e329]: "Do not forget to add you API key:"
            • generic [ref=e330]:
              • generic [ref=e332]:
                • button "Copy the contents from the code block" [ref=e333] [cursor=pointer]:
                  • img [ref=e334]
                • generic [ref=e337]: Copy
              • code [ref=e341]:
                • generic [ref=e342]: "--header "Authorization: x-api-key YOUR_API_KEY""
            • generic [ref=e343]: "You will get the result in the following format:"
            • generic [ref=e344]:
              • generic [ref=e346]:
                • button "Copy the contents from the code block" [ref=e347] [cursor=pointer]:
                  • img [ref=e348]
                • generic [ref=e351]: Copy
              • code [ref=e355]:
                • generic [ref=e356]: "{"
                • generic [ref=e357]: ""id": "3c90c3cc-0d44-4b50-8888-8dd25736052a","
                • generic [ref=e358]: ""user_id": "","
                • generic [ref=e359]: ""created_at": "2023-11-07T05:31:56Z","
                • generic [ref=e360]: ""finished_at": "2023-11-07T05:31:56Z","
                • generic [ref=e361]: ""num_tasks": 123,"
                • generic [ref=e362]: ""status": "active","
                • generic [ref=e363]: ""browser_instance_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a","
                • generic [ref=e364]: ""browser_id": "","
                • generic [ref=e365]: ""proxy_settings": {},"
                • generic [ref=e366]: ""browser_settings": {},"
                • generic [ref=e367]: ""tasks": ["
                • generic [ref=e368]: "{"
                • generic [ref=e369]: ""id": "3c90c3cc-0d44-4b50-8888-8dd25736052a","
                • generic [ref=e370]: ""created_at": "2023-11-07T05:31:56Z","
                • generic [ref=e371]: ""finished_at": "2023-11-07T05:31:56Z","
                • generic [ref=e372]: ""done_output": "","
                • generic [ref=e373]: ""structured_output": {},"
                • generic [ref=e374]: ""llm_model": "","
                • generic [ref=e375]: ""state": "processing","
                • generic [ref=e376]: ""task_description": "","
                • generic [ref=e377]: ""output_description": "","
                • generic [ref=e378]: ""output_files_path": "","
                • generic [ref=e379]: ""error_message": "","
                • generic [ref=e380]: ""steps": ["
                • generic [ref=e381]: "{"
                • generic [ref=e382]: ""id": "3c90c3cc-0d44-4b50-8888-8dd25736052a","
                • generic [ref=e383]: ""created_at": "2023-11-07T05:31:56Z","
                • generic [ref=e384]: ""finished_at": "2023-11-07T05:31:56Z","
                • generic [ref=e385]: ""description": "","
                • generic [ref=e386]: ""status": "pending""
                • generic [ref=e387]: "}"
                • generic [ref=e388]: "]"
                • generic [ref=e389]: "}"
                • generic [ref=e390]: "],"
                • generic [ref=e391]: ""title": """
                • generic [ref=e392]: "}"
            • heading "Navigate to header Task result" [level=2] [ref=e393]:
              • link "Navigate to header" [ref=e394] [cursor=pointer]:
                • /url: "#task-result"
                • img [ref=e396]
              • generic [ref=e398] [cursor=pointer]: Task result
            • heading "Navigate to header Types of the output" [level=3] [ref=e399]:
              • link "Navigate to header" [ref=e400] [cursor=pointer]:
                • /url: "#types-of-the-output"
                • img [ref=e402]
              • generic [ref=e404] [cursor=pointer]: Types of the output
            • generic [ref=e405]: "When using NextBrowser, you can specify the format of the result you want to receive once the automation is complete. This can be:"
            • list [ref=e406]:
              • listitem [ref=e407]: Text
              • listitem [ref=e408]: Bullet points
              • listitem [ref=e409]: A table
              • listitem [ref=e410]: CSV, JSON, PDF, and other document formats
              • listitem [ref=e411]: PNG, SVG, and other image formats
              • listitem [ref=e412]: Links
            • heading "Navigate to header Text output" [level=3] [ref=e413]:
              • link "Navigate to header" [ref=e414] [cursor=pointer]:
                • /url: "#text-output"
                • img [ref=e416]
              • generic [ref=e418] [cursor=pointer]: Text output
            • generic [ref=e419]: "If the task’s status is “completed,” then the response will also include the automation result as the structured output:"
            • generic [ref=e420]:
              • generic [ref=e422]:
                • button "Copy the contents from the code block" [ref=e423] [cursor=pointer]:
                  • img [ref=e424]
                • generic [ref=e427]: Copy
              • code [ref=e431]:
                • generic [ref=e432]: "structured_output": {"
                • generic [ref=e433]: ""data": {"
                • generic [ref=e434]: ""description": "Extracted the current price of Bitcoin (BTC)","
                • generic [ref=e435]: ""content_type": "json","
                • generic [ref=e436]: ""content": {"
                • generic [ref=e437]: ""json": {"
                • generic [ref=e438]: ""price": "$104,770.88 USD""
                • generic [ref=e439]: "}"
            • heading "Navigate to header File output" [level=3] [ref=e440]:
              • link "Navigate to header" [ref=e441] [cursor=pointer]:
                • /url: "#file-output"
                • img [ref=e443]
              • generic [ref=e445] [cursor=pointer]: File output
            • generic [ref=e446]:
              • text: An example of the file output that can be found in
              • code [ref=e447]: download_links
              • text: "section:"
            • generic [ref=e448]:
            • heading "Navigate to header How to describe the result format" [level=3] [ref=e469]:
              • link "Navigate to header" [ref=e470] [cursor=pointer]:
                • /url: "#how-to-describe-the-result-format"
                • img [ref=e472]
              • generic [ref=e474] [cursor=pointer]: How to describe the result format
            • generic [ref=e475]: The more precisely you describe the format and structure of the result you want to receive, the more accurate the automation output will be
            • strong [ref=e477]: Bad example of output prompting
            • generic [ref=e478]:
              • generic [ref=e480]:
                • button "Copy the contents from the code block" [ref=e481] [cursor=pointer]:
                  • img [ref=e482]
                • generic [ref=e485]: Copy
              • code [ref=e489]:
                • generic [ref=e490]: Collect data on the top 10 sneakers from Amazon and create a CSV
            • strong [ref=e492]: Good example of output prompting
            • generic [ref=e493]:
              • generic [ref=e495]:
                • button "Copy the contents from the code block" [ref=e496] [cursor=pointer]:
                  • img [ref=e497]
                • generic [ref=e500]: Copy
              • code [ref=e504]:
                • generic [ref=e505]: "Collect data on the top 10 sneakers from Amazon and create a CSV that contains: the export date, ranking position, product name, price, and product link"
          • link "Debugger Inspect your browser automation using Chrome Devtools Next" [ref=e507] [cursor=pointer]:
            • /url: /debugger
            • generic [ref=e508]:
              • generic [ref=e509]:
                • generic [ref=e510]: Debugger
                • generic [ref=e511]: Inspect your browser automation using Chrome Devtools
              • generic [ref=e513]:
                • generic [ref=e514]: Next
                • img [ref=e515]
          • contentinfo [ref=e517]:
    • alert [ref=e542]