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

# Create an app

> Creates an app in draft status, owned by the calling account. Only visible to the account until approved by the Vambe team.

Creates an app in `draft` status, owned by the calling account. The app stays
visible only to your account until the Vambe team approves it; once approved it
becomes installable by any account. The response includes the `signing_secret`
used to sign webhook payloads — store it securely, it is shown only on create
and on [rotate](/reference/app-platform/rotate-secret).


## OpenAPI

````yaml post /api/ecommerce-app
openapi: 3.0.0
info:
  title: Vambe AI API
  description: Vambe AI documentation
  version: '1.0'
  contact: {}
servers:
  - url: https://api.vambe.me
    description: Production Server
security: []
tags:
  - name: Vambe AI
    description: ''
paths:
  /api/ecommerce-app:
    post:
      tags:
        - Custom Ecommerce Apps · Management
      summary: Create an app
      description: >-
        Creates an app in draft status, owned by the calling account. Only
        visible to the account until approved by the Vambe team.
      operationId: EcommerceAppController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEcommerceAppDto'
      responses:
        '201':
          description: ''
components:
  schemas:
    CreateEcommerceAppDto:
      type: object
      properties:
        name:
          type: string
          minLength: 2
        slug:
          type: string
          minLength: 2
          pattern: ^[a-z0-9-]+$
        description:
          type: string
          minLength: 1
        logo_url:
          type: string
          format: uri
        website_url:
          type: string
          format: uri
        developer_name:
          type: string
          minLength: 1
        contact_email:
          type: string
          format: email
          pattern: >-
            ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
        contact_phone:
          type: string
          minLength: 5
        oauth:
          type: object
          properties:
            authorize_url:
              type: string
              format: uri
            token_url:
              type: string
              format: uri
            client_id:
              type: string
              minLength: 1
            client_secret:
              type: string
              minLength: 1
            scopes:
              default: []
              type: array
              items:
                type: string
            account_info_url:
              type: string
              format: uri
        capabilities:
          type: object
          properties:
            inbound_events:
              default: []
              type: array
              items:
                type: string
                enum:
                  - order
                  - checkout
                  - fulfillment
                  - product
            outbound:
              default: {}
              type: object
              properties:
                products_list:
                  type: object
                  properties:
                    url:
                      type: string
                      format: uri
                  required:
                    - url
                order_get:
                  type: object
                  properties:
                    url:
                      type: string
                      format: uri
                  required:
                    - url
                stock_get:
                  type: object
                  properties:
                    url:
                      type: string
                      format: uri
                  required:
                    - url
                checkout_create:
                  type: object
                  properties:
                    url:
                      type: string
                      format: uri
                  required:
                    - url
                customer_get:
                  type: object
                  properties:
                    url:
                      type: string
                      format: uri
                  required:
                    - url
      required:
        - name
        - description
        - logo_url
        - developer_name
        - contact_email
        - contact_phone
        - oauth
        - capabilities

````