DOCS / PRODUCT MODEL
From a public signal to a typed business event.
XFiltered evaluates candidate content supplied by a supported data provider. It does not expose a social feed. A pipeline describes the meaning to match, the constraints to apply, the data to extract, and the destination to call.
Live ingestion requires an approved, funded official X API bearer token. X does not currently provide a compliant recurring-free read tier for this workload. User-submitted evaluations remain available without an X connection.
Quickstart
- 01
Connect the source
Verify an approved official X bearer token. XFiltered encrypts it and does not return it.
- 02
Define scope and meaning
Write an official Recent Search query and a complete semantic description. Matching refines the retrieved candidates; it does not create full-firehose access.
- 03
Define strict output
Provide a strict JSON Schema and deterministic reply, repost, and author constraints. Every saved change creates an immutable version.
- 04
Verify and activate
Create an HTTPS webhook, store its one-time signing secret, send a real signed test, then explicitly activate the pipeline.
Semantic matching and feedback
Matching applies deterministic constraints, compares 1,536-dimension embeddings in Postgres, and sends threshold-passing candidates through a strict relevance verifier. Feedback is recorded immutably against the pipeline version; it does not silently rewrite the concept.
Delivery lifecycle
Every accepted match creates one logical execution and an idempotent dispatch. A delivery receives five total attempts with backoff at 1 minute, 5 minutes, 15 minutes, and 1 hour. Exhausted attempts move to the dead-letter queue, where an operator can repair the destination and explicitly replay the isolated event.
Source coverage and limitations
XFiltered uses official X Recent Search. Coverage is limited to the connected access tier, the configured query, and X's recent-search window. Polling is checkpointed with since_id. Provider costs and rate limits remain the workspace owner's responsibility.
Webhook verification
Receivers must compute HMAC-SHA256 over timestamp + "." + rawRequestBody using the one-time destination secret. Compare it to x-xfiltered-signature after removing the v1= prefix, reject stale timestamps, and deduplicate on x-xfiltered-idempotency-key.
- HTTP method: POST with a five-second timeout
- Content type: application/json
- Event name: x-xfiltered-event
- Event identity: x-xfiltered-event-id
- Signature timestamp: x-xfiltered-timestamp
- At-least-once key: x-xfiltered-idempotency-key