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

# Send WhatsApp text message



## OpenAPI

````yaml /api-reference/openapi.json post /v1/messages
openapi: 3.0.0
info:
  title: Flowella REST API
  version: 2.1.0
  description: >-
    Public v1 HTTP API for Flowella. Authenticate with `Authorization: Bearer
    <api_key>` (`flo_` prefix). Canonical base: `https://api.flowella.io/v1`.
    Legacy `https://app.flowella.io/api/v1/...` requests are permanently
    redirected (308) to the canonical host, preserving method and body.
servers:
  - url: https://api.flowella.io
    description: Canonical API host
  - url: https://app.flowella.io
    description: Legacy app host — /api/v1 permanently redirects (308) to the API host /v1
security: []
tags:
  - name: System
    description: Health and auth checks
  - name: Messages
    description: Send WhatsApp messages
  - name: Conversations
    description: Inbox conversations
  - name: Contacts
    description: CRM contacts
  - name: Templates
    description: WhatsApp templates and bulk send
  - name: Analytics
    description: Usage and delivery metrics
paths:
  /v1/messages:
    post:
      tags:
        - Messages
      summary: Send WhatsApp text message
      operationId: v1SendMessage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                to:
                  type: string
                  minLength: 3
                  maxLength: 32
                text:
                  type: string
                  minLength: 1
                  maxLength: 4096
                whatsappChannelId:
                  type: string
                  format: cuid
              required:
                - to
                - text
              example:
                to: '+15551234567'
                text: Hello from Flowella API
      responses:
        '200':
          description: Message accepted and stored
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  conversationId:
                    type: string
                  contactId:
                    type: string
                  metaMessageId:
                    type: string
                    nullable: true
                required:
                  - id
                  - conversationId
                  - contactId
                  - metaMessageId
                example:
                  id: clxxxxxxxxxxxxxxxxxxxxxxxx
                  conversationId: clxxxxxxxxxxxxxxxxxxxxxxxx
                  contactId: clxxxxxxxxxxxxxxxxxxxxxxxx
                  metaMessageId: wamid.xxx
        '400':
          description: Validation or Meta error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
                example:
                  error:
                    code: UNAUTHORIZED
                    message: Invalid API key
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
                example:
                  error:
                    code: UNAUTHORIZED
                    message: Invalid API key
        '402':
          description: Payment required
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
                example:
                  error:
                    code: UNAUTHORIZED
                    message: Invalid API key
        '403':
          description: Forbidden (e.g. opt-out, Meta not connected)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
                example:
                  error:
                    code: UNAUTHORIZED
                    message: Invalid API key
        '404':
          description: Channel not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
                example:
                  error:
                    code: UNAUTHORIZED
                    message: Invalid API key
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                    required:
                      - code
                      - message
                required:
                  - error
                example:
                  error:
                    code: UNAUTHORIZED
                    message: Invalid API key
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: >-
        Organization API key (`flo_…`). Paste the full key; Scalar sends
        `Authorization: Bearer <key>`.

````