> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tai42.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List installed marketplace plugins

> The installed inventory from the local attribution store, each row enriched
with update availability from one registry pass.

For each row the registry's latest-published-version object gives ``latest``
(its version string, or ``null`` when the listing has no published version)
and ``update_available`` (``latest`` newer than the installed version). A
per-row not-found — the upstream listing vanished or was suspended — is row
STATE, not a route failure: that row answers ``latest: null``,
``update_available: false``, ``missing_upstream: true``, so one dead listing
never fails the whole inventory. A transport/garbled-upstream failure still
surfaces as a 502 — serving rows without update availability would be a silent
degrade of the spec'd shape.



## OpenAPI

````yaml /openapi.json get /api/marketplace/installed
openapi: 3.1.0
info:
  description: The operator HTTP surface served under /api/*.
  title: tai42-skeleton API
  version: 0.1.1
servers: []
security: []
paths:
  /api/marketplace/installed:
    get:
      tags:
        - marketplace
      summary: List installed marketplace plugins
      description: >-
        The installed inventory from the local attribution store, each row
        enriched

        with update availability from one registry pass.


        For each row the registry's latest-published-version object gives
        ``latest``

        (its version string, or ``null`` when the listing has no published
        version)

        and ``update_available`` (``latest`` newer than the installed version).
        A

        per-row not-found — the upstream listing vanished or was suspended — is
        row

        STATE, not a route failure: that row answers ``latest: null``,

        ``update_available: false``, ``missing_upstream: true``, so one dead
        listing

        never fails the whole inventory. A transport/garbled-upstream failure
        still

        surfaces as a 502 — serving rows without update availability would be a
        silent

        degrade of the spec'd shape.
      operationId: get_api_marketplace_installed
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data: {}
                required:
                  - data
                type: object
          description: Success.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Missing or invalid api key.
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Error.
      security:
        - ApiKeyAuth: []
components:
  schemas:
    Error:
      properties:
        error:
          type: string
      required:
        - error
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: x-api-key
      type: apiKey

````