DataFood aggregates 16 cross-niche data sources (crypto, weather, news, finance, web3, security) into a single agent-friendly API. AI agents save 92% vs. calling individual APIs.
DataFood presents well-structured tool definitions with complete input schemas, clear enum constraints, and explicit HTTP endpoints. All 4 tools have descriptions (avg 156 chars, within 10-1024 baseline). However, output schemas are minimal (generic 'object' type with sparse field documentation), parameter descriptions lack depth on format/validation rules, and error handling guidance is absent. Tool naming follows verb_noun convention but lacks action clarity ('datafood_query' vs 'get_data' or 'fetch_data'). No tool annotations (readOnlyHint, idempotentHint) despite all being READ_ONLY. Composition is sound, tools chain well via session_id and user_id references.
Bundle 3-20 queries across any data types in one call. Cheapest way for AI agents to fetch cross-niche data — saves 50-92% vs. per-API calls.
Natural-language Q&A on a Plaid-linked portfolio. Returns AI-generated answer with citations to underlying holdings.
Fetch a single data type from DataFood. Use this for one-off queries. For 3+ queries use datafood_bundle (cheaper).
Open a watchable agent session — returns session_id and a public /watch/{id} URL. Stream click/search/fetch/screenshot events for live human observation.
Output schemas are underdocumented. All tools return generic 'object' type with minimal field descriptions. LLMs cannot infer what fields to extract or how to chain results downstream.
Parameter descriptions lack validation rules and format guidance. 'q' parameter has no length limits, format hints, or per-type query examples. 'user_id' in portfolio_ask has no format specification (UUID? email? opaque string?).
No error handling guidance. Tools lack recovery hints for common failures (invalid type, malformed query, auth failure, rate limit). LLMs cannot self-correct or know whether to retry.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Tool naming lacks action clarity. 'datafood_query' and 'datafood_bundle' do not start with clear verbs (get_, fetch_, search_). LLMs must read descriptions to infer intent, increasing selection latency.
No tool annotations despite all tools being READ_ONLY and idempotent. Missing readOnlyHint and idempotentHint annotations prevent agents from optimizing retry logic and caching strategies.