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

# Send Instagram Audio

> Send an Instagram audio message to an existing contact through FlowIQ, using your organization's API key.

<Note>
  These Instagram endpoints are prepared for rollout and are not yet deployed.
</Note>

Send an audio message to an existing Instagram contact. Use the same organization `fiq_` API key as WhatsApp.

## Basic Usage

```bash theme={null}
curl -X POST "https://api.flowiq.live/send-instagram" \
  -H "Authorization: Bearer fiq_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "instagram_id": "17841400000000000",
    "message_type": "audio",
    "media_url": "https://example.com/message.mp3"
  }'
```

## Request Body

| Field | Type | Required | Description |
| - | - | - | - |
| `instagram_id` | string | One recipient identifier | Instagram-scoped ID, supplied as a string |
| `contact_id` | string | One recipient identifier | FlowIQ contact UUID, as an alternative to `instagram_id` |
| `message_type` | string | Yes | Must be `"audio"` |
| `media_url` | string | Yes | Publicly accessible HTTPS URL for the media |

Use a contact belonging to the API key's organization. A username or phone number cannot replace `instagram_id`. If both identifiers are supplied, they must refer to the same contact. Find an ID with [Instagram Conversations](/flowiq-api-reference/endpoint/instagram-conversations).

Keep the source URL available: FlowIQ stores that URL in the inbox. Send a caption separately using [Send Instagram Text](/flowiq-api-reference/endpoint/send-instagram-text); a combined caption and media request is rejected.

## Response

### Success (200)

```json theme={null}
{
  "success": true,
  "message_id": "ig.message.example",
  "recipient_id": "17841400000000000",
  "message_type": "audio",
  "contact": {
    "id": "00000000-0000-4000-8000-000000000003",
    "name": "Customer",
    "instagram_username": "customer"
  }
}
```

`message_id` is the Instagram message ID. Success means Instagram accepted the message; delivery and read receipts arrive separately when recorded.

### Errors

Errors include `success: false` and an `error` string. Invalid input returns `400`, an invalid or expired key returns `401`, and an unknown contact returns `404`.

`502` or `504` can mean the send outcome is unknown. Read the conversation before retrying; the sender does not retry automatically.

## Webhook Events

Register `platform: "instagram"` on [Create Webhook](/flowiq-api-reference/endpoint/create-webhook). See [Instagram event payloads](/flowiq-api-reference/webhooks#instagram-events), delivery authentication and signing.


## OpenAPI

````yaml flowiq-api-reference/openapi-instagram-send-audio.json POST /send-instagram
openapi: 3.1.0
info:
  title: FlowIQ - Send Instagram Audio
  version: 1.0.0
  description: >-
    Prepared for rollout; not yet deployed. Instagram messaging through FlowIQ,
    using the same organization API key as WhatsApp.
servers:
  - url: https://api.flowiq.live
    description: FlowIQ Production API
security:
  - BearerAuth: []
paths:
  /send-instagram:
    post:
      tags:
        - Instagram
      summary: Send Instagram Audio
      description: >-
        Send an Instagram audio message to an existing contact through FlowIQ,
        using your organization's API key.
      operationId: sendInstagramAudio
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              anyOf:
                - required:
                    - contact_id
                - required:
                    - instagram_id
              properties:
                contact_id:
                  type: string
                  format: uuid
                instagram_id:
                  type: string
                  description: Instagram-scoped recipient ID as a string
                message_type:
                  type: string
                  enum:
                    - audio
                media_url:
                  type: string
                  format: uri
                  description: >-
                    Required for media: publicly accessible HTTPS URL. Keep the
                    source available; the inbox stores this URL.
              example:
                instagram_id: '17841400000000000'
                message_type: audio
                media_url: https://example.com/message.mp3
              required:
                - message_type
                - media_url
      responses:
        '200':
          description: Message accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message_id:
                    type:
                      - string
                      - 'null'
                    description: Instagram message ID
                  recipient_id:
                    type: string
                  message_type:
                    type: string
                  contact:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      name:
                        type:
                          - string
                          - 'null'
                      instagram_username:
                        type:
                          - string
                          - 'null'
              example:
                success: true
                message_id: ig.message.example
                recipient_id: '17841400000000000'
                message_type: audio
                contact:
                  id: 00000000-0000-4000-8000-000000000003
                  name: Customer
                  instagram_username: customer
        '400':
          description: Invalid input or Instagram is not connected
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  error:
                    type: string
        '401':
          description: Missing, expired or revoked fiq_ API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  error:
                    type: string
        '404':
          description: Contact not found in the API key’s organization
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  error:
                    type: string
        '500':
          description: >-
            Send or database operation failed; check the conversation before
            retrying an ambiguous send
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  error:
                    type: string
        '502':
          description: >-
            The send did not return a message ID. Outcome unknown; check the
            conversation before retrying.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  error:
                    type: string
        '504':
          description: Send outcome unknown. Read the conversation before retrying.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    const: false
                  error:
                    type: string
      security:
        - BearerAuth: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your FlowIQ API key (from Settings → Profile → API Keys), sent as a
        bearer token. Format: `Bearer fiq_YOUR_API_KEY`
      bearerFormat: fiq_ API key

````

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