Tools
Temporary Storage jq
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
Log in Log in to try this tool. The request uses your session.
url
required
Temporary upload to query. Temporary uploaded URLs on https://app.botify.com/:organization/:project/o/storage/tmp are allowed.
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
objecturl
string
required
Temporary upload to query. Temporary uploaded URLs on https://app.botify.com/:organization/:project/o/storage/tmp are allowed.
{
"url": "string"
}
Configuration
objectexpression
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.
slurp
boolean
If true, every JSON value in the file is gathered into one array before the expression runs, like `jq -s`.
max_results
integer
Maximum number of values to return.
{
"expression": "string",
"slurp": false,
"max_results": 100
}
Response
objectresults
array
Values produced by the jq expression, up to `max_results`
results_count
integer
Number of values in `results`
truncated
boolean
True if output was cut by `max_results` or the size cap
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.
{
"results": [],
"results_count": 0,
"truncated": false,
"error": null
}
Endpoints
http://agents.botify.com/{organization}/{project}/tmp_storage_jq/process
http://agents.botify.com/{organization}/{project}/tmp_storage_jq/batch_process
http://agents.botify.com/{organization}/{project}/tmp_storage_jq/async_process
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
- GET /agents/tmp_storage_jq — this page as JSON.
- /agents/tmp_storage_jq/skill.md — Markdown for coding agents.