Modoboa Frontend API

The frontend API from Modoboa — 1 operation(s) for frontend.

Operations 1

GET /api/v2/frontend/plugins/ Frontend plugins list #

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/modoboa:modoboa-frontend-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

modoboa-frontend-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Modoboa Frontend API
  version: v2
servers:
- url: https://demo.modoboa.org/api/schema-v2/
  description: Remote Demo server
- url: https://localhost:5000/api/schema-v2/
  description: Local server
tags:
- name: Frontend
paths:
  /api/v2/frontend/plugins/:
    get:
      operationId: frontend_plugins_list
      description: Expose registered Modoboa plugins frontend manifest.
      tags:
      - Frontend
      security:
      - tokenAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FrontendPluginManifest'
          description: ''
      summary: Frontend plugins list
      x-summary-source: derived
components:
  schemas:
    FrontendRoute:
      type: object
      description: Serializer used to describe a frontend route exposed by a plugin.
      properties:
        name:
          type: string
        path:
          type: string
        component:
          type: string
        parent:
          type:
          - string
          - 'null'
        meta:
          type: object
          additionalProperties: {}
        props:
          type: object
          additionalProperties: {}
        children:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - component
      - name
      - path
    FormatEnum:
      enum:
      - esm
      - systemjs
      - var
      type: string
      description: '* `esm` - esm

        * `systemjs` - systemjs

        * `var` - var'
    FrontendPluginManifest:
      type: object
      description: Serializer used to expose a plugin manifest to the frontend.
      properties:
        name:
          type: string
        label:
          type: string
        remote:
          allOf:
          - $ref: '#/components/schemas/FrontendRemote'
        menu_entries:
          type: array
          items:
            $ref: '#/components/schemas/FrontendMenuEntry'
        routes:
          type: array
          items:
            $ref: '#/components/schemas/FrontendRoute'
        ui_extensions:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/FrontendUIExtension'
      required:
      - label
      - name
    CategoryEnum:
      enum:
      - admin
      - user
      - account
      type: string
      description: '* `admin` - admin

        * `user` - user

        * `account` - account'
    FrontendRemote:
      type: object
      description: Serializer describing a Module Federation remote exposed by a plugin.
      properties:
        name:
          type: string
        url:
          type: string
        format:
          allOf:
          - $ref: '#/components/schemas/FormatEnum'
          default: esm
      required:
      - name
      - url
    FrontendUIExtension:
      type: object
      description: 'Generic serializer for a UI extension descriptor.


        Plugin-specific shapes are validated against this loose schema; any

        extra keys declared by a plugin are passed through unchanged so that

        extension points can interpret them as needed on the frontend.'
      properties:
        name:
          type: string
        title:
          type:
          - string
          - 'null'
        component:
          type:
          - string
          - 'null'
        position:
          allOf:
          - $ref: '#/components/schemas/FrontendUIExtensionPosition'
        applies_to:
          type: array
          items:
            type: string
        props:
          type: object
          additionalProperties: {}
        summary:
          type: object
          additionalProperties: {}
      required:
      - name
    FrontendMenuEntry:
      type: object
      description: Serializer used to describe a menu entry exposed by a plugin.
      properties:
        label:
          type: string
        icon:
          type:
          - string
          - 'null'
        to:
          type:
          - string
          - 'null'
        url:
          type:
          - string
          - 'null'
        roles:
          type: array
          items:
            type: string
        category:
          allOf:
          - $ref: '#/components/schemas/CategoryEnum'
          default: admin
        children:
          type: array
          items:
            type: object
            additionalProperties: {}
      required:
      - label
    FrontendUIExtensionPosition:
      type: object
      description: Serializer describing where a UI extension item should be inserted.
      properties:
        after:
          type:
          - string
          - 'null'
        before:
          type:
          - string
          - 'null'
        at:
          type:
          - integer
          - 'null'
  securitySchemes:
    oauth2:
      type: oauth2
      flows: {}
    tokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"