{"source":"doffin","operation":"search_ted","description":"Search TED (Tenders Electronic Daily) - EU-wide public procurement\nnotices - with the TED Search API v3 expert query syntax.","parameters":[{"name":"query","schema":{"type":"string"},"required":true,"default":null,"description":"Expert query. Every field condition must be joined with an explicit AND/OR/NOT - there is no implicit operator, so two conditions with nothing between them is a syntax error, not an OR. Append \"SORT BY <field> DESC|ASC\". Useful fields: - classification-cpv IN (45000000)   filter by SUBJECT. Use this, not FT, to restrict to a procurement category. Matches notices tagged with that exact code (a code, not its children); a notice carries several CPVs, so a hit may also cover other things. - FT=\"text\"                       free text - matches any notice that MENTIONS the words anywhere, so it returns unrelated notices (a construction tender that happens to say \"software\"). Not a category filter; AND it with classification-cpv to scope. - place-of-performance IN (NOR)   ISO 3166 alpha-3 or NUTS codes - buyer-country IN (SWE DNK) - publication-date >= 20260101    or e.g. today(-30) - deadline-receipt-tender-date-lot >= today() - notice-type IN (cn-standard)    cn=competition, can=award, pin=prior information; cn-standard, can-standard etc. - contract-nature IN (works services supplies) - buyer-name ~ (\"kommune\") Example - open Swedish construction tenders: (buyer-country IN (SWE)) AND (classification-cpv IN (45000000)) AND (notice-type IN (cn-standard)) SORT BY publication-date DESC"},{"name":"fields","schema":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"required":false,"default":null,"description":"Response fields to return (defaults cover number, title, buyer, dates, CPV, type, nature, value)."},{"name":"page","schema":{"type":"integer"},"required":false,"default":1,"description":"1-based page (max 15,000 notices reachable via paging)."},{"name":"limit","schema":{"type":"integer"},"required":false,"default":10,"description":"1-250 notices per page (default 10)."},{"name":"offset","type":"integer","schema":{"type":"integer","minimum":0,"default":0},"display_type":"integer","required":false,"default":0,"description":"Number of list items to skip before returning the page."}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/doffin/search_ted?query={query}&fields={fields}&page=1&limit=10&offset=0","schema_scope":"#/data in the successful operation envelope","response_schema":{"type":"object","properties":{"total_count":{"type":["integer","null"]},"notices":{"type":"array","items":{"anyOf":[{"x-allemannsdata-schema-status":"unresolved","description":"Response shape is not yet declared; any JSON value is permitted."},{"type":"object","properties":{"url":{"type":["string","null"],"format":"uri"},"pdf":{"x-allemannsdata-schema-status":"unresolved","description":"Response shape is not yet declared; any JSON value is permitted."}},"additionalProperties":false}]}}},"additionalProperties":false},"response_schema_status":{"status":"incomplete","codegen_safe":false,"description":"Not suitable for typed model generation: the container shape and field names are useful, but unresolved values accept any JSON value."},"entity_projection":{"status":"projected","entity_types":["procurement","organization"],"description":"Recognized records and stable operation identifiers are projected; an empty array means the successful payload contained no recognizable entity."},"error_contract":{"scope":"top-level HTTP error response; never part of a success payload","schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"details":{"type":"object"}},"additionalProperties":false,"required":["code","message","retryable"]},"suggestion":{"type":"string"},"_meta":{"type":"object","properties":{"retrieved_at":{"type":"string","format":"date-time"},"language":{"type":"string","const":"en"},"content_languages":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"object"}}},"required":["retrieved_at","language","content_languages","sources"]},"_links":{"type":"object","properties":{"self":{"type":"string","format":"uri"},"api_index":{"type":"string","format":"uri"}},"required":["self","api_index"],"additionalProperties":false}},"additionalProperties":false,"required":["error","suggestion","_meta","_links"]},"statuses":{"400":{"codes":["MISSING_PARAMETER","INVALID_PARAMETER","INVALID_REQUEST"],"retryable":false},"404":{"codes":["SOURCE_NOT_FOUND","OPERATION_NOT_FOUND","ENTITY_NOT_FOUND"],"retryable":false},"429":{"codes":["RATE_LIMITED","GATEWAY_RATE_LIMITED"],"retryable":true},"502":{"codes":["SOURCE_UNAVAILABLE"],"retryable":true},"500":{"codes":["INTERNAL_ERROR"],"retryable":true}}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/doffin/search_ted/schema","operation":"https://allemannsdata.com/wiki/api/v1/kilder/doffin/search_ted","source":"https://allemannsdata.com/wiki/api/v1/kilder/doffin"},"output_fields":["total_count","notices","notices[].url","notices[].pdf"],"output_fields_truncated":false,"canonical_field_aliases":{}}
