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

# Create plugin

> Create a new plugin configuration



## OpenAPI

````yaml /swagger/5.12/ai-studio-swagger.yml post /api/v1/plugins
openapi: 3.0.1
info:
  title: Midsommar API
  description: This is the API for the Midsommar user and group management system.
  termsOfService: http://swagger.io/terms/
  contact:
    name: API Support
    url: http://www.swagger.io/support
    email: support@swagger.io
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: '1.0'
servers:
  - url: //localhost:8080/api/v1
security: []
paths:
  /api/v1/plugins:
    post:
      tags:
        - plugins
      summary: Create plugin
      description: Create a new plugin configuration
      requestBody:
        description: Plugin configuration
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/github_com_TykTechnologies_midsommar_v2_services.CreatePluginRequest
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.PluginResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api.ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    github_com_TykTechnologies_midsommar_v2_services.CreatePluginRequest:
      required:
        - command
        - name
      type: object
      properties:
        checksum:
          type: string
          description: Optional
        command:
          type: string
        config:
          type: object
          additionalProperties: true
        description:
          type: string
        hook_type:
          type: string
          description: Optional - will be populated from manifest
        hook_types:
          type: array
          items:
            type: string
        hook_types_customized:
          type: boolean
        is_active:
          type: boolean
        load_immediately:
          type: boolean
          description: Auto-load AI Studio plugins
        name:
          type: string
        namespace:
          type: string
        oci_reference:
          type: string
          description: OCI artifact reference
    api.PluginResponse:
      type: object
      properties:
        attributes:
          type: object
          properties:
            checksum:
              type: string
            command:
              type: string
            config:
              type: object
              additionalProperties: true
            created_at:
              type: string
            description:
              type: string
            hook_type:
              type: string
            is_active:
              type: boolean
            manifest:
              type: object
              additionalProperties: true
              description: Plugin manifest for UI extensions
            name:
              type: string
            namespace:
              type: string
            oci_reference:
              type: string
              description: OCI artifact reference (for OCI plugins)
            plugin_type:
              type: string
              description: '"gateway" or "ai_studio"'
            updated_at:
              type: string
        id:
          type: string
        relationships:
          type: object
          properties:
            llms:
              type: object
              properties:
                data:
                  type: array
                  items:
                    type: object
                    properties:
                      attributes:
                        type: object
                        properties:
                          active:
                            type: boolean
                          name:
                            type: string
                          vendor:
                            type: string
                      id:
                        type: string
                      type:
                        type: string
        type:
          type: string
    api.ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              detail:
                type: string
              title:
                type: string
      description: Error response model
  securitySchemes:
    BearerAuth:
      type: apiKey
      name: Authorization
      in: header

````