Agentic Platform
Documentation API reference Tools Skills

Tools

SpeedWorkers Page Preview

speedworkers_page_preview MCP Content

Get the HTML, headers and metadata SpeedWorkers delivers to bots for a URL.

Preview what Botify SpeedWorkers delivers to search and AI bots for a URL: the pre-rendered HTML (or markdown) served from the SpeedWorkers cache, the HTTP status code and headers bots receive, and the delivery metadata (where the page was delivered from, why it would not be delivered, last cache and next refresh times, matching cache behavior, quality controls results, inventory sources and page properties). The HTML is returned as delivered, without any cleaning. With `save_to_tmp_storage`, the HTML is saved to temporary storage and its URL is returned instead, while the headers and metadata are still returned. The project must have SpeedWorkers enabled.

Playground

POST
item
url required

The URL to get the SpeedWorkers preview for.

device

The device variant of the cached page. When `desktop` or `mobile` is not cached, SpeedWorkers falls back to the device-agnostic (`na`) variant.

output_format

Force the delivered format (`html`, `markdown` for markdown embedded in an HTML page, `pure_markdown` for raw markdown). By default, the format the page's cache behavior delivers to bots.

config
save_to_tmp_storage

Save the fetched HTML to Botify temporary storage and return the temporary URL instead of the HTML. Use this to save output tokens. The returned URL can be passed to other HTML-processing tools. Headers and metadata are still returned.

Credits

Fixed cost per URL requested. This tool reads the page SpeedWorkers already holds for your project and calls no outside service, so nothing is added to the per-call price.

These usage SKUs can be charged on a call.

SKU Credits Description
Tool call 1 per request Charged once per successful item.

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

The URL to get the SpeedWorkers preview for.

device SpeedWorkersDevice

The device variant of the cached page. When `desktop` or `mobile` is not cached, SpeedWorkers falls back to the device-agnostic (`na`) variant.

Type: SpeedWorkersDevice

Default: "desktop"

output_format SpeedWorkersOutputFormat

Force the delivered format (`html`, `markdown` for markdown embedded in an HTML page, `pure_markdown` for raw markdown). By default, the format the page's cache behavior delivers to bots.

Type: SpeedWorkersOutputFormat

Default: null

Example
{
  "url": "string",
  "device": "desktop",
  "output_format": null
}

Type Definitions

2 types

These are the available sub-object types that can be used in the properties above.

SpeedWorkersDevice string
#

Values: desktop mobile na

SpeedWorkersOutputFormat string
#

Values: html markdown pure_markdown

Configuration

object
Properties
save_to_tmp_storage boolean

Save the fetched HTML to Botify temporary storage and return the temporary URL instead of the HTML. Use this to save output tokens. The returned URL can be passed to other HTML-processing tools. Headers and metadata are still returned.

Default: false

Example
{
  "save_to_tmp_storage": false
}

Response

object
Properties
html string | null

HTML (or markdown) of the page as delivered to bots by SpeedWorkers. Omitted when `save_to_tmp_storage` is True; see `html_tmp_storage_url` instead.

Default: null

html_tmp_storage_url string | null

Temporary storage URL of the HTML page. Returned instead of `html` when `save_to_tmp_storage` is True. Can be passed to other HTML-processing tools.

Default: null

status_code integer | null

HTTP status code delivered to bots

Default: null

headers object | null

HTTP headers delivered to bots

Default: null

metadata SpeedWorkersPreviewMetadata

SpeedWorkers delivery metadata of the page

Type: SpeedWorkersPreviewMetadata

Default: null

reason string | null

Why no HTML was returned, if any

Default: null

Example
{
  "html": null,
  "html_tmp_storage_url": null,
  "status_code": null,
  "headers": null,
  "metadata": null,
  "reason": null
}

Type Definitions

4 types

These are the available sub-object types that can be used in the properties above.

SpeedWorkersInput object
#
stable_id string | null

Stable ID of the input

Default: null

name string | null

Name of the input

Default: null

input_type string | null

Type of the input

Default: null

SpeedWorkersPreviewMetadata object
#
delivered_from string | null

Where the page was delivered from (cache, fetch, liverender, section, ignoredparams, livefetch, nowhere)

Default: null

not_delivered_reason string | null

Why the page would not be delivered to bots (e.g. not_cached, quality_controls_failed), `cached` otherwise

Default: null

redirect_url string | null

Redirect target, when the page redirects

Default: null

output_format string | null

Format actually delivered (html, markdown, pure_markdown)

Default: null

last_index_time string | null

When the page was last cached

Default: null

refresh_time string | null

When the page is due for a refresh

Default: null

original_processing_time_ms integer | null

Time spent fetching and rendering the page, in ms

Default: null

beam_processing_time_ms integer | null

Time spent by SpeedWorkers to deliver the page, in ms

Default: null

section SpeedWorkersSection

Cache behavior (section) matching the page

Type: SpeedWorkersSection

Default: null

quality_controls array

Quality controls run on the page

Items: SpeedWorkersQualityControl

Default: []

inputs array

Inventory sources the page comes from

Items: SpeedWorkersInput

Default: []

properties object | null

Page properties extracted from the HTML

Default: null

js_error string | null

JavaScript error raised during delivery

Default: null

SpeedWorkersQualityControl object
#
id string | null

ID of the quality control

Default: null

name string | null

Name of the quality control

Default: null

status integer | null

Result of the quality control (0 = success, 3 = error)

Default: null

severity string | null

Severity of the quality control

Default: null

SpeedWorkersSection object
#
id string | null

Stable ID of the cache behavior

Default: null

name string | null

Name of the cache behavior

Default: null

Endpoints

POST http://agents.botify.com/{organization}/{project}/speedworkers_page_preview/process
POST http://agents.botify.com/{organization}/{project}/speedworkers_page_preview/batch_process
POST http://agents.botify.com/{organization}/{project}/speedworkers_page_preview/async_process
POST http://agents.botify.com/{organization}/{project}/speedworkers_page_preview/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}/speedworkers_page_preview/process" \
  -H "Authorization: Bearer $BOTIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "item": {
    "url": "<url>"
  }
}'

Over MCP

This tool is exposed as the MCP tool speedworkers_page_preview. An MCP client passes organization, project and item as tool arguments. Set up MCP →

Raw metadata