Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

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).

+5 this week 65 Trust /100
Trust breakdown (6 categories)

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
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
Install

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

# add to Claude Code
claude mcp add --transport http cyanheads-ris-austria-mcp-server https://ris-austria.caseyjhand.com/mcp
# ~/.codex/config.toml
[mcp_servers.cyanheads-ris-austria-mcp-server]
url = "https://ris-austria.caseyjhand.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cyanheads-ris-austria-mcp-server": {
      "type": "remote",
      "url": "https://ris-austria.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add cyanheads-ris-austria-mcp-server --url https://ris-austria.caseyjhand.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  cyanheads-ris-austria-mcp-server:
    url: "https://ris-austria.caseyjhand.com/mcp"
// mcp.json
{
  "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.

Changelog

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.

Diagnostics

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
MCP tools — 9 exposed · ~7,674 tokens

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.

Tool Tokens
ris_get_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…

NameTypeReqDescription
applicationstringRIS 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_numberstringTechnical 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_urlstringA 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…
formatstringmarkdown (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).
sectionsarrayEntry 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…
NameTypeReqDescription
applicationstringyesRIS application the document belongs to (echoed).
authentic_pdf_urlstringThe amtssigniert authentic PDF (.pdfsig, Authentisch DataType) — the legally binding artifact — where the application publishes one.
binding_statusstringyesLegal binding status: authentic (amtssigniert, legally binding), consolidated_informational (consolidated view — not binding), historical_record (superseded/pre-e-Recht promulgation), decision (court…
byte_sizenumberFull 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_urlsobjectyesConstructed 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_numberstringyesTechnical RIS document number (echoed).
formatstringyesThe format served — echoes the requested format.
kindstringyesfull — 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…
noticestringPresent 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…
sectionsarrayPresent 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…
textstringThe document text in the requested format. Absent for urls_only and when the application carries no text rendition (see the notice).
truncatedbooleanPresent 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 ~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.

NameTypeReqDescription
topicstringyesWhich reference table to return. Pick the topic named in the error recovery hint or zero-hit notice that sent you here.
NameTypeReqDescription
entriesarrayyesReference entries for the topic.
notesarrayyesTopic-level caveats and usage guidance. Empty when none apply.
summarystringyesWhat this topic covers and which tool parameters consume its values.
topicstringyesThe requested topic, echoed back.

No examples provided.

ris_lookup_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.

NameTypeReqDescription
citationstringyesThe 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".
courtstringCourt 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_ofstringFor a norm, resolve the version in force on this date (YYYY-MM-DD). Defaults to today in Austria.
kindstringForce a route, or auto (default) to classify by shape. Set explicitly when the citation shape is ambiguous.
statestringBundesland 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…
NameTypeReqDescription
alternatives_countnumberDocuments 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.
foundbooleanyesTrue when the citation resolved to a single best-matching document.
guidancestringNext-step guidance naming a concrete tool. Present when found is false.
kindstringyesWhat the citation parsed as — "unknown" when it did not classify into any route.
recordobjectThe 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_notestringWhich application and filter resolved the citation. Present when found is true.

No examples provided.

ris_search_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.

NameTypeReqDescription
case_numberstringBusiness reference number (Geschäftszahl) — veterinary and ministerial_decrees only.
changed_sincestringCoarse recency filter — documents changed in RIS within the interval. For exact windows use ris_track_changes.
collectionstringyesWhich 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…
departmentstringMinistry department (Abteilung) — ministerial_decrees only.
entered_force_fromstringProvisions that entered force on/after this date (YYYY-MM-DD) — ministerial_decrees only.
entered_force_tostringProvisions that entered force on/before this date (YYYY-MM-DD) — ministerial_decrees only.
in_force_as_ofstringVersion in force on this date (YYYY-MM-DD) — veterinary, court_rules, trade_exam_rules, health_structure_plans, ministerial_decrees (the consolidated-ish collections).
issuerstringIssuing body — social_insurance (Urheber, e.g. ÖGK/SVS/BVAEB/AUVA/PVA), ministerial_decrees (Bundesministerium — abbreviation expanded), council_minutes (Einbringer ministry). Values: ris_list_refere…
legislaturestringLegislative period (Gesetzgebungsperiode, e.g. "XXVII") — council_minutes only.
normstringCited-provision filter (Norm) — "DSG §1", "DSGVO Art32" style. veterinary and ministerial_decrees only ("decrees citing the DSG").
numberstringSerial number (Avsvnummer / Avnnummer / Spgnummer) — social_insurance, veterinary, health_structure_plans.
pageinteger1-based result page. Default 1.
page_sizeDocuments per page — RIS accepts 10, 20, 50, or 100. Default 20.
plan_statestringhealth_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_typestringhealth_structure_plans only. Plan kind — all (default), expert_opinion (Gutachten), or regulation (Verordnungen). Searches the federal ÖSG unless plan_state is set.
published_fromstringEarliest 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_tostringLatest publication/session date (YYYY-MM-DD).
querystringFull-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only. Valid for all collections.
session_numberstringCouncil session number (Sitzungsnummer) — council_minutes only.
sort_bystringSort column: published or number, where the collection has the column. Default: upstream order.
sort_directionstringSort direction; applies with sort_by.
titlestringTitle search (Titel) — phrase field. Valid for all collections except council_minutes.
typestringDocument type (Typ) — trade_exam_rules (Befaehigungspruefungsordnung | Meisterpruefungsordnung), court_rules (Geschaeftsordnung | Geschaeftsverteilung), veterinary (Kundmachungen | Veroeffentlichunge…
NameTypeReqDescription
noticestringZero-hit guidance — names the likely cause and the concrete next call.
pagenumberyes1-based page number RIS served.
pageSizenumberyesPage size RIS applied.
resultsarrayyesMatching documents for the requested page. Totals and paging in enrichment.
totalCountnumberyesTotal matching documents across all pages.
truncatedbooleanPresent and true when more pages exist beyond this one — raise page to continue.

No examples provided.

ris_search_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.

NameTypeReqDescription
case_numberstringExact Geschäftszahl — returns that decision’s documents. Formats differ per court (examples: ris_list_reference topic courts). Not available for normenliste.
changed_sincestringCoarse recency filter — decisions changed in RIS within the interval. For exact windows use ris_track_changes.
collection_numberstringOfficial 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…
commissionstringEqual-treatment commission (gbk only): federal (Bundes-Gleichbehandlungskommission) or general (Gleichbehandlungskommission).
courtstringyesWhich court/tribunal application to search — one per call. Codes, coverage windows, and successor mapping: ris_list_reference topic courts.
court_namestringFilter within the ordinary courts (justiz only) — "OGH", "OLG Wien", "LG Linz".
decided_fromstringEarliest decision date (YYYY-MM-DD). Not available for normenliste.
decided_tostringLatest decision date (YYYY-MM-DD).
decision_kindstringDecision 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_typestringSearch headnotes (Rechtssätze), full decision texts (Entscheidungstexte), or both (all, the default). Not available for gbk, upts, or normenliste.
discrimination_groundstringDiscrimination ground (gbk only): Alter (age), EthnischeZugehoerigkeit (ethnic origin), Geschlecht (gender/sex), Mehrfachdiskriminierung (multiple grounds), Religion (religion), SexuelleOrientierung…
issuing_bodystringDeciding 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_areastringLegal area (Rechtsgebiet, justiz only): civil (Zivilrecht) or criminal (Strafrecht).
normstringCited-provision filter (Norm) — "DSG §1", "DSGVO Art32", "GewO 1994 §129", matching the format returned in norms_cited. The highest-value case-law filter.
pageinteger1-based result page. Default 1.
page_sizeDocuments per page — RIS accepts 10, 20, 50, or 100. Default 20.
partystringPolitical 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").
querystringFull-text search over decisions (Suchworte). Boolean UND/ODER/NICHT or AND/OR/NOT, quoted phrases, trailing-only * wildcard.
senatestringCommission senate (gbk only).
sort_bystringSort column. Default: upstream order. Not available for court: normenliste, which indexes laws rather than decisions.
sort_directionstringSort direction; applies with sort_by.
statestringWhich of the nine state administrative courts/senates to search (lvwg and uvs only).
subject_areastringSubject-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_lawstringMedia statute the case concerns (Bereich, bks only) — e.g. "ORF-Gesetz", "Privatradiogesetz".
NameTypeReqDescription
noticestringZero-hit guidance — names the likely cause and the concrete next call.
pagenumberyes1-based page number RIS served.
pageSizenumberyesPage size RIS applied.
resultsarrayyesMatching documents for the requested page — decisions, or indexed laws under court normenliste. Totals and paging in enrichment.
totalCountnumberyesTotal matching documents across all pages.
truncatedbooleanPresent and true when more pages exist beyond this one — raise page to continue.

No examples provided.

ris_search_drafts ~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.

NameTypeReqDescription
changed_sincestringCoarse recency filter — documents changed in RIS within the interval. For exact windows use ris_track_changes.
decided_fromstringgovernment_bills only. Earliest council-of-ministers adoption date (YYYY-MM-DD).
decided_tostringgovernment_bills only. Latest adoption date (YYYY-MM-DD).
in_review_onstringreview_drafts only. Drafts whose public-review window covers this date (YYYY-MM-DD). Today = drafts currently in Begutachtung.
ministrystringSubmitting 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…
pageinteger1-based result page. Default 1.
page_sizeDocuments per page — RIS accepts 10, 20, 50, or 100. Default 20.
querystringFull-text search (Suchworte). Boolean operators UND/ODER/NICHT or AND/OR/NOT, parentheses, quoted phrases; wildcard * is trailing-only.
sort_bystringSort column: date (review deadline or adoption date per stage), ministry, or title. Default: upstream order.
sort_directionstringSort direction; applies with sort_by.
stagestringyesWhich 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.
titlestringTitle search (Titel) — phrase field: * allowed leading or trailing with ≥2 characters beside it.
NameTypeReqDescription
noticestringZero-hit guidance — names the likely cause and the concrete next call.
pagenumberyes1-based page number RIS served.
pageSizenumberyesPage size RIS applied.
resultsarrayyesMatching pipeline documents for the requested page. Totals and paging in enrichment.
totalCountnumberyesTotal matching documents across all pages.
truncatedbooleanPresent and true when more pages exist beyond this one — raise page to continue.

No examples provided.

ris_search_gazette ~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.

NameTypeReqDescription
district_authoritystringDistrict only. Bezirksverwaltungsbehörde name, e.g. "Bezirkshauptmannschaft Liezen" — full list: ris_list_reference topic district_authorities.
issuerstringIssuing body — federal (EinbringendeStelle, e.g. "BMF") or ordinance gazettes (Vbl Einbringer: Landeshauptmann/frau, Landesregierung, Amt der Landesregierung, Sonstige Landesbehörden) only. Phrase fi…
municipalitystringMunicipal only. Exact municipality name (Gemeinde), RIS’s spelling.
numberstringGazette 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…
pageinteger1-based result page. Default 1.
page_sizeDocuments per page — RIS accepts 10, 20, 50, or 100. Default 20.
partstringFederal 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_fromstringEarliest 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_tostringLatest 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…
querystringFull-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.
scopestringJurisdiction level: federal (default — the Bundesgesetzblatt, era tier auto-routed), a Bundesland (burgenland … wien, its Landesgesetzblatt), district (Bezirke promulgations), or municipal (Gemeinde…
seriesstringState scopes only. law_gazette (default when omitted) searches the authentic Landesgesetzblatt; ordinance_gazette searches the Verordnungsblätter (Vbl — currently Tirol only, 2022+).
sort_bystringSort column: published (Kundmachungsdatum) or number. Availability varies by tier; default: upstream order.
sort_directionstringSort direction; applies with sort_by.
state_erastringState 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,…
titlestringTitle search (Titel) — phrase field: * allowed leading or trailing with ≥2 characters beside it.
typestringDocument-type filter (Typ) for federal and state law gazettes: laws (Gesetze) | regulations (Verordnungen) | announcements (Kundmachungen) | other (Sonstiges).
NameTypeReqDescription
noticestringZero-hit guidance — names the likely cause and the concrete next call.
pagenumberyes1-based page number RIS served.
pageSizenumberyesPage size RIS applied.
resultsarrayyesMatching gazette entries for the requested page. Totals, paging, and the served application in enrichment.
servedApplicationstringyesThe 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)…
totalCountnumberyesTotal matching entries across all pages.
truncatedbooleanPresent and true when more pages exist beyond this one — raise page to continue.

No examples provided.

ris_search_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.

NameTypeReqDescription
changed_sincestringCoarse recency filter — documents changed in RIS within the interval. For exact windows and deletions use ris_track_changes.
entered_force_fromstringProvisions 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_tostringProvisions that entered force on/before this date (YYYY-MM-DD).
in_force_as_ofstringReturn 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_versionsbooleantrue searches every historical version (no in-force date filter) — version-history research. Overrides in_force_as_of; mutually exclusive with the force-window filters.
indexstringSystematik classification filter (e.g. "10/10 Datenschutz"). Federal/state consolidated law only.
languagestringgerman (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_idstringLaw-level grouping key (Gesetzesnummer, e.g. 10001597 = DSG) — exact match; returns every section of that law. Federal/state consolidated law only.
left_force_fromstringProvisions that left force on/after this date (YYYY-MM-DD) — repeal tracking. Same exclusivity as entered_force_from.
left_force_tostringProvisions that left force on/before this date (YYYY-MM-DD).
municipalitystringMunicipality 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…
pageinteger1-based result page. Default 1.
page_sizeDocuments per page — RIS accepts 10, 20, 50, or 100. Default 20.
querystringFull-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…
scopestringJurisdiction: federal (default) searches consolidated federal law; a Bundesland searches that state’s consolidated law (or, with municipality set, its municipal law).
section_fromstringStart of a § / Artikel / Anlage number range, digits with optional letter ("6", "1a"). Federal/state consolidated law only.
section_tostringEnd of the section range. Equal to section_from for a single section.
section_typestringWhich section kind the range addresses. Defaults to Paragraph when a section range is set. Values: ris_list_reference topic section_types.
sort_bystringSort column: section (§/Artikel/Anlage label) or in_force_date. Default: upstream order. Federal/state consolidated law only.
sort_directionstringSort direction; applies with sort_by.
titlestringTitle search (Titel) — matches title, short title, and official abbreviation ("ABGB", "DSG"). Phrase field: * allowed leading or trailing with ≥2 characters beside it.
NameTypeReqDescription
appliedInForceAsOfstringThe 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.
noticestringZero-hit guidance — names the likely cause and the concrete next call.
pagenumberyes1-based page number RIS served.
pageSizenumberyesPage size RIS applied.
resultsarrayyesMatching documents for the requested page. Totals and paging in enrichment.
totalCountnumberyesTotal matching documents across all pages.
truncatedbooleanPresent and true when more pages exist beyond this one — raise page to continue.

No examples provided.

ris_track_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.

NameTypeReqDescription
applicationstringyesRIS 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_fromstringInclude documents changed on/after this date (YYYY-MM-DD, AenderungenVon). Exact date, not a coarse interval.
changed_tostringInclude documents changed on/before this date (YYYY-MM-DD, AenderungenBis).
include_deletedbooleantrue also returns documents removed from RIS in the window, as deleted records — the only way to observe deletions.
pageinteger1-based result page. Default 1.
page_sizeDocuments per page — RIS accepts 10, 20, 50, or 100. Default 20.
NameTypeReqDescription
applicationstringyesThe application whose change feed was read.
changedFromstringThe changed_from bound the server applied (echo), when set.
changedTostringThe changed_to bound the server applied (echo), when set.
noticestringZero-hit guidance — names the likely cause and the concrete next call.
pagenumberyes1-based page number RIS served.
pageSizenumberyesPage size RIS applied.
resultsarrayyesChange-feed entries for the requested page. Totals, paging, and the applied window in enrichment.
totalCountnumberyesTotal change-feed entries across all pages.
truncatedbooleanPresent and true when more pages exist beyond this one — raise page to continue.

No examples provided.