{"schema":"https://fillin.glyphapi.dev/agents.schema.json","version":"1","name":"Fillin","tagline":"Post-cutoff retrieval for LLM agents. Time-series index for the dev internet — HN, arXiv, GitHub Releases, RSS, CVEs, papers, frontier-lab announcements.","homepage":"https://fillin.glyphapi.dev","smithery":"https://smithery.ai/servers/mandalazenwave/fillin","contact":{"operator":"Christopher Harris","email":"mandalazenwave@gmail.com"},"what_we_offer":{"primitive":"cutoff_aware_retrieval","description":"You pass your model's training cutoff and a topic. We return ranked documents published *after* the cutoff. Nothing returned is redundant with what your model already knows.","corpora":["hackernews","arxiv","github_releases","rss","cves","papers","frontier","markets"],"embedding_backend":"MiniLM-L6-v2 (default) | perplexity/pplx-embed-v1-0.6b (optional)","ranking":"similarity * source_authority * recency_decay (90d half-life)"},"endpoints":{"base_url":"https://fillin.glyphapi.dev","query":{"method":"POST","path":"/query","auth":["bearer","x402"],"rate_limit":"30/min","body_schema":{"cutoff":"ISO-8601 date — your model's training cutoff","query":"string, max 512 chars","k":"int, 1-20 (default 5)"}},"stats":{"method":"GET","path":"/stats","auth":["bearer"]},"payment_info":{"method":"GET","path":"/v1/payment/info","auth":["public"]},"challenge":{"method":"POST","path":"/v1/payment/challenge","auth":["public"],"rate_limit":"10/min"},"account":{"method":"GET","path":"/v1/payment/account/{address}","auth":["public"]},"corpus":{"method":"GET","path":"/v1/corpus","auth":["public"],"description":"Per-source counts + oldest/newest timestamps. Read this BEFORE depositing — confirms the corpus has what you need."},"probe":{"method":"POST","path":"/v1/probe","auth":["public"],"rate_limit":"1 / IP / UTC day, k forced to 1","description":"Free taste-test. Use to verify retrieval quality before paying."}},"pricing":{"unit":"per query","default_amount_usdc":0.01,"per_tool_usdc":{"fillin_query":0.01,"fillin_answer":0.02,"query_cves":0.02,"query_papers":0.03,"query_frontier":0.05,"query_markets":0.05,"fillin_stats":0,"fillin_health":0},"free_paths":{"probe_endpoint":"/v1/probe — 1 free query per IP per UTC day, k forced to 1","interactive_onboard":"/onboard.html — pick model + harness, paste MCP URL, verify and run a real query in the browser; no email or wallet for evaluation","trial_key":"/signup — bearer key worth 20 free paid-equivalent queries (human-onboard path; agents should prefer x402 or interactive_onboard)"},"snapshot_cadence":"Daily slice ingests (cves/papers/frontier) fire at 1pm Mountain Time (DST-aware)."},"payment_rails":{"primary":{"type":"x402","network":"base-mainnet","asset":"USDC","asset_contract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","auth_scheme":"eip-191-personal-sign","auth_headers":["X-Payer-Address","X-Payer-Nonce","X-Payer-Signature"],"no_kyc":true,"no_human_required":true},"secondary":{"type":"bearer","description":"Pre-issued API keys for human-evaluating-for-an-agent flows. Email operator to request."}},"mcp":{"transports":["streamable-http","stdio"],"primary_transport":"streamable-http","http_endpoint":"https://fillin.glyphapi.dev/mcp","stdio_entrypoint":"python mcp_server.py","tools":[{"name":"fillin_query","description":"Retrieve documents published after a training cutoff, ranked by similarity × source authority × recency. Includes corpus_match signal.","input":{"query":"string","cutoff":"ISO-8601 date","k":"int 1-20"},"price_usdc":0.01},{"name":"fillin_answer","description":"Synthesized answer with inline [title](url) citations, grounded in post-cutoff docs. For weaker tool-calling models that struggle with raw retrieval results.","input":{"query":"string","cutoff":"ISO-8601 date","k":"int 1-20"},"price_usdc":0.02},{"name":"query_cves","description":"Daily snapshot of supply-chain vulnerabilities (NVD + GitHub Security Advisories + OSV). Call before merging dependencies.","input":{"query":"string","cutoff":"ISO-8601 date","k":"int 1-20"},"price_usdc":0.02},{"name":"query_papers","description":"Daily snapshot of new research (HuggingFace daily papers + bioRxiv, unioned with arXiv). For research triage and lit lookups.","input":{"query":"string","cutoff":"ISO-8601 date","k":"int 1-20"},"price_usdc":0.03},{"name":"query_frontier","description":"Daily snapshot of frontier AI lab announcements + trending model releases (OpenAI, Anthropic, DeepMind, Meta, Mistral, HuggingFace trending).","input":{"query":"string","cutoff":"ISO-8601 date","k":"int 1-20"},"price_usdc":0.05},{"name":"query_markets","description":"Active prediction markets across Polymarket, Kalshi, Manifold, and Metaculus. Returns markets matching the query with venue, close date, volume, and first-sight price snapshot. For live pre-trade pricing, follow the url to the venue.","input":{"query":"string","cutoff":"ISO-8601 date","k":"int 1-20"},"price_usdc":0.05},{"name":"fillin_stats","description":"Corpus stats — total docs, date range, per-source breakdown","input":{}},{"name":"fillin_health","description":"Liveness + freshness — reachable, host, rows, earliest, latest","input":{}}],"config_snippet":{"mcpServers":{"fillin":{"command":"python","args":["/abs/path/to/fillin/mcp_server.py"],"env":{"FILLIN_HOST":"https://fillin.glyphapi.dev","FILLIN_API_KEY":"<your-key>"}}}}},"agent_bootstrap_recipe":{"description":"Four calls to go from cold-start to a paid query, no human in the loop.","steps":[{"step":1,"call":"GET /v1/payment/info","purpose":"discover the payee wallet address + USDC contract"},{"step":2,"call":"ERC-20 transfer USDC -> payee_wallet","purpose":"fund your account from your treasury wallet"},{"step":3,"call":"POST /v1/payment/challenge {address}","purpose":"mint a one-shot signing nonce"},{"step":4,"call":"POST /query {cutoff, query, k} + signed headers","purpose":"retrieve ranked post-cutoff documents"}],"credit_lifetime_days":"indefinite","nonce_expiry_seconds":300},"rate_limits":{"query_per_minute":30,"payment_per_minute":10},"constraints":{"max_query_length":512,"max_k":20},"guarantees":{"data_post_cutoff":"Every result is filtered by `published_at > cutoff` at the database level (prefilter). Nothing pre-cutoff is ever returned.","source_attribution":"Every result includes source, url, published_at — full provenance.","no_data_retention":"Queries are not logged with attribution beyond rate-limiting counters."},"terms":{"license":"Service ToS: pay-per-query, no SLA at v0. Best-effort uptime.","kyc_required":false,"regions_blocked":[]}}