Kanton Zürich Funktional API

The Funktional API from Kanton Zürich — 10 operation(s) for funktional.

GitHub OpenAPI

Operations 13

POST /cleanup Create cleanup #
GET /files/{fn} Get files by fn #
POST /files/{fn} Create files by fn #
PUT /files/{fn} Replace files by fn #
DELETE /files/{fn} Delete files by fn #
GET /html/{fn} Get html by fn #
GET /ogd/{sp} Get ogd by sp #
GET /recache Get recache #
GET /secured/{sp} Get secured by sp #
GET /umbraco/{kanton}/procedures Get umbraco by kanton procedures #
GET /umbraco/{kanton}/filters Get umbraco by kanton filters #
GET /umbraco/{kanton}/{sprache}/{sp} Get umbraco by kanton by sprache by sp #
GET /zhweb/{sp} Get zhweb by sp #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zh-ch:zh-ch-funktional-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zh-ch-funktional-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zh Ch Funktional API
  version: '0.5'
  contact:
    name: Res Marti
    email: res.marti@bi.zh.ch
  description: 'Operations tagged Funktional across 2 of this provider''s published API definitions: bista-zh-ch-openapi.json, zh-ch-education-statistics-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: /basicapi
- url: https://www.bista.zh.ch/basicapi
  description: Absolute form of the relative server /basicapi published on www.bista.zh.ch/basicapi/api-docs/
tags:
- name: Funktional
paths:
  /cleanup:
    post:
      description: Deletes cache files that have not been modified for more than 150 days.
      tags:
      - Funktional
      parameters:
      - in: query
        name: secret
        schema:
          type: string
        required: true
        description: Recache secret used to authorize cache cleanup
      responses:
        '200':
          description: Cleanup completed; deleted files and file-level errors are returned.
        '401':
          description: Authentication failed.
        '500':
          description: The cache directory could not be scanned.
      summary: Create cleanup
      x-summary-source: derived
      operationId: postCleanup
      x-operation-id-source: derived
    servers:
    - url: /basicapi
  /files/{fn}:
    get:
      description: Main route for getting data from a json file stored on the server
      tags:
      - Funktional
      parameters:
      - in: path
        name: fn
        schema:
          type: string
        required: true
        description: name of a json-file in the assets folder without the ending
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '501':
          description: The requested resource could not be processed. There is probably no file by that name. Watch out for typos in the name provided.
      summary: Get files by fn
      x-summary-source: derived
      operationId: getFilesByFn
      x-operation-id-source: derived
    post:
      security:
      - bearerAuth: []
      description: Main route for posting data to a json file stored on the server, equivalent to a PUT route, also allows overwriting existing files
      tags:
      - Funktional
      parameters:
      - in: path
        name: fn
        schema:
          type: string
        required: true
        description: name of a json-file in the assets folder without the ending
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '400':
          description: 'Invalid JSON: must be a non-null object.'
        '401':
          description: Authentication failed, wrong or no secret provided.
        '501':
          description: The body provided can not be written to a file.
      summary: Create files by fn
      x-summary-source: derived
      operationId: postFilesByFn
      x-operation-id-source: derived
    put:
      security:
      - bearerAuth: []
      description: Main route for replacing data in a json file stored on the server, equivalent to a POST route, also allows creating new files
      tags:
      - Funktional
      parameters:
      - in: path
        name: fn
        schema:
          type: string
        required: true
        description: name of a json-file in the assets folder without the ending
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '400':
          description: 'Invalid JSON: must be a non-null object.'
        '401':
          description: Authentication failed, wrong or no secret provided.
        '501':
          description: The body provided can not be written to a file.
      summary: Replace files by fn
      x-summary-source: derived
      operationId: putFilesByFn
      x-operation-id-source: derived
    delete:
      security:
      - bearerAuth: []
      description: Main route for deleting a json file stored on the server
      tags:
      - Funktional
      parameters:
      - in: path
        name: fn
        schema:
          type: string
        required: true
        description: name of a json-file in the assets folder without the ending
      responses:
        '200':
          description: A successfull response, the api-server has deleted the requested ressource.
        '401':
          description: Authentication failed, wrong or no secret provided.
        '403':
          description: The requested resource doesn't exist, use post to create new ressources.
        '501':
          description: The requested ressource can not be deleted.
      summary: Delete files by fn
      x-summary-source: derived
      operationId: deleteFilesByFn
      x-operation-id-source: derived
    servers:
    - url: /basicapi
  /html/{fn}:
    get:
      description: Main route for getting a html file stored on the server
      tags:
      - Funktional
      parameters:
      - in: path
        name: fn
        schema:
          type: string
        required: true
        description: name of a html-file in the assets folder with or without the ending
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '501':
          description: The requested resource could not be processed. There is probably no file by that name. Watch out for typos in the name provided.
      summary: Get html by fn
      x-summary-source: derived
      operationId: getHtmlByFn
      x-operation-id-source: derived
    servers:
    - url: /basicapi
  /ogd/{sp}:
    get:
      description: Main route for getting data from a stored procedure from the database for ogd objects
      tags:
      - Funktional
      parameters:
      - in: path
        name: sp
        schema:
          type: string
        required: true
        description: name of a stored procedure in the DB
      - in: query
        name: refreshcache
        schema:
          type: boolean
        required: false
        description: forces a refresh of the cache if this is true
      - in: query
        name: canton
        schema:
          type: string
          default: zh
          enum:
          - zh
          - tg
          - gl
          - gr
        required: false
        description: "chose the canton for which you want to get data:\n * `zh` Zürich\n * `tg` Thurgau\n * `gl` Glarus\n * `gr` Graubünden\n"
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '500':
          description: The server could not connect to the database. The database is either offline of the credentials to access the database are invalid
        '501':
          description: The requested resource could not be processed. Either there is no stored procedure by that name or the stored procedure is not configured correctly. Watch out for typos in the name provided.
      summary: Get ogd by sp
      x-summary-source: derived
      operationId: getOgdBySp
      x-operation-id-source: derived
    servers:
    - url: /basicapi
  /recache:
    get:
      description: Refreshes the cached entries for the selected route and returns the cache keys scheduled for refresh.
      tags:
      - Funktional
      parameters:
      - in: query
        name: route
        schema:
          type: string
          default: zhweb
          enum:
          - zhweb
          - ogd
          - umbraco
          - secured
        required: false
        description: route cache to refresh
      - in: query
        name: keysource
        schema:
          type: string
          default: filecache
          enum:
          - memorycache
          - filecache
        required: false
        description: "chose, whether cache should be restored from memory cache or from file cache.:\n * `memorycache` - the stored procedures names to be recached are taken from memory cache\n * `filecache` - the stored procedures names to be recached are taken from file cache\n"
      - in: query
        name: secret
        schema:
          type: string
        required: true
        description: secret key to run recache
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '401':
          description: Authentication failed, wrong or no secret provided.
        '501':
          description: Server Error, maybe the choosen cache is not available, try the other option.
      summary: Get recache
      x-summary-source: derived
      operationId: getRecache
      x-operation-id-source: derived
    servers:
    - url: /basicapi
  /secured/{sp}:
    get:
      description: Main route for getting data from a stored procedure from the database in a secured way
      tags:
      - Funktional
      parameters:
      - in: path
        name: sp
        schema:
          type: string
        required: true
        description: name of a stored procedure in the DB
      - in: query
        name: refreshcache
        schema:
          type: boolean
        required: false
        description: forces a refresh of the cache if this is true
      - in: query
        name: secret
        schema:
          type: string
        required: true
        description: secret key to run the query
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '401':
          description: Authentication failed, wrong or no secret provided.
        '500':
          description: The server could not connect to the database. The database is either offline of the credentials to access the database are invalid
        '501':
          description: The requested resource could not be processed. Either there is no stored procedure by that name or the stored procedure is not configured correctly. Watch out for typos in the name provided.
      summary: Get secured by sp
      x-summary-source: derived
      operationId: getSecuredBySp
      x-operation-id-source: derived
    servers:
    - url: /basicapi
  /umbraco/{kanton}/procedures:
    get:
      description: Route to get the avaible stored procedures per language and canton for umbraco
      tags:
      - Funktional
      parameters:
      - in: path
        name: kanton
        schema:
          type: string
          enum:
          - zh
          - tg
          - gl
          - gr
        required: true
        description: short for the canton for which the data is requested, default is 'zh'
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '500':
          description: The server could not connect to the database. The database is either offline of the credentials to access the database are invalid
        '501':
          description: The requested resource could not be processed. Either there is no stored procedure by that name or the stored procedure is not configured correctly.
      summary: Get umbraco by kanton procedures
      x-summary-source: derived
      operationId: getUmbracoByKantonProcedures
      x-operation-id-source: derived
    servers:
    - url: /basicapi
  /umbraco/{kanton}/filters:
    get:
      description: Route to get the avaible filter lists per language and canton for umbraco
      tags:
      - Funktional
      parameters:
      - in: path
        name: kanton
        schema:
          type: string
          enum:
          - zh
          - tg
          - gl
          - gr
        required: true
        description: short for the canton for which the data is requested, default is 'zh'
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '500':
          description: The server could not connect to the database. The database is either offline of the credentials to access the database are invalid
        '501':
          description: The requested resource could not be processed. Either there is no stored procedure by that name or the stored procedure is not configured correctly.
      summary: Get umbraco by kanton filters
      x-summary-source: derived
      operationId: getUmbracoByKantonFilters
      x-operation-id-source: derived
    servers:
    - url: /basicapi
  /umbraco/{kanton}/{sprache}/{sp}:
    get:
      description: Main route for getting data from a stored procedure from the database for umbraco
      tags:
      - Funktional
      parameters:
      - in: path
        name: kanton
        schema:
          type: string
          enum:
          - zh
          - tg
          - gl
          - gr
        required: true
        description: short for the canton for which the data is requested, default is 'zh'
      - in: path
        name: sprache
        schema:
          type: string
          enum:
          - de
          - rm
          - it
          - fr
        required: true
        description: short for the language for which the data is requested, default is 'de'
      - in: path
        name: sp
        schema:
          type: string
        required: true
        description: name of a stored procedure in the DB
      - in: query
        name: refreshcache
        schema:
          type: boolean
        required: false
        description: forces a refresh of the cache if this is true
      - in: query
        name: params
        schema:
          type: object
          additionalProperties:
            type: string
        style: form
        explode: true
        description: additional parameters depending on the procedure called
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '500':
          description: The server could not connect to the database. The database is either offline of the credentials to access the database are invalid
        '501':
          description: The requested resource could not be processed. Either there is no stored procedure by that name or the stored procedure is not configured correctly. Watch out for typos in the name provided.
      summary: Get umbraco by kanton by sprache by sp
      x-summary-source: derived
      operationId: getUmbracoByKantonBySpracheBySp
      x-operation-id-source: derived
    servers:
    - url: /basicapi
  /zhweb/{sp}:
    get:
      description: Main route for getting data from a stored procedure from the database
      tags:
      - Funktional
      parameters:
      - in: path
        name: sp
        schema:
          type: string
        required: true
        description: name of a stored procedure in the DB
      - in: query
        name: refreshcache
        schema:
          type: boolean
        required: false
        description: forces a refresh of the cache if this is true
      - in: query
        name: params
        schema:
          type: object
          default: {}
          additionalProperties:
            type: string
        style: form
        explode: true
        description: additional parameters depending on the procedure called
      responses:
        '200':
          description: A successfull response, the api-server has returned usable data.
        '500':
          description: The server could not connect to the database. The database is either offline of the credentials to access the database are invalid
        '501':
          description: The requested resource could not be processed. Either there is no stored procedure by that name or the stored procedure is not configured correctly. Watch out for typos in the name provided.
      summary: Get zhweb by sp
      x-summary-source: derived
      operationId: getZhwebBySp
      x-operation-id-source: derived
    servers:
    - url: /basicapi
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
x-refined-from:
- bista-zh-ch-openapi.json
- zh-ch-education-statistics-openapi.yml