{"openapi":"3.1.0","info":{"title":"World Bank country metadata — ddigger data API","version":"3"},"servers":[{"url":"https://data.ddigger.ai"}],"paths":{"/t/{tenantId}/d/{slug}/data":{"get":{"operationId":"queryLatestDataset","description":"Query the latest retained publication version.","parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"fields","in":"query","schema":{"type":"string"},"description":"Comma-separated field keys (maximum 64)."},{"name":"where","in":"query","style":"form","explode":true,"schema":{"type":"array","maxItems":8,"items":{"type":"string","pattern":"^[^:]+:(eq|ne|gt|gte|lt|lte|contains):.+$"}},"description":"Repeat to combine filters with AND."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":0,"maximum":1000,"default":100}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":50000,"default":0}}],"security":[{}],"responses":{"200":{"description":"Dataset or focused query result.","headers":{"X-DDigger-Version":{"required":true,"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["title","version","schema","rows"],"properties":{"title":{"type":"string"},"version":{"type":"integer","minimum":1},"schema":{"type":"object"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/DatasetRow"}}}},{"type":"object","required":["title","version","matchedRows","returnedRows","rows"],"properties":{"title":{"type":"string"},"version":{"type":"integer","minimum":1},"matchedRows":{"type":"integer","minimum":0},"returnedRows":{"type":"integer","minimum":0},"rows":{"type":"array","items":{"$ref":"#/components/schemas/DatasetRow"}}}}]}}}},"400":{"description":"Invalid query syntax or version.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"401":{"description":"API key required.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Publication version not found.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"500":{"description":"Stored publication data is invalid.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}},"/t/{tenantId}/d/{slug}/ask":{"post":{"operationId":"askLatestDataset","description":"Rank rows in one selected window against a plain-language question. This does not generate an answer or search rows outside the window. Rows is empty when matchProbability is below 0.5. Model probabilities are relevance signals, not proof. The publisher must enable question processing for this version; selected rows are sent to an external model service.","parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"fields","in":"query","schema":{"type":"string"},"description":"Comma-separated field keys (maximum 64)."},{"name":"where","in":"query","style":"form","explode":true,"schema":{"type":"array","maxItems":8,"items":{"type":"string","pattern":"^[^:]+:(eq|ne|gt|gte|lt|lte|contains):.+$"}},"description":"Repeat to combine filters with AND."},{"name":"limit","in":"query","schema":{"type":"integer","minimum":0,"maximum":20,"default":20}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":50000,"default":0}}],"security":[{}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["question"],"properties":{"question":{"type":"string","minLength":1,"maxLength":500}}}}}},"responses":{"200":{"description":"Ranked rows and explicit scan coverage.","headers":{"X-DDigger-Version":{"required":true,"schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"type":"object","required":["version","sourceUrl","coverage","matchProbability","rows"],"properties":{"version":{"type":"integer","minimum":1},"sourceUrl":{"type":"string","format":"uri"},"question":{"type":"string"},"coverage":{"type":"object","required":["matchedRows","evaluatedRows","offset","complete"],"properties":{"matchedRows":{"type":"integer","minimum":0},"evaluatedRows":{"type":"integer","minimum":0},"offset":{"type":"integer","minimum":0},"complete":{"type":"boolean"}}},"matchProbability":{"type":"number","minimum":0,"maximum":1,"description":"Model probability that any selected row supports the question."},"rows":{"type":"array","maxItems":5,"items":{"type":"object","required":["index","probability","row"],"properties":{"index":{"type":"integer","minimum":0},"probability":{"type":"number","minimum":0,"maximum":1,"description":"Probability of this row in the model's ranking over selected rows."},"row":{"$ref":"#/components/schemas/DatasetRow"}}}}}}}}},"400":{"description":"Invalid question, query, or version.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"401":{"description":"API key required.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"404":{"description":"Version not found or questions not enabled.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"413":{"description":"Question body or selected row window is too large.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"429":{"description":"Question rate limit reached.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"502":{"description":"Question service unavailable.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}},"503":{"description":"Question service not configured.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"}}}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"ddigger publication API key"}},"schemas":{"DatasetRow":{"type":"object","properties":{"country":{"type":"string","description":"Country","x-ddigger-source-type":"text"},"capital":{"type":"string","description":"Capital","x-ddigger-source-type":"text"},"region":{"type":"string","description":"Region","x-ddigger-source-type":"text"},"income_level":{"type":"string","description":"Income level","x-ddigger-source-type":"category"},"country_code":{"type":"string","description":"Country code","x-ddigger-source-type":"text"},"source_url":{"type":"string","description":"Source url","x-ddigger-source-type":"url"}},"additionalProperties":false}}},"x-ddigger-version":3,"x-ddigger-row-count":211,"x-ddigger-auth":{"scheme":"bearer","requiredWhen":"the publication is private","currentVisibility":"public","currentlyRequired":false},"x-ddigger-fields":[{"key":"country","label":"Country","type":"text","operators":["eq","ne","contains"]},{"key":"capital","label":"Capital","type":"text","operators":["eq","ne","contains"]},{"key":"region","label":"Region","type":"text","operators":["eq","ne","contains"]},{"key":"income_level","label":"Income level","type":"category","operators":["eq","ne","contains"]},{"key":"country_code","label":"Country code","type":"text","operators":["eq","ne","contains"]},{"key":"source_url","label":"Source url","type":"url","operators":["eq","ne","contains"]}]}