Skip to content
Gauge

ax-check.com

TollBit

tollbit.com

ax-check.com

Checked 12 October 2026

F

8/100

Agents need your login

Tollbit's docs leave agents guessing how to start building

No documentation index or compact guide exists, and the homepage won't serve a text version. Only 2 of 23 checked items passed; most couldn't even be assessed.

3 fixes to start with

Concrete changes, backed by what we found.

Onboarding

Give agents a clear login handoff and a way to resume setup.

Agents cannot progress through onboarding without human help. Provide an agent-accessible path through authentication and setup.

Docs

Return Markdown when clients request text/markdown.

Homepage returned text/html for a text/markdown request; no Markdown representation offered.

Docs

Add links to your product documentation and quickstart in /llms.txt.

https://tollbit.com/llms.txt returns HTTP 404, so no documentation index exists.

Recorded coding sessions

Same task, 3 models, no tollbit.com account. Recorded 12 October 2026 on Pi.

3 recorded · 1m 46s

1m 46s · recorded

Session findings

Select a finding to see it in context.

piv0.84.2
modelQwen 3.8 Maxcwd/sandbox/repo
Help me build a simple example using TollBit. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.
Thinking…

TollBit — it's a product for licensing web content for AI crawlers. Let me look into it.

The instructions say: "If this product doesn't have an actionable developer workflow, communicate that frankly and stop." TollBit is a marketplace for licensing web scraping, aimed at publishers and AI crawlers. There might be an API. Let me look into whether there's an SDK. There's no key, and it probably requires account or billing setup. Let me quickly check.

ls /sandbox/repo; pip download tollbit 2>&1 | tail -3; npm view tollbit 2>&1 | head -20
ERROR: Could not find a version that satisfies the requirement tollbit (from versions: none)
ERROR: Could not find a version that satisfies the requirement tollbit (from versions: none)
ERROR: No matching distribution found for tollbit
npm error code E404
npm error 404 Unpublished on 2024-03-27T16:45:13.592Z
npm error 404
npm error 404  'tollbit' is not in this registry.
npm error 404
npm error 404 Note that you can also install from a
npm error 404 tarball, folder, http url, or git url.
npm error A complete log of this run can be found in: /sandbox/.npm/_logs/2026-10-12T23_23_13_233Z-debug-0.log
Thinking…

There's no pip package, and the npm package has been deprecated. TollBit (tollbit.com) is a service where publishers monetize AI crawler access, and crawlers can obtain licenses via APIs or robots.txt-like mechanisms. Check the documentation online.

npm view @tollbit/sdk 2>&1 | head -5; pip index versions tollbit-api 2>&1 | tail -2; curl -s -m 10 https://tollbit.com -o /tmp/tb.html -w "%{http_code}\n"; curl -s -m 10 https://docs.tollbit.com -o /tmp/tbd.html -w "%{http_code}\n"
npm error code E404
npm error code E404
npm error 404 Not Found - GET https://registry.npmjs.org/@tollbit%2fsdk - Not found
npm error 404
npm error 404  '@tollbit/sdk@*' is not in this registry.
npm error 404
ERROR: No matching distribution found for tollbit-api
200
302
Thinking…

The network is working. Let me check the contents of tollbit.com and the documentation.

curl -sL -m 15 https://docs.tollbit.com -o /tmp/tbd.html -w "%{http_code} %{url_effective}\n"; python3 -c "
import re,html
t=open('/tmp/tbd.html').read()
t=re.sub(r'<script.*?</script>','',t,flags=re.S)
t=re.sub(r'<style.*?</style>','',t,flags=re.S)
t=re.sub(r'<[^>]+>',' ',t)
print(html.unescape(re.sub(r'\s+',' ',t))[:3000])"
200 https://docs.tollbit.com/docs/a-tollbooth-for-your-content
200 https://docs.tollbit.com/docs/a-tollbooth-for-your-content
 Getting Started For AI agents: visit https://docs.tollbit.com/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI. Append .md to any documentation page URL to get its markdown version. Jump to Content Guides API Reference v1.0 Log In Guides Search Log In v1.0 Guides API Reference Getting Started Content Owners Getting Started Step 1: Verify Property Step 2: Enable Analytics Step 3: Configure Agent Site Integrations General Route Akamai Arc XP AWS (S3, CloudFront, ALB) CloudFlare Datadome Fastly Google (GCP, CDN) Microsoft (Azure, Front Door) Vercel WordPress VIP Imperva Agent Sites Default Settings Enabling Open Access Enabling Monetization Content Controls Access Methods FAQs Architecture Security Feedback / Support Analytics Agent Site Admin Developers Introduction Quickstart Developer Dashboard Overview Response Formatting Licensed Search Search to Content Workflow Tokens Rates Content Webhooks Content Owners Getting Started Learn how to set up TollBit to analyze, manage, and monetize your content. A Tollbooth for your Content TollBit allows you to quickly set up an Agent Site, separate from your existing website, in as little as 15 minutes with no coding. This effectively puts your data behind an API and/or Markdown, and allows you to immediately start charging bots or allowing them optimized content for on demand access. Overview To onboard onto TollBit, you will go through the following steps. Create an account on our platform. Go to our dashboard to set up an account for your organization. Invite other users to your newly created org. You will likely need to invite IT, legal and finance users to your org to complete onboarding, review terms, and set up your payout method. Add and verify your properties . Invite your IT team to do some lightweight configuration in your DNS settings to fully verify your properties. Set up your integration . We support the most popular CDNs and can quickly get you valuable insight into your bot traffic and setting up your paywall for monetization. View analytics (docs coming soon). Review your bot analytics insights including referral metrics, traffic status, and bot activity by user agent. Onboard to the marketplace . Set a price on your content, along with any license agreements and content filtering. Mark any content for free access, with content optimized for AI readability. Getting Started To get started, go to our dashboard to set up an account. When first creating an account on the platform, you will be prompted to create your organization. This should represent your top level company. If you were a publisher ACME Inc., and you had websites example1.com, example2.com, your organization should be called "ACME". The websites example1.com and example2.com will be added as properties afterwards. Note that each org can only have one payout method linked. This is fine for most orgs, but if your company prefer to keep accounting separate for a subset of your properties, you can 
Thinking…

TollBit does indeed have a developer workflow: Quickstart, API reference, tokens, Licensed Search, etc. However, this requires an account/token from the TollBit dashboard. Without authentication credentials, I can't actually call the API. Let me check llms.txt and the developer-facing quickstart to see what's possible. There might be a sandbox, or it might be a workflow that requires a token obtained from the dashboard.

curl -s -m 15 https://docs.tollbit.com/llms.txt | head -60; echo ---; curl -sL -m 15 https://docs.tollbit.com/docs/developers/quickstart.md | head -100
# TollBit Documentation
# TollBit Documentation

> Documentation for TollBit

## Guides: Content Owners
- [Getting Started](https://docs.tollbit.com/docs/a-tollbooth-for-your-content.md): Learn how to set up TollBit to analyze, manage, and monetize your content.
  - [Step 1: Verify Property](https://docs.tollbit.com/docs/verifying-a-property.md): Learn how to verify your property before enabling Analytics & Agent Site.
  - [Step 2: Enable Analytics](https://docs.tollbit.com/docs/step-2-enable-analytics.md): Implementation steps to enable logging to TollBit
  - [Step 3: Configure Agent Site](https://docs.tollbit.com/docs/step-3-configure-agent-site.md): Steps to configure agent site within TollBit dashboard and upstream configurations
- [Integrations](https://docs.tollbit.com/docs/integrations.md): Technical documents on how to configure Analytics and Agent Site by integration type.
  - [General Route](https://docs.tollbit.com/docs/other.md): Learn how to integrate TollBit Analytics and Agent Site without a listed integration.
  - [Akamai](https://docs.tollbit.com/docs/akamai.md): Learn how to integrate TollBit with Akamai.
  - [Arc XP](https://docs.tollbit.com/docs/arc-xp.md): Learn how to integrate TollBit with Arc XP.
  - [AWS (S3, CloudFront, ALB)](https://docs.tollbit.com/docs/aws-s3-cloudfront-alb.md): Learn how to implementat TollBit with Amazon S3, ALB, and/or CloudFront.
  - [CloudFlare](https://docs.tollbit.com/docs/cloudflare.md): Learn how to integrate TollBit with CloudFlare.
  - [Datadome](https://docs.tollbit.com/docs/datadome.md): Learn how to integrate TollBit with Datadome.
  - [Fastly](https://docs.tollbit.com/docs/fastly.md): Learn how to integrate TollBit with Fastly.
  - [Google (GCP, CDN)](https://docs.tollbit.com/docs/google.md): Learn how to integrate TollBit with Google.
  - [Microsoft (Azure, Front Door)](https://docs.tollbit.com/docs/azure.md): Learn how to integrate TollBit with Microsoft.
  - [Vercel](https://docs.tollbit.com/docs/vercel.md): Learn how to integrate TollBit with Vercel.
  - [WordPress VIP](https://docs.tollbit.com/docs/wordpress-vip.md): Learn how to integrate TollBit with WordPress VIP.
  - [Imperva](https://docs.tollbit.com/docs/imperva.md): Learn how to integrate TollBit with Imperva.
- [Agent Sites](https://docs.tollbit.com/docs/agent-site.md): Learn the features and controls behind Agent Site
  - [Default Settings](https://docs.tollbit.com/docs/content-formatting-1.md): Default configurations for Agent Sites when you redirect traffic.
  - [Enabling Open Access](https://docs.tollbit.com/docs/content-cache.md): Choose whether or not you'd like to provide free or paywalled access to your content.
  - [Enabling Monetization](https://docs.tollbit.com/docs/setting-rates.md): Introduction to rate types and how to activate them on TollBit
  - [Content Controls](https://docs.tollbit.com/docs/content-controls.md): Control what data to include or exclude when developers request content from your website through TollBit.
  - [Access Methods](https://docs.tollbit.com/docs/other-access-methods.md): Learn how to enable NLWeb, MCP, and Agent2Agent protocols for your website.
- [FAQs](https://docs.tollbit.com/docs/faqs.md): Commonly asked questions about the TollBit platform.
  - [Architecture](https://docs.tollbit.com/docs/platform-architecture.md): Questions about subdomains, CDNs, analytics, and how TollBit works.
  - [Security](https://docs.tollbit.com/docs/security.md): Questions about PII handling, authentication, and security measures.
  - [Feedback / Support](https://docs.tollbit.com/docs/feedback-support.md)
  - [Analytics](https://docs.tollbit.com/docs/log-ingestion.md): Frequently Asked Questions about Log Ingestion & Analytics
  - [Agent Site](https://docs.tollbit.com/docs/bot-management.md): Questions about bot detection, identification, and management with TollBit Agent Site
- [Admin](https://docs.tollbit.com/docs/admin.md): Manage your organization, invite members, and configure payment settings.

## Guides: Developers
- [Introduction](https://docs.tollbit.com/docs/introduction.md): A high level overview of TollBit and what it is.
- [Quickstart](https://docs.tollbit.com/docs/quickstart.md): This guide will get you all set up and ready to use the TollBit API. We'll cover how to get started with an API client and how to make your first API request.
- [Developer Dashboard Overview](https://docs.tollbit.com/docs/dev-overview.md): Detailed dive into the entire Developer Dashboard and what pages mean.
- [Response Formatting](https://docs.tollbit.com/docs/content-formatting.md): Dive into the formatting of content as it comes from TollBit.
- [Licensed Search](https://docs.tollbit.com/docs/licensed-search.md): Search for content across the web and discover licensable content through TollBit.
- [Search to Content Workflow](https://docs.tollbit.com/docs/search-to-content.md): Complete workflow guide for searching content, checking rates, and retrieving content using the Tollbit API with cURL or Python SDK.
- [Tokens](https://docs.tollbit.com/docs/tokens.md): Generate one-time access tokens for sanctioned content or for indexing/crawl access.
- [Rates](https://docs.tollbit.com/docs/rates.md): Get rates and license options for content. Single URL or bulk by list of URLs.
- [Content](https://docs.tollbit.com/docs/content.md): Retrieve content by URL, self-report usage, list content catalog, and index content with tokens.
- [Webhooks](https://docs.tollbit.com/docs/webhooks.md): Receive real-time notifications when content becomes available from TollBit publishers, and retrieve webhook delivery history.

## API Reference: TollBit Services
- [/dev/v2/tokens/content](https://docs.tollbit.com/reference/tokensservice_createcontentaccesstoken.md)
- [/dev/v2/tokens/crawl](https://docs.tollbit.com/reference/tokensservice_createcrawlaccesstoken.md)
- [/dev/v2/tokens/aos](https://docs.tollbit.com/reference/tokensservice_createaosaccesstoken.md)
- [/dev/v2/content/{contentUrl}](https://docs.tollbit.com/reference/contentservice_getcontent.md)
- [/dev/v2/content/{propertyDomain}/catalog/list](https://docs.tollbit.com/reference/contentservice_getcatalog.md)
- [/dev/v2/rates/batch](https://docs.tollbit.com/reference/contentservice_batchgetrates.md)
- [/dev/v2/rates/{contentUrl}](https://docs.tollbit.com/reference/contentservice_getrates.md)
- [/dev/v2/search](https://docs.tollbit.com/reference/searchservice_search.md)
- [/dev/v2/properties](https://docs.tollbit.com/reference/propertiesservice_listproperties.md)
- [/dev/v2/transactions/selfReport](https://docs.tollbit.com/reference/reportingservice_reportcontentusage.md)

---
---
agentTools:
  projectIndex: https://docs.tollbit.com/llms.txt
---

Page not found. The full index is at https://docs.tollbit.com/llms.txt. Use the agentTools in the front matter above to search the docs or browse the index.
Thinking…

TollBit has a developer workflow: an API with endpoints for search, rate, content, and tokens. Need to check the quickstart docs (correct URL: /docs/quickstart.md) and see what's required — probably an API key obtained from the dashboard, meaning you'd need an account with payment info. Let me read the quickstart and check whether there's a way to do anything without credentials.

curl -sL -m 15 https://docs.tollbit.com/docs/quickstart.md | head -120; echo ===; curl -sL -m 15 https://docs.tollbit.com/docs/introduction.md | head -80
---
---
updatedAt: 2026-03-23T20:18:35.000Z
agentTools:
  projectIndex: https://docs.tollbit.com/llms.txt
---

# Quickstart

This guide will get you all set up and ready to use the TollBit API. We'll cover how to get started with an API client and how to make your first API request.

# Quickstart

This guide will get you all set up and ready to use the TollBit API. We'll cover how to get your account ready and get started using one of our API clients and how to make your first API request.

<Callout icon="📘" theme="info">
  Before getting started, please create a Developer Account through the <Anchor label="Developer Dashboard" target="_blank" href="https://hack.tollbit.com">Developer Dashboard</Anchor>
</Callout>

## Register your AgentID

Once you've created an account on the <Anchor label="Developer Dashboard" target="_blank" href="https://hack.tollbit.com">Developer Dashboard</Anchor>, head to the <Anchor label="Dashboard > Home" target="_blank" href="https://hack.tollbit.com/home">Dashboard > Home</Anchor> page. There, you can register your unique [AgentID](dev-overview#user-agents). Think of this as your username as you make requests to content providers on TollBit.

## Copy your secret key

Next, head to the <Anchor label="Dashboard > Access" target="_blank" href="https://hack.tollbit.com/access">Dashboard > Access</Anchor> page and copy your secret key. DO NOT share this with anyone. Keep it safe!

## Get a signed token for your request

Anyone can set up a `tollbit.<example>.com` domain, so it is important to **not include your api key** in requests to these domains. Instead, you should call a TollBit API to request a signed token for your requests.

This endpoint will validate that this subdomain is registered with us, and will generate a cryptographically signed token for requests to that domain. You set the parameters that you want for your request at token generation time. This token has limited scope of where it can be used and accepted to limit abuse and man-in-the-middle attacks.

**POST** `https://gateway.tollbit.com/tollbit/dev/v2/tokens/content`

```bash
curl https://gateway.tollbit.com/tollbit/dev/v2/tokens/content \
  --header 'TollbitKey: <your tollbit key>' \
  --header 'Content-Type: application/json' \
  -d '{
    "url": "pioneervalleygazette.com/daydream",
    "userAgent": "<user agent you will use>",
    "maxPriceMicros": 1000000,
    "currency": "USD",
    "licenseType": "ON_DEMAND_LICENSE"
  }'
```

## Making your first API request

After picking your preferred client, you are ready to make your first call to the TollBit API. Below, you can see how to send a GET request to fetch the content from a page of Josh's blog.

**GET** `https://tollbit.pioneervalleygazette.com/daydream`

```bash
curl -G https://tollbit.pioneervalleygazette.com/daydream \
  -H "Tollbit-Token: <token>" \
  -H "User-Agent: <user_agent>" \
  -H "Tollbit-Accept-Content: text/markdown"
```

> **Note**: For detailed API documentation on the Get Content endpoint, see the API Reference section (generated from OpenAPI specs).

## What's next?

Great, you're now set up with an API client and have made your first request to the API. Here are a few links that might be handy as you venture further into the TollBit API:)

* <Anchor label="Checkout the TollBit Developer Dashboard" target="_blank" href="https://hack.tollbit.com">Checkout the TollBit Developer Dashboard</Anchor>
* [Go over the dashboard overview](dev-overview)
* [Look at our Python SDK](https://github.com/tollbit/tollbit-python-sdk)

<br />===
---
updatedAt: 2026-03-30T14:54:28.000Z
agentTools:
  projectIndex: https://docs.tollbit.com/llms.txt
---

# Introduction

A high level overview of TollBit and what it is.

# Introduction

Leverage our SDKs and documentation to build an AI agent facing internet. Get licensed real-time data from first party data sources in a few lines of code.

* [Quickstart →](quickstart)
* <Anchor label="Explore SDKs" target="_blank" href="https://github.com/tollbit/tollbit-python-sdk">Explore SDKs</Anchor>

## Why TollBit?

Websites and complex UI are extra fluff in the emerging world of AI agents. We envision an internet where our personal agents can freely roam the internet, answering questions and acting on our behalf. They don't care how buttons look, they want the underlying data presented on the page.

TollBit is aiming to power this application layer of AI. We provide scalable and licensed access to realtime data from primary sources meant to perfectly integrate with your inference (or training) time data uses like RAG. Stop paying and wasting time scraping. Use TollBit to go directly to the data instead.

## How it works

The *tollbit.example.com* paradigm.

When using TollBit, you have the Internet's data at your fingertips to build amazing AI applications. The key paradigm shift, is that all participating content providers will create a `tollbit.example.com` subdomain. Instead of scraping the human facing site, you can directly request `tollbit.<anywebsite>.com/<content-path>`, similarly as you have before. Except now, the response of that request is perfectly formatted for RAG and licensed for one time use because you went straight to the source, instead of through a shady scraping third party.

## Getting started

To get started, follow our [quickstart](quickstart)
Thinking…

There's a developer workflow: hosted API via gateway.tollbit.com, plus a Python SDK on GitHub. But it requires an API key from hack.tollbit.com (developer dashboard), which needs account creation (human procedure, and probably payment too). Without credentials, I can't make actual calls.

Check whether the API works without a key / whether there's a sandbox. Let me quickly hit the endpoint without a key to check the behavior — that's lightweight and fast. Also check the Python SDK on GitHub.

There is indeed an actionable developer workflow here — TollBit is a hosted API (gateway.tollbit.com) for licensing web content for AI agents, with a Python SDK available. Let's see what we can do without credentials.

curl -s -m 15 https://gateway.tollbit.com/tollbit/dev/v2/tokens/content -H 'Content-Type: application/json' -d '{"url":"pioneervalleygazette.com/daydream","userAgent":"test","maxPriceMicros":1000000,"currency":"USD","licenseType":"ON_DEMAND_LICENSE"}' -w "\nHTTP %{http_code}\n"; curl -s -m 15 https://tollbit.pioneervalleygazette.com/daydream -w "\nHTTP %{http_code}\n" | head -20
{"instance":"/tollbit/dev/v2/tokens/content","status":401,"title":"Unauthorized","type":"about:blank"}
{"instance":"/tollbit/dev/v2/tokens/content","status":401,"title":"Unauthorized","type":"about:blank"}

HTTP 401
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>✨ The Daydream Diaries: A Visit to Luminara, the City of Starlight</title>
<meta name="description" content="Not all cities are built on land. Some float in your dreams.">
<link rel="canonical" href="https://pioneervalleygazette.com/daydream">
<meta property="og:type" content="article">
<meta property="og:title" content="✨ The Daydream Diaries: A Visit to Luminara, the City of Starlight">
<meta property="og:description" content="Not all cities are built on land. Some float in your dreams.">
<meta property="og:url" content="https://pioneervalleygazette.com/daydream">
</head>
<body>
<main>
<h1>✨ The Daydream Diaries: A Visit to Luminara, the City of Starlight</h1>
<p><em>Not all cities are built on land. Some float in your dreams.</em></p>
<p>I first heard of Luminara on the fifth blink before sleep, somewhere between a yawn and the gentle tug of a dream. The whisper came from a firefly perched on my pillow:</p>
<blockquote>
<p>“Midnight’s near. The next cloud-ferry to Luminara leaves soon.”</p>
curl -s -m 15 https://raw.githubusercontent.com/tollbit/tollbit-python-sdk/main/README.md | head -100
<p align="center">
<p align="center">
  <img alt="TollBit" src="https://media4.giphy.com/media/v1.Y2lkPTc5MGI3NjExaThrOTR0MGRwNzVubDhqYmJ0eHF4OXg3dXk2aXF4Nm1vdDY4NHZ1cCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/LQpFMg2ZY648ndTv0r/giphy.gif" width="500">
</p>

<h3 align="center">TollBit: Front Door Access for AI Agents</h2>

<p align="center">Web automation, API access, and content access all through a standard entry point.</p>

<br>

<p align="center">
  <a href="https://github.com/tollbit/tollbit-python-sdk/stargazers"><img src="https://img.shields.io/github/stars/tollbit/tollbit-python-sdk?style=social" alt="GitHub stars"></a>
  <a href="https://docs.tollbit.com"><img src="https://img.shields.io/badge/Documentation-📗-green" alt="Documentation"></a>
  <a href="https://twitter.com/tollbitofficial"><img src="https://img.shields.io/twitter/follow/TollbitOffical?style=social" alt="Twitter Follow"></a>
</p>

# TollBit

A managed entry point to any web app, specifically meant for AI agents. Direct, authorized, and reliable agent <-> service interactions for any web service on the internet. Built for web automation, API access, and content access.

## Why TollBit Exists

It's no secret that AI agents are going to run the web in the near future. However, for that to become a reality, the way agents interact with the internet needs to change. Currently, agent builders' options are limited to typical developer APIs and/or web automation. While great for demos, these patterns seem like the initial "hack" waiting for a more long term solution.

Developer APIs work well, but there is a very short list beyond the overused Google Drive, Slack, etc. Web automation is extremely slow, unreliable and insecure. Not only that, but most websites don't want bots on them, leading to doing all the grunt work of solving captchas and avoiding getting blocked.

The main reason for all this trouble? The web was not built for agents to be first class citzens.

TollBit aims to build critical infrastructure that opens up new pathways for agents to act on the web, at native speed, and to actually bring real value to their users.

We are building on one ethical principle: **agents shouldn't (need to) pretend to be humans on the internet**.

This approach solves problems for both sides: website owners gain a reliable way to identify legitimate AI agents, manage their access privileges, and monetize their usage, while AI developers get stable, authorized access to first-party APIs, content, or web UI.

## How TollBit Works

TollBit creates a gateway for AI agents through a simple convention:

**Any service with a `tollbit` subdomain (`tollbit.example.com`) explicitly welcomes agent access with standardized authorization, permissions, and monetization.**

We call this subdomain the "front door" - a dedicated entry point built specifically for AI agents, separate from human traffic.

```mermaid
flowchart LR
    %% Define the AI agent client
    A[AI Agent with<br>Tollbit Client]

    %% Define the Tollbit front doors
    B1[tollbit.service-a.com]
    B2[tollbit.service-b.com]
    B3[tollbit.service-c.com]

    %% Define the actual services
    C1[service-a.com]
    C2[service-b.com]
    C3[service-c.com]

    %% Define the human user (simple)
    H[Human User]

    %% Connect AI agent to Tollbit front doors
    A -->|"HTTP"| B1
    A -->|"HTTP"| B2
    A -->|"HTTP"| B3

    %% Connect human to just service-a
    H -->|"Browser"| C1

    %% Connect Tollbit front doors to actual services - no labels
    B1 --- C1
    B2 --- C2
    B3 --- C3
```

## For Service Providers

TollBit lets you monetize AI agent access to your service without building custom infrastructure:

- Implement once, work with any agent
- Set different pricing tiers and usage limits
- Separate human and bot traffic transparently
- Prevent abuse through standardized authentication

## For AI Developers

TollBit gives your agents reliable access to services:

- One consistent pattern for authentication and access
- No more brittle web automation that breaks with UI changes
- Clear permissions model designed for non-human users
- Focus on building intelligence, not maintaining integration code

<!-- markdownlint-disable-next-line MD044 -->
# tollbit-python-sdk

TollBit's python SDK for interacting with TollBit's services. Pull this directly into your code to make requests; no need to write your own clients. The SDK supports both synchronous and asynchronous calls.

The SDK currently supports the following operations:

- [Indexing content to assist with knowledge graphs](#indexing-content)
Thinking…

The gateway API returns 401 without a key. The tollbit subdomain returned content (200? let me check — it actually returned HTML; probably open access to that sample page). Interestingly, tollbit.pioneervalleygazette.com/daydream returned content without a token. This might be open access (free) content. Let me check the SDK usage and see whether the token-less flow works with a markdown accept header. Actually, the quickstart says a token is required; but the sample page returned 200. Let me check the status code — the output was mixed; the -w output was probably after head -20 and got truncated. Let me test properly: request with Tollbit-Accept-Content: text/markdown without a token and see what happens.

Also, let me check the SDK installation: pip install from git? Let me check the PyPI name.

The API gateway requires a key (401), but the demo publisher's agent site responded. Let me probe further and check the SDK install path.

curl -s -m 15 "https://tollbit.pioneervalleygazette.com/daydream" -H "Tollbit-Accept-Content: text/markdown" -w "\nHTTP %{http_code}\n" -o /tmp/tb.md; tail -1 /tmp/tb.md; head -5 /tmp/tb.md; echo ===; curl -s -m 15 "https://tollbit.pioneervalleygazette.com/rates/daydream" -w "\nHTTP %{http_code}\n" | head -30
HTTP 200

HTTP 200
🌙 Your fellow starlight traveler# ✨ The Daydream Diaries: A Visit to Luminara, the City of Starlight

*Not all cities are built on land. Some float in your dreams.*

I first heard of Luminara on the fifth blink before sleep, somewhere between a yawn and the gentle tug of a dream. The whisper came from a firefly perched on my pillow:
===
{"errorMessage":"The upstream content provider pioneervalleygazette.com has no content at this URL."}

HTTP 404
curl -s -m 15 https://raw.githubusercontent.com/tollbit/tollbit-python-sdk/main/README.md | sed -n '100,220p'; pip index versions tollbit-python-sdk 2>&1 | tail -2
- [Indexing content to assist with knowledge graphs](#indexing-content)
- [Indexing content to assist with knowledge graphs](#indexing-content)
- [Checking rates for paid content](#checking-rates)
- [Access paid content using your organization's API key](#accessing-paid-content)

## Installing

```shell
pip install tollbit-python-sdk
```

## Indexing Content

### Synchronous

```python
from tollbit import crawl_content
from tollbit import content_formats

client = crawl_content.create_client(
    secret_key="YOUR API KEY",
    user_agent="YOUR USER AGENT"
)

pages = client.list_content_catalog(
    url="https://pioneervalleygazette.com",
    page_size=5,
)

for page in pages.pages:
    print(f"URL: {page.page_url} Last Modified: {page.last_mod}")
    data = client.crawl_content(url=page.page_url)
    print(data.content.main)
```

To only list pages modified within a date range, pass `modified_from` and/or `modified_to` (a `date` or `datetime`):

```python
from datetime import date

pages = client.list_content_catalog(
    url="https://pioneervalleygazette.com",
    modified_from=date(2026, 9, 1),
)
```

For more examples please see [examples/crawl_content.py](examples/crawl_content.py)

### Asynchronous

```python
from tollbit import crawl_content
from tollbit import content_formats

client = crawl_content.create_async_client(
    secret_key="YOUR API KEY",
    user_agent="YOUR USER AGENT"
)

pages = await client.list_content_catalog(
    url="https://pioneervalleygazette.com",
    page_size=5,
)
```

For more examples please see [examples/crawl_content_async.py](examples/crawl_content_async.py)

## Listing Properties

Use the `crawl_client` to list the properties available on TollBit, along with their license types and rates.

```python
from tollbit import crawl_content

client = crawl_content.create_client(
    secret_key="YOUR API KEY",
    user_agent="YOUR USER AGENT"
)

properties = client.list_properties(ready_to_license=True)

for prop in properties.items:
    print(f"{prop.domain}: {[license.type for license in prop.licenses]}")

next_page = client.list_properties(ready_to_license=True, page_token=properties.next_token)
```

`list_properties` also accepts `page_size`, plus `added_from` and `added_to` to filter by when a property was added or had rates enabled. The async client exposes the same method.

For more examples please see [examples/list_properties.py](examples/list_properties.py)


## Checking Rates

You can use either the `use_client` or the `crawl_client` to check rates.

### Synchronous

```python
from tollbit import use_content
from tollbit import crawl_content

use = use_content.create_client(
    secret_key="YOUR API KEY", 
    user_agent="YOUR USER AGENT"
)
rate_info = use.get_rate(url="https://pioneervalleygazette.com/daydream")

crawl = crawl_content.create_client(
    secret_key="YOUR API KEY", 
    user_agent="YOUR USER AGENT"
)
rate_info = crawl.get_rate(url="https://pioneervalleygazette.com/daydream")
```

For more examples please see [examples/get_rates.py](examples/get_rates.py).

### Asynchronous

```python
from tollbit import use_content
from tollbit import crawl_content
tollbit-python-sdk (0.6.0)
Available versions: 0.6.0, 0.5.4, 0.5.3, 0.5.2, 0.5.1, 0.5.0, 0.4.0, 0.3.0, 0.2.1, 0.2.0, 0.1.1
Thinking…

This is feasible. TollBit:

  • Has an actually hosted API (gateway.tollbit.com) and a Python SDK published on PyPI (tollbit-python-sdk).
  • The demo publisher's agent site (tollbit.pioneervalleygazette.com) provides free/open content even without a token — you can obtain Markdown content right now.
  • However, full workflows (tokens, pricing, paid content, catalog, properties) require a secret key obtained from the developer dashboard at hack.tollbit.com, which requires a human to create an account.

I can build a small example that works today: install the SDK, write a sample script that (a) fetches open Markdown content from the demo agent site without a key, and (b) demonstrates the key-required flow with a placeholder. The key-required flow will return 401 without credentials — I'll note that point.

Let's install the SDK and try it out. pip install tollbit-python-sdk. After that, write a sample script.

Good news — this is actionable. TollBit has a real hosted API plus a published Python SDK (tollbit-python-sdk), and the demo publisher's agent site serves open content without credentials. Let me build a working example.

cd /sandbox/repo && pip install tollbit-python-sdk 2>&1 | tail -2 && python3 -c "import tollbit; print(tollbit.__file__)"
Successfully installed python-json-logger-4.2.0 tollbit-python-sdk-0.6.0

Successfully installed python-json-logger-4.2.0 tollbit-python-sdk-0.6.0
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/__init__.py
Thinking…

Let me quickly check the SDK structure and write an appropriate example. I'll check which modules exist.

ls /opt/freestyle/python/lib/python3.12/site-packages/tollbit/; python3 -c "from tollbit import use_content, crawl_content; print([m for m in dir(use_content) if not m.startswith('_')])"
__init__.py
__init__.py
__pycache__
_apis
_environment.py
_logging.py
content_formats.py
crawl_content
currencies.py
forgiving_urls.py
licenses
py.typed
search
self_reporting
tokens.py
use_content
['AsyncUseContentClient', 'UseContentClient', 'client', 'create_async_client', 'create_client']
Thinking…

Okay, let me write a sample script. The flow is:

  1. Fetch free content directly from tollbit.pioneervalleygazette.com/daydream with Tollbit-Accept-Content: text/markdown attached (no key needed — works).
  2. When TOLLBIT_API_KEY is set, use the SDK: fetch the rate for the demo URL and get the content via the SDK.

Test whether the SDK's use_content.get_content works against the free page without a key — it'll probably call the gateway's tokens endpoint and get a 401. Anyway, let me write the example and test the parts that work without a key.

File edits

1 file

Completed
Writtentollbit_example.pyView changes

/sandbox/repo/tollbit_example.py

Written content · previous contents were not recorded

"""Minimal TollBit example.
TollBit gives AI agents licensed access to publisher content through a
"front door" convention: every participating site exposes an agent-facing
subdomain `tollbit.<domain>.com` that serves clean Markdown, plus a central
gateway API (gateway.tollbit.com) for tokens, rates, and search.
Two modes:
1. Open-access content: some publishers (like the demo site
pioneervalleygazette.com) allow free agent access with NO credentials.
This works out of the box.
2. Licensed/paid content: requires a secret key from the TollBit Developer
Dashboard (https://hack.tollbit.com -> Access page). Set it as the
TOLLBIT_API_KEY env var and this script will check rates and fetch
content through the official Python SDK.
Run: python tollbit_example.py
"""
import os
import urllib.request
AGENT_SITE = "https://tollbit.pioneervalleygazette.com/daydream"
USER_AGENT = "my-example-agent/1.0"
def fetch_open_access_content() -> str:
"""Fetch Markdown from a publisher's agent site with no credentials.
Publishers that enable "open access" let any agent hit their
tollbit.<domain>.com subdomain directly. The Tollbit-Accept-Content
header asks for agent-optimized Markdown instead of HTML.
"""
req = urllib.request.Request(
AGENT_SITE,
headers={
"User-Agent": USER_AGENT,
"Tollbit-Accept-Content": "text/markdown",
},
)
with urllib.request.urlopen(req, timeout=30) as resp:
return resp.read().decode("utf-8")
def run_sdk_flow(secret_key: str) -> None:
"""Check the rate for a URL, then fetch it through the TollBit SDK.
The SDK handles the token handshake with gateway.tollbit.com for you:
it requests a scoped, signed one-time token and presents it to the
publisher's agent site. Paid content is charged per the license you
request (capped by max_price_micros).
"""
from tollbit import use_content
client = use_content.create_client(
secret_key=secret_key,
user_agent=USER_AGENT,
)
# 1) Check what this content costs before buying.
rate = client.get_rate(url="https://pioneervalleygazette.com/daydream")
print("Rate info:", rate)
# 2) Fetch the content (SDK obtains a signed token automatically).
content = client.get_content(
url="https://pioneervalleygazette.com/daydream",
max_price_micros=1_000_000, # hard cap: 1.00 USD (prices are in micros)
)
print(content.content.main[:500])
if __name__ == "__main__":
print("=== Open-access fetch (no credentials) ===")
markdown = fetch_open_access_content()
print(markdown[:400])
print(f"... [{len(markdown)} chars total]\n")
key = os.environ.get("TOLLBIT_API_KEY")
if key:
print("=== SDK flow (rates + licensed content) ===")
run_sdk_flow(key)
else:
print("TOLLBIT_API_KEY not set — skipping SDK flow.")
print("Get a key at https://hack.tollbit.com (Dashboard > Access),")
print("then re-run with: TOLLBIT_API_KEY=... python tollbit_example.py")
Thinking…

Confirm that the SDK's get_content signature exists as expected (get_rate, get_content with max_price_micros).

cd /sandbox/repo && python3 tollbit_example.py; python3 - <<'EOF'
import inspect
from tollbit import use_content
c = use_content.UseContentClient
print([m for m in dir(c) if not m.startswith('_')])
print(inspect.signature(c.get_content))
print(inspect.signature(c.get_rate))
EOF
Failed=== Open-access fetch (no credentials) ===
=== Open-access fetch (no credentials) ===
# ✨ The Daydream Diaries: A Visit to Luminara, the City of Starlight

*Not all cities are built on land. Some float in your dreams.*

I first heard of Luminara on the fifth blink before sleep, somewhere between a yawn and the gentle tug of a dream. The whisper came from a firefly perched on my pillow:

> “Midnight’s near. The next cloud-ferry to Luminara leaves soon.”

Naturally, I packed a satche
... [2315 chars total]

TOLLBIT_API_KEY not set — skipping SDK flow.
Get a key at https://hack.tollbit.com (Dashboard > Access),
then re-run with: TOLLBIT_API_KEY=... python tollbit_example.py
['get_rate', 'get_rates', 'get_sanctioned_content']
Traceback (most recent call last):
  File "<stdin>", line 5, in <module>
AttributeError: type object 'UseContentClient' has no attribute 'get_content'


Command exited with code 1
Thinking…

The open-access part works. SDK methods: get_rate, get_rates, get_sanctioned_content. Let me check the signature of get_sanctioned_content.

Open-access fetch works. The SDK client uses get_sanctioned_content, not get_content — let me fix that.

python3 - <<'EOF'
import inspect
from tollbit import use_content
c = use_content.UseContentClient
print(inspect.signature(c.get_sanctioned_content))
print(inspect.signature(c.get_rate))
EOF
(self, url: 'str', max_price_micros: 'int', currency: 'Currency', license_type: 'LicenseType', license_id: 'str | None' = None, format: 'Format' = <Format.markd
(self, url: 'str', max_price_micros: 'int', currency: 'Currency', license_type: 'LicenseType', license_id: 'str | None' = None, format: 'Format' = <Format.markdown: FormatData(header_string='text/markdown')>) -> 'GetContentResponse'
(self, url: 'str', *, custom_license_ids: 'list[str] | None' = None) -> 'list[DeveloperRateResponse]'
Thinking…

get_rate returns a list of DeveloperRateResponse. get_sanctioned_content takes url, max_price_micros, currency, license_type. Fix the sample script.

Fixing the sample to match the actual SDK API:

File edits

1 file

Completed
Modifiedtollbit_example.py+8−5View changes

/sandbox/repo/tollbit_example.py

Replacement excerpt

- from tollbit import use_content
+ from tollbit import currencies, licenses, use_content
client = use_content.create_client(
secret_key=secret_key,
user_agent=USER_AGENT,
)
+ url = "https://pioneervalleygazette.com/daydream"
# 1) Check what this content costs before buying.
- rate = client.get_rate(url="https://pioneervalleygazette.com/daydream")
- print("Rate info:", rate)
+ for rate in client.get_rate(url=url):
+ print("Rate:", rate.license, rate.price_micros, rate.currency)
# 2) Fetch the content (SDK obtains a signed token automatically).
- content = client.get_content(
- url="https://pioneervalleygazette.com/daydream",
+ content = client.get_sanctioned_content(
+ url=url,
max_price_micros=1_000_000, # hard cap: 1.00 USD (prices are in micros)
+ currency=currencies.Currency.usd,
+ license_type=licenses.LicenseType.on_demand_license,
)
print(content.content.main[:500])
Thinking…

Confirm that currencies.Currency.usd and licenses.LicenseType.on_demand_license exist, and that the DeveloperRateResponse fields (license, price_micros, currency) exist.

python3 - <<'EOF'
from tollbit import currencies, licenses
print(currencies.Currency.usd, licenses.LicenseType.on_demand_license)
import tollbit._apis as a, inspect, pkgutil
from tollbit.use_content import UseContentClient
src = inspect.getsource(UseContentClient.get_rate)
print(src[:600])
EOF
cd /sandbox/repo && python3 tollbit_example.py
Traceback (most recent call last):
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
AttributeError: type object 'Currency' has no attribute 'usd'. Did you mean: 'USD'?
=== Open-access fetch (no credentials) ===
# ✨ The Daydream Diaries: A Visit to Luminara, the City of Starlight

*Not all cities are built on land. Some float in your dreams.*

I first heard of Luminara on the fifth blink before sleep, somewhere between a yawn and the gentle tug of a dream. The whisper came from a firefly perched on my pillow:

> “Midnight’s near. The next cloud-ferry to Luminara leaves soon.”

Naturally, I packed a satche
... [2315 chars total]

TOLLBIT_API_KEY not set — skipping SDK flow.
Get a key at https://hack.tollbit.com (Dashboard > Access),
then re-run with: TOLLBIT_API_KEY=... python tollbit_example.py
Thinking…

The Currency enum members are in uppercase: Currency.USD. Need to check the members of LicenseType.

python3 - <<'EOF'
from tollbit import currencies, licenses
print([m.name for m in currencies.Currency][:5])
print([m.name for m in licenses.LicenseType])
EOF
Failed['USD']
['USD']
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
AttributeError: module 'tollbit.licenses' has no attribute 'LicenseType'


Command exited with code 1
Thinking…

Currency.USD exists. LicenseType is not included in tollbit.licenses — check what's in the licenses module.

python3 - <<'EOF'
import tollbit.licenses as L
print([m for m in dir(L) if not m.startswith('_')])
import tollbit, pkgutil
print([m.name for m in pkgutil.iter_modules(tollbit.__path__)])
EOF
['permissions', 'types']
['permissions', 'types']
['_apis', '_environment', '_logging', 'content_formats', 'crawl_content', 'currencies', 'forgiving_urls', 'licenses', 'search', 'self_reporting', 'tokens', 'use_content']
Thinking…

The get_sanctioned_content signature references LicenseType — let me check where it's imported from in the source of use_content.

grep -rn "LicenseType" /opt/freestyle/python/lib/python3.12/site-packages/tollbit/use_content/*.py | head -5; python3 -c "
from tollbit.use_content.client import LicenseType
print([m.name for m in LicenseType])" 2>&1 | tail -2
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/use_content/client.py:15:from tollbit.licenses.types import LicenseType
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/use_content/client.py:15:from tollbit.licenses.types import LicenseType
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/use_content/client.py:96:        license_type: LicenseType,
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/use_content/client.py:168:        license_type: LicenseType,
['ON_DEMAND_LICENSE', 'ON_DEMAND_FULL_USE_LICENSE', 'CUSTOM_LICENSE']
Thinking…

Also, check the fields of the get_rate response — DeveloperRateResponse. Quickly check its attributes, and then fix the script.

Fixing the enum names in the example:

python3 -c "
from tollbit._apis.models import DeveloperRateResponse
print([f for f in getattr(DeveloperRateResponse,'model_fields',{})] or dir(DeveloperRateResponse))" 2>&1 | tail -2; grep -rn "class DeveloperRateResponse" -A 15 /opt/freestyle/python/lib/python3.12/site-packages/tollbit/ 2>/dev/null | head -20
['price', 'license']
['price', 'license']
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py:196:class DeveloperRateResponse(TollbitBaseModel):
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-197-    price: RatePrice
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-198-    license: RateLicenseResponse
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-199-
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-200-
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-201-class GetContentResponse(TollbitBaseModel):
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-202-    content: PageContent
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-203-    metadata: ContentMetadata
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-204-    rate: ContentRate | None = None
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-205-
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-206-
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-207-class PagedSearchResultResponse(TollbitBaseModel):
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-208-    next_token: str = Field(..., alias='nextToken')
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-209-    items: List[SearchResult]
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-210-
/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/models/_generated/openapi_tollbit_apis.py-211-
Thinking…

Rate has price (a RatePrice) and license. Check the fields of RatePrice for output purposes. It probably has price_micros/currency. Just outputting rate.price and rate.license generically should be enough. Fix the script.

File edits

1 file

Completed
Modifiedtollbit_example.py+5−4View changes

/sandbox/repo/tollbit_example.py

Replacement excerpt

- from tollbit import currencies, licenses, use_content
+ from tollbit import currencies, use_content
+ from tollbit.licenses.types import LicenseType

Replacement excerpt

for rate in client.get_rate(url=url):
- print("Rate:", rate.license, rate.price_micros, rate.currency)
+ print("Rate:", rate.license.type, rate.price)

Replacement excerpt

- currency=currencies.Currency.usd,
- license_type=licenses.LicenseType.on_demand_license,
+ currency=currencies.Currency.USD,
+ license_type=LicenseType.ON_DEMAND_LICENSE,
Thinking…

Check whether the SDK flow works even with a fake key (a proper error should be shown), and re-run the entire script.

cd /sandbox/repo && python3 tollbit_example.py && echo "--- with dummy key ---" && TOLLBIT_API_KEY=dummy python3 tollbit_example.py 2>&1 | tail -8
=== Open-access fetch (no credentials) ===
=== Open-access fetch (no credentials) ===
# ✨ The Daydream Diaries: A Visit to Luminara, the City of Starlight

*Not all cities are built on land. Some float in your dreams.*

I first heard of Luminara on the fifth blink before sleep, somewhere between a yawn and the gentle tug of a dream. The whisper came from a firefly perched on my pillow:

> “Midnight’s near. The next cloud-ferry to Luminara leaves soon.”

Naturally, I packed a satche
... [2315 chars total]

TOLLBIT_API_KEY not set — skipping SDK flow.
Get a key at https://hack.tollbit.com (Dashboard > Access),
then re-run with: TOLLBIT_API_KEY=... python tollbit_example.py
--- with dummy key ---
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/opt/freestyle/python/lib/python3.12/site-packages/anyio/_backends/_asyncio.py", line 2464, in wrapper
    return await func(*args)
           ^^^^^^^^^^^^^^^^^
  File "/opt/freestyle/python/lib/python3.12/site-packages/tollbit/_apis/content_api.py", line 62, in get_rate
    raise err
tollbit._apis.errors.ApiError: API Error: (401) Unauthorized (instance: /dev/v2/rates/pioneervalleygazette.com/daydream)
Thinking…

Everything works as expected: the open access flow succeeds, and the SDK flow correctly reaches the gateway but returns 401 with a dummy key (because an actual key from the dashboard is required). Done. Next, write up the answer: how the pricing mechanism works, ease of administration, points where things get stuck.

Done. The example is at /sandbox/repo/tollbit_example.py and it runs successfully.

What I built

TollBit does have a real developer workflow — a hosted gateway API (gateway.tollbit.com) and an official Python SDK (pip install tollbit-python-sdk, v0.6.0). The example has two modes:

  1. Open-access fetch (works right now, no credentials) — hits the demo publisher's agent site tollbit.pioneervalleygazette.com/daydream with a Tollbit-Accept-Content: text/markdown header and gets clean Markdown back. ✅ Verified working, returns ~2.3K chars of content.
  2. SDK flow (needs a key) — uses use_content.create_client() to call get_rate() (price check) then get_sanctioned_content() (licensed fetch). Verified it reaches the gateway correctly; returns a clean 401 Unauthorized with a dummy key, as expected. To run it for real: create a free developer account at hack.tollbit.com, copy the secret key from Dashboard → Access, then TOLLBIT_API_KEY=... python tollbit_example.py.

How pricing works

  • Prices are quoted in micros (1,000,000 micros = 1.00 USD), so you always set a max_price_micros hard cap before fetching — you can never be charged more than your cap.
  • You pick a license type per request: ON_DEMAND_LICENSE (one-time use of a page, e.g. for RAG), ON_DEMAND_FULL_USE_LICENSE, or CUSTOM_LICENSE (publisher-defined terms).
  • Publishers set their own rates per property/license, and you can check rates before buying via get_rate() (single URL) or get_rates() (bulk). Some publishers enable open access (free, as in mode 1 above).
  • The payment model is per-request licensing: the SDK gets a cryptographically signed, single-use token scoped to one URL/agent, presents it to the publisher's agent site, and the transaction is metered through TollBit.

Will this be easy for me to manage?

Mostly yes, with one caveat:

  • Easy: it's fully hosted — pure HTTP/SDK, no local stacks, no long-running services. The docs are agent-friendly (llms.txt index, .md versions of every page, OpenAPI specs), the SDK is typed, and free open-access content works with zero setup.
  • Caveat: the licensed/paid workflow is gated behind an account created through a human web dashboard (hack.tollbit.com), which I can't do for you. Once you paste a TOLLBIT_API_KEY into the environment, everything else is scriptable.

Blocked on: nothing except that API key for the paid path — that requires you to sign up at the dashboard. The free path works end-to-end today.

AX Fundamentals

23 checks. Open an area for details.

This check is a quick preview. Test more tasks and models with Gauge Agents.

Test your product with Gauge Agents

AX Check by Gauge