- Use cases
- AI agents
Browser agents in plain language.
Describe the job the way you would to a colleague. An agent opens a real browser in the cloud, clicks, types and reads until it is done, then returns the result as data. Bring your own Anthropic or OpenAI key, or run on Browsa's model with no key at all.
100 free credits. No card, no subscription.
How it works.
Describe the task
Say what to do and what to return, for example "as JSON with title and url".
Choose the model
Pass your own key with
llm_api_key, or setllm="browsa"to use Browsa's model.Get the result
run_task()waits for the job and returnsfinal_result, with a live view link for the run.
from browsa import Client client = Client(api_key="agt_live_…") job = client.run_task( task="Go to news.ycombinator.com and return the top 3 " "stories as JSON with title and url", llm="claude-sonnet-5-5", llm_api_key="sk-ant-…", # your key, your provider bills ) print(job.status, job.final_result) print("watch:", job.live_url)
from browsa import Client client = Client(api_key="agt_live_…") job = client.create_task( task="Find today's price of the MacBook Air on apple.com " "and return it as JSON with price and currency", llm="browsa", # Browsa's model, no key needed ) job = client.wait_for_job(job.id) print(job.final_result, job.credits_charged)
import { Client } from "browsa"; const client = new Client({ apiKey: "agt_live_…" }); const job = await client.runTask({ task: "Go to news.ycombinator.com and return the top 3 " + "stories as JSON with title and url", llm: "browsa", // or your model + llmApiKey }); console.log(job.status, job.finalResult); console.log("watch:", job.liveUrl);
What you get.
Your model or ours
Use your Anthropic or OpenAI key and pay your provider directly, with no markup from us. Or run on Browsa's model for 5 extra credits a task.
Results as data
Ask for JSON and get JSON back in final_result. Files the agent saves come back with the job.
Watch every run
Each task has a live view while it runs and a recording of the session afterwards, saved as session.gif.
Plain-language errors
A rejected model key or a broken proxy is reported as exactly that. If the browser can't start, the credits go back.
Pricing.
A task is billed by the steps the agent takes. Credits never expire.
An agent task is a 5-credit browser, plus 1 credit, plus 1 credit for every 5 steps. Running it on Browsa's model adds 5 credits. With your own key, the model provider bills you directly.
Free
Starter
Growth
Pro
Questions.
Which models can I use?
Anthropic and OpenAI models with your own key, named like anthropic:claude-haiku-5-5 or openai:gpt-4o-mini. Or set llm to "browsa" and leave the key out.
What happens to my model key?
It is encrypted before it is stored, opened only by the worker running your task, and deleted the moment the task ends. It is never logged and never shown back to you.
What if the agent needs information from me?
The job pauses with status input_required and a question in input_question. Answer with respond_to_job() and the agent carries on.
How do I keep costs predictable?
Set max_steps. The default is 20 and the cap is 100. Every 5 steps cost 1 credit, so a 20-step task on your own model never costs more than 10 credits.
Hand your agent a browser.
100 free credits. No card, no subscription.