Let your AI agent call a website that has no public API
Most websites have no public API. Bowmark gives Claude, ChatGPT, Cursor or your own agent about 780 of them as ready-made functions with structured results. Free $10 to start.
Reading this with an agent?
curl -s https://bowmark.ai/docs/no-api.md. The whole site as one file: https://bowmark.ai/llms-full.txt. Index of every page: https://bowmark.ai/llms.txt.Most of the sites your agent needs (gas prices, store stock, flight fares, job boards, restaurant bookings) never published an API. Bowmark has already turned about 780 of them into functions your agent can call. You skip writing and maintaining a script for each site, and your agent gets structured fields back instead of a page to read.
The usual answer, and what it costs
The common advice is to write your own automation for each site and hand it to your agent as a tool. That works until the site changes its layout, adds a login step or starts turning you away. Then you maintain it, for every site. Bowmark keeps each function working and tests it on a schedule.
An example
GasBuddy has no public API. With Bowmark, your agent calls a function:
const { stations } = await bowmark.gas_prices.search("78701", { limit: 3 });
// [{ brand: "7-Eleven", price: 3.59, address: "408 W 15th St, Austin, TX", reportedAgo: "2 Hours Ago" }, ...]How it works
- Read the library. Your agent asks what exists for a site and gets back function signatures and result types.
- Run a script. Your agent writes a few lines of JavaScript against those functions, and Bowmark runs it on the live site.
More on How it works.
Sites behind a login
Some functions act on your own account, like LinkedIn or your Amazon orders. You sign in once through a saved connection, and your agent never sees the password.
Connect it
MCP URL: https://api.bowmark.ai/mcp. Make a key at
dashboard/keys; your first $10 of usage is free, no card
needed. Every other client, plus the Python and Node libraries, is on
Installation.
claude mcp add bowmark --transport http https://api.bowmark.ai/mcp \
--header "Authorization: Bearer $BOWMARK_API_KEY"In ~/.codex/config.toml, with BOWMARK_API_KEY exported in your shell:
[mcp_servers.bowmark]
url = "https://api.bowmark.ai/mcp"
bearer_token_env_var = "BOWMARK_API_KEY"Settings → MCP → Add new MCP server, then paste the JSON from Installation.
FAQ
How can an agent call a website that has no public API? Use a service that has already turned the site into functions. Bowmark covers about 780 sites: your agent calls a function and gets structured results.
Can my AI agent use websites without running a browser? Yes. Your agent does not need to drive a browser: it calls a Bowmark function for the site and gets structured results back. That works for about 780 sites today.
Do I have to write a script for each site? No. Check the library first with
GET https://api.bowmark.ai/v1/library?query=<hostname>. If the site is covered, call the
function.
What if my site is not covered? The library says so plainly. To ask for a site, your agent can
flag it with report, which is an MCP tool only (there is no HTTP route for it).
What does it cost? Free $10 of usage to start, then pay as you go for what each call uses. See Pricing.
Shopping price and stock MCP server for AI agents
Let Claude, ChatGPT, Cursor or your own agent compare live prices and stock across Walmart, Target and Best Buy in one call. Typed results, free $10 to start.
Turn websites into typed functions your AI agent can call
Bowmark gives Claude, ChatGPT, Cursor or your own agent about 780 websites as typed functions. Read the library, call a function, get structured results. Free $10 to start.