Antfly Installed API

PostgreSQL-style installed extension lifecycle.

Operations 9

GET /extensions/v1/installed List installed extensions #
POST /extensions/v1/installed/{name} Install a package as an extension #
GET /extensions/v1/installed/{name} Get an installed extension #
POST /extensions/v1/installed/{name}/update Update an installed extension #
POST /extensions/v1/installed/{name}/drop Drop an installed extension #
GET /extensions/v1/installed/{name}/objects List objects owned by an installed extension #
POST /extensions/v1/installed/{name}/enable Enable a disabled installed extension #
POST /extensions/v1/installed/{name}/disable Disable an installed extension without dropping owned state #
PUT /extensions/v1/installed/{name}/config Replace installed extension configuration #

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/antfly:antfly-installed-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

antfly-installed-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Antfly Public Installed API
  version: v1alpha1
  description: Joined public contract for the Antfly server. Antfly APIs are served under `/db/v1`, auth APIs under `/auth/v1`, inference APIs under `/ai/v1`, ML prediction APIs under `/ml/v1`, and extension lifecycle APIs under `/extensions/v1`.
servers:
- url: /
security:
- BasicAuth: []
- ApiKeyAuth: []
- BearerAuth: []
tags:
- name: Installed
  x-displayName: Installed Extensions
  description: PostgreSQL-style installed extension lifecycle.
paths:
  /extensions/v1/installed:
    get:
      tags:
      - Installed
      operationId: listInstalledExtensions
      summary: List installed extensions
      responses:
        '200':
          description: Installed extensions.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/InstalledExtension'
  /extensions/v1/installed/{name}:
    post:
      tags:
      - Installed
      operationId: installExtension
      summary: Install a package as an extension
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/ExtensionIdentifier'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstallExtensionRequest'
      responses:
        '200':
          description: Installed extension or dry-run result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstalledExtension'
    get:
      tags:
      - Installed
      operationId: getInstalledExtension
      summary: Get an installed extension
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/ExtensionIdentifier'
      responses:
        '200':
          description: Installed extension.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstalledExtension'
  /extensions/v1/installed/{name}/update:
    post:
      tags:
      - Installed
      operationId: updateInstalledExtension
      summary: Update an installed extension
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/ExtensionIdentifier'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateExtensionRequest'
      responses:
        '200':
          description: Updated extension or dry-run result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstalledExtension'
  /extensions/v1/installed/{name}/drop:
    post:
      tags:
      - Installed
      operationId: dropInstalledExtension
      summary: Drop an installed extension
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/ExtensionIdentifier'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DropExtensionRequest'
      responses:
        '200':
          description: Drop result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DropExtensionResponse'
  /extensions/v1/installed/{name}/objects:
    get:
      tags:
      - Installed
      operationId: listInstalledExtensionObjects
      summary: List objects owned by an installed extension
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/ExtensionIdentifier'
      responses:
        '200':
          description: Extension member objects.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExtensionMember'
  /extensions/v1/installed/{name}/enable:
    post:
      tags:
      - Installed
      operationId: enableInstalledExtension
      summary: Enable a disabled installed extension
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/ExtensionIdentifier'
      responses:
        '200':
          description: Enabled extension.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstalledExtension'
  /extensions/v1/installed/{name}/disable:
    post:
      tags:
      - Installed
      operationId: disableInstalledExtension
      summary: Disable an installed extension without dropping owned state
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/ExtensionIdentifier'
      responses:
        '200':
          description: Disabled extension.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstalledExtension'
  /extensions/v1/installed/{name}/config:
    put:
      tags:
      - Installed
      operationId: configureInstalledExtension
      summary: Replace installed extension configuration
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/ExtensionIdentifier'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfigureExtensionRequest'
      responses:
        '200':
          description: Reconfigured extension.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstalledExtension'
components:
  schemas:
    InstallExtensionRequest:
      type: object
      properties:
        version:
          type: string
        scope:
          $ref: '#/components/schemas/ExtensionScope'
        config_json:
          type: string
          default: '{}'
        grants:
          type: array
          items:
            $ref: '#/components/schemas/Capability'
        dry_run:
          type: boolean
          default: false
      required:
      - scope
    DataShapeKind:
      type: string
      enum:
      - document
      - row
      - generated_artifact
      - extension_relation
      - endpoint_schema
      - tool_schema
    ExtensionScope:
      type: object
      properties:
        kind:
          $ref: '#/components/schemas/ExtensionScopeKind'
        table_name:
          type: string
          description: Required when kind is table.
      required:
      - kind
    UpdateExtensionRequest:
      type: object
      properties:
        target_version:
          type: string
        dry_run:
          type: boolean
          default: false
    ExtensionScopeKind:
      type: string
      enum:
      - cluster
      - table
      - embedded_db
    DropExtensionResponse:
      type: object
      properties:
        dropped:
          $ref: '#/components/schemas/ExtensionIdentifier'
        dry_run:
          type: boolean
          default: false
      required:
      - dropped
      - dry_run
    Capability:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/CapabilityName'
          example: read:table
        scope:
          type: string
          example: memoryaf.memories
      required:
      - name
    ExtensionIdentifier:
      type: string
      pattern: ^[A-Za-z0-9_.-]+$
      description: Path-safe extension or package identifier.
    ExtensionObjectKind:
      type: string
      enum:
      - data_shape
      - table_schema
      - extension_relation
      - generated_artifact
      - index
      - enrichment
      - resolver
      - mcp_tool
      - skill
      - agent
      - query_function
      - api_endpoint
      - a2a_agent
      - auth_policy
      - workflow
      - maintenance_task
      - provider_config
      - text_analyzer
      - text_tokenizer
      - provider_adapter
      - connector
      - index_backend
    InstalledExtension:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/ExtensionIdentifier'
        package_name:
          $ref: '#/components/schemas/ExtensionIdentifier'
        package_version:
          type: string
        package_digest:
          type: string
        scope:
          $ref: '#/components/schemas/ExtensionScope'
        config_json:
          type: string
          default: '{}'
        granted_capabilities:
          type: array
          items:
            $ref: '#/components/schemas/Capability'
        installed_at_epoch_ms:
          type: integer
          format: int64
        status:
          type: string
          enum:
          - installing
          - ready
          - disabled
          - updating
          - dropping
          - error_state
      required:
      - name
      - package_name
      - package_version
      - package_digest
      - scope
      - status
    CapabilityName:
      type: string
      pattern: ^[A-Za-z0-9_.:-]+$
      description: Capability identifier. Capability names may use colon-delimited namespaces such as read:table.
    DropExtensionRequest:
      type: object
      properties:
        mode:
          type: string
          enum:
          - restrict
          - cascade
          default: restrict
        dry_run:
          type: boolean
          default: false
    ExtensionMember:
      type: object
      properties:
        extension_name:
          $ref: '#/components/schemas/ExtensionIdentifier'
        scope:
          $ref: '#/components/schemas/ExtensionScope'
        object_kind:
          $ref: '#/components/schemas/ExtensionObjectKind'
        object_name:
          $ref: '#/components/schemas/ExtensionIdentifier'
        table_name:
          type: string
        shape_kind:
          $ref: '#/components/schemas/DataShapeKind'
        shape_name:
          type: string
        shape_version:
          type: string
        owner_metadata_json:
          type: string
          default: '{}'
      required:
      - extension_name
      - scope
      - object_kind
      - object_name
    ConfigureExtensionRequest:
      type: object
      properties:
        config_json:
          type: string
          default: '{}'
      required:
      - config_json
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
    BearerAuth:
      type: http
      scheme: bearer
x-tagGroups:
- name: Antfly
  tags:
  - cluster_management
  - table_management
  - data_operations
  - query_operations
  - index_management
- name: Auth
  tags:
  - User
  - Permission
  - ApiKey
  - RowFilter
- name: Inference
  tags: []
- name: Extensions
  tags:
  - Packages
  - Installed