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

> ## Agent Instructions
> These docs cover three products: TrustGate (AI agent gateway), TrustGuard (runtime security), and TrustTest (AI red teaming). Start from each product overview for the definition and How it works. Prefer the .md URL next to a page in /llms.txt when you need the full article. Use /llms-full.txt for a single-file dump of the site.

# Install or request a Store server for a principal

> Runs the Store installer as the given user (their live access level applies): installs at once when allowed, records an approval request otherwise. Same outcome the user's own client would get.



## OpenAPI

````yaml /trustgate/api/openapi.json post /v1/gateways/{gateway_id}/store/principal/installs
openapi: 3.0.0
info:
  description: >-
    Administrative API for managing gateways and their registries, policies,
    consumers and auth credentials.
  title: TrustGate Admin API
  contact:
    name: NeuralTrust
    url: https://neuraltrust.ai/contact
    email: support@neuraltrust.ai
  version: '1.0'
servers:
  - url: /
security: []
paths:
  /v1/gateways/{gateway_id}/store/principal/installs:
    post:
      tags:
        - store
      summary: Install or request a Store server for a principal
      description: >-
        Runs the Store installer as the given user (their live access level
        applies): installs at once when allowed, records an approval request
        otherwise. Same outcome the user's own client would get.
      parameters:
        - description: Gateway id
          name: gateway_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/github_com_NeuralTrust_TrustGate_pkg_api_handler_http_store_request.Install
        description: Who and what
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/github_com_NeuralTrust_TrustGate_pkg_api_handler_http_store_response.Install
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/github_com_NeuralTrust_TrustGate_pkg_api_handler_http_httpio.ErrorBody
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/github_com_NeuralTrust_TrustGate_pkg_api_handler_http_httpio.ErrorBody
        '409':
          description: The principal's access level is None
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/github_com_NeuralTrust_TrustGate_pkg_api_handler_http_httpio.ErrorBody
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/github_com_NeuralTrust_TrustGate_pkg_api_handler_http_httpio.ErrorBody
      security:
        - BearerAuth: []
components:
  schemas:
    github_com_NeuralTrust_TrustGate_pkg_api_handler_http_store_request.Install:
      type: object
      properties:
        code:
          type: string
        groups:
          type: array
          items:
            type: string
        instance_id:
          type: string
        principal_sub:
          type: string
        reason:
          description: >-
            Reason is why the user wants the server, in their own words. Kept
            only on

            a request an approver has to decide, and shown to them there.
          type: string
    github_com_NeuralTrust_TrustGate_pkg_api_handler_http_store_response.Install:
      type: object
      properties:
        already_installed:
          type: boolean
        code:
          type: string
        instance_choices:
          type: array
          items:
            $ref: >-
              #/components/schemas/github_com_NeuralTrust_TrustGate_pkg_api_handler_http_store_response.InstanceChoice
        instance_id:
          type: string
        name:
          type: string
        pending:
          type: boolean
        requires_admin_setup:
          type: boolean
        requires_auth:
          type: boolean
        requires_config:
          type: boolean
        requires_instance_choice:
          type: boolean
        requires_reason:
          description: >-
            RequiresReason is an install the caller must ask about first: it is
            outside

            the user's access, so it files a request an approver decides on, and
            the

            requester's words are what they read. A caller whose view of the
            access

            level was stale asked for an install and gets this instead of a
            refusal.
          type: boolean
        status:
          type: string
    github_com_NeuralTrust_TrustGate_pkg_api_handler_http_httpio.ErrorBody:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
    github_com_NeuralTrust_TrustGate_pkg_api_handler_http_store_response.InstanceChoice:
      type: object
      properties:
        name:
          type: string
        registry_id:
          type: string
  securitySchemes:
    BearerAuth:
      type: apiKey
      name: Authorization
      in: header

````