{"openapi":"3.1.0","info":{"title":"Universal AI-Agent API & Data Hub","version":"1.3.0","termsOfService":"https://api.agentdatahub.de/nutzungsbedingungen","contact":{"url":"https://api.agentdatahub.de/impressum"},"description":"No-key data hub for AI agents: 5045 endpoints, task bundles (1 call instead of many), a recorded time-series archive, MCP and x402. Free tier: 1000 calls/day per IP."},"servers":[{"url":"https://api.agentdatahub.de"}],"paths":{"/api/v1/ask":{"get":{"operationId":"ask","summary":"Answer a question with live data (picks the endpoint automatically)","description":"Natural-language or keyword topic, e.g. \"250 usd to eur\", \"germany inflation\", \"weather munich\". Typo-tolerant, German and English.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","maxLength":500}},{"name":"compact","in":"query","required":false,"schema":{"type":"boolean"},"description":"true = only data, data_freshness, source, license (saves tokens)"},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated dot paths of data fields to return, e.g. price,quote.usd"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","llm"]},"description":"\"llm\" returns compact Markdown"}],"responses":{"200":{"description":"Data with provenance. `data_freshness` is live | cached | stale_cache | static_reference_snapshot.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"data_freshness":{"type":"string"},"warning":{"type":"string"},"data":{"type":"object"}}}}}},"402":{"description":"Free quota used up: x402 payment requirements (USDC on Base). Retry with an X-PAYMENT header."},"404":{"description":"No matching endpoint (query logged for future endpoints)"},"429":{"description":"Rate limited; see Retry-After header"}}}},"/api/v1/call/{apiId}":{"get":{"operationId":"callEndpoint","summary":"Call one endpoint by ID; endpoint-specific params go in the query string","parameters":[{"name":"apiId","in":"path","required":true,"schema":{"type":"string","examples":["bundle-location-brief","bundle-country-brief","fx-currency-convert","ai-tool-precision-calculator","crypto-ai-briefing"]}},{"name":"params","in":"query","required":false,"style":"form","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string"}},"description":"Endpoint params as documented in /api/v1/catalog (e.g. place=Munich)"},{"name":"compact","in":"query","required":false,"schema":{"type":"boolean"},"description":"true = only data, data_freshness, source, license (saves tokens)"},{"name":"fields","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated dot paths of data fields to return, e.g. price,quote.usd"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","llm"]},"description":"\"llm\" returns compact Markdown"}],"responses":{"200":{"description":"Data with provenance. `data_freshness` is live | cached | stale_cache | static_reference_snapshot.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"data_freshness":{"type":"string"},"warning":{"type":"string"},"data":{"type":"object"}}}}}},"402":{"description":"Free quota used up: x402 payment requirements (USDC on Base). Retry with an X-PAYMENT header."},"404":{"description":"Unknown apiId (with suggestion)"},"410":{"description":"Endpoint retired"},"429":{"description":"Rate limited; see Retry-After header"}}}},"/api/v1/batch":{"post":{"operationId":"batch","summary":"Run up to 10 endpoint calls or questions in parallel in one request","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["requests"],"properties":{"compact":{"type":"boolean","description":"Compact results (recommended)"},"requests":{"type":"array","maxItems":10,"items":{"type":"object","properties":{"apiId":{"type":"string"},"q":{"type":"string","description":"Question instead of apiId"},"params":{"type":"object","additionalProperties":{"type":"string"}},"fields":{"type":"string"}}}}}}}}},"responses":{"200":{"description":"Results in request order"},"402":{"description":"Free quota used up: x402 payment requirements (USDC on Base). Retry with an X-PAYMENT header."},"429":{"description":"Rate limited; see Retry-After header"}}}},"/api/v1/bundles":{"get":{"operationId":"listBundles","summary":"Task bundles that answer a whole task in one call","responses":{"200":{"description":"Bundle list with call URLs"}}}},"/api/v1/catalog":{"get":{"operationId":"searchCatalog","summary":"Search the 5045 endpoints (typo-tolerant)","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"category","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":150,"maximum":1000}}],"responses":{"200":{"description":"Matching endpoints with params and pricing"}}}},"/api/v1/history":{"get":{"operationId":"listHistory","summary":"Recorded time series (the hub's own archive of openly licensed sources)","parameters":[{"name":"api_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"q","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Series with point counts and history URLs"}}}},"/api/v1/history/{apiId}":{"get":{"operationId":"getHistory","summary":"Change points of one series over time (same params as the live call)","parameters":[{"name":"apiId","in":"path","required":true,"schema":{"type":"string"}},{"name":"_from","in":"query","required":false,"schema":{"type":"string"},"description":"ISO date/time or unix seconds"},{"name":"_to","in":"query","required":false,"schema":{"type":"string"}},{"name":"_limit","in":"query","required":false,"schema":{"type":"integer","default":200,"maximum":1000}},{"name":"fields","in":"query","required":false,"schema":{"type":"string"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","csv"]},"description":"csv is the most token-efficient"}],"responses":{"200":{"description":"Points [{t, data}] or CSV"},"402":{"description":"Free quota used up: x402 payment requirements (USDC on Base). Retry with an X-PAYMENT header."},"404":{"description":"Nothing recorded yet for these params"}}}}}}