Agentic Platform
Documentation API reference Tools Skills

Tools

AI Gateway

ai_gateway

Generate structured output from text input

Generate structured output from unstructured text input based on configurable item definitions. It can extract specific information types (strings, numbers, booleans) from text according to custom instructions. Supports both OpenAI models (gpt-5.6-luna, gpt-5.6-terra, gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.4-nano, gpt-5.2, gpt-5.1, gpt-5-mini, gpt-5-nano) and Gemini models (gemini-3.1-pro-preview, gemini-3-flash-preview, gemini-3.1-flash-lite, gemini-3.5-flash). Can also use other agents as tools for complex reasoning tasks.

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
prefeed List of agent pre-calls whose results are injected into the user prompt before the LLM runs.
user_prompt required User prompt for the LLM
config
prefeed List of agent pre-calls whose results are injected into the user prompt before the LLM runs.
system_prompt System prompt used to generate the items
structured_output_json_schema required JSON Schema for the structured output
model_settings required The settings for the AI model
agents List of agent IDs to be used as tools. action_board agentic_catalog_sources botify_config get_credit_usage google_trends html_code_executor html_code_executor_batch html_fetch html_grep html_grep_batch html_question knowledge list_annotations perplexity quality_control screenshot tables_create tables_insert tables_list tables_load tables_query tables_schema text_hash tool_documentation topics_extractor web_search
is_gzip If True, the user_prompt is expected to be base64-encoded and gzip-compressed. The agent will decode base64, then decompress gzip, and use the resulting UTF-8 string as the prompt. Enable this if your prompt is transmitted in this format, regardless of the processing mode (batch or not). This can be used to reduce payload size in any context.
toon_tool_results Serialize agent tool results as TOON instead of JSON

Billing

Fixed cost per call. Token rates follow the model you pick -- a cheaper model is cheaper per token, a more capable one several times more -- and scale with the prompt you send and the answer written, with no cap on either. Attaching web search adds one AI web search (OpenAI or Gemini) each time the model searches, at the rate of the model you pick. Tools you attach are billed on top, at their own rates.

These usage SKUs can be charged on a call.

SKU Credits Description
Tool call 1 per request Charged once per successful item, on top of any usage below.
AI web search (Gemini) 14 per query Gemini's built-in web search. Charged only when web_search is listed in agents, and only when the model actually searches. Billed on top of the model's own usage.
AI web search (OpenAI) 10 per query OpenAI's built-in web search. Charged only when web_search is listed in agents, and only when the model actually searches. Billed on top of the model's own usage.
GPT-5.6 Luna (flex), input 200 per million tokens Tokens the model reads from the prompt you send.
GPT-5.6 Luna (flex), output 900 per million tokens Tokens the model writes in its answer.
GPT-5.6 Luna (flex), prompt caching 250 per million tokens Tokens written into the prompt cache so later calls can reread them cheaper.
GPT-5.6 Luna (flex), read from cache 20 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.6 Luna (standard), input 400 per million tokens Tokens the model reads from the prompt you send.
GPT-5.6 Luna (standard), output 1,800 per million tokens Tokens the model writes in its answer.
GPT-5.6 Luna (standard), prompt caching 500 per million tokens Tokens written into the prompt cache so later calls can reread them cheaper.
GPT-5.6 Luna (standard), read from cache 40 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.6 Terra (flex), input 2,000 per million tokens Tokens the model reads from the prompt you send.
GPT-5.6 Terra (flex), output 9,000 per million tokens Tokens the model writes in its answer.
GPT-5.6 Terra (flex), prompt caching 2,500 per million tokens Tokens written into the prompt cache so later calls can reread them cheaper.
GPT-5.6 Terra (flex), read from cache 200 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.6 Terra (standard), input 4,000 per million tokens Tokens the model reads from the prompt you send.
GPT-5.6 Terra (standard), output 18,000 per million tokens Tokens the model writes in its answer.
GPT-5.6 Terra (standard), prompt caching 5,000 per million tokens Tokens written into the prompt cache so later calls can reread them cheaper.
GPT-5.6 Terra (standard), read from cache 400 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
Other SKUs
SKU Credits Description
GPT-5 mini (flex), input 125 per million tokens Tokens the model reads from the prompt you send.
GPT-5 mini (flex), output 1,000 per million tokens Tokens the model writes in its answer.
GPT-5 mini (flex), read from cache 12.5 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5 mini (standard), input 250 per million tokens Tokens the model reads from the prompt you send.
GPT-5 mini (standard), output 2,000 per million tokens Tokens the model writes in its answer.
GPT-5 mini (standard), read from cache 25 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5 nano (flex), input 25 per million tokens Tokens the model reads from the prompt you send.
GPT-5 nano (flex), output 200 per million tokens Tokens the model writes in its answer.
GPT-5 nano (flex), read from cache 2.5 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5 nano (standard), input 50 per million tokens Tokens the model reads from the prompt you send.
GPT-5 nano (standard), output 400 per million tokens Tokens the model writes in its answer.
GPT-5 nano (standard), read from cache 5 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.2 (flex), input 875 per million tokens Tokens the model reads from the prompt you send.
GPT-5.2 (flex), output 7,000 per million tokens Tokens the model writes in its answer.
GPT-5.2 (flex), read from cache 87.5 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.2 (standard), input 1,750 per million tokens Tokens the model reads from the prompt you send.
GPT-5.2 (standard), output 14,000 per million tokens Tokens the model writes in its answer.
GPT-5.2 (standard), read from cache 175 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.4 (flex), input 2,500 per million tokens Tokens the model reads from the prompt you send.
GPT-5.4 (flex), output 11,250 per million tokens Tokens the model writes in its answer.
GPT-5.4 (flex), read from cache 250 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.4 (standard), input 5,000 per million tokens Tokens the model reads from the prompt you send.
GPT-5.4 (standard), output 22,500 per million tokens Tokens the model writes in its answer.
GPT-5.4 (standard), read from cache 500 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.4 mini (flex), input 375 per million tokens Tokens the model reads from the prompt you send.
GPT-5.4 mini (flex), output 2,250 per million tokens Tokens the model writes in its answer.
GPT-5.4 mini (flex), read from cache 37.5 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.4 mini (standard), input 750 per million tokens Tokens the model reads from the prompt you send.
GPT-5.4 mini (standard), output 4,500 per million tokens Tokens the model writes in its answer.
GPT-5.4 mini (standard), read from cache 75 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.4 nano (flex), input 100 per million tokens Tokens the model reads from the prompt you send.
GPT-5.4 nano (flex), output 625 per million tokens Tokens the model writes in its answer.
GPT-5.4 nano (flex), read from cache 10 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.4 nano (standard), input 200 per million tokens Tokens the model reads from the prompt you send.
GPT-5.4 nano (standard), output 1,250 per million tokens Tokens the model writes in its answer.
GPT-5.4 nano (standard), read from cache 20 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.5 (flex), input 5,000 per million tokens Tokens the model reads from the prompt you send.
GPT-5.5 (flex), output 22,500 per million tokens Tokens the model writes in its answer.
GPT-5.5 (flex), read from cache 500 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
GPT-5.5 (standard), input 10,000 per million tokens Tokens the model reads from the prompt you send.
GPT-5.5 (standard), output 45,000 per million tokens Tokens the model writes in its answer.
GPT-5.5 (standard), read from cache 1,000 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
Gemini 3 Flash (batch), input 250 per million tokens Tokens the model reads from the prompt you send.
Gemini 3 Flash (batch), output 1,500 per million tokens Tokens the model writes in its answer.
Gemini 3 Flash (batch), read from cache 50 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
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 (batch), input 125 per million tokens Tokens the model reads from the prompt you send.
Gemini 3.1 Flash Lite (batch), output 750 per million tokens Tokens the model writes in its answer.
Gemini 3.1 Flash Lite (batch), read from cache 12.5 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.
Gemini 3.1 Flash Lite (flex), output 750 per million tokens Tokens the model writes in its answer.
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.
Gemini 3.1 Flash Lite (standard), input 250 per million tokens Tokens the model reads from the prompt you send.
Gemini 3.1 Flash Lite (standard), output 1,500 per million tokens Tokens the model writes in its answer.
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.
Gemini 3.1 Pro (flex), input 2,000 per million tokens Tokens the model reads from the prompt you send.
Gemini 3.1 Pro (flex), output 9,000 per million tokens Tokens the model writes in its answer.
Gemini 3.1 Pro (flex), read from cache 400 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
Gemini 3.1 Pro (standard), input 4,000 per million tokens Tokens the model reads from the prompt you send.
Gemini 3.1 Pro (standard), output 18,000 per million tokens Tokens the model writes in its answer.
Gemini 3.1 Pro (standard), read from cache 400 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
Gemini 3.5 Flash (batch), input 750 per million tokens Tokens the model reads from the prompt you send.
Gemini 3.5 Flash (batch), output 4,500 per million tokens Tokens the model writes in its answer.
Gemini 3.5 Flash (batch), read from cache 75 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
Gemini 3.5 Flash (flex), input 750 per million tokens Tokens the model reads from the prompt you send.
Gemini 3.5 Flash (flex), output 4,500 per million tokens Tokens the model writes in its answer.
Gemini 3.5 Flash (flex), read from cache 80 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.
Gemini 3.5 Flash (standard), input 1,500 per million tokens Tokens the model reads from the prompt you send.
Gemini 3.5 Flash (standard), output 9,000 per million tokens Tokens the model writes in its answer.
Gemini 3.5 Flash (standard), read from cache 150 per million tokens Tokens the model reads from a cached prompt. Cheaper than a fresh read.

Schemas

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

Item

object
Properties
prefeed array

List of agent pre-calls whose results are injected into the user prompt before the LLM runs.

Items: PrefeedCall

Default: []

user_prompt string required

User prompt for the LLM

Example
{
  "prefeed": [],
  "user_prompt": "string"
}

Type Definitions

1 type

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

PrefeedCall object
#

A pre-call to an agent whose result is injected into the user prompt before the LLM runs.

description string required

Description of the prefeed result (used as context label in the prompt)

agent string required

Agent ID to call

item object required

Item payload for the agent

config object

Optional config payload for the agent

Default: {}

Configuration

object
Properties
prefeed array

List of agent pre-calls whose results are injected into the user prompt before the LLM runs.

Items: PrefeedCall

Default: []

system_prompt string

System prompt used to generate the items

Default: ""

structured_output_json_schema object required

JSON Schema for the structured output

model_settings oneOf required

The settings for the AI model

Type: Gemini3FlashSettings | Gemini31FlashSettings | Gemini31Settings | Gemini35FlashSettings | OpenAISettings | OpenAI52Settings | OpenAI54Settings | OpenAI55Settings | OpenAI56Settings

Discriminated by model (14 variants)

agents array

List of agent IDs to be used as tools.

Allowed values: action_board agentic_catalog_sources botify_config get_credit_usage google_trends html_code_executor html_code_executor_batch html_fetch html_grep html_grep_batch html_question knowledge list_annotations perplexity quality_control screenshot tables_create tables_insert tables_list tables_load tables_query tables_schema text_hash tool_documentation topics_extractor web_search

is_gzip boolean

If True, the user_prompt is expected to be base64-encoded and gzip-compressed. The agent will decode base64, then decompress gzip, and use the resulting UTF-8 string as the prompt. Enable this if your prompt is transmitted in this format, regardless of the processing mode (batch or not). This can be used to reduce payload size in any context.

Default: false

toon_tool_results boolean

Serialize agent tool results as TOON instead of JSON

Default: false

Example
{
  "prefeed": [],
  "system_prompt": "",
  "structured_output_json_schema": {},
  "model_settings": {
    "temperature": 0.3,
    "max_tokens": null,
    "service_tier_flex_fallback_to_default": false,
    "model": "gemini-3-flash-preview",
    "service_tier": null,
    "thinking_level": null
  },
  "agents": [
    "action_board"
  ],
  "is_gzip": false,
  "toon_tool_results": false
}

Type Definitions

10 types

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

Gemini31FlashSettings object
#

Settings specific to Gemini 3.1 Flash model

temperature number

The temperature for the AI model

Default: 0.3

min 0.0, max 2.0

max_tokens integer | null

The maximum number of tokens for the AI model

Default: null

service_tier_flex_fallback_to_default boolean

If True and service_tier is 'flex'-like, fallback to 'default' tier on errors (429 rate limit, unsupported flex tier).

Default: false

model string required

The model to use for the Gemini model

service_tier string | null

Service tier for Google Models: 'default', 'flex', or 'flex_only'.

Default: null

thinking_level string | null

Thinking level: 'minimal', 'low', 'medium', or 'high'. Controls the depth of reasoning.

Default: null

Gemini31Settings object
#

Settings specific to Gemini 3.1 models

temperature number

The temperature for the AI model

Default: 0.3

min 0.0, max 2.0

max_tokens integer | null

The maximum number of tokens for the AI model

Default: null

service_tier_flex_fallback_to_default boolean

If True and service_tier is 'flex'-like, fallback to 'default' tier on errors (429 rate limit, unsupported flex tier).

Default: false

model string required

The model to use for the Gemini model

service_tier string | null

Service tier for Google Models: 'default', 'flex', or 'flex_only'.

Default: null

thinking_level string | null

Thinking level: 'low', 'medium', or 'high'. Controls the depth of reasoning.

Default: null

Gemini35FlashSettings object
#

Settings specific to Gemini 3.5 Flash model

temperature number

The temperature for the AI model

Default: 0.3

min 0.0, max 2.0

max_tokens integer | null

The maximum number of tokens for the AI model

Default: null

service_tier_flex_fallback_to_default boolean

If True and service_tier is 'flex'-like, fallback to 'default' tier on errors (429 rate limit, unsupported flex tier).

Default: false

model string required

The model to use for the Gemini model

service_tier string | null

Service tier for Google Models: 'default', 'flex', or 'flex_only'.

Default: null

thinking_level string | null

Thinking level: 'minimal', 'low', 'medium', or 'high'. Controls the depth of reasoning.

Default: null

Gemini3FlashSettings object
#

Settings specific to Gemini 3 Flash model

temperature number

The temperature for the AI model

Default: 0.3

min 0.0, max 2.0

max_tokens integer | null

The maximum number of tokens for the AI model

Default: null

service_tier_flex_fallback_to_default boolean

If True and service_tier is 'flex'-like, fallback to 'default' tier on errors (429 rate limit, unsupported flex tier).

Default: false

model string required

The model to use for the Gemini model

service_tier string | null

Service tier for Google Models: 'default', 'flex', or 'flex_only'.

Default: null

thinking_level string | null

Thinking level: 'minimal', 'low', 'medium', or 'high'. Controls the depth of reasoning.

Default: null

OpenAI52Settings object
#

Settings specific to OpenAI 5.2 models

temperature number

The temperature for the AI model

Default: 0.3

min 0.0, max 2.0

max_tokens integer | null

The maximum number of tokens for the AI model

Default: null

service_tier_flex_fallback_to_default boolean

If True and service_tier is 'flex'-like, fallback to 'default' tier on errors (429 rate limit, unsupported flex tier).

Default: false

verbosity string | null

Text verbosity level: 'low', 'medium', or 'high'. Controls how concise or verbose the model's text response is.

Default: null

service_tier string | null

Service tier for OpenAI API: 'default', 'flex', or 'priority'.

Default: null

model string required

The model to use for the OpenAI model

reasoning_effort string | null

Reasoning effort level: 'low', 'medium', 'high', or 'xhigh'. Controls the depth of reasoning for reasoning models.

Default: "high"

OpenAI54Settings object
#

Settings specific to OpenAI 5.4 models

temperature number

The temperature for the AI model

Default: 0.3

min 0.0, max 2.0

max_tokens integer | null

The maximum number of tokens for the AI model

Default: null

service_tier_flex_fallback_to_default boolean

If True and service_tier is 'flex'-like, fallback to 'default' tier on errors (429 rate limit, unsupported flex tier).

Default: false

verbosity string | null

Text verbosity level: 'low', 'medium', or 'high'. Controls how concise or verbose the model's text response is.

Default: null

service_tier string | null

Service tier for OpenAI API: 'default', 'flex', or 'priority'.

Default: null

model string required

The model to use for the OpenAI model

Values: gpt-5.4 gpt-5.4-mini gpt-5.4-nano

reasoning_effort string | null

Reasoning effort level: 'none', 'low', 'medium', 'high', or 'xhigh'. Controls the depth of reasoning for GPT-5.4 models.

Default: null

OpenAI55Settings object
#

Settings specific to OpenAI 5.5 models

temperature number

The temperature for the AI model

Default: 0.3

min 0.0, max 2.0

max_tokens integer | null

The maximum number of tokens for the AI model

Default: null

service_tier_flex_fallback_to_default boolean

If True and service_tier is 'flex'-like, fallback to 'default' tier on errors (429 rate limit, unsupported flex tier).

Default: false

verbosity string | null

Text verbosity level: 'low', 'medium', or 'high'. Controls how concise or verbose the model's text response is.

Default: null

service_tier string | null

Service tier for OpenAI API: 'default', 'flex', or 'priority'.

Default: null

model string required

The model to use for the OpenAI model

reasoning_effort string | null

Reasoning effort level: 'none', 'low', 'medium', 'high', or 'xhigh'. Controls the depth of reasoning for GPT-5.5 models.

Default: null

OpenAI56Settings object
#

Settings specific to OpenAI 5.6 models

temperature number

The temperature for the AI model

Default: 0.3

min 0.0, max 2.0

max_tokens integer | null

The maximum number of tokens for the AI model

Default: null

service_tier_flex_fallback_to_default boolean

If True and service_tier is 'flex'-like, fallback to 'default' tier on errors (429 rate limit, unsupported flex tier).

Default: false

verbosity string | null

Text verbosity level: 'low', 'medium', or 'high'. Controls how concise or verbose the model's text response is.

Default: null

service_tier string | null

Service tier for OpenAI API: 'default', 'flex', or 'priority'.

Default: null

model string required

The model to use for the OpenAI model

Values: gpt-5.6-luna gpt-5.6-terra

reasoning_effort string | null

Reasoning effort level: 'none', 'low', 'medium', 'high', or 'xhigh'. Controls the depth of reasoning for GPT-5.6 models.

Default: null

OpenAISettings object
#

Settings specific to OpenAI models

temperature number

The temperature for the AI model

Default: 0.3

min 0.0, max 2.0

max_tokens integer | null

The maximum number of tokens for the AI model

Default: null

service_tier_flex_fallback_to_default boolean

If True and service_tier is 'flex'-like, fallback to 'default' tier on errors (429 rate limit, unsupported flex tier).

Default: false

verbosity string | null

Text verbosity level: 'low', 'medium', or 'high'. Controls how concise or verbose the model's text response is.

Default: null

service_tier string | null

Service tier for OpenAI API: 'default', 'flex', or 'priority'.

Default: null

model string required

The model to use for the OpenAI model

Values: gpt-5.1 gpt-5-mini gpt-5-nano

reasoning_effort string | null

Reasoning effort level: 'low', 'medium', or 'high'. Controls the depth of reasoning for reasoning models.

Default: null

PrefeedCall object
#

A pre-call to an agent whose result is injected into the user prompt before the LLM runs.

description string required

Description of the prefeed result (used as context label in the prompt)

agent string required

Agent ID to call

item object required

Item payload for the agent

config object

Optional config payload for the agent

Default: {}

Response

object

Output from AI text generation

Properties
structured_output object required

Structured output based on input configuration

Example
{
  "structured_output": {}
}

Endpoints

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

Raw metadata