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

# Instagram

> Create a feed post, reel, or carousel for Instagram.

## Request Fields

| Field            | Required | Description                        |
| ---------------- | -------- | ---------------------------------- |
| `media_type`     | Yes      | `feed_post`, `reel`, or `carousel` |
| `caption`        | No       | Post caption (max 2,200 chars)     |
| `media_urls`     | Yes      | URLs of images/videos              |
| `hashtags`       | No       | Hashtags without # prefix          |
| `status`         | No       | `draft` or `scheduled`             |
| `scheduled_date` | No       | ISO 8601 date                      |

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.stover.app/v1/posts/instagram \
    -H "Authorization: Bearer stover_pk_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{
      "media_type": "feed_post",
      "caption": "Excited to share our latest update!",
      "media_urls": ["https://example.com/image.jpg"],
      "hashtags": ["product", "launch"],
      "status": "draft"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.stover.app/v1/posts/instagram', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer stover_pk_your_api_key',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      media_type: 'feed_post',
      caption: 'Excited to share our latest update!',
      media_urls: ['https://example.com/image.jpg'],
      hashtags: ['product', 'launch'],
      status: 'draft'
    })
  });
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      'https://api.stover.app/v1/posts/instagram',
      headers={
          'Authorization': 'Bearer stover_pk_your_api_key',
          'Content-Type': 'application/json'
      },
      json={
          'media_type': 'feed_post',
          'caption': 'Excited to share our latest update!',
          'media_urls': ['https://example.com/image.jpg'],
          'hashtags': ['product', 'launch'],
          'status': 'draft'
      }
  )
  ```
</CodeGroup>

## Media Types

| Type        | Description               |
| ----------- | ------------------------- |
| `feed_post` | Standard image post       |
| `reel`      | Video (up to 90 seconds)  |
| `carousel`  | Multiple media (up to 10) |


## OpenAPI

````yaml POST /v1/posts/instagram
openapi: 3.1.0
info:
  title: Stover API
  description: API for managing contacts and social media posts
  version: 1.0.0
  contact:
    email: support@stover.app
servers:
  - url: https://api.stover.app
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/posts/instagram:
    post:
      tags:
        - Posts
      summary: Create Instagram Post
      description: Create a feed post, reel, or carousel for Instagram.
      operationId: createInstagramPost
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstagramPostRequest'
      responses:
        '201':
          description: Post created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    InstagramPostRequest:
      type: object
      required:
        - media_type
      properties:
        media_type:
          type: string
          enum:
            - feed_post
            - reel
            - carousel
          description: Type of post
        caption:
          type: string
          description: Post caption (max 2,200 chars)
        media_urls:
          type: array
          items:
            type: string
          description: Media URLs
        hashtags:
          type: array
          items:
            type: string
        status:
          type: string
          enum:
            - draft
            - scheduled
          default: draft
        scheduled_date:
          type: string
          format: date-time
    SuccessResponse:
      type: object
      properties:
        success:
          type: boolean
        data:
          type: object
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
  responses:
    BadRequest:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key: Bearer stover_pk_...'

````