Fermyon channels API

The channels API from Fermyon — 6 operation(s) for channels.

Operations 10

GET /api/channels
POST /api/channels
GET /api/channels/{id}
PUT /api/channels/{id}
PATCH /api/channels/{id}
DELETE /api/channels/{id}
PUT /api/channels/{channelId}/desired-status
GET /api/channels/{id}/logs
GET /api/channels/{id}/logs/raw
GET /api/channels/{id}/healthz

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/fermyon-channels-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

fermyon-channels-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fermyon Cloud accounts Channels API
  version: '1.0'
  description: OpenAPI 3.1 specification for the Fermyon Cloud REST API, derived from the public swagger.json published in the fermyon/cloud-openapi repository on GitHub.
servers:
- url: https://cloud.fermyon.com
  description: Fermyon Cloud production API
security:
- Bearer: []
tags:
- name: channels
paths:
  /api/channels:
    get:
      tags:
      - channels
      parameters:
      - name: searchText
        in: query
        schema:
          type: string
          default: ''
      - name: pageIndex
        in: query
        schema:
          type: integer
          format: int32
          default: 0
      - name: pageSize
        in: query
        schema:
          type: integer
          format: int32
          default: 50
      - name: sortBy
        in: query
        schema:
          type: string
          default: Name
      - name: IsSortedAscending
        in: query
        schema:
          type: boolean
          default: true
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ChannelItemPage'
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelItemPage'
            text/json:
              schema:
                $ref: '#/components/schemas/ChannelItemPage'
    post:
      tags:
      - channels
      parameters:
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/CreateChannelCommand'
          application/json:
            schema:
              $ref: '#/components/schemas/CreateChannelCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/CreateChannelCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/CreateChannelCommand'
        required: true
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: string
                format: uuid
            application/json:
              schema:
                type: string
                format: uuid
            text/json:
              schema:
                type: string
                format: uuid
  /api/channels/{id}:
    get:
      tags:
      - channels
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ChannelItem'
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelItem'
            text/json:
              schema:
                $ref: '#/components/schemas/ChannelItem'
    put:
      tags:
      - channels
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateChannelCommand'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateChannelCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateChannelCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateChannelCommand'
        required: true
      responses:
        '200':
          description: Success
    patch:
      tags:
      - channels
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PatchChannelCommand'
          application/json:
            schema:
              $ref: '#/components/schemas/PatchChannelCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/PatchChannelCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PatchChannelCommand'
        required: true
      responses:
        '200':
          description: Success
    delete:
      tags:
      - channels
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
  /api/channels/{channelId}/desired-status:
    put:
      tags:
      - channels
      parameters:
      - name: channelId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateDesiredStatusCommand'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDesiredStatusCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateDesiredStatusCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateDesiredStatusCommand'
        required: true
      responses:
        '200':
          description: Success
  /api/channels/{id}/logs:
    get:
      tags:
      - channels
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: max
        in: query
        schema:
          type: integer
          format: int32
      - name: since
        in: query
        schema:
          type: string
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GetChannelLogsVm'
            application/json:
              schema:
                $ref: '#/components/schemas/GetChannelLogsVm'
            text/json:
              schema:
                $ref: '#/components/schemas/GetChannelLogsVm'
  /api/channels/{id}/logs/raw:
    get:
      tags:
      - channels
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: max
        in: query
        schema:
          type: integer
          format: int32
      - name: since
        in: query
        schema:
          type: string
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GetChannelRawLogsVm'
            application/json:
              schema:
                $ref: '#/components/schemas/GetChannelRawLogsVm'
            text/json:
              schema:
                $ref: '#/components/schemas/GetChannelRawLogsVm'
  /api/channels/{id}/healthz:
    get:
      tags:
      - channels
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: Api-Version
        in: header
        description: The requested API version
        schema:
          type: string
          default: '1.0'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/HealthCheckResult'
            application/json:
              schema:
                $ref: '#/components/schemas/HealthCheckResult'
            text/json:
              schema:
                $ref: '#/components/schemas/HealthCheckResult'
components:
  schemas:
    ApiHealthStatus:
      enum:
      - Healthy
      - Unhealthy
      - Degraded
      type: string
    GetChannelRawLogsVm:
      required:
      - entries
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/Entry'
      additionalProperties: false
    GuidNullableField:
      type: string
      properties:
        value:
          type: string
          format: uuid
          nullable: true
      additionalProperties: false
    UpdateDesiredStatusCommand:
      required:
      - channelId
      - desiredStatus
      type: object
      properties:
        channelId:
          type: string
          format: uuid
        desiredStatus:
          $ref: '#/components/schemas/DesiredStatus'
      additionalProperties: false
    ChannelItemPage:
      required:
      - isLastPage
      - items
      - pageIndex
      - pageSize
      - totalItems
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ChannelItem'
        totalItems:
          type: integer
          format: int32
        pageIndex:
          type: integer
          format: int32
        pageSize:
          type: integer
          format: int32
        isLastPage:
          type: boolean
          readOnly: true
      additionalProperties: false
    AppSummaryDto:
      required:
      - channels
      - id
      - name
      - storageId
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          minLength: 1
          type: string
        storageId:
          minLength: 1
          type: string
        channels:
          type: array
          items:
            $ref: '#/components/schemas/AppChannelListItem'
        lastModified:
          type: string
          format: date-time
      additionalProperties: false
    ChannelRevisionSelectionStrategyField:
      type: string
      properties:
        value:
          $ref: '#/components/schemas/ChannelRevisionSelectionStrategy'
      additionalProperties: false
    Meta:
      type: object
      properties:
        appId:
          type: string
        channelId:
          type: string
        deploymentId:
          type: string
        requestId:
          type: string
        triggerId:
          type: string
        componentId:
          type: string
      additionalProperties: false
    RevisionComponentDto:
      required:
      - id
      - name
      - source
      type: object
      properties:
        id:
          type: string
          format: uuid
        source:
          minLength: 1
          type: string
        name:
          minLength: 1
          type: string
        route:
          type: string
          nullable: true
        type:
          type: string
          nullable: true
      additionalProperties: false
    StringField:
      type: string
      properties:
        value:
          type: string
      additionalProperties: false
    UpdateChannelCommand:
      required:
      - id
      - name
      - revisionSelectionStrategy
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          minLength: 1
          type: string
        revisionSelectionStrategy:
          $ref: '#/components/schemas/ChannelRevisionSelectionStrategy'
        rangeRule:
          type: string
          nullable: true
        activeRevisionId:
          type: string
          format: uuid
          nullable: true
      additionalProperties: false
    DesiredStatus:
      enum:
      - Running
      - Dead
      type: string
    AppChannelListItem:
      required:
      - created
      - id
      - name
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          minLength: 1
          type: string
        activeRevisionNumber:
          type: string
        domain:
          type: string
        created:
          type: string
          format: date-time
        healthStatus:
          $ref: '#/components/schemas/ApiHealthStatus'
        lastModified:
          type: string
          format: date-time
      additionalProperties: false
    LogLine:
      type: object
      properties:
        time:
          type: string
        source:
          type: string
        line:
          type: string
      additionalProperties: false
    ChannelRevisionSelectionStrategy:
      enum:
      - UseRangeRule
      - UseSpecifiedRevision
      type: string
    Entry:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/Meta'
        logLines:
          type: array
          items:
            $ref: '#/components/schemas/LogLine'
      additionalProperties: false
    ChannelItem:
      required:
      - appId
      - desiredStatus
      - domain
      - environmentVariables
      - id
      - name
      - revisionSelectionStrategy
      type: object
      properties:
        id:
          type: string
          format: uuid
        appId:
          type: string
          format: uuid
        name:
          minLength: 1
          type: string
        domain:
          minLength: 1
          type: string
        revisionSelectionStrategy:
          $ref: '#/components/schemas/ChannelRevisionSelectionStrategy'
        desiredStatus:
          minLength: 1
          type: string
        activeRevision:
          $ref: '#/components/schemas/RevisionItem'
        lastPublishAt:
          type: string
          format: date-time
          nullable: true
        rangeRule:
          type: string
          nullable: true
        lastModified:
          type: string
          format: date-time
        appSummary:
          $ref: '#/components/schemas/AppSummaryDto'
        environmentVariables:
          type: array
          items:
            $ref: '#/components/schemas/EnvironmentVariableItem'
      additionalProperties: false
    CreateChannelCommand:
      required:
      - appId
      - name
      - revisionSelectionStrategy
      type: object
      properties:
        appId:
          type: string
          format: uuid
        name:
          minLength: 1
          type: string
        revisionSelectionStrategy:
          $ref: '#/components/schemas/ChannelRevisionSelectionStrategy'
        rangeRule:
          type: string
          nullable: true
        activeRevisionId:
          type: string
          format: uuid
          nullable: true
      additionalProperties: false
    RevisionItem:
      required:
      - appId
      - components
      - id
      - revisionNumber
      type: object
      properties:
        id:
          type: string
          format: uuid
        appId:
          type: string
          format: uuid
        revisionNumber:
          minLength: 1
          type: string
        components:
          type: array
          items:
            $ref: '#/components/schemas/RevisionComponentDto'
          readOnly: true
        lastModified:
          type: string
          format: date-time
      additionalProperties: false
    PatchChannelCommand:
      type: object
      properties:
        channelId:
          type: string
          format: uuid
        name:
          $ref: '#/components/schemas/StringField'
        domain:
          $ref: '#/components/schemas/StringField'
        revisionSelectionStrategy:
          $ref: '#/components/schemas/ChannelRevisionSelectionStrategyField'
        rangeRule:
          $ref: '#/components/schemas/StringField'
        activeRevisionId:
          $ref: '#/components/schemas/GuidNullableField'
      additionalProperties: false
    HealthCheckResult:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/ApiHealthStatus'
      additionalProperties: false
    GetChannelLogsVm:
      required:
      - logs
      type: object
      properties:
        logs:
          type: array
          items:
            type: string
      additionalProperties: false
    EnvironmentVariableItem:
      required:
      - channelId
      - key
      - value
      type: object
      properties:
        channelId:
          type: string
          format: uuid
        key:
          minLength: 1
          type: string
        value:
          minLength: 1
          type: string
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: apiKey
      description: 'JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"'
      name: Authorization
      in: header