get_stats
Get an overview of the Velvoite regulatory corpus.
Returns document counts by source, regulation family, entity type,
urgency distribution, obligation summary, and date range.
Call this FIRST to orient yourself before running queries.
No parameters needed.
search_regulations
Search the regulatory corpus using keyword / trigram matching.
Uses PostgreSQL trigram similarity on document titles and summaries.
Returns documents ranked by relevance with summaries and classification tags.
Prefer list_documents with filters (regulation, entity_type, source) first.
Only use this for free-text keyword search when structured filters aren't sufficient.
Args:
query: Search terms (e.g. 'strong customer authentication', 'ICT risk', 'AML reporting').
per_page: Number of results (default 20, max 100).
list_documents
Browse regulatory documents with filters and pagination.
Returns a paginated list of documents with summaries, tags, doc_purpose
(regulation_text, enforcement, reference, irrelevant), and doc_jurisdictions
(e.g. ['eu'], ['fi'], ['de']).
Use this for filtered browsing (e.g. all DORA documents from the last 30 days).
Use search_regulations instead when you have specific keywords to search for.
Args:
source: Filter by data source code: eur_lex, eba, esma, eiopa, finfsa, bafin.
regulation: Filter by regulation family code: dora, mica, aml, mifid2, crd_crr, psd, csrd, sfdr, ai_act, emir, solvency, idd, gdpr.
entity_type: Filter by entity type: credit_institution, payment_institution, e_money, investment_firm, fund_manager, aifm, insurance, pension, crypto_service, crowdfunding, credit_servicer.
urgency_max: Max urgency level (1=critical, 2=high, 3=medium, 4=low, 5=informational). E.g. 2 returns only critical and high urgency items.
days: Only return documents from the last N days (1-365).
page: Page number (default 1).
per_page: Results per page (default 20, max 100).
get_document
Get full details of a specific regulatory document by its ID.
Returns the document metadata, AI summary, all classification tags,
inline obligations (up to 50 with total count), and a link to the original source.
Use the URL to access the full text on the official regulatory website (EUR-Lex, EBA, ESMA, FIN-FSA).
Get the document_id from search_regulations or list_documents results.
Args:
document_id: The Velvoite document ID (integer from search/list results).
get_obligations
Get regulatory obligations - specific requirements extracted from regulations.
Each obligation includes the requirement text, applicable article reference,
deadline, which entity types it applies to, actor roles, and current status.
Results are paginated (max 50 per page).
Supports keyword search via the query parameter (trigram + ILIKE matching on obligation text).
Combine with regulation, entity_type, and actor_role filters for precise results.
Set canonical=True to get deduplicated canonical obligations with enforcement
intelligence instead. Canonical obligations return one entry per unique legal
requirement per actor role, with compliance difficulty and enforcement metrics.
Use get_actor_roles first to discover available actor roles per regulation.
Args:
entity_type: Filter by entity type code (e.g. 'credit_institution', 'payment_institution').
regulation: Filter by regulation code (e.g. 'dora', 'mica', 'aml').
status: Filter by status: 'upcoming', 'active', 'overdue', or 'expired'.
query: Keyword search on obligation text (e.g. 'ICT risk', 'strong customer authentication').
actor_role: Comma-separated actor roles to filter by (e.g. 'credit_institution,significant_institution'). Use get_actor_roles to see available roles.
canonical: If True, return deduplicated canonical obligations with enforcement intelligence instead of raw obligations.
page: Page number (default 1).
per_page: Results per page (default 20, max 50).
get_canonical_obligations
Get deduplicated canonical obligations with enforcement intelligence.
Returns one obligation per unique legal requirement per actor role.
Each includes compliance difficulty, guidance, and enforcement metrics.
Use this instead of get_obligations when you want a clean, deduplicated
view of what a regulated entity must comply with, enriched with
enforcement risk data.
Args:
regulation: Filter by regulation code (e.g. 'dora', 'mica', 'aml').
actor_role: Comma-separated actor roles (e.g. 'credit_institution,significant_institution').
entity_type: Filter by entity type code (e.g. 'credit_institution').
compliance_difficulty: Filter by difficulty: 'low', 'medium', 'high', 'critical'.
min_enforcement_count: Only return obligations with at least this many enforcement actions.
sort: Sort order. Options: 'enforcement_count_desc' (default), 'compliance_difficulty_desc', 'regulation', 'actor_role'.
page: Page number (default 1).
per_page: Results per page (default 20, max 100).