docs

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?

This page as plain text: /docs/no-api.md. A summarising fetch tool paraphrases long pages, so for code to copy exactly, fetch it raw: 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

  1. Read the library. Your agent asks what exists for a site and gets back function signatures and result types.
  2. 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.