cdpfleet Pre-launch Get early access

cdpfleet / Shared threads

Plans · shared threads

Pooled browser-minutes for bursty work.

Each shared thread adds browser-minutes to one account pool and one more browser you can run at a time. Spend the pool on a few long sessions or many short ones — from $5 a month for 5 threads.

  • $1–$4per thread / month
  • 60–480min per thread per day
  • 25%of the pool per rolling hour
  • 5–1,000threads

One pool per account

A shared plan has two numbers: threads — how many browsers can run at once — and browser-minutes per thread per day. Every thread contributes its minutes to one account pool; there are no per-thread balances.

For example, 10 threads of Shared 240 put 2,400 browser-minutes a day in the pool, up to 600 in any rolling 60 minutes, with up to 10 threads' worth of browsers at once. Use them on 10 headless browsers for four hours, or on hundreds of one-minute jobs. The pool resets at midnight UTC and unused minutes don't carry over.

Minutes are metered to the second as thread-seconds: a headful browser takes 2 threads, so it uses the pool twice as fast as a headless one.

Prices

Shared, per month5 threads10 threads25 threads50 threads100 threads500 threads1,000 threads
Shared 60$1 / thread · 60 browser-minutes/day per thread$5300 min/day · 75 min/hour$10600 min/day · 150 min/hour$251,500 min/day · 375 min/hour$503,000 min/day · 750 min/hour$1006,000 min/day · 1,500 min/hour$50030,000 min/day · 7,500 min/hour$1,00060,000 min/day · 15,000 min/hour
Shared 120$1.50 / thread · 120 browser-minutes/day per thread$7.50600 min/day · 150 min/hour$151,200 min/day · 300 min/hour$37.503,000 min/day · 750 min/hour$756,000 min/day · 1,500 min/hour$15012,000 min/day · 3,000 min/hour$75060,000 min/day · 15,000 min/hour$1,500120,000 min/day · 30,000 min/hour
Shared 240$2.50 / thread · 240 browser-minutes/day per thread$12.501,200 min/day · 300 min/hour$252,400 min/day · 600 min/hour$62.506,000 min/day · 1,500 min/hour$12512,000 min/day · 3,000 min/hour$25024,000 min/day · 6,000 min/hour$1,250120,000 min/day · 30,000 min/hour$2,500240,000 min/day · 60,000 min/hour
Shared 480$4 / thread · 480 browser-minutes/day per thread$202,400 min/day · 600 min/hour$404,800 min/day · 1,200 min/hour$10012,000 min/day · 3,000 min/hour$20024,000 min/day · 6,000 min/hour$40048,000 min/day · 12,000 min/hour$2,000240,000 min/day · 60,000 min/hour$4,000480,000 min/day · 120,000 min/hour

At full use the effective price per browser-hour is Shared 60 $0.033, Shared 120 $0.025, Shared 240 $0.021, Shared 480 $0.017 — see the comparison with other cloud browsers.

Before a session starts

All of these must hold, or the launch is refused with a clear status you can act on:

CheckIf not
A free thread429 threads_exceeded — close a session or wait (Retry-After: 1).
Minutes left in today's pool429 daily_quota_exhausted — Retry-After counts down to midnight UTC.
Minutes left in the rolling hour (25% of the pool)429 hourly_quota_exhausted — the window rolls forward continuously.
Room in the shared fleet503 shared_capacity_full — retry after 5 s. Dedicated threads are never refused for this.

Leases and timeouts

  • Shared sessions run on 15-minute leases that renew automatically while shared capacity allows; a session can run up to 24 hours, within your remaining minutes.
  • The idle timeout is 120 seconds by default and up to 10 minutes on shared plans (idle minutes count); dedicated threads can keep a quiet browser open for up to 24 hours.
  • keep_alive (reconnect to the same browser after a disconnect) is a dedicated-thread feature.
  • Short jobs should end themselves: inactivity_timeout and overall_timeout make a hung script stop billing — see the burst-jobs recipe below.
A burst-job session that ends itself after 15 s idle or 2 minutes
// npm install [email protected]
// Browsers run on cdpfleet, so no `npx playwright install` is needed.
import { chromium } from 'playwright';

const KEY = process.env.CDPFLEET_API_KEY;

// 1. Launch the browser
const res = await fetch('https://starter.cdpfleet.com/chromium/session', {
  method: 'POST',
  headers: { 'x-api-key': KEY, 'content-type': 'application/json' },
  body: JSON.stringify({
    proxy: 'http://user:[email protected]:8080',
    headless: 'new',
    inactivity_timeout: '15s',
    overall_timeout: '2m',
  }),
});
if (!res.ok) throw new Error(`launch failed: ${res.status} ${await res.text()}`);
const { wsUrl } = await res.json();

// 2. Connect and drive it
const browser = await chromium.connect(wsUrl, { headers: { 'x-api-key': KEY } });
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close(); // ends the session and stops billing

Shared or dedicated?

Shared threads fit bursty and scheduled work — crawls, monitoring, tests — where the browsers don't run around the clock. If a browser runs most of the day, a dedicated thread at $5 a month with unlimited minutes is cheaper per hour ($0.007 at 24/7) and never waits for shared capacity.

CommunitySharedDedicated
PriceFree$1–$4 per thread / month$5 per thread / month
Concurrent browsers2 threadsUp to your thread countUp to your thread count
Daily browser-minutes60 per threadEach thread adds its minutes to one account poolUnlimited
Rolling-hour limit25% of the daily pool in any 60 minutes25% of the daily pool in any 60 minutesNone
Session lengthUp to 15 minutesUp to 24 hUp to 24 h
Session leasesLowest priority, 5-minute leases15-minute leases, renewed automatically while shared capacity allowsNone — capacity is reserved
Idle timeout120 s by default, up to 5 min120 s by default, up to 10 min120 s by default, up to 24 h
Launch rateAt least 2 per second and 10 per minuteThreads ÷ 5 per second, threads × 6 per minute (at least 2 and 10)Twice the shared rate: threads ÷ 5 × 2 per second, threads × 12 per minute
ProxiesIncluded (shared), or your ownYour own, the residential add-on, or the free Community proxyYour own, the residential add-on, or the free Community proxy
Per session5 open pages, 3 GB memory10 open pages, 4 GB memory20 open pages, 8 GB memory
Recordings, profiles, keep-aliveNot includedRecordings, and profiles: 20 per thread (at least 100)Recordings, keep-alive, and profiles: 30 per thread (at least 100)
SizesOne size; invite-only for now5–1,000 threads5–10,000 threads, custom above