Agentic Platform
Documentation API reference Tools Skills

Tools

HTML Question

html_question Url data

Ask any question about an HTML Page.

Ask about a page's semantic structure, HTML elements, and technical aspects. Inquire about HTML tags, DOM structure, meta information, or how to access elements with CSS selectors. This agent can also extract and analyze structured data (e.g., JSON-LD, microdata, RDFa), understand semantic hierarchy, find specific attributes or values, and provide insights about a page's technical implementation.

Playground

Your organization, project and token stay in this browser's local storage and are sent straight to the API — this page never sees them.

POST
item
url required Source URL to ask question about
question required Question to ask
config
tone_of_voice IA tone of voice
response_lang Language of the response (must be a BCP47 lang code or 'auto' (default) to use the HTML page language)
country_code Country code to use for real-time fetches (2 letters lowercase)
remove_tags List of HTML tags to remove from the page before processing
only_text If set to True, extract the text before the LLM
fallback_real_time_fetch Fall back to real-time ScrapingBee fetch when URL not in SiteCrawler

Billing

Fixed cost per question asked. The rest follows the page: content read scales with how much of the page the question needs and the answer written with how long an answer you ask for, and nothing caps either. Point it at a page already in your SiteCrawler crawl and no fetch is billed; otherwise the page is fetched live. Leaving response_lang on auto adds one small extra model call to detect the page's language, and only for pages that do not declare it themselves.

These usage SKUs can be charged on a call, including SKUs from tools this one may call.

SKU Credits Description Used by
Tool call 1 per request Charged once per successful item, on top of any usage below.
  • This tool
Gemini 3 Flash (flex), input 250 per million tokens Tokens the model reads from the prompt you send.
Gemini 3 Flash (flex), output 1,500 per million tokens Tokens the model writes in its answer.
Gemini 3 Flash (flex), read from cache 50 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
Gemini 3 Flash (standard), input 500 per million tokens Tokens the model reads from the prompt you send.
Gemini 3 Flash (standard), output 3,000 per million tokens Tokens the model writes in its answer.
Gemini 3 Flash (standard), read from cache 50 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
Gemini 3.1 Flash Lite (flex), input 125 per million tokens Tokens the model reads from the prompt you send.
  • This tool
Gemini 3.1 Flash Lite (flex), output 750 per million tokens Tokens the model writes in its answer.
  • This tool
Gemini 3.1 Flash Lite (flex), read from cache 12.5 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
  • This tool
Gemini 3.1 Flash Lite (standard), input 250 per million tokens Tokens the model reads from the prompt you send.
  • This tool
Gemini 3.1 Flash Lite (standard), output 1,500 per million tokens Tokens the model writes in its answer.
  • This tool
Gemini 3.1 Flash Lite (standard), read from cache 25 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
  • This tool
Live page fetch 495 per 1,000 page Fetches a page from the live web as an ordinary visitor would.
Live page fetch, hard-blocked page 7,425 per 1,000 page A page that refused every gentler attempt. Charged on top of them, so a hard-blocked page costs the whole sequence.
Live page fetch, protected page 2,475 per 1,000 page A page that refused an ordinary fetch and had to be retried. Charged on top of the ordinary attempt, not instead of it.

Schemas

item is what you send, config how the tool behaves, and the response is what you get back.

Item

object
Properties
url string required

Source URL to ask question about

question string required

Question to ask

Example
{
  "url": "string",
  "question": "string"
}

Configuration

object
Properties
tone_of_voice string

IA tone of voice

Default: ""

response_lang string

Language of the response (must be a BCP47 lang code or 'auto' (default) to use the HTML page language)

Default: "auto"

country_code string

Country code to use for real-time fetches (2 letters lowercase)

Default: "us"

remove_tags array

List of HTML tags to remove from the page before processing

only_text boolean

If set to True, extract the text before the LLM

Default: true

fallback_real_time_fetch boolean

Fall back to real-time ScrapingBee fetch when URL not in SiteCrawler

Default: true

Example
{
  "tone_of_voice": "",
  "response_lang": "auto",
  "country_code": "us",
  "remove_tags": [
    "string"
  ],
  "only_text": true,
  "fallback_real_time_fetch": true
}

Response

object
Properties
url_found boolean required

Whether the URL was found and the HTML was fetched

answer string | null required

Answer to given question (if the URL was found)

confidence_score integer | null required

A score between 0 (lowest confidence) and 100 (best confidence) representing the confidence that the answer was accurately and completely extracted

url string required

Source URL used to answer the question

question string required

Question that was asked

iframe_allowed boolean | null

Whether iframes are allowed in the answer

Default: null

Example
{
  "url_found": true,
  "answer": "string",
  "confidence_score": 0,
  "url": "string",
  "question": "string",
  "iframe_allowed": null
}

Endpoints

POST http://agents.botify.com/{organization}/{project}/html_question/process
POST http://agents.botify.com/{organization}/{project}/html_question/batch_process
POST http://agents.botify.com/{organization}/{project}/html_question/async_process
POST http://agents.botify.com/{organization}/{project}/html_question/async_batch_process

See running a long job in the background for the polling flow.

cURL

curl -X POST "http://agents.botify.com/{organization}/{project}/html_question/process" \
  -H "Authorization: Bearer $BOTIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "item": {
    "url": "<url>",
    "question": "<question>"
  }
}'

Raw metadata