Process JSON with jq
process_jsonOptional per-query x402 payment costs 0.005 native USDC on Base: tools/call params._meta["com.thejqapi/payment"]={mode:"query",idempotency_key:"fresh UUID"}; add signed _meta["x402/payment"] on retry. Keep the identical arguments and key. Active passes never incur this charge. Payment precedes execution; runtime/URL errors are chargeable. A settled payment permits three identical delivery attempts within 15 minutes, including the first; results are re-executed, never cached. Pending settlement is a tool error without execution: inspect GET /access/purchases/{idempotency_key} using the same bearer UUID without a second payment. Changed requests/retry exhaustion return 409 and expired delivery 410. Per-query privacy excludes payload logs and free counters but retains one billing receipt per logical query and temporary keyed retry data; it is not the pass’s zero-query-record mode. Requires an x402 client and explicit 0.005-USDC spending policy. Never put payment/credentials in arguments. Apply a jq filter and return JSON results; this does not create or modify uploads. Choose exactly one source: input for an available JSON value, url for a public HTTPS document, or upload_id to reuse stored JSON. For a single query, pass input or url directly; use upload_json first only when several queries should reuse one document. For example, filter .name extracts a field, keys inspects structure, and . reads the complete document, including an upload. To check upload availability or remaining quota without running jq, use get_upload or get_quota. Document limit 5 MiB; URL fetches allow three redirects and ten seconds, without caller credentials or private networks. Upload IDs expire 15 minutes after creation. Anyone holding an ID can query, inspect, or delete that upload. Runs real jq in isolated WebAssembly memory. Supply modules as options.modules filenames mapped to source on each call; they disappear afterward and need no separate management. Returns success, result, rawResult, results (every emitted jq value), stdout, jqVersion, executionTime, and optional stderr. Free-tier processing uses one shared daily REST/MCP quota call: 100 per IP or 1,000 per client-configured UUID bearer token, resetting at midnight UTC. Both free and paid keep JSON, filters, results, and source URLs out of application logs. Active 30-day passes additionally skip IP/UUID daily counters, query counts, and source analytics, with unlimited queries and zero application query logs. Expired paid UUIDs reject ordinary queries until renewed or explicitly paid per query, without free-tier tracking. Use get_quota to inspect active access. Minimal billing records, explicit uploads, public payments, and Cloudflare infrastructure boundaries are disclosed at https://thejqapi.com/privacy. jq failures return success:false and error; input failures may include status 400 (invalid), 404 (missing upload), 410 (expired), 413 (too large), 415 (unsupported data), 502/504 (URL failure/timeout), or 503 (storage unavailable). Quota exhaustion returns a tool error with remaining:0, reset_at, a structured upgrade offer linking pricing and browser checkout, and reset details in _meta.rateLimit. Use purchase_access only under an authorized spending policy; otherwise wait for reset.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"filter": "<filter>"
},
"name": "process_json"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public HTTPS URL to fetch as input, up to 5 MiB. No credentials, private addresses, or custom headers. | |
| input | No | JSON value; use a string with raw_input or input_stream for text input. | |
| filter | Yes | jq expression, e.g. .name, keys, or .items | length. Use . to read the complete input or uploaded document. Modules are supplied per call in options.modules. | |
| options | No | Optional jq input modes, named variables, per-call modules, and stdout formatting. Omitted boolean flags are false. Text modes read inline strings or remote document text; raw_input and input_stream are mutually exclusive. | |
| upload_id | No | Secret ID returned by upload_json; reusable until its 15-minute expiration. Do not share. |