docs: agent-friendly schema & README (MCP setup for Claude Desktop and Cursor; input titles/descriptions rewritten for LLM agents).
Optional input includeRaw (default false) omits the large raw OCDS payload from dataset items.
Sample mode bills pending event ocds-release-trial (max 10 notices) instead of ocds-release; other modes unchanged. Results still save if the trial event is not yet in Console pricing.
First version: unofficial Find a Tender + Contracts Finder OCDS aggregator.
Personal contact fields stripped by default; emails and obvious UK phones redacted in free-text fields only (identifiers are left intact).
Per-source incremental watermarks and pay-per-event charging on each pushed release.
Builds publish to the beta tag; promote to latest only with operator approval.
Contracts Finder query strings keep ISO-8601 colons unencoded (: not %3A).
Free-text redaction skips only a value that is entirely one http(s) URL, so a URL followed by an email is still redacted in raw.
Incremental watermarks keep a bounded recentKeys list so the 60s overlap cannot double-charge.
Contracts Finder watermarks do not advance on a 0-release page; each page logs request URL and result count.
Sample mode tops up from the other source when one source is empty, so the default run still reaches maxResults.
Per-page HTTP INFO logs go through Actor.log so they appear in Apify run logs.
Stop paging a source once its maxResults budget is met, so sample mode does not fetch a second FTS page after 5 items.
Charge one ocds-release event per pushed item via Actor.charge then Actor.push_data. Do not use push_data(..., charged_event_name=): SDK 4.1.0 bills once per call (so a mixed FTS+CF batch is undercharged) and can persist items the platform did not bill after the max-charge cap.
Store README and Actor title/description match the approved listing. PPE prices: ocds-release $0.002 ($2.00 / 1,000), apify-actor-start $0.00005 (Console is source of truth).