Agentic Platform
Documentation API reference Tools Skills

Tools

Temporary Storage jq

tmp_storage_jq MCP Content

Run a jq expression on a JSON or JSONL temporary upload.

Run a jq expression on a file stored in the project's temporary upload storage. The file may be one JSON document or JSONL (one JSON value per line), optionally gzip-compressed. Without `slurp`, the expression is applied to each JSON value, like `jq`. With `slurp`, every value is gathered into one array first, like `jq -s`. When the shape is unknown, start with `keys`, or with `.[0:3]` and `slurp` set, before writing a narrower expression.

Playground

POST
item
url required

Temporary upload to query. Temporary uploaded URLs on https://app.botify.com/:organization/:project/o/storage/tmp are allowed.

config
expression required

jq expression. The file may be one JSON document or a stream of JSON values (JSONL); each value is filtered on its own unless `slurp` is true. Start with `keys` to learn the shape of one object, or `.[0:3]` with `slurp` to see the first records of a stream. Module directives (`import`, `include`) and comments (`#`) are not available.

slurp

If true, every JSON value in the file is gathered into one array before the expression runs, like `jq -s`.

max_results

Maximum number of values to return.

Credits

Fixed cost per file queried. jq runs inside Botify against a file you already uploaded, so nothing further is billed.

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

Temporary upload to query. Temporary uploaded URLs on https://app.botify.com/:organization/:project/o/storage/tmp are allowed.

Example
{
  "url": "string"
}

Configuration

object
Properties
expression string required

jq expression. The file may be one JSON document or a stream of JSON values (JSONL); each value is filtered on its own unless `slurp` is true. Start with `keys` to learn the shape of one object, or `.[0:3]` with `slurp` to see the first records of a stream. Module directives (`import`, `include`) and comments (`#`) are not available.

min length 1, max length 10000

slurp boolean

If true, every JSON value in the file is gathered into one array before the expression runs, like `jq -s`.

Default: false

max_results integer

Maximum number of values to return.

Default: 100

min 1, max 1000

Example
{
  "expression": "string",
  "slurp": false,
  "max_results": 100
}

Response

object
Properties
results array

Values produced by the jq expression, up to `max_results`

Default: []

results_count integer

Number of values in `results`

Default: 0

truncated boolean

True if output was cut by `max_results` or the size cap

Default: false

error string | null

jq runtime error, if the expression failed on this file. `results` still holds values produced before the error. An invalid expression is rejected instead of being reported here.

Default: null

Example
{
  "results": [],
  "results_count": 0,
  "truncated": false,
  "error": null
}

Endpoints

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

Over MCP

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

Raw metadata