- credentials in a vault
- two-factor secrets
- cookies
- browser cache and session state
- proxy and captcha settings
- an email inbox
Attaching a profile to an execution
An execution uses at most one profile. You pick it when you start the execution.agentProfilePoolId instead to let Asteroid choose a profile from a pool.
On the platform, choose the profile or the pool in the dropdown next to Run.
See Call a workflow from your code for the full execute call.
Profile configuration
Proxy settings
Proxy settings
- Proxy country code — the country the proxy routes through. One of
us,uk,fr,it,jp,au,de,fi,ca. - Proxy type — the managed proxy connection to use.
basic. - Persistent IP — keep the same IP address across requests.
Captcha solver
Captcha solver
Turn automatic captcha solving on or off for the profile.
Cache persistence
Cache persistence
Cache persistence controls whether browser cache and cookies survive between runs.
- On — the profile keeps session state, cookies and cached data across runs.
- Off (the default) — every execution starts with a fresh browser state.
Inbox email prefix
Inbox email prefix
Every profile gets an inbox at
{prefix}@agentmail.asteroid.ai. The default prefix is the profile’s UUID. Set a prefix to get a readable address. See Workflow emails.Credentials and 2FA
A profile stores credentials in a vault. It can also hold a TOTP secret, so a workflow generates its own authenticator codes. See Credentials & 2FA for how Asteroid stores, references, and keeps them out of the model.Cookies
A profile can store site cookies, so an authenticated session survives between runs. Add cookies when you create the profile, or manage them later through the API. A cookie has these fields:Profile pools
A profile pool groups profiles together. You point a run at the pool, and Asteroid picks a profile from it. Pools solve four problems:- Credential conflicts — stop two executions using one account at the same time.
- Rate limits — spread requests across several accounts.
- Availability — fall back to another profile when one is busy.
- Manual selection — remove the choice from every execute call.
Selection strategies
A pool uses one of two strategies.
Least recently used rotates fairly. With profiles A, B and C, an execution after B picks whichever of A or C idled longest.
Most recently used concentrates work on fewer profiles. It keeps browser state and authenticated sessions warm.
Concurrent use
allowConcurrentUse decides whether a busy profile can be picked again.
Pool constraints
Mutual exclusivity
Mutual exclusivity
An execute call takes
agentProfileId or agentProfilePoolId, never both.Organization scope
Organization scope
- Every profile in a pool belongs to the same organization.
- A pool name is unique within an organization.
- A profile from another organization cannot join the pool.
Availability
Availability
- A pool needs at least one profile before an execution can use it.
- Remove the last profile and no new execution can use the pool.
Pool size
Pool size
Match the pool size to your parallelism. Five simultaneous runs need at least five profiles. Add one or two spare profiles for peak load.
Call a workflow
Pass a profile or a pool on the execute call
Credentials & 2FA
How Asteroid stores and uses them
Workflow emails
The inbox each profile owns
Workflow settings
What the workflow owns instead of the profile
Security
How Asteroid protects stored credentials

