{"uid":"cap_PLbI2tXPk5bW_MttQtc-y","slug":"relaystation-data-filter-fc440871","name":"Relaystation Data Filter","description":"$0.0002/MB. Keep rows matching a structured predicate — injection-safe, no formula eval. 1¢ x402 min; remainder auto-credits — relaystation.ai/penny","url":"https://api.relaystation.ai/v1/data/filter","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","properties":{"to":{"enum":["csv","tsv","json","ndjson"],"type":"string","description":"A tabular file format: csv, tsv, json (array of objects), or ndjson."},"file":{"type":"object","description":"cputools input-source: { inline: <base64 ≤ 4 MiB> } or { inputKey: <scratch key from /v1/cputools/upload-url, ≤ 50 MB> }."},"from":{"enum":["csv","tsv","json","ndjson"],"type":"string","description":"A tabular file format: csv, tsv, json (array of objects), or ndjson."},"where":{"type":"object","properties":{"op":{"enum":["eq","ne","gt","gte","lt","lte","contains","startsWith","endsWith","in","isNull","notNull"],"type":"string"},"or":{"type":"array","items":{"type":"object"}},"and":{"type":"array","items":{"type":"object"}},"not":{"type":"object"},"value":{"description":"Comparison value (a scalar; an array for op=in; omitted for isNull/notNull)."},"column":{"type":"string"}},"description":"Structured predicate tree: a leaf { column, op, value? } or a branch { and: [...] } | { or: [...] } | { not: {...} }."}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST","PUT","PATCH"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_9a1n9s3i70M14N5GlWBjj","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Filter rows in a dataset by a structured predicate — injection-safe, no formula evaluation — billed per MB processed","exampleAgentPrompt":"Filter this dataset to keep only rows where status is 'active' and amount is greater than 100 — I need it injection-safe and no formula evaluation.","exampleUseCases":[{"title":"Filter customer records by status","prompt":"I have a list of customer records and I need to keep only the ones where account_status equals 'verified' and signup_date is after 2023-01-01 — can you filter it safely without any SQL injection risk?"},{"title":"Subset product inventory by price range","prompt":"Take this product inventory dataset and return only the rows where price is between 10 and 50 and stock_quantity is greater than 0."},{"title":"Clean event log by severity level","prompt":"I've got an event log with thousands of rows — filter it down to only entries where severity equals 'error' or 'critical' so I can review the important ones."}],"resultDescription":"Returns only the rows from the input dataset that match the specified structured predicate. The response contains the filtered subset of records in the same format as input, billed at $0.0002/MB of data processed, with a 1¢ minimum charge via x402 and any remainder auto-credited.","failureModes":["Malformed predicate syntax returns a 400 error describing the parsing issue","Payload too large may result in timeout or size rejection","Invalid field references in predicate (fields not present in data) may return empty results or a schema mismatch error","Insufficient USDC balance or x402 payment failure results in 402 Payment Required","Empty dataset returns empty result set without error"],"whenToPreferThis":"Choose this endpoint when you need to safely filter structured row-based data using a predicate without risking injection attacks or formula evaluation side effects. It is ideal for agents processing untrusted or user-supplied data where safe, sandboxed filtering is critical. Prefer this over SQL queries or spreadsheet formula engines when you need a lightweight, pay-per-MB serverless filter with no infrastructure setup.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T06:45:18.981Z","isFirstParty":false}