> ## Documentation Index
> Fetch the complete documentation index at: https://microstrate-1133-notifications-prefs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a new stream

> Creates a new stream for message publishing



## OpenAPI

````yaml /api-reference/endpoint/storage/openapi.json post /storage/streams
openapi: 3.0.3
info:
  title: quiva.ai Gateway
  description: >-
    A comprehensive interface for managing key-value stores, object stores,
    streams, and search indexing
  contact:
    name: quiva.ai Support
    url: https://quiva.ai/help-center/
  version: 1.0.0
servers:
  - url: https://api.quiva.ai
    description: Production API server
security:
  - bearerAuth: []
  - apiKeyAuth: []
paths:
  /storage/streams:
    post:
      tags:
        - Streams
      summary: Create a new stream
      description: Creates a new stream for message publishing
      operationId: createStream
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateStreamRequest'
            examples:
              basic_stream:
                summary: Basic event stream
                value:
                  name: user-events
                  description: Stream for user activity events
                  subjects:
                    - events.user.*
              full_configuration:
                summary: Fully configured stream
                value:
                  name: order-processing
                  description: High-throughput order processing stream
                  subjects:
                    - orders.created
                    - orders.updated
                    - orders.completed
                    - orders.cancelled
                  max_consumers: 10
                  max_msgs: 5000000
                  max_bytes: 536870912
                  discard: 0
                  max_msgs_per_subject: 100000
                  max_msg_size: 65536
                  storage: file
                  num_replicas: 3
                  deny_delete: false
                  deny_purge: false
              mirror_stream:
                summary: Mirror stream from another source
                value:
                  name: orders-mirror
                  description: Mirror of order-processing stream
                  mirror:
                    name: order-processing
                    opt_start_seq: 1
                  storage: file
                  num_replicas: 2
              aggregated_stream:
                summary: Stream aggregating multiple sources
                value:
                  name: all-events
                  description: Aggregated stream from multiple sources
                  sources:
                    - name: user-events
                      filter_subject: events.user.login
                    - name: order-processing
                      filter_subject: orders.completed
                  storage: file
                  num_replicas: 2
              memory_stream:
                summary: In-memory stream for real-time processing
                value:
                  name: realtime-notifications
                  description: Fast in-memory stream for notifications
                  subjects:
                    - notifications.*
                  storage: memory
                  max_msgs: 10000
                  max_bytes: 10485760
                  num_replicas: 1
      responses:
        '200':
          $ref: '#/components/responses/SuccessResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    CreateStreamRequest:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: Name of the stream to create
        description:
          type: string
          description: Description of the stream
        subjects:
          type: array
          description: Subject patterns to capture
          items:
            type: string
        max_consumers:
          type: integer
          description: Maximum number of consumers
          minimum: 1
        max_msgs:
          type: integer
          description: Maximum number of messages
          minimum: 1
        max_bytes:
          type: integer
          description: Maximum size in bytes
          minimum: 1
        discard:
          type: integer
          description: Discard policy (0 = old, 1 = new)
          enum:
            - 0
            - 1
          default: 0
        max_msgs_per_subject:
          type: integer
          description: Maximum messages per subject
          minimum: 1
        max_msg_size:
          type: integer
          description: Maximum message size in bytes
          minimum: 1
        storage:
          $ref: '#/components/schemas/StorageType'
        num_replicas:
          type: integer
          description: Number of replicas
          minimum: 1
          default: 1
        mirror:
          $ref: '#/components/schemas/StreamSource'
        sources:
          type: array
          description: Optional sources configuration
          items:
            $ref: '#/components/schemas/StreamSource'
        sealed:
          type: boolean
          description: Whether the stream is sealed
          default: false
        deny_delete:
          type: boolean
          description: Whether deletes are denied
          default: false
        deny_purge:
          type: boolean
          description: Whether purges are denied
          default: false
    StorageType:
      type: string
      enum:
        - file
        - memory
    StreamSource:
      type: object
      required:
        - name
      properties:
        name:
          type: string
          description: Name of the source stream
        opt_start_seq:
          type: integer
          description: Optional starting sequence number
        opt_start_time:
          type: string
          format: date-time
          description: Optional starting time
        filter_subject:
          type: string
          description: Optional subject filter
        domain:
          type: string
          description: Optional domain
    SuccessMessage:
      type: object
      properties:
        message:
          type: string
          example: success
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Error message
  responses:
    SuccessResponse:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SuccessMessage'
          example:
            message: success
    BadRequestError:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: validation_error
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: unauthorized
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error: internal_error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key

````