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

# Campaigns - Send

> Send a campaign to a list of phone numbers, now or at a scheduled time. Up to 1000 contacts per request; duplicates are removed. The send is queued and processed in the background. Rate limit: 10 requests per second.



## OpenAPI

````yaml post /api/campaigns/send
openapi: 3.1.0
info:
  title: Simio API - campaigns
  version: 2.0.0
servers:
  - url: https://getsimio.app
security: []
paths:
  /api/campaigns/send:
    post:
      tags:
        - campaigns-send
      summary: Campaigns - Send
      description: >-
        Send a campaign to a list of phone numbers, now or at a scheduled time.
        Up to 1000 contacts per request; duplicates are removed. The send is
        queued and processed in the background. Rate limit: 10 requests per
        second.
      operationId: send_campaign_api_campaigns_send_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignSendRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendAcceptedResponse'
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Missing or invalid `simio-api-key`.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Your company has no active subscription.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Campaign not found.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Campaign has already been sent.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: >-
            Invalid request, no WhatsApp template selected, or no connected
            WhatsApp account assigned.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitResponse'
          description: Rate limit exceeded.
      security:
        - SimioApiKey: []
components:
  schemas:
    CampaignSendRequest:
      properties:
        campaign_id:
          description: ID of the campaign to send.
          examples:
            - 123
          title: Campaign Id
          type: integer
        contacts:
          description: >-
            Recipient phone numbers in E.164 format (up to 1000 per request;
            duplicates are removed).
          examples:
            - - '33612345678'
              - '33698765432'
          items:
            pattern: ^\+?[1-9]\d{6,14}$
            type: string
          title: Contacts
          type: array
        is_forced:
          default: false
          description: Bypass the account's delivery-hours and opt-out checks.
          examples:
            - false
          title: Is Forced
          type: boolean
        scheduled_at:
          anyOf:
            - maxLength: 64
              type: string
            - type: 'null'
          description: >-
            ISO 8601 datetime to schedule the send for; omit to send
            immediately.
          examples:
            - '2025-09-01T09:00:00Z'
          title: Scheduled At
      required:
        - campaign_id
        - contacts
      title: CampaignSendRequest
      type: object
    SendAcceptedResponse:
      properties:
        batch_id:
          description: Identifier of this send batch.
          examples:
            - '1759842000000'
          title: Batch Id
          type: string
        contacts:
          description: Number of contacts the send was queued for.
          examples:
            - 2
          title: Contacts
          type: integer
        status:
          const: accepted
          description: >-
            Always `accepted`: the send is queued and processed in the
            background.
          examples:
            - accepted
          title: Status
          type: string
      required:
        - status
        - batch_id
        - contacts
      title: SendAcceptedResponse
      type: object
    ErrorResponse:
      properties:
        detail:
          description: Human-readable error message.
          examples:
            - Invalid API key
          title: Detail
          type: string
      required:
        - detail
      title: ErrorResponse
      type: object
    RateLimitResponse:
      properties:
        error:
          description: Rate limit that was exceeded.
          examples:
            - 'Rate limit exceeded: 10 per 1 second'
          title: Error
          type: string
      required:
        - error
      title: RateLimitResponse
      type: object
  securitySchemes:
    SimioApiKey:
      description: >-
        Company API key, created in Settings > Integrations & developers >
        Credentials.
      in: header
      name: simio-api-key
      type: apiKey

````

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