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

# Submit a mini-app version

> Submit changes to a mini-app with edit access. Check user identity, app edit permission, and editor access before sending a build.

The acting user must have `mini-apps:write`. An empty editor list allows everyone with that permission. When the list is nonempty, only selected editors and the owner can edit. Admins must also satisfy the editor restriction. Bare API keys and users excluded by a restricted list receive `403`. An invited user who loses edit permission cannot submit changes.

See [Mini-app editing access](https://docs.open.cx/build-agents/mini-apps.md) for invitations, ownership
transfer, and the difference between viewing and editing.


## OpenAPI

````yaml post /mini-apps/submit
openapi: 3.1.0
info:
  title: OpenCX API
  description: >

    OpenCX is an AI-powered, all-in-one platform for customer support and
    outbound communications.


    Use this API to manage your OpenCX organization's AI agents, actions,
    conversations, contacts, and more.


    To get started, generate a new API key from the dashboard.


    ## Authentication

    All API endpoints require authentication using a Bearer token. You can
    generate an API key from your OpenCX dashboard.


    ## Rate Limiting

    API requests are rate limited to ensure fair usage. The current limits are:

    - 100 requests per minute for standard endpoints

    - 1000 requests per minute for streaming endpoints


    ## Error Handling

    The API uses standard HTTP status codes and returns detailed error messages
    in the response body.
  version: 1.0-beta
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
  - url: http://localhost:8080
    description: Development
  - url: https://api.open.cx
    description: Production
security:
  - bearerAuth: []
paths:
  /mini-apps/submit:
    post:
      summary: Submit a built version of a mini app
      description: >-
        Requires an identified user with mini-apps:write. An empty editor list
        allows everyone with that permission; a nonempty list restricts editing
        to selected people and the owner. Admins also need editor access. Bare
        API keys cannot submit changes.
      operationId: submitMiniApp
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitMiniAppDto'
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitMiniAppResponseDto'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
components:
  schemas:
    SubmitMiniAppDto:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: '#/components/schemas/SubmitMiniAppDtoInput'
      type: object
      properties:
        app_id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        source:
          type: string
          minLength: 1
        code:
          type: string
          minLength: 1
        css:
          type: string
        target_surface:
          type: string
          enum:
            - inbox
            - dashboard
        declared_network:
          maxItems: 20
          type: array
          items:
            type: object
            properties:
              origin:
                type: string
                minLength: 1
                maxLength: 255
              reason:
                type: string
                minLength: 1
                maxLength: 300
            required:
              - origin
              - reason
        template:
          type: string
          maxLength: 100
        template_version:
          type: string
          maxLength: 100
      required:
        - app_id
        - source
        - code
        - css
    SubmitMiniAppResponseDto:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: '#/components/schemas/SubmitMiniAppResponseDto'
      type: object
      properties:
        app_id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        version_id:
          type: string
          format: uuid
          pattern: >-
            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        version:
          type: string
      required:
        - app_id
        - version_id
        - version
      additionalProperties: false
    ErrorDto:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
        error:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.