Search
searchCross-domain search over Dapper's full document corpus (bills, regulations, consultations, news, transcripts), or a document's full metadata by id — one tool, two modes.
With q (default mode; required unless document_id is given): tries hybrid search (semantic + lexical RRF + cross-encoder rerank) first; falls back automatically to a plain title/number substring match if unavailable, timed out, or no semantic hit — check meta.mode ('semantic' or 'keyword_fallback'). It indexes attached source documents (PDFs and the like), not the records themselves, and coverage is uneven by country: treat an empty result as inconclusive. Returns top-K document stubs: document_id, title, url, domain, similarity and rerank_score (cite the rerank: negative means the reranker rejected it). dapper_content_id is the id of the RECORD the document belongs to — pass it as id to that domain's tool or to get_document_text. Pass document_id back into this tool for the full snippet. Use domain= to scope to one of bills/regulations/consultations/news/transcripts. If you already know the domain and want full structured rows directly (not just a stub), prefer that domain's own q param instead — e.g. list_bills(q=...) — it hits the same search but skips the extra document_id round-trip. Accepts Spanish, Portuguese, or English. Results are constrained to country_code (comma-separated; omit for every accessible/your default country).
With document_id (from a previous search result): ignores q and every other filter, and returns that document's full metadata — title, url, domain, country, published_date, a text snippet, and issuing_entity (regulations only).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Natural-language query, in Spanish, Portuguese or English. Required unless `document_id` is set. Prefer a domain tool's own `q` when you already know the domain — it returns full structured rows instead of a stub you then have to look up. | |
| since | No | Only documents published on or after this date (YYYY-MM-DD). | |
| top_k | No | How many document stubs to return (1-50; at most 20 come back, larger values are clamped). | |
| until | No | Only documents published on or before this date (YYYY-MM-DD). | |
| domain | No | Scope results to one domain. Omit to search across all five. | |
| min_rerank | No | Cross-encoder floor for the semantic branch of `q`. Rows the reranker scores below this are dropped; if that empties the result, what was rejected comes back under `empty_result.near_misses` so you can see what the index does hold. Pass null to disable the filter entirely. | |
| document_id | No | A `document_id` from a previous search result. Set it to fetch that document's full metadata; `q` and every filter are ignored. | |
| country_code | No | ISO alpha-2 country codes, comma-separated or as a list: 'BR,CO' or ['BR','CO']. Pass 'all' for every country you can access. Omitting it is NOT the same as 'all': logged in via OAuth it falls back to your own default country, and the response says so in `meta.country_scope`. | |
| min_similarity | No | Cosine-similarity floor (0-1). Coarse: most rows that clear it are then rejected by the cross-encoder. `min_rerank` is the one that discriminates. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||