OpenFaaS API

OpenFaaS API as documented publicly: 12 operations. Contract generated from the documentation by API Evangelist (2026-10-14); not the provider's own document.

Operations 12

GET / GET / #
POST / POST / #
PUT / PUT / #
GET /alexellis/openfaas-cloud-test GET /alexellis/openfaas-cloud-test #
DELETE /async-function/ee7fcaeb-82b7-4834-b677-45005c5f0b1b DELETE /async-function/ee7fcaeb-82b7-4834-b677-45005c5f0b1b #
GET /async-function/figlet GET /async-function/figlet #
GET /auth/{authid} OAuth login for functions #
POST /auth/{authid} OAuth login for functions #
GET /function/{functionid} GET /function/env.openfaas.fn #
GET /system/function/env GET /system/function/env #
GET /system/functions GET /system/functions #
PUT /system/functions PUT /system/functions #

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/openfaas:openfaas-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

openfaas-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: OpenFaaS API
  version: '2026-10-14'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-14: 12 operation(s) read from 7 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; OpenFaaS has published no machine-readable contract that the
    pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 12
    documentation: 0
    pages-with-code: 6
    pages-read: 7
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-14'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.openfaas.com/reference/async
  - https://docs.openfaas.com/reference/secrets
  - https://docs.openfaas.com/reference/rest-api
  - https://docs.openfaas.com/reference/cicd/jenkins
  - https://docs.openfaas.com/reference/authentication
  - https://docs.openfaas.com/reference/cicd/bitbucket
  - https://docs.openfaas.com/reference/function-oauth
servers:
- url: https://github.com
paths:
  /:
    get:
      operationId: get
      tags:
      - Api
      summary: GET /
      x-source: https://docs.openfaas.com/reference/rest-api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s  -H \"Authorization: Bearer $TOKEN \"  $OPENFAAS_URL /system/namespaces\n Create a namespace ¶ \n Note that for initial\
          \ creation, the namespace n1 isn't included in the URL. \n export OPENFAAS_URL = \"http://127.0.0.1:8080\" \n export TOKEN = \"\" "
    post:
      operationId: post
      tags:
      - Api
      summary: POST /
      x-source: https://docs.openfaas.com/reference/rest-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s  -X POST  --data-binary '{\"name\": \"n1\", \"annotations\": {\"openfaas\":\"1\"}}'  -H \"Authorization: Bearer $TOKEN\
          \ \"  $OPENFAAS_URL /system/namespace/\n Note that the trailing / slash in /system/namespace/ is required for this endpoint, and that\
          \ the name of the namespace must be passed within the body. \n Update a namespace ¶ \n This endpoint can be used to update the annotations\
          \ for an existing nam"
    put:
      operationId: put
      tags:
      - Api
      summary: PUT /
      x-source: https://docs.openfaas.com/reference/rest-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s  -X PUT  --data-binary '{\"name\": \"n1\", \"annotations\": {\"openfaas\":\"1\", \"customer\": \"openfaasltd\"}}'  -H\
          \ \"Authorization: Bearer $TOKEN \"  $OPENFAAS_URL /system/namespaces/n1\n Delete a namespace ¶ \n export OPENFAAS_URL = \"http://127.0.0.1:8080\"\
          \ \n export TOKEN = \"\" "
  /alexellis/openfaas-cloud-test:
    get:
      operationId: get_alexellis_openfaas_cloud_test
      tags:
      - Alexellis
      summary: GET /alexellis/openfaas-cloud-test
      x-source: https://docs.openfaas.com/reference/cicd/jenkins
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl git && curl -sLS cli.openfaas.com | sh\"\n sh \"dockerd &\"\n sh \"docker info\"\n sh \"faas-cli template store pull node8-express\"\
          \n sh \"faas-cli build\"\n sh \"killall dockerd\"\n }\n }\n }\n}\n You should replace https://github.com/alexellis/openfaas-cloud-test\
          \ with your own Git repository. \n If you have custom templates then run faas-cli template store pull <template> before faas-cli build.\
          \ \n Note: the foll"
  /async-function/ee7fcaeb-82b7-4834-b677-45005c5f0b1b:
    delete:
      operationId: delete_async_function_ee7fcaeb_82b7_4834_b677_45005c5f0b1b
      tags:
      - Async Function
      summary: DELETE /async-function/ee7fcaeb-82b7-4834-b677-45005c5f0b1b
      x-source: https://docs.openfaas.com/reference/async
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -i  -X DELETE  http://127.0.0.1:8080/async-function/ee7fcaeb-82b7-4834-b677-45005c5f0b1b\n A 202 Accepted message will\
          \ be issued if the request is successful. \n Reasons why you might need to cancel an async request: \n Cancel long running tasks. \n\
          \ Cancel failing invocations, e.g due to an invalid payload, that would otherwise be retried by the queue-worker until the max retry\
          \ limit is reached. "
  /async-function/figlet:
    get:
      operationId: get_async_function_figlet
      tags:
      - Async Function
      summary: GET /async-function/figlet
      x-source: https://docs.openfaas.com/reference/async
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl http://127.0.0.1:8080/async-function/figlet  --data "Hi"  --header "X-Callback-Url: http://<your-ip>:8888"'
  /auth/{authid}:
    get:
      operationId: get_auth_authid
      tags:
      - Auth
      summary: OAuth login for functions
      x-source: https://docs.openfaas.com/reference/function-oauth
      parameters:
      - name: authid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
        collapsed_from: 2 example path(s) differing only at authId
    post:
      operationId: post_auth_authid
      tags:
      - Auth
      summary: OAuth login for functions
      x-source: https://docs.openfaas.com/reference/function-oauth
      parameters:
      - name: authid
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
        collapsed_from: 2 example path(s) differing only at authId
  /function/{functionid}:
    get:
      operationId: get_function_functionid
      tags:
      - Function
      summary: GET /function/env.openfaas.fn
      x-source: https://docs.openfaas.com/reference/rest-api
      parameters:
      - name: functionid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFunctionFunctionidResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s -i http://127.0.0.1:8080/function/env.openfaas.fn\n If no namespace is specified, then the default namespace is used\
          \ for the installation, this is usually going to be openfaas-fn . \n Functions can also be invoked asynchronously by adding the /async-function/NAME.NAMESPACE\
          \ path to the gateway URL. In this case, a HTTP POST is required with the payload in the body. \n If a function is being in"
        collapsed_from: 3 example path(s) differing only at functionId
  /system/function/env:
    get:
      operationId: get_system_function_env
      tags:
      - System
      summary: GET /system/function/env
      x-source: https://docs.openfaas.com/reference/rest-api
      parameters:
      - name: usage
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSystemFunctionEnvResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s  -X GET  http://admin:$PASSWORD@127.0.0.1:8080/system/function/env?usage=1  -H 'Content-Type: application/json'\n Adding\
          \ ?usage=1 includes the RAM and CPU usage of the function for commercial editions of OpenFaaS. \n Example output: \n { \n \"name\" :\
          \ \"env\" , \n \"image\" : \"ghcr.io/openfaas/alpine:latest\" , \n \"namespace\" : \"openfaas-fn\" , \n \"envProcess\" : \"env\" , \n\
          \ \"labels\" : { \n \"com.openfaas.sca"
  /system/functions:
    get:
      operationId: get_system_functions
      tags:
      - System
      summary: GET /system/functions
      x-source: https://docs.openfaas.com/reference/rest-api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -s  -H \"Authorization: Bearer $TOKEN \" \n http:// $HOST /system/functions\n Function authentication ¶ \n For authentication\
          \ for functions, see Function Authentication \n A note on namespaces ¶ \n In OpenFaaS For Enterprises, all endpoints other than \"list\
          \ namespaces\" support a namespace parameter. \n Depending on the endpoint, and operation this is passed either through the body or\
          \ as a query-strin"
    put:
      operationId: put_system_functions
      tags:
      - System
      summary: PUT /system/functions
      x-source: https://docs.openfaas.com/reference/rest-api
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutSystemFunctionsRequest'
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutSystemFunctionsResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -i  -X PUT  http://admin:$PASSWORD@127.0.0.1:8080/system/functions  -H 'Content-Type: application/json'  -d '{\"service\"\
          :\"env\",\"image\":\"ghcr.io/openfaas/alpine:latest\",\"envProcess\":\"env\",\"labels\":{\"com.openfaas.scale.zero\":\"true\",\"com.openfaas.scale.zero-duration\"\
          :\"2m\"},\"annotations\":{}}'\n Here we've added the label com.openfaas.scale.zero which will instruct the OpenFaaS auto-scaler to scale "
components:
  schemas:
    PostRequest:
      type: object
      properties:
        name:
          type: string
        annotations:
          type: object
          properties:
            openfaas:
              type: string
    PutRequest:
      type: object
      properties:
        name:
          type: string
        annotations:
          type: object
          properties:
            openfaas:
              type: string
            customer:
              type: string
    GetFunctionFunctionidResponse:
      type: object
      properties:
        name:
          type: string
        image:
          type: string
        namespace:
          type: string
        envProcess:
          type: string
        labels:
          type: object
          properties:
            com.openfaas.scale.zero:
              type: string
            com.openfaas.scale.zero-duration:
              type: string
        annotations:
          type: object
        replicas:
          type: integer
        availableReplicas:
          type: integer
        createdAt:
          type: string
          format: date-time
        usage:
          type: object
          properties:
            cpu:
              type: number
            totalMemoryBytes:
              type: integer
    GetSystemFunctionEnvResponse:
      type: object
      properties:
        name:
          type: string
        image:
          type: string
        namespace:
          type: string
        envProcess:
          type: string
        labels:
          type: object
          properties:
            com.openfaas.scale.zero:
              type: string
            com.openfaas.scale.zero-duration:
              type: string
        annotations:
          type: object
        replicas:
          type: integer
        availableReplicas:
          type: integer
        createdAt:
          type: string
          format: date-time
        usage:
          type: object
          properties:
            cpu:
              type: number
            totalMemoryBytes:
              type: integer
    PutSystemFunctionsRequest:
      type: object
      properties:
        service:
          type: string
        image:
          type: string
        envProcess:
          type: string
        labels:
          type: object
          properties:
            com.openfaas.scale.zero:
              type: string
            com.openfaas.scale.zero-duration:
              type: string
        annotations:
          type: object
    PutSystemFunctionsResponse:
      type: object
      properties:
        name:
          type: string
        image:
          type: string
        namespace:
          type: string
        envProcess:
          type: string
        labels:
          type: object
          properties:
            com.openfaas.scale.zero:
              type: string
            com.openfaas.scale.zero-duration:
              type: string
        annotations:
          type: object
        replicas:
          type: integer
        availableReplicas:
          type: integer
        createdAt:
          type: string
          format: date-time
        usage:
          type: object
          properties:
            cpu:
              type: number
            totalMemoryBytes:
              type: integer
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: Alexellis
- name: Api
- name: Async Function
- name: Auth
- name: Function
- name: System