Go to the main content

API FAQ

Detailed API documentation can be found at https://documenter.getpostman.com/view/1801428/UVC6i6eA

Is it possible to create profiles in bulk and add Cookies, extensions, or assign tags to them?

You can use our API to create profiles with Cookies and specific settings that you need in bulk. This can be done by coding a loop in a programming language that you are comfortable with, using a text file with Cookies and other necessary data that you can process or split using programming language methods, and then sequentially passing these parameters to the profile creation request.

Is automation with browser automation frameworks like Puppeteer, Pyppeteer, Playwright, or Selenium available in Octo?

Yes, you can use these automation frameworks. You can find code samples for starting a profile and connecting a framework/library to a running profile in our API documentation.

I have started a profile using API, I see "Auto" on the "START" button in the Octo client app, but I cannot see the profile interface.

Check the profile start arguments, and specifically the headless parameter. For the profile interface to be displayed, this parameter must be set to false.

Is it possible to get all profile names in an account using API?

Yes, you can use the GET Get Profiles method from our API documentation to do this.

If you have more than 100 profiles in your account, you will need to change the requested page number in the request URL, and also set the fields output parameters to title. You can implement this by coding a loop in the programming language of your choice.

By sending a GET request to this URL, you will get the UUID and Title of 100 profiles on the first page.

https://app.octobrowser.net/api/v2/automation/profiles?page_len=100&page=0&fields=title

Currently it is not possible to fully export all profile cookies using API. It is possible to export Cookies of the open page only by using automation frameworks (Selenium, Puppeteer, Playwright).

The Technical Support cannot assist with or consult on getting Cookies of the opened page in a profile by using a browser automation framework.

I get error 429 when executing a request

Stop your script and pause requests for a while. The API limits for your account can be found in the corresponding server response headers.

Retry-After: 0 # If this value equals 0, you can send the next request
X-Ratelimit-Limit: 200 # RPM — The total amount of requests per minute
X-Ratelimit-Limit-Hour: 3000 # RPH — The total amount of requests per hour
X-Ratelimit-Remaining: 4 # remaining RPM — Remaining requests per minute
X-Ratelimit-Remaining-Hour: 2999 # remaining RPH — Remaining requests per hour
X-Ratelimit-Reset: 1671789217 # unix timestamp — UNIX time after which the limit will be reset

IMPORTANT!

Do not send requests if you have exhausted your limits: the restriction time will be extended, and stricter restrictions may be applied. Check the limit headers in your scripts before sending a request.

Which driver should I use for Selenium?

You need to use the Chromium driver with a version that matches the current Octo kernel version. You can see the current kernel version by typing chrome://version in the address bar of a running profile. If a driver for the latest kernel has not been released yet, use the driver for the previous version.

Which requests to the Local API will be counted toward the limit of allowed requests?

Of all the requests available in the Local API column, only the Start Profile request will be counted toward the RPM (requests per minute) and RPH (requests per hour) limits.

The following requests are not counted toward the requests limits:

  • List Active Profiles
  • Stop Profile
  • Force Stop Profile
  • Login
  • Logout
  • Get Client Version
  • Update Client

How can I get the UUID of extensions?

You can get the UUID of extensions in 3 ways:

The first way

  1. Add the extension manually to any profile via profile editing.
  2. Get the parameters of this profile through API using a GET Get Profile request.
  3. In the server response you will see the profile settings, including the UUIDs of the connected extensions.

The second way

Use a GET Get Extensions request from our documentation.

The third way

  1. Open a profile with the connected extension.
  2. Type chrome://extensions/ in the profile address bar and press Enter.
  3. Click the "Details" button of the necessary extension.
  4. Copy the extension UUID along with its version from the Source field below.

How can I get the UUID of an icon?

  1. Save the icon to any profile.
  2. Run a GET Get Profile request from our documentation to retrieve information about the profile in which you saved the icon.
  3. You will find the UUID of this icon in the server response in the "image" field, which you can use to add the icon to other profiles.

How can I make a profile open at full size on startup?

To make the profile window start at its maximum size when the profile is launched via API, you can use the --start-maximized flag in the profile start arguments.

flags: ["--start-maximized"]

Is it possible to change the proxy IP address with your API?

If your proxy provides an IP address change link, you can make a regular GET request using this link. Our API is not needed for this.

An example Python request with the requests library:

import requests
response = requests.get('link for IP address change')

An example Node.js request with the Axios library:

const axios = require('axios');
axios.get('link for IP address change');

When using parallel automation of several profiles at the same time, scripts do not work correctly in windows that are out of focus (in the background).

Try adding the --disable-backgrounding-occluded-windows flag to the startup arguments of your profiles.

For example:

flags:["--disable-backgrounding-occluded-windows"]

Unfortunately, it's not possible to launch the Cookie Robot using API. If you use API, you can easily implement similar or even more advanced functionality using automation frameworks (Puppeteer, Playwright, Selenium).

Passing parameters when creating a profile via API

const body = {
title: "profile_title", /* required field */
fingerprint: {
os: "mac", /* required field, or "win" */
os_arch: "arm", /* optional field, or "x86", if you would like to create a mac profile with Intel CPU*/
os_version: "11" /* optional field
for win profiles - 10/11,
for mac arm - 11/12/13,14,
for mac x86 (Intel) - 11,12,13,14
*/
}
}

Passing additional parameters in a profile creation request:

  1. For detailed information, please refer to our API documentation. Select the POST Create Profile request and scroll down to the Body code block, where you can see the structure of accepted parameters.
  2. Create a profile and retrieve its parameters using the GET Get Profile request. In the server response, you will see the structure and parameters of the profile.