io.github.cyanheads/ris-austria-mcp-server
REMOTE · RIS-AUSTRIA.CASEYJHAND.COM · 2 COMPONENTS · SCANNED AUG 3
Search Austrian federal and state law, court decisions, and the authentic Bundesgesetzblatt (RIS).
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security66
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 9 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability47
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 7674 tokens (~852/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · ris-austria.caseyjhand.com
claude mcp add --transport http cyanheads-ris-austria-mcp-server https://ris-austria.caseyjhand.com/mcp
[mcp_servers.cyanheads-ris-austria-mcp-server] url = "https://ris-austria.caseyjhand.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cyanheads-ris-austria-mcp-server": {
"type": "remote",
"url": "https://ris-austria.caseyjhand.com/mcp",
"enabled": true
}
}
} openclaw mcp add cyanheads-ris-austria-mcp-server --url https://ris-austria.caseyjhand.com/mcp --transport streamable-http
mcp_servers:
cyanheads-ris-austria-mcp-server:
url: "https://ris-austria.caseyjhand.com/mcp" {
"mcpServers": {
"cyanheads-ris-austria-mcp-server": {
"type": "http",
"url": "https://ris-austria.caseyjhand.com/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +9
- Schema quality: unverified → good ▲ functional
- 31 Jul 26 −7
- Tool “ris_get_document” rewrote its description, which is the text the model reads security
- Schema quality: excellent → unverified ▼ functional
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- Server version: 0.4.0 → 0.4.1 functional
- “ris_get_document” reworded the description of “sections” cosmetic
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 60
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://ris-austria.caseyjhand.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=caseyjhand.com | CN=WE1,O=Google Trust Services,C=US | 7 Jul 2026 | 5 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 5aad900eb2055a0b0ea55912ec19680c |
| SANs: caseyjhand.com, *.caseyjhand.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC secure
Validation of ris-austria.caseyjhand.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| caseyjhand.com. | present | 2371 | 13 | Verified |
| ris-austria.caseyjhand.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://ris-austria.caseyjhand.com/mcp | Verified | 200 | |
| http (plaintext) | http://ris-austria.caseyjhand.com/mcp | HTTPS enforced | 301 | https://ris-austria.caseyjhand.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
ris_get_document Get RIS Document ~1,000
Fetch one RIS document’s full text or its rendition URLs, with explicit binding status and the amtssigniert authentic PDF surfaced wherever it exists. Address the document exactly one of two ways: document_number plus application (both copied verbatim from a ris_search_* or ris_lookup_citation result), or a document_url from a result’s content_urls — or, for a draft’s companion documents (Erläuterungen, Textgegenüberstellung, WFA, cover letter, annexes), a ris_search_drafts record’s materials[].url, which is the only route to them. format: markdown (default — the HTML rendition converted to markdown), html (raw HTML rendition), xml (the RIS Nutzdaten XML), or urls_only (no fetch — every rendition URL, including the Authentisch PDF). Format availability varies by application and the tool degrades explicitly, never silently: consolidated law, gazettes, case law, drafts, and most sectoral collections carry full text; district and municipal promulgations and court rules (Bvb, GrA, KmGer) publish only the signed authentic PDF; party-transparency decisions and council minutes (Upts, Mrp) are PDF-only; the 1848–1940 imperial gazettes (BgblAlt) are metadata-only — for these a text-format request returns a format_unavailable notice with the usable URL, not an error. Every result carries binding_status; only authentic (amtssigniert) publications are legally binding. This tool returns content, not fresh metadata — the metadata rides the search/lookup step that produced the document number. When the markdown text overflows the 40,000-byte budget the tool returns an outline (kind: outline) instead of truncating: the document’s §/Artikel/Anlage sections where it carries at least two such headings, otherwise contiguous byte windows named Part 1 of N … Part N of N covering the whole text and listed in document order. Re-call with sections:[…] naming outline entries to retrieve just those; a name matching no entry returns the outline again with a notice rather than the whole docume…
| Name | Type | Req | Description |
|---|---|---|---|
| application | string | — | RIS application the document belongs to (e.g. BrKons, Dsk, BgblAuth) — copy verbatim from the same result. Required with document_number. Codes and coverage: ris_list_reference topic applications. |
| document_number | string | — | Technical RIS document number (Technisch.ID), e.g. NOR40262691, JJT_…, BGBLA_2026_II_171 — copy verbatim from a ris_search_* or ris_lookup_citation result. Requires application; mutually exclusive wi… |
| document_url | string | — | A https://www.ris.bka.gv.at/Dokumente/… rendition URL as returned in a result’s content_urls — the alternative to document_number + application. Also the only way to read a draft’s companion document… |
| format | string | — | markdown (default — the HTML rendition converted to markdown), html (raw HTML rendition), xml (RIS Nutzdaten schema), or urls_only (no fetch — all rendition URLs incl. the authentic PDF). |
| sections | array | — | Entry names to retrieve, each copied verbatim from a prior outline response (kind: outline) — §/Artikel/Anlage section names, or window names of the form "Part 2 of 6". Omit for the full document, wh… |
| Name | Type | Req | Description |
|---|---|---|---|
| application | string | yes | RIS application the document belongs to (echoed). |
| authentic_pdf_url | string | — | The amtssigniert authentic PDF (.pdfsig, Authentisch DataType) — the legally binding artifact — where the application publishes one. |
| binding_status | string | yes | Legal binding status: authentic (amtssigniert, legally binding), consolidated_informational (consolidated view — not binding), historical_record (superseded/pre-e-Recht promulgation), decision (court… |
| byte_size | number | — | Full UTF-8 byte size of the document text. Present when text was fetched — for an overflowed document (kind: outline) this reports the full text’s size, not the outline payload’s. |
| content_urls | object | yes | Constructed rendition URLs. Empty for authentic-PDF-only (Bvb/GrA/KmGer) and metadata-only (BgblAlt) applications — see authentic_pdf_url and the notice. For a companion document (a draft’s Erläuteru… |
| document_number | string | yes | Technical RIS document number (echoed). |
| format | string | yes | The format served — echoes the requested format. |
| kind | string | yes | full — the complete response (document text, selected entries, or rendition URLs). outline — sections lists the retrievable entries instead of the text, either because the document overflowed the byt… |
| notice | string | — | Present when the requested text format is unavailable for this application (names why and the usable URL), when the document overflowed to a section outline (names how to retrieve sections), or when… |
| sections | array | — | Present when kind = outline: the document’s addressable entries, each with its UTF-8 byte size — §/Artikel/Anlage sections listed largest first, or, when the markdown carries no such headings, Part n… |
| text | string | — | The document text in the requested format. Absent for urls_only and when the application carries no text rendition (see the notice). |
| truncated | boolean | — | Present and true when the full text isn’t inline because an outline was returned instead (kind: outline) — either the document overflowed the byte budget, or a sections:[…] selector matched nothing.… |
No examples provided.
ris_list_reference RIS Reference Lists ~243
Ground the opaque German codes across the RIS surface — static and offline, no upstream call. Topics: applications (all 39, with coverage windows, binding status, and content formats), courts (17 codes with Geschäftszahl examples and successor mapping), states (the three Bundesland request spellings), decision_types, decision_kinds (per-court Entscheidungsart values), issuing_bodies (dsk/dok/pvak/verg bodies and social-insurance issuers), ministries (abbreviations and full designations, historical included), collections (the 7 announcement collections and their parameter matrix), stages (lawmaking pipeline), changed_since_intervals, section_types, gazette_parts (BGBl parts and era tiers), law_types, district_authorities (all Bezirksverwaltungsbehörden), justiz_subject_areas (Fachgebiet taxonomy), search_syntax (operators and wildcard rules), and citation_formats (the shapes ris_lookup_citation parses). Recovery hints from the other ris_* tools route here.
| Name | Type | Req | Description |
|---|---|---|---|
| topic | string | yes | Which reference table to return. Pick the topic named in the error recovery hint or zero-hit notice that sent you here. |
| Name | Type | Req | Description |
|---|---|---|---|
| entries | array | yes | Reference entries for the topic. |
| notes | array | yes | Topic-level caveats and usage guidance. Empty when none apply. |
| summary | string | yes | What this topic covers and which tool parameters consume its values. |
| topic | string | yes | The requested topic, echoed back. |
No examples provided.
ris_lookup_citation Resolve Austrian Legal Citation ~700
Resolve a single Austrian legal citation to its canonical RIS document deterministically — no keyword search. Four routes are auto-detected from the citation shape (or forced with kind): a norm citation — section-first ("§ 6 DSG", "Art 10 B-VG"), abbreviation-first ("DSG §1", "DSGVO Art32", the shape ris_search_case_law returns in norms_cited), or a bare abbreviation like "ABGB" — resolves through consolidated federal law, or a Bundesland with a state hint, as in force today or on in_force_as_of; a gazette citation ("BGBl. I Nr. 165/1999", pre-2004 "BGBl. Nr. 194/1961", imperial "RGBl. Nr. 189/1902", or "LGBl. Nr. 61/2026" with a state hint) routes to the right federal era tier by year, or to a state Landesgesetzblatt — falling back to that Bundesland’s pre-e-Recht series when the citation predates its switch; a case number ("Ro 2026/03/0016", "G 287/2022", "14Os49/26a", "2025-0.934.677", "W256 …") is matched to its court — pass court to skip detection, and ambiguous formats probe up to two courts; a collection number ("VfSlg 19.632/2012", "VwSlg 18.000 A/2010") resolves through the VfGH/VwGH collection — a VwSlg cite given without its part letter can name one decision in each of the two VwGH series, and comes back as ambiguous with both cites named rather than resolved to one of them. Returns the single best-matching document in the same shape as the corresponding search tool, with alternatives_count when more than one matched. A citation that cannot be classified or resolved returns found: false with next-step guidance — it never throws for a miss; only an upstream RIS outage is an error. For keyword rather than citation lookup, use ris_search_legislation or ris_search_case_law.
| Name | Type | Req | Description |
|---|---|---|---|
| citation | string | yes | The legal citation to resolve, e.g. "§ 6 DSG" or "DSG §1", "Art 10 B-VG", "BGBl. I Nr. 165/1999", "Ro 2026/03/0016", or "VfSlg 19.632/2012". |
| court | string | — | Court hint for a case number — short-circuits court detection to this court. Codes: ris_list_reference topic courts, minus normenliste (a norm index, which carries no case numbers). |
| in_force_as_of | string | — | For a norm, resolve the version in force on this date (YYYY-MM-DD). Defaults to today in Austria. |
| kind | string | — | Force a route, or auto (default) to classify by shape. Set explicitly when the citation shape is ambiguous. |
| state | string | — | Bundesland hint — routes a norm to that state’s consolidated law (LrKons) and an LGBl. gazette to that state’s Landesgesetzblatt (LgblAuth, then the legacy Lgbl series for a citation predating the st… |
| Name | Type | Req | Description |
|---|---|---|---|
| alternatives_count | number | — | Documents that also matched beyond the one returned — present only when more than one matched. List them all with the search tool named in resolution_note. |
| found | boolean | yes | True when the citation resolved to a single best-matching document. |
| guidance | string | — | Next-step guidance naming a concrete tool. Present when found is false. |
| kind | string | yes | What the citation parsed as — "unknown" when it did not classify into any route. |
| record | object | — | The resolved document, in the same normalized shape the corresponding search tool returns — ris_search_legislation for a norm, ris_search_case_law for a case or collection number, ris_search_gazette… |
| resolution_note | string | — | Which application and filter resolved the citation. Present when found is true. |
No examples provided.
ris_search_announcements Search Official Announcements ~1,131
Search Austria’s sectoral official gazettes and executive documents — seven collections behind one collection enum: social_insurance (Amtliche Verlautbarungen der Sozialversicherung, authentic), veterinary (Amtliche Veterinärnachrichten, authentic), court_rules (Kundmachungen der Gerichte — rules of procedure and case-allocation plans, authentic; currently LVwG Tirol and Vorarlberg only), trade_exam_rules (Prüfungsordnungen gemäß Gewerbeordnung, authentic), health_structure_plans (Strukturpläne Gesundheit — federal ÖSG and per-state RSG, authentic), ministerial_decrees (Erlässe der Bundesministerien — decrees interpreting law; bind the administration, not citizens), and council_minutes (Ministerratsprotokolle — council-of-ministers session records). Each collection accepts a different filter set: query and title are broadly available; number, published_from/to, in_force_as_of, issuer (ministry abbreviations expanded), norm ("decrees citing the DSG"), case_number, type, department, plan_type/plan_state (health plans), and session_number/legislature (council minutes) apply where the collection supports them — a filter outside its set is rejected locally. Every result carries a binding label, the authentic PDF where it exists, and the RIS web view (document_url) — the only browsable surface for the PDF-only council minutes and for ministerial decrees. Per-collection parameter matrix and issuers: ris_list_reference topic collections or issuing_bodies.
| Name | Type | Req | Description |
|---|---|---|---|
| case_number | string | — | Business reference number (Geschäftszahl) — veterinary and ministerial_decrees only. |
| changed_since | string | — | Coarse recency filter — documents changed in RIS within the interval. For exact windows use ris_track_changes. |
| collection | string | yes | Which collection to search — one per call. social_insurance | veterinary | court_rules | trade_exam_rules | health_structure_plans | ministerial_decrees | council_minutes. Per-collection filter matri… |
| department | string | — | Ministry department (Abteilung) — ministerial_decrees only. |
| entered_force_from | string | — | Provisions that entered force on/after this date (YYYY-MM-DD) — ministerial_decrees only. |
| entered_force_to | string | — | Provisions that entered force on/before this date (YYYY-MM-DD) — ministerial_decrees only. |
| in_force_as_of | string | — | Version in force on this date (YYYY-MM-DD) — veterinary, court_rules, trade_exam_rules, health_structure_plans, ministerial_decrees (the consolidated-ish collections). |
| issuer | string | — | Issuing body — social_insurance (Urheber, e.g. ÖGK/SVS/BVAEB/AUVA/PVA), ministerial_decrees (Bundesministerium — abbreviation expanded), council_minutes (Einbringer ministry). Values: ris_list_refere… |
| legislature | string | — | Legislative period (Gesetzgebungsperiode, e.g. "XXVII") — council_minutes only. |
| norm | string | — | Cited-provision filter (Norm) — "DSG §1", "DSGVO Art32" style. veterinary and ministerial_decrees only ("decrees citing the DSG"). |
| number | string | — | Serial number (Avsvnummer / Avnnummer / Spgnummer) — social_insurance, veterinary, health_structure_plans. |
| page | integer | — | 1-based result page. Default 1. |
| page_size | — | — | Documents per page — RIS accepts 10, 20, 50, or 100. Default 20. |
| plan_state | string | — | health_structure_plans only. Restrict to one Bundesland’s regional health-structure plan (RSG) — setting it switches the search from the federal ÖSG to that state’s RSG. |
| plan_type | string | — | health_structure_plans only. Plan kind — all (default), expert_opinion (Gutachten), or regulation (Verordnungen). Searches the federal ÖSG unless plan_state is set. |
| published_from | string | — | Earliest publication/session date (YYYY-MM-DD). All collections except ministerial_decrees (decrees date by force — use in_force_as_of / entered_force_from/to). |
| published_to | string | — | Latest publication/session date (YYYY-MM-DD). |
| query | string | — | Full-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only. Valid for all collections. |
| session_number | string | — | Council session number (Sitzungsnummer) — council_minutes only. |
| sort_by | string | — | Sort column: published or number, where the collection has the column. Default: upstream order. |
| sort_direction | string | — | Sort direction; applies with sort_by. |
| title | string | — | Title search (Titel) — phrase field. Valid for all collections except council_minutes. |
| type | string | — | Document type (Typ) — trade_exam_rules (Befaehigungspruefungsordnung | Meisterpruefungsordnung), court_rules (Geschaeftsordnung | Geschaeftsverteilung), veterinary (Kundmachungen | Veroeffentlichunge… |
| Name | Type | Req | Description |
|---|---|---|---|
| notice | string | — | Zero-hit guidance — names the likely cause and the concrete next call. |
| page | number | yes | 1-based page number RIS served. |
| pageSize | number | yes | Page size RIS applied. |
| results | array | yes | Matching documents for the requested page. Totals and paging in enrichment. |
| totalCount | number | yes | Total matching documents across all pages. |
| truncated | boolean | — | Present and true when more pages exist beyond this one — raise page to continue. |
No examples provided.
ris_search_case_law Search Austrian Case Law ~1,367
Search Austrian case law (Judikatur) in ONE court or tribunal per call — court is required: vfgh (Constitutional Court), vwgh (Supreme Administrative Court), justiz (ordinary courts incl. OGH, selected decisions), bvwg (federal administrative), lvwg (state administrative), dsk (data protection authority), normenliste (VwGH norm index), dok, pvak, gbk, verg, upts (party transparency), and the historical uvs, asylgh, ubas, umse, bks. Cross-court research is one call per court (calls are cheap); historical bodies are closed windows with successors — codes, windows, and Geschäftszahl examples: ris_list_reference topic courts. Filter by full-text query, cited norm ("DSG §1", "DSGVO Art32" — the highest-value filter), exact case_number (Geschäftszahl), decision date range, decision_type (headnote vs full text), decision_kind, or the court-conditional filters: issuing_body (dsk/dok/pvak/verg), court_name/legal_area/subject_area (justiz), state (lvwg/uvs), party (upts), commission/senate/discrimination_ground (gbk), subject_law (bks), collection_number (vfgh/vwgh/uvs). For a known Geschäftszahl or VfSlg/VwSlg cite, ris_lookup_citation resolves it directly.
| Name | Type | Req | Description |
|---|---|---|---|
| case_number | string | — | Exact Geschäftszahl — returns that decision’s documents. Formats differ per court (examples: ris_list_reference topic courts). Not available for normenliste. |
| changed_since | string | — | Coarse recency filter — decisions changed in RIS within the interval. For exact windows use ris_track_changes. |
| collection_number | string | — | Official collection number (Sammlungsnummer). vfgh, vwgh, and uvs only, and the accepted form differs: vfgh and uvs store the bare number and match it dotted or undotted ("19632", "19.632"), while vw… |
| commission | string | — | Equal-treatment commission (gbk only): federal (Bundes-Gleichbehandlungskommission) or general (Gleichbehandlungskommission). |
| court | string | yes | Which court/tribunal application to search — one per call. Codes, coverage windows, and successor mapping: ris_list_reference topic courts. |
| court_name | string | — | Filter within the ordinary courts (justiz only) — "OGH", "OLG Wien", "LG Linz". |
| decided_from | string | — | Earliest decision date (YYYY-MM-DD). Not available for normenliste. |
| decided_to | string | — | Latest decision date (YYYY-MM-DD). |
| decision_kind | string | — | Decision kind (Entscheidungsart) — per-court value sets, validated locally: ris_list_reference topic decision_kinds. No such parameter exists for normenliste, dok, pvak, umse, bks, or upts. For justi… |
| decision_type | string | — | Search headnotes (Rechtssätze), full decision texts (Entscheidungstexte), or both (all, the default). Not available for gbk, upts, or normenliste. |
| discrimination_ground | string | — | Discrimination ground (gbk only): Alter (age), EthnischeZugehoerigkeit (ethnic origin), Geschlecht (gender/sex), Mehrfachdiskriminierung (multiple grounds), Religion (religion), SexuelleOrientierung… |
| issuing_body | string | — | Deciding body (EntscheidendeBehoerde) — dsk, dok, pvak, and verg only. dsk: Datenschutzbehoerde (2014+) or Datenschutzkommission (up to 2013). Full value lists: ris_list_reference topic issuing_bodie… |
| legal_area | string | — | Legal area (Rechtsgebiet, justiz only): civil (Zivilrecht) or criminal (Strafrecht). |
| norm | string | — | Cited-provision filter (Norm) — "DSG §1", "DSGVO Art32", "GewO 1994 §129", matching the format returned in norms_cited. The highest-value case-law filter. |
| page | integer | — | 1-based result page. Default 1. |
| page_size | — | — | Documents per page — RIS accepts 10, 20, 50, or 100. Default 20. |
| party | string | — | Political party the decision concerns (upts only). Documented values: ÖVP, SPÖ, FPÖ, KPÖ, BZÖ, Team Stronach — the filter is full-text, and further party names appear in live data (e.g. "Wandel"). |
| query | string | — | Full-text search over decisions (Suchworte). Boolean UND/ODER/NICHT or AND/OR/NOT, quoted phrases, trailing-only * wildcard. |
| senate | string | — | Commission senate (gbk only). |
| sort_by | string | — | Sort column. Default: upstream order. Not available for court: normenliste, which indexes laws rather than decisions. |
| sort_direction | string | — | Sort direction; applies with sort_by. |
| state | string | — | Which of the nine state administrative courts/senates to search (lvwg and uvs only). |
| subject_area | string | — | Subject-area taxonomy filter (Fachgebiet, justiz only) — 39 exact German values like "Datenschutzrecht", validated locally: ris_list_reference topic justiz_subject_areas. The corpus carries no tagged… |
| subject_law | string | — | Media statute the case concerns (Bereich, bks only) — e.g. "ORF-Gesetz", "Privatradiogesetz". |
| Name | Type | Req | Description |
|---|---|---|---|
| notice | string | — | Zero-hit guidance — names the likely cause and the concrete next call. |
| page | number | yes | 1-based page number RIS served. |
| pageSize | number | yes | Page size RIS applied. |
| results | array | yes | Matching documents for the requested page — decisions, or indexed laws under court normenliste. Totals and paging in enrichment. |
| totalCount | number | yes | Total matching documents across all pages. |
| truncated | boolean | — | Present and true when more pages exist beyond this one — raise page to continue. |
No examples provided.
ris_search_drafts Search Draft Legislation ~645
Search Austria’s federal lawmaking pipeline BEFORE promulgation — the monitoring counterpart to ris_search_gazette (what will become law). stage selects the phase: review_drafts (Begutachtungsentwürfe — draft laws a ministry has put into public review, before any government bill exists) or government_bills (Regierungsvorlagen — bills the council of ministers adopted and submitted to parliament, 2004+). Filter by query (full text), title, ministry (accepts an abbreviation like "BMF" — expanded to RIS’s exact designation; the historical name at submission time counts), in_review_on (review_drafts only — drafts whose review window covers the date; today = "what is in Begutachtung right now"), or decided_from/to (government_bills only — council adoption date). changed_since gives coarse recency. Each record carries materials — the companion documents filed with the draft (Erläuterungen, Textgegenüberstellung, Vorblatt/WFA, covering letter, annexes); the Erläuterungen carry the drafting reasoning the bill text omits, and passing a materials[].url to ris_get_document as document_url is the only way to read one (format there picks the rendition returned). Documents are preparatory, not binding law. Ministry codes: ris_list_reference topic ministries.
| Name | Type | Req | Description |
|---|---|---|---|
| changed_since | string | — | Coarse recency filter — documents changed in RIS within the interval. For exact windows use ris_track_changes. |
| decided_from | string | — | government_bills only. Earliest council-of-ministers adoption date (YYYY-MM-DD). |
| decided_to | string | — | government_bills only. Latest adoption date (YYYY-MM-DD). |
| in_review_on | string | — | review_drafts only. Drafts whose public-review window covers this date (YYYY-MM-DD). Today = drafts currently in Begutachtung. |
| ministry | string | — | Submitting ministry (EinbringendeStelle). Accepts an abbreviation ("BMF") — expanded to RIS’s exact-match designation; use the ministry’s name at the time of submission. Table: ris_list_reference top… |
| page | integer | — | 1-based result page. Default 1. |
| page_size | — | — | Documents per page — RIS accepts 10, 20, 50, or 100. Default 20. |
| query | string | — | Full-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only. |
| sort_by | string | — | Sort column: date (review deadline or adoption date per stage), ministry, or title. Default: upstream order. |
| sort_direction | string | — | Sort direction; applies with sort_by. |
| stage | string | yes | Which pipeline stage to search — one per call. review_drafts (Begut, ministerial review) or government_bills (RegV, council-adopted bills). Details: ris_list_reference topic stages. |
| title | string | — | Title search (Titel) — phrase field: * allowed leading or trailing with ≥2 characters beside it. |
| Name | Type | Req | Description |
|---|---|---|---|
| notice | string | — | Zero-hit guidance — names the likely cause and the concrete next call. |
| page | number | yes | 1-based page number RIS served. |
| pageSize | number | yes | Page size RIS applied. |
| results | array | yes | Matching pipeline documents for the requested page. Totals and paging in enrichment. |
| totalCount | number | yes | Total matching documents across all pages. |
| truncated | boolean | — | Present and true when more pages exist beyond this one — raise page to continue. |
No examples provided.
ris_search_gazette Search Austrian Gazettes ~1,222
Browse Austria’s promulgation record — the authentic, legally binding gazettes — at every level of government. scope picks the jurisdiction: federal (default; the Bundesgesetzblatt across three era tiers auto-routed by year — BgblAuth 2004+ authentic, BgblPdf 1945–2003, BgblAlt 1848–1940 metadata-only ÖNB scans; one call serves one tier, so a published_from/published_to interval crossing 2004-01-01 or 1945-01-01 is rejected with the boundaries to split at, and RIS carries no federal gazette for 1941–1944), one Bundesland (its Landesgesetzblatt), district (Bezirke promulgations), or municipal (Gemeinde promulgations). For a state scope, series selects law gazettes (law_gazette, the default → LGBl) vs ordinance gazettes (ordinance_gazette → Verordnungsblätter, currently Tirol only), and state_era picks which era of that series to search: current (the default → the authentic LGBl) or legacy (the state’s earlier non-authentic series — Niederösterreich’s systematic LgblNO, or the older Lgbl elsewhere; Wien carries neither, and ordinance gazettes have no legacy series). Filter by query (full text), title, number ("171/2026" — a pre-2004 number auto-routes to the right era tier), part (federal I/II/III or pre_1997), type (laws/regulations/announcements/other), published_from/to, issuer (federal or ordinance gazettes only), district_authority (district only), or municipality (municipal only). Every result carries a binding label (authentic vs historical_record vs consolidated_informational) and the amtssigniert authentic PDF wherever it exists — the binding artifact, never a paraphrase. For one known gazette number, ris_lookup_citation resolves it directly. Coverage windows, era tiers, and part semantics: ris_list_reference topic applications or gazette_parts.
| Name | Type | Req | Description |
|---|---|---|---|
| district_authority | string | — | District only. Bezirksverwaltungsbehörde name, e.g. "Bezirkshauptmannschaft Liezen" — full list: ris_list_reference topic district_authorities. |
| issuer | string | — | Issuing body — federal (EinbringendeStelle, e.g. "BMF") or ordinance gazettes (Vbl Einbringer: Landeshauptmann/frau, Landesregierung, Amt der Landesregierung, Sonstige Landesbehörden) only. Phrase fi… |
| municipality | string | — | Municipal only. Exact municipality name (Gemeinde), RIS’s spelling. |
| number | string | — | Gazette number, e.g. "171/2026" or "BGBl. II Nr. 171/2026" (federal), "61/2026" (state), a Kundmachungsnummer (district/municipal). A trailing year routes a federal query to the right era tier; a bar… |
| page | integer | — | 1-based result page. Default 1. |
| page_size | — | — | Documents per page — RIS accepts 10, 20, 50, or 100. Default 20. |
| part | string | — | Federal only. part1 (Gesetze) | part2 (Verordnungen) | part3 (Staatsverträge) — parts exist from 1997; pre_1997 searches the older partless BGBl (routes to the 1945–2003 tier). Semantics: ris_list_re… |
| published_from | string | — | Earliest promulgation date (YYYY-MM-DD). A pre-2004 range routes a federal query to an earlier era tier. Federal: the interval must stay inside one tier — set published_to as well, since a one-sided… |
| published_to | string | — | Latest promulgation date (YYYY-MM-DD). Federal: the interval must stay inside one era tier, so pair it with published_from — an interval crossing 2004-01-01 or 1945-01-01 is rejected with the boundar… |
| query | string | — | Full-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only. Syntax: ris_list_reference topic search_syntax. |
| scope | string | — | Jurisdiction level: federal (default — the Bundesgesetzblatt, era tier auto-routed), a Bundesland (burgenland … wien, its Landesgesetzblatt), district (Bezirke promulgations), or municipal (Gemeinde… |
| series | string | — | State scopes only. law_gazette (default when omitted) searches the authentic Landesgesetzblatt; ordinance_gazette searches the Verordnungsblätter (Vbl — currently Tirol only, 2022+). |
| sort_by | string | — | Sort column: published (Kundmachungsdatum) or number. Availability varies by tier; default: upstream order. |
| sort_direction | string | — | Sort direction; applies with sort_by. |
| state_era | string | — | State scopes only. current (default when omitted) searches the authentic Landesgesetzblatt; legacy searches the state’s earlier non-authentic series — Niederösterreich’s systematic LgblNO collection,… |
| title | string | — | Title search (Titel) — phrase field: * allowed leading or trailing with ≥2 characters beside it. |
| type | string | — | Document-type filter (Typ) for federal and state law gazettes: laws (Gesetze) | regulations (Verordnungen) | announcements (Kundmachungen) | other (Sonstiges). |
| Name | Type | Req | Description |
|---|---|---|---|
| notice | string | — | Zero-hit guidance — names the likely cause and the concrete next call. |
| page | number | yes | 1-based page number RIS served. |
| pageSize | number | yes | Page size RIS applied. |
| results | array | yes | Matching gazette entries for the requested page. Totals, paging, and the served application in enrichment. |
| servedApplication | string | yes | The RIS application that served the query — for federal, the single era tier auto-routed from the number’s year or the publication-date interval (BgblAuth 2004+, BgblPdf 1945–2003, BgblAlt 1848–1940)… |
| totalCount | number | yes | Total matching entries across all pages. |
| truncated | boolean | — | Present and true when more pages exist beyond this one — raise page to continue. |
No examples provided.
ris_search_legislation Search Austrian Legislation ~992
Search Austrian consolidated law and English translations: federal law (scope: federal, the default), one Bundesland (scope: burgenland … wien), municipal law (municipality plus a state scope — selected norms in 6 Bundesländer), or English translations of selected federal laws (language: english, federal only, ~138 documents). One document is one § / Artikel / Anlage; fetch a whole law by filtering law_id. Searches apply the version in force today in Austria by default — set in_force_as_of for another date, include_all_versions: true for full version history, or an entered_force / left_force window for new-law and repeal tracking; the three version filters are mutually exclusive, and the applied date is echoed back in the result. query is full text (boolean UND/ODER/NICHT or AND/OR/NOT, trailing-only * wildcard); title matches title, short title, and abbreviation ("DSG"). For a specific citation like "§ 6 DSG", ris_lookup_citation resolves it deterministically instead. Consolidated text is informational, not legally binding — the authentic gazette artifact lives in ris_search_gazette.
| Name | Type | Req | Description |
|---|---|---|---|
| changed_since | string | — | Coarse recency filter — documents changed in RIS within the interval. For exact windows and deletions use ris_track_changes. |
| entered_force_from | string | — | Provisions that entered force on/after this date (YYYY-MM-DD) — new-law tracking. Federal/state consolidated law only; mutually exclusive with in_force_as_of and include_all_versions. |
| entered_force_to | string | — | Provisions that entered force on/before this date (YYYY-MM-DD). |
| in_force_as_of | string | — | Return only the version in force on this date (YYYY-MM-DD). DEFAULTS TO TODAY in Austria — omitting it never searches all historical versions; opt into that with include_all_versions. |
| include_all_versions | boolean | — | true searches every historical version (no in-force date filter) — version-history research. Overrides in_force_as_of; mutually exclusive with the force-window filters. |
| index | string | — | Systematik classification filter (e.g. "10/10 Datenschutz"). Federal/state consolidated law only. |
| language | string | — | german (default) searches the authoritative German corpus; english searches the ~138 unofficial English translations of selected federal laws (requires scope: federal; combines only with query and ti… |
| law_id | string | — | Law-level grouping key (Gesetzesnummer, e.g. 10001597 = DSG) — exact match; returns every section of that law. Federal/state consolidated law only. |
| left_force_from | string | — | Provisions that left force on/after this date (YYYY-MM-DD) — repeal tracking. Same exclusivity as entered_force_from. |
| left_force_to | string | — | Provisions that left force on/before this date (YYYY-MM-DD). |
| municipality | string | — | Municipality name for municipal law (e.g. "Graz" — RIS’s spelling, not "Stadt Graz"). Requires a state scope; combines only with query, title, and in_force_as_of. Coverage is selected norms in 6 Bund… |
| page | integer | — | 1-based result page. Default 1. |
| page_size | — | — | Documents per page — RIS accepts 10, 20, 50, or 100. Default 20. |
| query | string | — | Full-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only ("Datenschutz*", never "*schutz"). Syntax: ris_list_reference to… |
| scope | string | — | Jurisdiction: federal (default) searches consolidated federal law; a Bundesland searches that state’s consolidated law (or, with municipality set, its municipal law). |
| section_from | string | — | Start of a § / Artikel / Anlage number range, digits with optional letter ("6", "1a"). Federal/state consolidated law only. |
| section_to | string | — | End of the section range. Equal to section_from for a single section. |
| section_type | string | — | Which section kind the range addresses. Defaults to Paragraph when a section range is set. Values: ris_list_reference topic section_types. |
| sort_by | string | — | Sort column: section (§/Artikel/Anlage label) or in_force_date. Default: upstream order. Federal/state consolidated law only. |
| sort_direction | string | — | Sort direction; applies with sort_by. |
| title | string | — | Title search (Titel) — matches title, short title, and official abbreviation ("ABGB", "DSG"). Phrase field: * allowed leading or trailing with ≥2 characters beside it. |
| Name | Type | Req | Description |
|---|---|---|---|
| appliedInForceAsOf | string | — | The in-force date the server actually applied (defaulted to today in Austria when omitted). Absent when include_all_versions, a force-window, or language: english searched without a date filter. |
| notice | string | — | Zero-hit guidance — names the likely cause and the concrete next call. |
| page | number | yes | 1-based page number RIS served. |
| pageSize | number | yes | Page size RIS applied. |
| results | array | yes | Matching documents for the requested page. Totals and paging in enrichment. |
| totalCount | number | yes | Total matching documents across all pages. |
| truncated | boolean | — | Present and true when more pages exist beyond this one — raise page to continue. |
No examples provided.
ris_track_changes Track RIS Changes ~374
Track every document added or changed in one RIS application within an exact date window (changed_from/changed_to), optionally including deletions (include_deleted) — the delta-sync and monitoring primitive for mirrors and watchers, and the only surface that reports removals. Unlike the search tools’ coarse, additive-only changed_since intervals, this is exact-dated and deletion-aware. application takes any RIS application code (e.g. BrKons, Dsk, BgblAuth); the four applications with a different History-feed name are mapped automatically. Each changed document comes back in a compact cross-class record — document_number (for ris_get_document), title, dates, binding_status, and rendition URLs — plus its last-changed date; removed documents come back as deleted records with a deletion timestamp. One application per call; page explicitly for large windows. Application codes and coverage: ris_list_reference topic applications.
| Name | Type | Req | Description |
|---|---|---|---|
| application | string | yes | RIS application whose change feed to read (standard code, e.g. BrKons, LrKons, Dsk, BgblAuth). History’s four aliased names are mapped internally. Codes: ris_list_reference topic applications. |
| changed_from | string | — | Include documents changed on/after this date (YYYY-MM-DD, AenderungenVon). Exact date, not a coarse interval. |
| changed_to | string | — | Include documents changed on/before this date (YYYY-MM-DD, AenderungenBis). |
| include_deleted | boolean | — | true also returns documents removed from RIS in the window, as deleted records — the only way to observe deletions. |
| page | integer | — | 1-based result page. Default 1. |
| page_size | — | — | Documents per page — RIS accepts 10, 20, 50, or 100. Default 20. |
| Name | Type | Req | Description |
|---|---|---|---|
| application | string | yes | The application whose change feed was read. |
| changedFrom | string | — | The changed_from bound the server applied (echo), when set. |
| changedTo | string | — | The changed_to bound the server applied (echo), when set. |
| notice | string | — | Zero-hit guidance — names the likely cause and the concrete next call. |
| page | number | yes | 1-based page number RIS served. |
| pageSize | number | yes | Page size RIS applied. |
| results | array | yes | Change-feed entries for the requested page. Totals, paging, and the applied window in enrichment. |
| totalCount | number | yes | Total change-feed entries across all pages. |
| truncated | boolean | — | Present and true when more pages exist beyond this one — raise page to continue. |
No examples provided.