curl -sS -X POST "https://api.adscrawl.net/cdp/sessions" \
-H "content-type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"idleTimeoutMs": 600000,
"maxSessionMs": 3600000,
"browserSettings": {
"viewport": { "width": 1440, "height": 900 },
"countryCode": "GLOBAL",
"userAgentMode": "random",
"userAgentOs": "windows"
}
}'
{
"idleTimeoutMs": 600000,
"maxSessionMs": 3600000,
"browserSettings": {
"viewport": { "width": 1440, "height": 900 },
"countryCode": "GLOBAL",
"userAgentMode": "random",
"userAgentOs": "windows"
}
}
{
"sessionId": "6c3f7d14-7fe4-4c8e-9f1b-0b6d6f2fa2ef",
"expiresAt": "2026-04-21T10:30:00.000Z",
"cdpBaseUrl": "https://api.adscrawl.net/cdp/sessions/6c3f7d14-7fe4-4c8e-9f1b-0b6d6f2fa2ef?token=<data-token>"
}
{
"error": "CDP sessions per API key limit reached"
}
Remote CDP
Create CDP Session
Launch a dedicated Chromium instance and receive a CDP base URL with an embedded data token for authenticated browser control.
POST
/
cdp
/
sessions
curl -sS -X POST "https://api.adscrawl.net/cdp/sessions" \
-H "content-type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"idleTimeoutMs": 600000,
"maxSessionMs": 3600000,
"browserSettings": {
"viewport": { "width": 1440, "height": 900 },
"countryCode": "GLOBAL",
"userAgentMode": "random",
"userAgentOs": "windows"
}
}'
{
"idleTimeoutMs": 600000,
"maxSessionMs": 3600000,
"browserSettings": {
"viewport": { "width": 1440, "height": 900 },
"countryCode": "GLOBAL",
"userAgentMode": "random",
"userAgentOs": "windows"
}
}
{
"sessionId": "6c3f7d14-7fe4-4c8e-9f1b-0b6d6f2fa2ef",
"expiresAt": "2026-04-21T10:30:00.000Z",
"cdpBaseUrl": "https://api.adscrawl.net/cdp/sessions/6c3f7d14-7fe4-4c8e-9f1b-0b6d6f2fa2ef?token=<data-token>"
}
{
"error": "CDP sessions per API key limit reached"
}
Create a new dedicated CDP session. The server starts a Chromium instance, applies your
browserSettings, and returns a cdpBaseUrl you can pass directly to playwright.connectOverCDP() or use for manual CDP discovery.
number
Milliseconds of inactivity before the session is terminated. Values above the server cap are silently clamped.
number
Maximum total lifetime of the session in milliseconds. Values above the server cap are silently clamped.
object
Browser configuration applied when the Chromium instance starts.
Show browserSettings fields
Show browserSettings fields
object
Browser window dimensions:
{ "width": number, "height": number }. CDP sessions apply these as the --window-size launch argument.string
Browser locale, e.g.
en-US.string
IANA timezone identifier, e.g.
Asia/Shanghai.object
Geographic coordinates:
{ "latitude": number, "longitude": number }.object
Custom proxy configuration. Cannot be combined with
countryCode.Show proxy fields
Show proxy fields
string
Full proxy URL such as
http://host:port or socks5://host:port. Do not embed credentials here; provide them via username and password separately. Cannot be combined with host.string
Proxy protocol for the split form:
http or socks5.string
Proxy host for the split form.
number
Proxy port (1 to 65535) for the split form.
string
Proxy username.
string
Proxy password.
string
Managed proxy region. Use
"GLOBAL" to select a popular region automatically, or a specific region code for trusted proxies with dynamic fallback. Omitting this field picks a random trusted proxy.string
Override the default User-Agent string.
string
Set to
"random" to have the server choose from its User-Agent library. Requests without a User-Agent default to "random".string
Operating system used when
userAgentMode is "random". Accepts "windows" (default) or "macos".object
CDP fingerprint overrides. When omitted,
canvas and webGlImage default to real; all other signals are generated from a coherent randomized profile.Show fingerprint fields
Show fingerprint fields
string
"forward" uses the proxy exit address; "real" or "disabled" also accepted.string
WebGL vendor and renderer metadata:
"random" or "real".string
"random" follows the WebGL GPU selection. Also accepts "real" or "disabled". Cannot be "random" when webGlImage is "real".string
WebGL image noise:
"random" or "real".string
Canvas noise:
"random" or "real".string
Audio fingerprint noise:
"random" or "real".string
Layout measurement noise:
"random" or "real".string
OS-matched speech voice list:
"random" or "real".string
OS-matched font list:
"random" or "real".string
CPU thread count and memory (generated as a pair):
"random" or "real".string
Do Not Track preference:
"random", "enabled", or "disabled".array
Cookies injected into the browser context before the session starts.
Show cookie fields
Show cookie fields
string
required
Cookie name.
string
required
Cookie value.
string
required
Target domain, e.g.
.example.com.string
Cookie path. Defaults to
/.boolean
When
true, the cookie is only sent over HTTPS.boolean
When
true, the cookie is inaccessible to client-side JavaScript.string
SameSite attribute value.
boolean
Set to
true for a session cookie.number
Unix expiry timestamp in seconds. Also accepted as
expires or expiry.Response
string
Unique identifier for the active session. Use it for all subsequent list, delete, and CDP requests.
string
RFC 3339 timestamp when the session will expire.
string
Fully formed base URL for this session. Pass it directly to
playwright.connectOverCDP(). It already contains the data token as a query parameter: do not replace or append your API key.The
cdpBaseUrl carries an embedded data token that authorizes CDP access. Never replace that token with your x-api-key. Store it securely and treat it with the same care as a credential.| Status | Meaning |
|---|---|
201 | Session created successfully. |
400 | Invalid managed region, custom proxy, or random User-Agent parameters. |
401 | Missing or invalid x-api-key. |
429 | The API key has reached its concurrent CDP session limit. |
502 | The browser backend rejected the payload, returned an oversized result, or failed to start the browser. |
503 | Total capacity exceeded, or the browser backend is unavailable. |
504 | Session startup or queue timeout. |
500 | Unclassified internal error. |
curl -sS -X POST "https://api.adscrawl.net/cdp/sessions" \
-H "content-type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"idleTimeoutMs": 600000,
"maxSessionMs": 3600000,
"browserSettings": {
"viewport": { "width": 1440, "height": 900 },
"countryCode": "GLOBAL",
"userAgentMode": "random",
"userAgentOs": "windows"
}
}'
{
"idleTimeoutMs": 600000,
"maxSessionMs": 3600000,
"browserSettings": {
"viewport": { "width": 1440, "height": 900 },
"countryCode": "GLOBAL",
"userAgentMode": "random",
"userAgentOs": "windows"
}
}
{
"sessionId": "6c3f7d14-7fe4-4c8e-9f1b-0b6d6f2fa2ef",
"expiresAt": "2026-04-21T10:30:00.000Z",
"cdpBaseUrl": "https://api.adscrawl.net/cdp/sessions/6c3f7d14-7fe4-4c8e-9f1b-0b6d6f2fa2ef?token=<data-token>"
}
{
"error": "CDP sessions per API key limit reached"
}