{"openapi":"3.1.0","info":{"title":"odat Search API","description":"Read-only API for searching Swiss legislation and retrieving text from a specified version. Collection-specific operations require an explicit collection and language. Successful data responses include one legal notice; HTTP responses use X-Request-ID to identify the request.","version":"3.0.0"},"paths":{"/api/v1/provisions/search":{"get":{"summary":"Search provisions","description":"Search indexed parent provisions, such as articles or sections, and pass a returned reference to POST /api/v1/provisions/resolve to retrieve its text. For offset > 0, send publication_id and result_set_id from the first response as expected_publication_id and expected_result_set_id. A mismatch returns HTTP 409; restart at offset 0 without the old expected_* identifiers.","operationId":"search_api_v1_provisions_search_get","responses":{"200":{"description":"One page of provision results with identifiers for its API publication and ranked result set.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionSearchResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."}},"parameters":[{"name":"query","in":"query","required":true,"schema":{"maxLength":1100,"minLength":1,"title":"Query","type":"string"},"description":"Search text: at most 1,100 characters before normalization and 200 after normalization and trimming. Responses preserve the submitted spelling and punctuation and remove leading and trailing whitespace. Normalized text is used for matching and length validation."},{"name":"collection","in":"query","required":true,"schema":{"$ref":"#/components/schemas/CollectionCode"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"language","in":"query","required":true,"schema":{"$ref":"#/components/schemas/LanguageCode"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"law_status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/LawStatusFilter","default":"in_force"},"description":"Filter by the status of the law as a whole. This does not determine whether a particular version applies on a given date."},{"name":"law","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/LawSelector"},{"type":"null"}],"default":null},"description":"Law number or abbreviation that identifies a single law."},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SelectorText"},{"type":"null"}],"default":null},"description":"Version identifier in the format used by the selected collection."},{"name":"limit","in":"query","required":false,"schema":{"default":5,"maximum":10,"minimum":1,"title":"Limit","type":"integer"},"description":"Maximum number of results to return."},{"name":"offset","in":"query","required":false,"schema":{"default":0,"maximum":199,"minimum":0,"title":"Offset","type":"integer"},"description":"Number of results to skip; use 0 for the first page."},{"name":"expected_publication_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PublicationId"},{"type":"null"}],"default":null},"description":"Copy publication_id from the response whose results you are continuing."},{"name":"expected_result_set_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Sha256"},{"type":"null"}],"default":null},"description":"Copy result_set_id from the first search response to keep later pages within the same ranked results."}]}},"/api/v1/provisions/resolve":{"post":{"summary":"Retrieve provisions","description":"Retrieve text for 1–5 provision selections in input order. Each selector defaults to format=markdown; format=html returns canonical HTML. Mixed formats share the same batch limits. HTML offsets count Unicode code points, including markup; chunks may split tags or character references. Concatenate all chunks without inserted whitespace, verify the full UTF-8 SHA-256 and length, then parse or render once. Continue with the exact reference, format=html, next_offset and expected_content_sha256. HTML availability is independent of Markdown. Each selection must follow the request schema. HTTP 200 may contain errors for some or all items; inspect each outcome. Invalid requests and failures affecting the entire operation return a non-200 status.","operationId":"resolve_api_v1_provisions_resolve_post","responses":{"200":{"description":"One result or error per input item, in input order, with one legal notice for the response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResolveResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResolveRequest"}}}}}},"/api/v1/search":{"get":{"summary":"Search laws","description":"Search indexed laws using lexical evidence and exact identities.","operationId":"search_api_v1_search_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":1100,"default":"","title":"Query"},"description":"Search text: at most 1,100 characters before normalization and 200 after normalization and trimming. Responses preserve the submitted spelling and punctuation and remove leading and trailing whitespace. Normalized text is used for matching and length validation."},{"name":"collection","in":"query","required":true,"schema":{"enum":["zh","ch"],"type":"string","title":"Collection"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"language","in":"query","required":true,"schema":{"enum":["de","fr","it","en"],"type":"string","title":"Language"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"law_status","in":"query","required":false,"schema":{"enum":["in_force","repealed","not_yet_in_force","unknown","all"],"type":"string","default":"in_force","title":"Law Status"},"description":"Filter by the status of the law as a whole. This does not determine whether a particular version applies on a given date."},{"name":"document_class","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/SelectorText"},"maxItems":25},{"type":"null"}],"uniqueItems":true,"title":"Document Class"},"description":"Repeat this parameter for each document-class filter; duplicate values are rejected."},{"name":"category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/CategoryId"},"maxItems":25},{"type":"null"}],"uniqueItems":true,"title":"Category Id"},"description":"Repeat this parameter for each category identifier; duplicate values are rejected."},{"name":"is_international","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is International"},"description":"Use true or false."},{"name":"law","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/LawSelector"},{"type":"null"}],"title":"Law"},"description":"Law number or abbreviation that identifies a single law."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"},"description":"Maximum number of results to return."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":199,"minimum":0,"default":0,"title":"Offset"},"description":"Number of results to skip; use 0 for the first page."},{"name":"explicit_operator","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Explicit Operator"},"description":"Whether the client explicitly supplied AND/OR operators in the query."},{"name":"expected_publication_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PublicationId"},{"type":"null"}],"title":"Expected Publication Id"},"description":"Copy publication_id from the response whose results you are continuing."},{"name":"expected_result_set_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^[0-9a-fA-F]{64}$"},{"type":"null"}],"title":"Expected Result Set Id"},"description":"Copy result_set_id from the first search response to keep later pages within the same ranked results."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."}}}},"/api/v1/facets":{"get":{"summary":"Get filter counts","description":"Return matching-law counts for each filter value. Counts in each filter group ignore the current selection in that group and apply the other filters.","operationId":"facets_api_v1_facets_get","parameters":[{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":1100,"default":"","title":"Query"},"description":"Search text: at most 1,100 characters before normalization and 200 after normalization and trimming. Responses preserve the submitted spelling and punctuation and remove leading and trailing whitespace. Normalized text is used for matching and length validation."},{"name":"collection","in":"query","required":true,"schema":{"enum":["zh","ch"],"type":"string","title":"Collection"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"language","in":"query","required":true,"schema":{"enum":["de","fr","it","en"],"type":"string","title":"Language"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"law_status","in":"query","required":false,"schema":{"enum":["in_force","repealed","not_yet_in_force","unknown","all"],"type":"string","default":"in_force","title":"Law Status"},"description":"Filter by the status of the law as a whole. This does not determine whether a particular version applies on a given date."},{"name":"document_class","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/SelectorText"},"maxItems":25},{"type":"null"}],"uniqueItems":true,"title":"Document Class"},"description":"Repeat this parameter for each document-class filter; duplicate values are rejected."},{"name":"category_id","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/CategoryId"},"maxItems":25},{"type":"null"}],"uniqueItems":true,"title":"Category Id"},"description":"Repeat this parameter for each category identifier; duplicate values are rejected."},{"name":"is_international","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is International"},"description":"Use true or false."},{"name":"law","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/LawSelector"},{"type":"null"}],"title":"Law"},"description":"Law number or abbreviation that identifies a single law."},{"name":"explicit_operator","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Explicit Operator"},"description":"Whether the client explicitly supplied AND/OR operators in the query."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FacetResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."}}}},"/api/v1/laws/{collection}/{law}/search":{"get":{"summary":"Search within a law","description":"Return matching parent provisions from the selected indexed version of a law.","operationId":"search_law_api_v1_laws__collection___law__search_get","parameters":[{"name":"collection","in":"path","required":true,"schema":{"enum":["zh","ch"],"type":"string","title":"Collection"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"law","in":"path","required":true,"schema":{"$ref":"#/components/schemas/SelectorText"},"description":"Law number or abbreviation that identifies a single law."},{"name":"language","in":"query","required":true,"schema":{"enum":["de","fr","it","en"],"type":"string","title":"Language"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"version","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Version"},"description":"Version identifier in the format used by the selected collection."},{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":1100,"default":"","title":"Query"},"description":"Search text: at most 1,100 characters before normalization and 200 after normalization and trimming. Responses preserve the submitted spelling and punctuation and remove leading and trailing whitespace. Normalized text is used for matching and length validation."},{"name":"include_highlights","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Highlights"}},{"name":"explicit_operator","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Explicit Operator"},"description":"Whether the client explicitly supplied AND/OR operators in the query."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LawSearchResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."}}}},"/api/v1/laws":{"get":{"summary":"List laws","description":"List indexed law versions from one API publication, optionally filtered by law status.","operationId":"list_laws_api_v1_laws_get","parameters":[{"name":"collection","in":"query","required":true,"schema":{"enum":["zh","ch"],"type":"string","title":"Collection"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"language","in":"query","required":true,"schema":{"enum":["de","fr","it","en"],"type":"string","title":"Language"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"category_level_1_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/CategoryId"},{"type":"null"}],"title":"Category Level 1 Id"}},{"name":"category_level_2_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/CategoryId"},{"type":"null"}],"title":"Category Level 2 Id"}},{"name":"category_level_3_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/CategoryId"},{"type":"null"}],"title":"Category Level 3 Id"}},{"name":"law_status","in":"query","required":false,"schema":{"enum":["in_force","repealed","not_yet_in_force","unknown","all"],"type":"string","default":"all","title":"Law Status"},"description":"Filter by the status of the law as a whole. This does not determine whether a particular version applies on a given date."},{"name":"abbreviation_prefix","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":32},{"type":"null"}],"title":"Abbreviation Prefix"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":999999,"minimum":0,"default":0,"title":"Offset"},"description":"Number of results to skip; use 0 for the first page."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"},"description":"Maximum number of results to return."},{"name":"expected_publication_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PublicationId"},{"type":"null"}],"title":"Expected Publication Id"},"description":"Copy publication_id from the response whose results you are continuing."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LawList"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."}}}},"/api/v1/laws/{collection}/{law}":{"get":{"summary":"Select one law edition","description":"Return metadata for the selected law version. Include the table of contents (TOC) and version list only when requested; each is paged separately. Later pages require expected_publication_id. Later TOC pages also require the resolved version and expected_toc_sha256 from the first page.","operationId":"get_law_api_v1_laws__collection___law__get","parameters":[{"name":"collection","in":"path","required":true,"schema":{"enum":["zh","ch"],"type":"string","title":"Collection"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"law","in":"path","required":true,"schema":{"$ref":"#/components/schemas/SelectorText"},"description":"Law number or abbreviation that identifies a single law."},{"name":"language","in":"query","required":true,"schema":{"$ref":"#/components/schemas/LanguageCode"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SelectorText"},{"type":"null"}],"default":null},"description":"Version identifier in the format used by the selected collection."},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ExactDate"},{"type":"null"}],"default":null},"description":"Select a version by its applicability on a date in YYYY-MM-DD format. Do not combine as_of with version."},{"name":"include_toc","in":"query","required":false,"schema":{"default":false,"title":"Include Toc","type":"boolean"},"description":"Whether to include the table of contents."},{"name":"include_versions","in":"query","required":false,"schema":{"default":false,"title":"Include Versions","type":"boolean"},"description":"Whether to include the version list."},{"name":"toc_offset","in":"query","required":false,"schema":{"default":0,"maximum":10000,"minimum":0,"title":"Toc Offset","type":"integer"},"description":"Number of TOC entries to skip."},{"name":"toc_limit","in":"query","required":false,"schema":{"default":50,"maximum":100,"minimum":1,"title":"Toc Limit","type":"integer"},"description":"Maximum number of TOC entries to return."},{"name":"versions_offset","in":"query","required":false,"schema":{"default":0,"maximum":10000,"minimum":0,"title":"Versions Offset","type":"integer"},"description":"Number of versions to skip."},{"name":"versions_limit","in":"query","required":false,"schema":{"default":10,"maximum":50,"minimum":1,"title":"Versions Limit","type":"integer"},"description":"Maximum number of versions to return."},{"name":"expected_publication_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/PublicationId"},{"type":"null"}],"default":null},"description":"Copy publication_id from the response whose results you are continuing."},{"name":"expected_toc_sha256","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/Sha256"},{"type":"null"}],"default":null},"description":"Copy toc_sha256 from the first TOC page for the selected version."},{"name":"If-None-Match","in":"header","required":false,"schema":{"type":"string"},"description":"Send a previously returned ETag to check whether the content has changed."}],"responses":{"200":{"description":"Metadata for the selected version, plus the TOC and version list if requested.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SelectedLawDetail"}}},"headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."},"304":{"description":"The content is unchanged; no response body is returned.","headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}}}}},"/api/v1/categories":{"get":{"summary":"Get categories","description":"Return the category hierarchy for the selected collection and language. Cached responses require revalidation. Send a previously returned ETag in If-None-Match to receive HTTP 304 when the content is unchanged.","operationId":"get_categories_api_v1_categories_get","parameters":[{"name":"collection","in":"query","required":true,"schema":{"enum":["zh","ch"],"type":"string","title":"Collection"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"language","in":"query","required":true,"schema":{"enum":["de","fr","it","en"],"type":"string","title":"Language"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"If-None-Match","in":"header","required":false,"schema":{"type":"string"},"description":"Send a previously returned ETag to check whether the content has changed."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryTree"}}},"headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."},"304":{"description":"The content is unchanged; no response body is returned.","headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}}}}},"/api/v1/abbreviations":{"get":{"summary":"List abbreviations","description":"Return abbreviation-to-law mappings from one API publication.","operationId":"list_abbreviations_api_v1_abbreviations_get","parameters":[{"name":"collection","in":"query","required":true,"schema":{"enum":["zh","ch"],"type":"string","title":"Collection"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"language","in":"query","required":true,"schema":{"enum":["de","fr","it","en"],"type":"string","title":"Language"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"law_status","in":"query","required":false,"schema":{"enum":["in_force","repealed","not_yet_in_force","unknown","all"],"type":"string","default":"all","title":"Law Status"},"description":"Filter by the status of the law as a whole. This does not determine whether a particular version applies on a given date."},{"name":"If-None-Match","in":"header","required":false,"schema":{"type":"string"},"description":"Send a previously returned ETag to check whether the content has changed."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AbbreviationsList"}}},"headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."},"304":{"description":"The content is unchanged; no response body is returned.","headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}}}}},"/api/v1/abbreviations/{abbreviation}":{"get":{"summary":"Look up an abbreviation","description":"Return law summaries for an exact abbreviation match in the catalogue.","operationId":"lookup_abbreviation_api_v1_abbreviations__abbreviation__get","parameters":[{"name":"abbreviation","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Abbreviation"}},{"name":"collection","in":"query","required":true,"schema":{"enum":["zh","ch"],"type":"string","title":"Collection"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"language","in":"query","required":true,"schema":{"enum":["de","fr","it","en"],"type":"string","title":"Language"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"law_status","in":"query","required":false,"schema":{"enum":["in_force","repealed","not_yet_in_force","unknown","all"],"type":"string","default":"all","title":"Law Status"},"description":"Filter by the status of the law as a whole. This does not determine whether a particular version applies on a given date."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AbbreviationLookup"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."}}}},"/api/v1/datasets/laws":{"get":{"summary":"Get the law dataset","description":"Return the bulk law catalogue, including the recorded versions of each law. The response follows the LawCatalogDataset schema. Send a previously returned ETag in If-None-Match to receive HTTP 304 when the dataset is unchanged.","operationId":"get_laws_dataset_api_v1_datasets_laws_get","parameters":[{"name":"collection","in":"query","required":true,"schema":{"enum":["zh","ch"],"type":"string","title":"Collection"},"description":"Required collection: ch (Swiss federal legislation) or zh (Canton of Zurich legislation)."},{"name":"language","in":"query","required":true,"schema":{"enum":["de","fr","it","en"],"type":"string","title":"Language"},"description":"Required language: de (German), fr (French), it (Italian), or en (English). The zh collection supports de only."},{"name":"If-None-Match","in":"header","required":false,"schema":{"type":"string"},"description":"Send a previously returned ETag to check whether the content has changed."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LawCatalogDataset"}}},"headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."},"304":{"description":"The content is unchanged; no response body is returned.","headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}}}}},"/api/v1/meta":{"get":{"summary":"Get API metadata","description":"Return the API version, supported collections and languages, publication metadata and legal notices. Metadata can be returned before a publication is installed. If an installed publication's catalogue cannot be loaded and validated, return an error.","operationId":"get_meta_api_v1_meta_get","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetaInfo"}}},"headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"422":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ErrorResponse"},{"$ref":"#/components/schemas/ValidationErrorResponse"}]}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"504":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"400":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"429":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"500":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"503":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"Retry-After":{"description":"Minimum wait in seconds before retrying. Add jitter and bound retries by a deadline; capacity is not reserved.","schema":{"type":"integer","minimum":1}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"401":{"description":"invalid_credentials: the supplied credentials are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"WWW-Authenticate":{"description":"Authentication challenge for rejected credentials.","schema":{"type":"string"}}}},"404":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"406":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"409":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"413":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"415":{"description":"Error code, explanation, and request identifier. Validation details omit rejected input values; raw exception messages are not returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"headers":{"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}},"499":{"description":"The client disconnected. No response body is sent."},"304":{"description":"The content is unchanged; no response body is returned.","headers":{"ETag":{"description":"Content identifier for use in the If-None-Match request header.","schema":{"type":"string"}},"X-Request-ID":{"description":"Request identifier to include when reporting a problem.","schema":{"type":"string"}},"Cache-Control":{"description":"Caching directives for this response. Respect no-store when present.","schema":{"type":"string"}},"X-RateLimit-Policy":{"description":"Rate-limit policy associated with this response. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Algorithm":{"description":"Rate-limit algorithm. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Unit":{"description":"Unit used by the rate limit: requests or items. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Limit":{"description":"Maximum allowance in the stated units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Remaining":{"description":"Remaining whole units. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Reset":{"description":"Seconds until the full allowance is restored without further calls; not a timestamp or retry delay. Use Retry-After for retry timing. Optional advisory snapshot.","schema":{"type":"string"}},"X-RateLimit-Refill":{"description":"Units replenished per second, when provided. Optional advisory snapshot.","schema":{"type":"string"}}}}},"parameters":[{"name":"If-None-Match","in":"header","required":false,"schema":{"type":"string"},"description":"Send a previously returned ETag to check whether the content has changed."}]}},"/api/health":{"get":{"summary":"Check service health","description":"Check service readiness, optionally including document counts by collection.","operationId":"health_api_health_get","parameters":[{"name":"collection","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationErrorResponse"}}},"description":"Unprocessable Content"},"504":{"description":"The operation exceeded its time limit","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"400":{"description":"Validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Service degraded or database unreachable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthErrorResponse"}}}}}}}},"components":{"schemas":{"AbbreviationListItem":{"properties":{"abbreviation":{"type":"string","title":"Abbreviation"},"title":{"type":"string","title":"Title"},"short_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Title","description":"Recorded short title; null when absent or blank. Never inferred from another title."},"identity":{"$ref":"#/components/schemas/LawIdentity"},"law_status":{"$ref":"#/components/schemas/LawStatus"}},"additionalProperties":false,"type":"object","required":["abbreviation","title","identity","law_status"],"title":"AbbreviationListItem","description":"An abbreviation and the law it identifies."},"AbbreviationLookup":{"properties":{"abbreviation":{"type":"string","title":"Abbreviation"},"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"law_status":{"type":"string","enum":["in_force","repealed","not_yet_in_force","unknown","all"],"title":"Law Status"},"status_assessed_at":{"$ref":"#/components/schemas/IsoDate"},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"matches":{"items":{"$ref":"#/components/schemas/LawSummary"},"type":"array","title":"Matches"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["abbreviation","collection","language","law_status","status_assessed_at","publication_id","matches","legal"],"title":"AbbreviationLookup","description":"Law summaries matching an exact abbreviation."},"AbbreviationsList":{"properties":{"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"status_assessed_at":{"$ref":"#/components/schemas/IsoDate"},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"items":{"items":{"$ref":"#/components/schemas/AbbreviationListItem"},"type":"array","title":"Items"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["collection","language","status_assessed_at","publication_id","items","legal"],"title":"AbbreviationsList","description":"Bulk abbreviation index from one API publication."},"AmbiguityCandidate":{"properties":{"reference":{"anyOf":[{"$ref":"#/components/schemas/ProvisionReference"},{"$ref":"#/components/schemas/LawReference"}],"title":"Reference"},"label":{"$ref":"#/components/schemas/DetailText"},"source_url":{"anyOf":[{"$ref":"#/components/schemas/HttpUrl"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["reference","label"],"title":"AmbiguityCandidate","description":"A possible match with a reference that identifies a specific law or provision."},"AncestryEntry":{"properties":{"level":{"type":"integer","maximum":6.0,"minimum":1.0,"title":"Level"},"number":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Number"},"heading":{"anyOf":[{"$ref":"#/components/schemas/HeadingText"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["level"],"title":"AncestryEntry","description":"A heading from the source hierarchy, ordered from outermost to innermost."},"Anchor":{"type":"string","maxLength":256,"minLength":1},"Applicability":{"properties":{"from":{"anyOf":[{"$ref":"#/components/schemas/IsoDate"},{"type":"null"}]},"to_exclusive":{"anyOf":[{"$ref":"#/components/schemas/IsoDate"},{"type":"null"}]},"basis":{"type":"string","enum":["official","derived","unknown"],"title":"Basis"},"from_is_unbounded":{"type":"boolean","title":"From Is Unbounded","default":false},"to_is_unbounded":{"type":"boolean","title":"To Is Unbounded","default":false},"derivation":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Derivation"},"uncertainty":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Uncertainty"}},"additionalProperties":false,"type":"object","required":["from","to_exclusive","basis"],"title":"Applicability","description":"The period during which a version applies, with unknown boundaries distinguished from explicitly unbounded ones."},"CategoryId":{"type":"string","maxLength":64,"minLength":1,"pattern":"^[0-9.]+$"},"CategoryLevel":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"additionalProperties":false,"type":"object","required":["id","name"],"title":"CategoryLevel","description":"One level in a law's category path."},"CategoryNode":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"children":{"items":{"$ref":"#/components/schemas/CategoryNode"},"type":"array","title":"Children"}},"additionalProperties":false,"type":"object","required":["id","name"],"title":"CategoryNode","description":"One category in the nested hierarchy."},"CategoryRefs":{"properties":{"level_1":{"anyOf":[{"$ref":"#/components/schemas/CategoryLevel"},{"type":"null"}]},"level_2":{"anyOf":[{"$ref":"#/components/schemas/CategoryLevel"},{"type":"null"}]},"level_3":{"anyOf":[{"$ref":"#/components/schemas/CategoryLevel"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"CategoryRefs","description":"A law's category path; unavailable levels are null."},"CategoryTree":{"properties":{"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"status_assessed_at":{"$ref":"#/components/schemas/IsoDate"},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"nodes":{"items":{"$ref":"#/components/schemas/CategoryNode"},"type":"array","title":"Nodes"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["collection","language","status_assessed_at","publication_id","nodes","legal"],"title":"CategoryTree","description":"Category hierarchy from one API publication."},"Citation":{"properties":{"label":{"type":"string","maxLength":1000,"minLength":1,"title":"Label"},"markdown":{"type":"string","maxLength":4096,"minLength":1,"title":"Markdown"}},"additionalProperties":false,"type":"object","required":["label","markdown"],"title":"Citation","description":"A citation label based on the source and a Markdown link to the selected version and, where selected, provision."},"CollectionCode":{"type":"string","enum":["zh","ch"]},"CollectionInfo":{"properties":{"code":{"$ref":"#/components/schemas/CollectionCode"},"languages":{"items":{"$ref":"#/components/schemas/LanguageCode"},"type":"array","title":"Languages"}},"additionalProperties":false,"type":"object","required":["code","languages"],"title":"CollectionInfo","description":"A supported collection and its available language codes."},"DetailText":{"type":"string","maxLength":512,"minLength":1},"ErrorCode":{"type":"string","enum":["invalid_credentials","conflicting_credentials","invalid_json","invalid_param","encoding_not_acceptable","same_in_quotes","same_with_exclusion","same_needs_words","same_phrase_too_long","same_too_many","same_invalid_distance","law_not_found","version_not_found","provision_not_found","text_unavailable","no_applicable_version","ambiguous_law","ambiguous_citation","applicability_unknown","version_not_indexed","content_changed","publication_changed","results_changed","request_too_large","result_too_large","unsupported_media_type","rate_limited","source_unavailable","service_unavailable","service_busy","deadline_exceeded","internal_error"]},"ErrorResponse":{"properties":{"detail":{"type":"string","maxLength":512,"title":"Detail"},"code":{"$ref":"#/components/schemas/ErrorCode"},"request_id":{"type":"string","maxLength":64,"title":"Request Id"},"fields":{"items":{"type":"string","maxLength":256,"minLength":1},"type":"array","maxItems":10,"title":"Fields"},"source_url":{"anyOf":[{"$ref":"#/components/schemas/HttpUrl"},{"type":"null"}]},"candidates":{"items":{"$ref":"#/components/schemas/AmbiguityCandidate"},"type":"array","maxItems":10,"title":"Candidates"},"candidates_truncated":{"type":"boolean","title":"Candidates Truncated","default":false}},"additionalProperties":false,"type":"object","required":["detail","code","request_id"],"title":"ErrorResponse","description":"HTTP error with a code, explanation, and request identifier."},"ExactDate":{"$ref":"#/components/schemas/IsoDate","maxLength":10,"minLength":10},"FacetGroups":{"properties":{"law_status":{"items":{"$ref":"#/components/schemas/FacetValue"},"type":"array","title":"Law Status"},"document_class":{"items":{"$ref":"#/components/schemas/FacetValue"},"type":"array","title":"Document Class"},"category_id":{"items":{"$ref":"#/components/schemas/FacetValue"},"type":"array","title":"Category Id"},"is_international":{"items":{"$ref":"#/components/schemas/InternationalFacetValue"},"type":"array","title":"Is International"}},"additionalProperties":false,"type":"object","title":"FacetGroups","description":"Available filter groups; a group has an empty array when no values match."},"FacetResponse":{"properties":{"query":{"type":"string","title":"Query","description":"Submitted search text with leading and trailing whitespace removed."},"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"law_status":{"$ref":"#/components/schemas/LawStatusFilter"},"document_class":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Document Class"},"category_id":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Category Id"},"is_international":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is International"},"law":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Law"},"status_assessed_at":{"$ref":"#/components/schemas/IsoDate"},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"counts_are_exact":{"type":"boolean","title":"Counts Are Exact"},"candidate_window_exhausted":{"type":"boolean","title":"Candidate Window Exhausted"},"facets":{"$ref":"#/components/schemas/FacetGroups"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["query","collection","language","law_status","status_assessed_at","publication_id","counts_are_exact","candidate_window_exhausted","facets","legal"],"title":"FacetResponse","description":"Filter counts that ignore the selected values in the group being counted while applying the other filters."},"FacetValue":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"value":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Value"},"count":{"type":"integer","minimum":0.0,"title":"Count"}},"additionalProperties":false,"type":"object","required":["value","count"],"title":"FacetValue","description":"A filter value and the number of matching laws."},"HeadingText":{"type":"string","maxLength":1000,"minLength":1},"HealthErrorResponse":{"properties":{"detail":{"type":"string","maxLength":512,"title":"Detail"},"code":{"$ref":"#/components/schemas/ErrorCode"},"request_id":{"type":"string","maxLength":64,"title":"Request Id"},"fields":{"items":{"type":"string","maxLength":256,"minLength":1},"type":"array","maxItems":10,"title":"Fields"},"source_url":{"anyOf":[{"$ref":"#/components/schemas/HttpUrl"},{"type":"null"}]},"candidates":{"items":{"$ref":"#/components/schemas/AmbiguityCandidate"},"type":"array","maxItems":10,"title":"Candidates"},"candidates_truncated":{"type":"boolean","title":"Candidates Truncated","default":false},"status":{"type":"string","title":"Status"},"collection":{"anyOf":[{"$ref":"#/components/schemas/CollectionCode"},{"type":"null"}]},"document_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Document Count"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"additionalProperties":false,"type":"object","required":["detail","code","request_id","status"],"title":"HealthErrorResponse","description":"Health-check failure with a diagnostic and request identifier."},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"collection":{"anyOf":[{"$ref":"#/components/schemas/CollectionCode"},{"type":"null"}]},"document_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Document Count"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"additionalProperties":false,"type":"object","required":["status"],"title":"HealthResponse","description":"Service readiness information without legal metadata."},"HighlightClause":{"properties":{"id":{"type":"integer","exclusiveMaximum":500.0,"minimum":0.0,"title":"Id"},"kind":{"type":"string","enum":["term","phrase","same"],"title":"Kind"},"start":{"type":"integer","maximum":16777216.0,"minimum":0.0,"title":"Start"},"end":{"type":"integer","maximum":16777216.0,"exclusiveMinimum":0.0,"title":"End"}},"type":"object","required":["id","kind","start","end"],"title":"HighlightClause","description":"A query term, phrase, or SAME expression associated with returned highlights; exclusion terms are omitted."},"HighlightEvidence":{"properties":{"projection":{"type":"string","const":"law-text-v1","title":"Projection","default":"law-text-v1"},"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"refno_law":{"type":"string","maxLength":64,"minLength":1,"title":"Refno Law"},"refno_version":{"type":"string","maxLength":64,"minLength":1,"title":"Refno Version"},"publication_id":{"type":"string","format":"uuid","title":"Publication Id"},"generation_id":{"type":"string","format":"uuid","title":"Generation Id"},"source":{"anyOf":[{"$ref":"#/components/schemas/HighlightSource"},{"type":"null"}]},"clauses":{"items":{"$ref":"#/components/schemas/HighlightClause"},"type":"array","maxItems":500,"title":"Clauses"},"availability":{"type":"string","enum":["complete","truncated","unavailable"],"title":"Availability"},"reason":{"anyOf":[{"type":"string","enum":["html_missing","html_too_large","html_invalid","projection_limit","source_mismatch","position_limit","work_limit","range_limit","payload_limit"]},{"type":"null"}],"title":"Reason"},"omitted_ranges":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Omitted Ranges","default":0},"units":{"items":{"$ref":"#/components/schemas/HighlightUnit"},"type":"array","maxItems":2000,"title":"Units"}},"type":"object","required":["collection","language","refno_law","refno_version","publication_id","generation_id","availability"],"title":"HighlightEvidence","description":"Verified highlight positions for the query in a specified law version."},"HighlightLiteral":{"properties":{"text":{"type":"string","maxLength":200,"minLength":1,"title":"Text"},"kind":{"type":"string","enum":["term","phrase"],"title":"Kind"}},"additionalProperties":false,"type":"object","required":["text","kind"],"title":"HighlightLiteral","description":"A literal query term or phrase to highlight on the law page; exclusion terms are omitted."},"HighlightPlan":{"properties":{"literals":{"items":{"$ref":"#/components/schemas/HighlightLiteral"},"type":"array","maxItems":100,"title":"Literals"}},"additionalProperties":false,"type":"object","title":"HighlightPlan","description":"A limited list of literal terms and phrases to highlight."},"HighlightRange":{"properties":{"start":{"type":"integer","maximum":16777216.0,"minimum":0.0,"title":"Start"},"end":{"type":"integer","maximum":16777216.0,"exclusiveMinimum":0.0,"title":"End"},"clauses":{"items":{"type":"integer"},"type":"array","maxItems":500,"minItems":1,"title":"Clauses"}},"type":"object","required":["start","end","clauses"],"title":"HighlightRange","description":"A nonempty text range and the query clauses it matches."},"HighlightSource":{"properties":{"markdown_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Markdown Sha256"},"metadata_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Metadata Sha256"},"html_sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Html Sha256"}},"type":"object","required":["markdown_sha256","metadata_sha256","html_sha256"],"title":"HighlightSource","description":"Hashes identifying the validated Markdown, metadata, and HTML used to compute highlight positions."},"HighlightUnit":{"properties":{"field":{"type":"string","const":"body","title":"Field","default":"body"},"anchor":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Anchor"},"ordinal":{"type":"integer","minimum":0.0,"title":"Ordinal"},"sha256":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Sha256"},"ranges":{"items":{"$ref":"#/components/schemas/HighlightRange"},"type":"array","maxItems":2000,"minItems":1,"title":"Ranges"}},"type":"object","required":["ordinal","sha256","ranges"],"title":"HighlightUnit","description":"A block of extracted law text with a hash and highlight positions."},"HttpUrl":{"type":"string","maxLength":2048,"minLength":1},"InternationalFacetValue":{"properties":{"id":{"type":"null","title":"Id"},"value":{"type":"boolean","title":"Value","description":"true for international law; false for domestic law."},"count":{"type":"integer","minimum":0.0,"title":"Count"}},"additionalProperties":false,"type":"object","required":["value","count"],"title":"InternationalFacetValue","description":"A boolean international-law filter and the number of matching laws."},"IsoDate":{"type":"string"},"LanguageCode":{"type":"string","enum":["de","fr","it","en"]},"LawCatalogDataset":{"properties":{"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"status_assessed_at":{"$ref":"#/components/schemas/IsoDate"},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"entries":{"items":{"$ref":"#/components/schemas/LawCatalogEntry"},"type":"array","title":"Entries"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["collection","language","status_assessed_at","publication_id","entries","legal"],"title":"LawCatalogDataset","description":"Bulk law dataset for one collection and language, from one API publication."},"LawCatalogEntry":{"properties":{"identity":{"$ref":"#/components/schemas/LawIdentity"},"title":{"type":"string","title":"Title"},"short_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Title","description":"Recorded short title; null when absent or blank. Never inferred from another title."},"available_languages":{"items":{"$ref":"#/components/schemas/LanguageCode"},"type":"array","title":"Available Languages","description":"Languages with any edition of this law in the selected publication, in de/fr/it/en order. Does not promise text availability."},"is_international":{"type":"boolean","title":"Is International","description":"True for CH law numbers starting with 0.; always false for ZH.","default":false},"abbreviation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abbreviation"},"document_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Class"},"category":{"$ref":"#/components/schemas/CategoryRefs"},"law_status":{"$ref":"#/components/schemas/LawStatus"},"versions":{"items":{"$ref":"#/components/schemas/LawVersionEntry"},"type":"array","title":"Versions"}},"additionalProperties":false,"type":"object","required":["identity","title","law_status"],"title":"LawCatalogEntry","description":"A law and its recorded versions."},"LawIdentity":{"properties":{"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"refno_law":{"$ref":"#/components/schemas/LawNumber"}},"additionalProperties":false,"type":"object","required":["collection","language","refno_law"],"title":"LawIdentity","description":"A law's collection, language, and law number, without a selected version."},"LawList":{"properties":{"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"law_status":{"type":"string","enum":["in_force","repealed","not_yet_in_force","unknown","all"],"title":"Law Status"},"status_assessed_at":{"$ref":"#/components/schemas/IsoDate"},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"items":{"items":{"$ref":"#/components/schemas/LawSummary"},"type":"array","title":"Items"},"offset":{"type":"integer","minimum":0.0,"title":"Offset"},"limit":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Limit"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"has_more":{"type":"boolean","title":"Has More"},"next_offset":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Next Offset"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["collection","language","law_status","status_assessed_at","publication_id","items","offset","limit","total","has_more","legal"],"title":"LawList","description":"A page of indexed law versions from one API publication."},"LawNumber":{"$ref":"#/components/schemas/SelectorText"},"LawProvisionEvidence":{"properties":{"anchor":{"type":"string","title":"Anchor"},"document_sequence":{"type":"integer","exclusiveMinimum":0.0,"title":"Document Sequence"},"relevance":{"type":"string","enum":["high","medium"],"title":"Relevance"},"reasons":{"items":{"type":"string"},"type":"array","title":"Reasons"}},"additionalProperties":false,"type":"object","required":["anchor","document_sequence","relevance"],"title":"LawProvisionEvidence","description":"The strongest search match for one parent provision."},"LawReference":{"properties":{"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"refno_law":{"$ref":"#/components/schemas/LawNumber"},"refno_version":{"$ref":"#/components/schemas/SelectorText"}},"additionalProperties":false,"type":"object","required":["collection","language","refno_law","refno_version"],"title":"LawReference","description":"A law's collection, language, law number, and version identifier."},"LawSearchResponse":{"properties":{"reference":{"$ref":"#/components/schemas/LawReference"},"query":{"type":"string","title":"Query","description":"Submitted search text with leading and trailing whitespace removed."},"total":{"type":"integer","minimum":0.0,"title":"Total"},"truncated":{"type":"boolean","title":"Truncated"},"highlight_plan":{"$ref":"#/components/schemas/HighlightPlan"},"provisions":{"items":{"$ref":"#/components/schemas/LawProvisionEvidence"},"type":"array","title":"Provisions"},"highlights":{"anyOf":[{"$ref":"#/components/schemas/HighlightEvidence"},{"type":"null"}]},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"index_date":{"$ref":"#/components/schemas/IsoDate"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["reference","query","total","truncated","highlight_plan","provisions","publication_id","index_date","legal"],"title":"LawSearchResponse","description":"Search matches within a specified law version, for showing relevance on the law page."},"LawSelector":{"$ref":"#/components/schemas/SelectorText"},"LawStatus":{"type":"string","enum":["in_force","repealed","not_yet_in_force","unknown"]},"LawStatusFilter":{"type":"string","enum":["in_force","repealed","not_yet_in_force","unknown","all"]},"LawSummary":{"properties":{"reference":{"$ref":"#/components/schemas/LawReference"},"title":{"type":"string","title":"Title"},"abbreviation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abbreviation"},"document_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Class"},"category":{"$ref":"#/components/schemas/CategoryRefs"},"law_status":{"$ref":"#/components/schemas/LawStatus"},"urls":{"$ref":"#/components/schemas/SourceLinks"},"text_available":{"type":"boolean","title":"Text Available"}},"additionalProperties":false,"type":"object","required":["reference","title","law_status","urls","text_available"],"title":"LawSummary","description":"Brief metadata for a specified law version, used in law lists and abbreviation lookup."},"LawVersionEntry":{"properties":{"reference":{"$ref":"#/components/schemas/LawReference"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"short_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Title","description":"Recorded short title; null when absent or blank. Never inferred from another title."},"date_enacted":{"anyOf":[{"$ref":"#/components/schemas/IsoDate","format":"date"},{"type":"null"}],"description":"Recorded enactment/document date (ZH Erlassdatum; CH jolux:dateDocument), not the consolidation start."},"date_in_force":{"anyOf":[{"$ref":"#/components/schemas/IsoDate","format":"date"},{"type":"null"}],"description":"Recorded entry into force of the enactment (ZH Inkraftsetzungsdatum; CH jolux:dateEntryInForce), separate from version applicability."},"available_languages":{"items":{"$ref":"#/components/schemas/LanguageCode"},"type":"array","title":"Available Languages","description":"Languages with this exact law/version in the selected publication, in de/fr/it/en order. Does not promise text availability."},"abbreviation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abbreviation"},"applicability":{"$ref":"#/components/schemas/Applicability"},"urls":{"$ref":"#/components/schemas/SourceLinks"},"text_available":{"type":"boolean","title":"Text Available"}},"additionalProperties":false,"type":"object","required":["reference","title","applicability","urls","text_available"],"title":"LawVersionEntry","description":"A specified law version in a bulk dataset."},"LegalNotice":{"properties":{"license":{"$ref":"#/components/schemas/License","const":{"holder":"Forma Legis","scope":{"de":"Lizenziert, soweit Schutzrechte bestehen.","en":"Licensed to the extent that protection exists.","fr":"Concédé sous licence dans la mesure où une protection subsiste.","it":"Concesso in licenza nella misura in cui sussista una tutela."},"spdx":"CC-BY-SA-4.0","url":"https://creativecommons.org/licenses/by-sa/4.0/"}},"disclaimer":{"$ref":"#/components/schemas/LocalizedText","const":{"de":"Keine amtliche Veröffentlichung. Massgebend sind einzig die Veröffentlichungen durch die amtlichen Publikationsorgane.","en":"This is not an official publication. Only publications issued through official publication channels are authoritative.","fr":"Pas une publication officielle. Seules les publications des organes officiels de publication font foi.","it":"Non è una pubblicazione ufficiale. Fanno fede unicamente le pubblicazioni degli organi di pubblicazione ufficiali."}}},"additionalProperties":false,"type":"object","required":["license","disclaimer"],"title":"LegalNotice","description":"The response's license and disclaimer in the supported languages."},"License":{"properties":{"spdx":{"type":"string","title":"Spdx"},"holder":{"type":"string","title":"Holder"},"url":{"type":"string","title":"Url"},"scope":{"$ref":"#/components/schemas/LocalizedText"}},"additionalProperties":false,"type":"object","required":["spdx","holder","url","scope"],"title":"License","description":"License identifier, holder, URL, and scope."},"Limitation":{"properties":{"code":{"type":"string","enum":["footnotes_excluded","text_unavailable","main_text_incomplete","format_limitation","annex_coverage","translation_coverage","published_schedule","applicability_unknown"],"title":"Code"},"detail":{"$ref":"#/components/schemas/DetailText"},"source_url":{"anyOf":[{"$ref":"#/components/schemas/HttpUrl"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["code","detail"],"title":"Limitation","description":"A content or coverage limitation with an identifying code."},"LocalizedText":{"properties":{"de":{"type":"string","title":"De"},"fr":{"type":"string","title":"Fr"},"it":{"type":"string","title":"It"},"en":{"type":"string","title":"En"}},"additionalProperties":false,"type":"object","required":["de","fr","it","en"],"title":"LocalizedText","description":"Text in German, French, Italian, and English."},"MetaInfo":{"properties":{"api_version":{"type":"string","const":"3.0.0","title":"Api Version"},"search_architecture":{"type":"string","const":"v3","title":"Search Architecture","default":"v3"},"publication_id":{"anyOf":[{"$ref":"#/components/schemas/PublicationId"},{"type":"null"}]},"collections":{"items":{"$ref":"#/components/schemas/CollectionInfo"},"type":"array","title":"Collections"},"last_index_build":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Index Build"},"site_base_urls":{"additionalProperties":{"type":"string"},"propertyNames":{"$ref":"#/components/schemas/CollectionCode"},"type":"object","title":"Site Base Urls"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["api_version","collections","legal"],"title":"MetaInfo","description":"API capabilities and version information for the selected publication."},"OfficialSource":{"properties":{"url":{"$ref":"#/components/schemas/HttpUrl"},"scope":{"type":"string","enum":["law","version","provision"],"title":"Scope"}},"additionalProperties":false,"type":"object","required":["url","scope"],"title":"OfficialSource","description":"An official-source link whose scope is a law, version, or provision."},"ProvisionReference":{"properties":{"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"refno_law":{"$ref":"#/components/schemas/LawNumber"},"refno_version":{"$ref":"#/components/schemas/SelectorText"},"parent_anchor":{"$ref":"#/components/schemas/Anchor"},"anchor":{"$ref":"#/components/schemas/Anchor"}},"additionalProperties":false,"type":"object","required":["collection","language","refno_law","refno_version","parent_anchor","anchor"],"title":"ProvisionReference","description":"A reference identifying a parent provision or subprovision within a specified law version."},"PublicationId":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"},"SearchLawResult":{"properties":{"reference":{"$ref":"#/components/schemas/LawReference"},"title":{"type":"string","title":"Title"},"abbreviation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Abbreviation"},"law_status":{"$ref":"#/components/schemas/LawStatus"},"relevance":{"type":"string","enum":["high","medium"],"title":"Relevance"},"reasons":{"items":{"type":"string"},"type":"array","title":"Reasons"},"relevant_provision_count":{"type":"integer","minimum":0.0,"title":"Relevant Provision Count"},"strict_provision_count":{"type":"integer","minimum":0.0,"title":"Strict Provision Count"},"partial_provision_count":{"type":"integer","minimum":0.0,"title":"Partial Provision Count"},"urls":{"$ref":"#/components/schemas/SourceLinks"}},"additionalProperties":false,"type":"object","required":["reference","title","law_status","relevance","relevant_provision_count","strict_provision_count","partial_provision_count","urls"],"title":"SearchLawResult","description":"A search result identifying a specified law version and its links."},"SearchResponse":{"properties":{"query":{"type":"string","title":"Query","description":"Submitted search text with leading and trailing whitespace removed."},"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"law_status":{"$ref":"#/components/schemas/LawStatusFilter"},"status_assessed_at":{"$ref":"#/components/schemas/IsoDate"},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"result_set_id":{"type":"string","pattern":"^[0-9a-f]{64}$","title":"Result Set Id"},"offset":{"type":"integer","maximum":199.0,"minimum":0.0,"title":"Offset"},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"has_more":{"type":"boolean","title":"Has More"},"next_offset":{"anyOf":[{"type":"integer","maximum":199.0,"minimum":1.0},{"type":"null"}],"title":"Next Offset"},"total_is_exact":{"type":"boolean","title":"Total Is Exact"},"candidate_window_exhausted":{"type":"boolean","title":"Candidate Window Exhausted"},"query_quality":{"type":"string","enum":["strong","weak","none"],"title":"Query Quality"},"high_result_count":{"type":"integer","minimum":0.0,"title":"High Result Count"},"medium_result_count":{"type":"integer","minimum":0.0,"title":"Medium Result Count"},"highlight_plan":{"$ref":"#/components/schemas/HighlightPlan"},"results":{"items":{"$ref":"#/components/schemas/SearchLawResult"},"type":"array","title":"Results"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["query","collection","language","law_status","status_assessed_at","publication_id","result_set_id","offset","limit","total","has_more","total_is_exact","candidate_window_exhausted","query_quality","high_result_count","medium_result_count","highlight_plan","results","legal"],"title":"SearchResponse","description":"A law-search page with identifiers for its API publication and ranked result set."},"SelectedLawDetail":{"properties":{"reference":{"$ref":"#/components/schemas/LawReference"},"title":{"$ref":"#/components/schemas/TitleText"},"abbreviation":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Abbreviation"},"law_status":{"$ref":"#/components/schemas/LawStatus"},"status_assessed_at":{"$ref":"#/components/schemas/ExactDate"},"applicability":{"$ref":"#/components/schemas/Applicability"},"selection":{"type":"string","enum":["latest","version","as_of"],"title":"Selection"},"as_of":{"anyOf":[{"$ref":"#/components/schemas/ExactDate"},{"type":"null"}]},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"index_date":{"$ref":"#/components/schemas/ExactDate"},"urls":{"$ref":"#/components/schemas/SourceLinks"},"citation":{"anyOf":[{"$ref":"#/components/schemas/Citation"},{"type":"null"}]},"limitations":{"items":{"$ref":"#/components/schemas/Limitation"},"type":"array","maxItems":8,"title":"Limitations"},"document_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Class"},"short_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Title","description":"Recorded short title; null when absent or blank. Never inferred from another title."},"date_enacted":{"anyOf":[{"$ref":"#/components/schemas/IsoDate","format":"date"},{"type":"null"}],"description":"Recorded enactment/document date (ZH Erlassdatum; CH jolux:dateDocument), not the consolidation start."},"date_in_force":{"anyOf":[{"$ref":"#/components/schemas/IsoDate","format":"date"},{"type":"null"}],"description":"Recorded entry into force of the enactment (ZH Inkraftsetzungsdatum; CH jolux:dateEntryInForce), separate from version applicability."},"available_languages":{"items":{"$ref":"#/components/schemas/LanguageCode"},"type":"array","title":"Available Languages","description":"Languages with this exact law/version in the selected publication, in de/fr/it/en order. Does not promise text availability."},"is_international":{"type":"boolean","title":"Is International","description":"True for CH law numbers starting with 0.; always false for ZH."},"category":{"$ref":"#/components/schemas/CategoryRefs"},"text_available":{"type":"boolean","title":"Text Available"},"toc":{"anyOf":[{"$ref":"#/components/schemas/TocPage"},{"$ref":"#/components/schemas/UnavailableToc"}],"title":"Toc"},"versions":{"$ref":"#/components/schemas/VersionsPage","title":"Versions"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"additionalProperties":false,"type":"object","required":["reference","title","law_status","status_assessed_at","applicability","selection","publication_id","index_date","urls","citation","available_languages","is_international","category","text_available","legal"],"title":"SelectedLawDetail","description":"Metadata for the selected law version, with an optional TOC and version list."},"SelectorText":{"type":"string","maxLength":64,"minLength":1},"Sha256":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"},"SourceLinks":{"properties":{"exact":{"anyOf":[{"$ref":"#/components/schemas/HttpUrl"},{"type":"null"}]},"latest":{"anyOf":[{"$ref":"#/components/schemas/HttpUrl"},{"type":"null"}]},"official":{"anyOf":[{"$ref":"#/components/schemas/OfficialSource"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["exact","latest"],"title":"SourceLinks","description":"Links to the selected version on odat.ch, the latest law page, and an official source when available."},"TitleText":{"type":"string","maxLength":2000,"minLength":1},"TocEntry":{"properties":{"reference":{"$ref":"#/components/schemas/ProvisionReference"},"heading":{"anyOf":[{"$ref":"#/components/schemas/HeadingText"},{"type":"null"}]},"ancestry":{"items":{"$ref":"#/components/schemas/AncestryEntry"},"type":"array","maxItems":32,"title":"Ancestry"}},"additionalProperties":false,"type":"object","required":["reference"],"title":"TocEntry","description":"A parent provision in source order, identified by its source anchor."},"TocPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TocEntry"},"type":"array","maxItems":100,"title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"offset":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Offset"},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","default":50},"has_more":{"type":"boolean","title":"Has More"},"next_offset":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":1.0},{"type":"null"}],"title":"Next Offset"},"offset_limit_reached":{"type":"boolean","title":"Offset Limit Reached","default":false},"available":{"type":"boolean","const":true,"title":"Available","default":true},"toc_sha256":{"$ref":"#/components/schemas/Sha256"},"representation_version":{"type":"integer","const":1,"title":"Representation Version","default":1}},"additionalProperties":false,"type":"object","required":["items","total","offset","has_more","next_offset","toc_sha256"],"title":"TocPage","description":"A TOC page with the hash of the complete TOC for the selected version."},"UnavailableToc":{"properties":{"available":{"type":"boolean","const":false,"title":"Available","default":false},"code":{"type":"string","const":"text_unavailable","title":"Code","default":"text_unavailable"}},"additionalProperties":false,"type":"object","title":"UnavailableToc","description":"Indicates that the TOC is unavailable because source text is unavailable."},"ValidationErrorResponse":{"properties":{"detail":{"type":"string","maxLength":512,"title":"Detail"},"code":{"$ref":"#/components/schemas/ErrorCode","default":"invalid_param"},"request_id":{"type":"string","maxLength":64,"title":"Request Id"},"fields":{"items":{"type":"string","maxLength":256},"type":"array","maxItems":10,"title":"Fields"},"source_url":{"anyOf":[{"$ref":"#/components/schemas/HttpUrl"},{"type":"null"}]},"candidates":{"items":{"$ref":"#/components/schemas/AmbiguityCandidate"},"type":"array","maxItems":10,"title":"Candidates"},"candidates_truncated":{"type":"boolean","title":"Candidates Truncated","default":false}},"additionalProperties":false,"type":"object","required":["detail","request_id"],"title":"ValidationErrorResponse","description":"Validation errors identifying affected fields without including rejected values or request bodies."},"VersionEntry":{"properties":{"reference":{"$ref":"#/components/schemas/LawReference"},"title":{"$ref":"#/components/schemas/TitleText"},"short_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Title","description":"Recorded short title; null when absent or blank. Never inferred from another title."},"date_enacted":{"anyOf":[{"$ref":"#/components/schemas/IsoDate","format":"date"},{"type":"null"}],"description":"Recorded enactment/document date (ZH Erlassdatum; CH jolux:dateDocument), not the consolidation start."},"date_in_force":{"anyOf":[{"$ref":"#/components/schemas/IsoDate","format":"date"},{"type":"null"}],"description":"Recorded entry into force of the enactment (ZH Inkraftsetzungsdatum; CH jolux:dateEntryInForce), separate from version applicability."},"available_languages":{"items":{"$ref":"#/components/schemas/LanguageCode"},"type":"array","title":"Available Languages","description":"Languages with this exact law/version in the selected publication, in de/fr/it/en order. Does not promise text availability."},"abbreviation":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Abbreviation"},"applicability":{"$ref":"#/components/schemas/Applicability"},"urls":{"$ref":"#/components/schemas/SourceLinks"},"text_available":{"type":"boolean","title":"Text Available"}},"additionalProperties":false,"type":"object","required":["reference","title","available_languages","applicability","urls","text_available"],"title":"VersionEntry","description":"Metadata for a law version; version lists are ordered by applicability, newest first."},"VersionsPage":{"properties":{"items":{"items":{"$ref":"#/components/schemas/VersionEntry"},"type":"array","maxItems":50,"title":"Items"},"total":{"type":"integer","minimum":0.0,"title":"Total"},"offset":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Offset"},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit","default":10},"has_more":{"type":"boolean","title":"Has More"},"next_offset":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":1.0},{"type":"null"}],"title":"Next Offset"},"offset_limit_reached":{"type":"boolean","title":"Offset Limit Reached","default":false}},"additionalProperties":false,"type":"object","required":["items","total","offset","has_more","next_offset"],"title":"VersionsPage","description":"A separately paged list of versions for the same law and language."},"ProvisionSearchSelector":{"additionalProperties":false,"description":"Parameters for searching indexed parent provisions; later pages require the first response's publication and result-set identifiers.","properties":{"query":{"maxLength":1100,"minLength":1,"title":"Query","type":"string"},"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"law_status":{"$ref":"#/components/schemas/LawStatusFilter","default":"in_force"},"law":{"anyOf":[{"$ref":"#/components/schemas/LawSelector"},{"type":"null"}],"default":null},"version":{"anyOf":[{"$ref":"#/components/schemas/SelectorText"},{"type":"null"}],"default":null},"limit":{"default":5,"maximum":10,"minimum":1,"title":"Limit","type":"integer"},"offset":{"default":0,"maximum":199,"minimum":0,"title":"Offset","type":"integer"},"expected_publication_id":{"anyOf":[{"$ref":"#/components/schemas/PublicationId"},{"type":"null"}],"default":null},"expected_result_set_id":{"anyOf":[{"$ref":"#/components/schemas/Sha256"},{"type":"null"}],"default":null}},"required":["query","collection","language"],"title":"ProvisionSearchSelector","type":"object"},"ProvisionSearchHit":{"additionalProperties":false,"description":"A ranked parent-provision result with an excerpt and source metadata.","properties":{"reference":{"$ref":"#/components/schemas/ProvisionReference"},"title":{"$ref":"#/components/schemas/TitleText"},"abbreviation":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Abbreviation"},"law_status":{"$ref":"#/components/schemas/LawStatus"},"status_assessed_at":{"$ref":"#/components/schemas/ExactDate"},"applicability":{"$ref":"#/components/schemas/Applicability"},"selection":{"enum":["latest","version","as_of"],"title":"Selection","type":"string"},"as_of":{"anyOf":[{"$ref":"#/components/schemas/ExactDate"},{"type":"null"}],"default":null},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"index_date":{"$ref":"#/components/schemas/ExactDate"},"urls":{"$ref":"#/components/schemas/SourceLinks"},"citation":{"anyOf":[{"$ref":"#/components/schemas/Citation"},{"type":"null"}]},"limitations":{"items":{"$ref":"#/components/schemas/Limitation"},"maxItems":8,"title":"Limitations","type":"array"},"heading":{"anyOf":[{"$ref":"#/components/schemas/HeadingText"},{"type":"null"}],"default":null},"ancestry":{"items":{"$ref":"#/components/schemas/AncestryEntry"},"maxItems":32,"title":"Ancestry","type":"array"},"excerpt":{"maxLength":1000,"title":"Excerpt","type":"string"},"relevance":{"enum":["high","medium"],"title":"Relevance","type":"string"},"reasons":{"items":{"enum":["provision_lexical_strict","provision_lexical_partial"],"type":"string"},"maxItems":3,"minItems":1,"title":"Reasons","type":"array"}},"required":["reference","title","law_status","status_assessed_at","applicability","selection","publication_id","index_date","urls","citation","excerpt","relevance","reasons"],"title":"ProvisionSearchHit","type":"object"},"ProvisionSearchResponse":{"additionalProperties":false,"description":"A page of ranked provision results with identifiers for checking consistency across requests.","properties":{"law_status":{"$ref":"#/components/schemas/LawStatusFilter"},"status_assessed_at":{"$ref":"#/components/schemas/ExactDate"},"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"query":{"description":"Submitted search text with leading and trailing whitespace removed.","maxLength":1100,"minLength":1,"title":"Query","type":"string"},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"result_set_id":{"$ref":"#/components/schemas/Sha256"},"ranking_version":{"const":3,"default":3,"title":"Ranking Version","type":"integer"},"representation_version":{"const":1,"default":1,"title":"Representation Version","type":"integer"},"total":{"maximum":200,"minimum":0,"title":"Total","type":"integer"},"total_is_exact":{"title":"Total Is Exact","type":"boolean"},"candidate_window_exhausted":{"title":"Candidate Window Exhausted","type":"boolean"},"offset":{"maximum":199,"minimum":0,"title":"Offset","type":"integer"},"limit":{"maximum":10,"minimum":1,"title":"Limit","type":"integer"},"has_more":{"title":"Has More","type":"boolean"},"next_offset":{"anyOf":[{"maximum":199,"minimum":1,"type":"integer"},{"type":"null"}],"title":"Next Offset"},"results":{"items":{"$ref":"#/components/schemas/ProvisionSearchHit"},"maxItems":10,"title":"Results","type":"array"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"required":["law_status","status_assessed_at","collection","language","query","publication_id","result_set_id","total","total_is_exact","candidate_window_exhausted","offset","limit","has_more","next_offset","results","legal"],"title":"ProvisionSearchResponse","type":"object"},"ProvisionNumber":{"$ref":"#/components/schemas/SelectorText"},"ProvisionSelector":{"additionalProperties":false,"description":"Parameters selecting a parent provision, a subprovision, or a continuation of previously retrieved text.","properties":{"collection":{"$ref":"#/components/schemas/CollectionCode"},"language":{"$ref":"#/components/schemas/LanguageCode"},"law":{"$ref":"#/components/schemas/LawSelector"},"number":{"anyOf":[{"$ref":"#/components/schemas/ProvisionNumber"},{"type":"null"}],"default":null},"sub_number":{"anyOf":[{"$ref":"#/components/schemas/SubNumber"},{"type":"null"}],"default":null},"anchor":{"anyOf":[{"$ref":"#/components/schemas/Anchor"},{"type":"null"}],"default":null},"version":{"anyOf":[{"$ref":"#/components/schemas/SelectorText"},{"type":"null"}],"default":null},"as_of":{"anyOf":[{"$ref":"#/components/schemas/ExactDate"},{"type":"null"}],"default":null},"format":{"default":"markdown","enum":["markdown","html"],"title":"Format","type":"string"},"text_offset":{"default":0,"exclusiveMaximum":16777216,"minimum":0,"title":"Text Offset","type":"integer"},"expected_content_sha256":{"anyOf":[{"$ref":"#/components/schemas/Sha256"},{"type":"null"}],"default":null}},"required":["collection","language","law"],"title":"ProvisionSelector","type":"object"},"SubNumber":{"$ref":"#/components/schemas/SelectorText"},"BatchResolveRequest":{"additionalProperties":false,"description":"A read-only JSON request containing 1–5 provision selections in input order.","properties":{"items":{"items":{"$ref":"#/components/schemas/ProvisionSelector"},"maxItems":5,"minItems":1,"title":"Items","type":"array"}},"required":["items"],"title":"BatchResolveRequest","type":"object"},"BatchFailure":{"additionalProperties":false,"description":"An error for one input item; successful items remain in the response.","properties":{"index":{"exclusiveMaximum":5,"minimum":0,"title":"Index","type":"integer"},"error":{"$ref":"#/components/schemas/ItemError"}},"required":["index","error"],"title":"BatchFailure","type":"object"},"BatchSuccess":{"additionalProperties":false,"description":"A successful input item and its text, subject to the batch text limit.","properties":{"index":{"exclusiveMaximum":5,"minimum":0,"title":"Index","type":"integer"},"data":{"anyOf":[{"$ref":"#/components/schemas/ProvisionText"},{"$ref":"#/components/schemas/ProvisionHtml"}],"title":"Data"}},"required":["index","data"],"title":"BatchSuccess","type":"object"},"ItemError":{"additionalProperties":false,"description":"An error for an individual selection, with a code, explanation, and corresponding HTTP status.","properties":{"detail":{"$ref":"#/components/schemas/DetailText"},"code":{"$ref":"#/components/schemas/ErrorCode","not":{"enum":["invalid_credentials","conflicting_credentials"]}},"source_url":{"anyOf":[{"$ref":"#/components/schemas/HttpUrl"},{"type":"null"}],"default":null},"candidates":{"items":{"$ref":"#/components/schemas/AmbiguityCandidate"},"maxItems":10,"title":"Candidates","type":"array"},"candidates_truncated":{"default":false,"title":"Candidates Truncated","type":"boolean"},"fields":{"items":{"maxLength":256,"minLength":1,"type":"string"},"maxItems":10,"title":"Fields","type":"array"},"status":{"title":"Status","type":"integer"}},"required":["detail","code","status"],"title":"ItemError","type":"object"},"ProvisionHtml":{"additionalProperties":false,"description":"A contiguous canonical HTML string slice; assemble and verify all chunks before parsing.","properties":{"reference":{"$ref":"#/components/schemas/ProvisionReference"},"title":{"$ref":"#/components/schemas/TitleText"},"abbreviation":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Abbreviation"},"law_status":{"$ref":"#/components/schemas/LawStatus"},"status_assessed_at":{"$ref":"#/components/schemas/ExactDate"},"applicability":{"$ref":"#/components/schemas/Applicability"},"selection":{"enum":["latest","version","as_of"],"title":"Selection","type":"string"},"as_of":{"anyOf":[{"$ref":"#/components/schemas/ExactDate"},{"type":"null"}],"default":null},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"index_date":{"$ref":"#/components/schemas/ExactDate"},"urls":{"$ref":"#/components/schemas/SourceLinks"},"citation":{"anyOf":[{"$ref":"#/components/schemas/Citation"},{"type":"null"}]},"limitations":{"items":{"$ref":"#/components/schemas/Limitation"},"maxItems":8,"title":"Limitations","type":"array"},"heading":{"anyOf":[{"$ref":"#/components/schemas/HeadingText"},{"type":"null"}],"default":null},"ancestry":{"items":{"$ref":"#/components/schemas/AncestryEntry"},"maxItems":32,"title":"Ancestry","type":"array"},"format":{"const":"html","default":"html","title":"Format","type":"string"},"body_html":{"maxLength":20000,"minLength":1,"title":"Body Html","type":"string"},"text_offset":{"exclusiveMaximum":16777216,"minimum":0,"title":"Text Offset","type":"integer"},"next_offset":{"anyOf":[{"exclusiveMaximum":16777216,"minimum":1,"type":"integer"},{"type":"null"}],"title":"Next Offset"},"total_chars":{"maximum":16777216,"minimum":1,"title":"Total Chars","type":"integer"},"complete":{"title":"Complete","type":"boolean"},"content_sha256":{"$ref":"#/components/schemas/Sha256"},"representation_version":{"const":1,"default":1,"title":"Representation Version","type":"integer"}},"required":["reference","title","law_status","status_assessed_at","applicability","selection","publication_id","index_date","urls","citation","body_html","text_offset","next_offset","total_chars","complete","content_sha256"],"title":"ProvisionHtml","type":"object"},"ProvisionText":{"additionalProperties":false,"description":"A continuous slice of main text. complete is true only when this slice contains all text from offset 0. next_offset is null when no more text follows, even if complete is false.","properties":{"reference":{"$ref":"#/components/schemas/ProvisionReference"},"title":{"$ref":"#/components/schemas/TitleText"},"abbreviation":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Abbreviation"},"law_status":{"$ref":"#/components/schemas/LawStatus"},"status_assessed_at":{"$ref":"#/components/schemas/ExactDate"},"applicability":{"$ref":"#/components/schemas/Applicability"},"selection":{"enum":["latest","version","as_of"],"title":"Selection","type":"string"},"as_of":{"anyOf":[{"$ref":"#/components/schemas/ExactDate"},{"type":"null"}],"default":null},"publication_id":{"$ref":"#/components/schemas/PublicationId"},"index_date":{"$ref":"#/components/schemas/ExactDate"},"urls":{"$ref":"#/components/schemas/SourceLinks"},"citation":{"anyOf":[{"$ref":"#/components/schemas/Citation"},{"type":"null"}]},"limitations":{"items":{"$ref":"#/components/schemas/Limitation"},"maxItems":8,"title":"Limitations","type":"array"},"heading":{"anyOf":[{"$ref":"#/components/schemas/HeadingText"},{"type":"null"}],"default":null},"ancestry":{"items":{"$ref":"#/components/schemas/AncestryEntry"},"maxItems":32,"title":"Ancestry","type":"array"},"body_markdown":{"maxLength":20000,"title":"Body Markdown","type":"string"},"text_offset":{"exclusiveMaximum":16777216,"minimum":0,"title":"Text Offset","type":"integer"},"next_offset":{"anyOf":[{"exclusiveMaximum":16777216,"minimum":1,"type":"integer"},{"type":"null"}],"title":"Next Offset"},"total_chars":{"maximum":16777216,"minimum":0,"title":"Total Chars","type":"integer"},"complete":{"title":"Complete","type":"boolean"},"content_sha256":{"$ref":"#/components/schemas/Sha256"},"representation_version":{"const":1,"default":1,"title":"Representation Version","type":"integer"},"starts_mid_block":{"default":false,"title":"Starts Mid Block","type":"boolean"},"ends_mid_block":{"default":false,"title":"Ends Mid Block","type":"boolean"}},"required":["reference","title","law_status","status_assessed_at","applicability","selection","publication_id","index_date","urls","citation","body_markdown","text_offset","next_offset","total_chars","complete","content_sha256"],"title":"ProvisionText","type":"object"},"BatchResolveResponse":{"additionalProperties":false,"description":"Ordered item outcomes. The HTTP API returns 200 after evaluating the items, even if every item has an error.","properties":{"publication_id":{"$ref":"#/components/schemas/PublicationId"},"items":{"items":{"anyOf":[{"$ref":"#/components/schemas/BatchSuccess"},{"$ref":"#/components/schemas/BatchFailure"}]},"maxItems":5,"minItems":1,"title":"Items","type":"array"},"partial":{"title":"Partial","type":"boolean"},"all_failed":{"title":"All Failed","type":"boolean"},"legal":{"$ref":"#/components/schemas/LegalNotice"}},"required":["publication_id","items","partial","all_failed","legal"],"title":"BatchResolveResponse","type":"object"},"LawDetailSelector":{"additionalProperties":false,"description":"Parameters for selecting a law version, with separate pagination for its TOC and version list.","properties":{"language":{"$ref":"#/components/schemas/LanguageCode"},"version":{"anyOf":[{"$ref":"#/components/schemas/SelectorText"},{"type":"null"}],"default":null},"as_of":{"anyOf":[{"$ref":"#/components/schemas/ExactDate"},{"type":"null"}],"default":null},"include_toc":{"default":false,"title":"Include Toc","type":"boolean"},"include_versions":{"default":false,"title":"Include Versions","type":"boolean"},"toc_offset":{"default":0,"maximum":10000,"minimum":0,"title":"Toc Offset","type":"integer"},"toc_limit":{"default":50,"maximum":100,"minimum":1,"title":"Toc Limit","type":"integer"},"versions_offset":{"default":0,"maximum":10000,"minimum":0,"title":"Versions Offset","type":"integer"},"versions_limit":{"default":10,"maximum":50,"minimum":1,"title":"Versions Limit","type":"integer"},"expected_publication_id":{"anyOf":[{"$ref":"#/components/schemas/PublicationId"},{"type":"null"}],"default":null},"expected_toc_sha256":{"anyOf":[{"$ref":"#/components/schemas/Sha256"},{"type":"null"}],"default":null}},"required":["language"],"title":"LawDetailSelector","type":"object"}}}}