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

# Criar contêiner

> Primeira etapa da publicação: envie a URL do arquivo e a legenda.

Cria o contêiner e devolve o `creation_id`, que é consumido por [Publicar](https://developers.datafyapi.com.br/api-reference/instagram/publicacoes/publicar.md).

O contêiner **não aparece no feed**. Ele é um rascunho do lado da Meta e expira sozinho se não for publicado.

## Imagem

```json theme={null}
{
  "image_url": "https://exemplo.com/foto.jpg",
  "caption": "Lançamento da semana. #novidade"
}
```

O `media_type` pode ser omitido: a ausência equivale a `IMAGE`.

## Reel

```json theme={null}
{
  "media_type": "REELS",
  "video_url": "https://exemplo.com/video.mp4",
  "caption": "Bastidores da produção."
}
```

> [!WARNING]
>
> Para vídeo, a resposta `200` **não significa que o arquivo foi aceito**. A Meta baixa e processa o vídeo depois de responder. Um `video_url` inexistente também devolve um `creation_id` válido, e a falha só aparece em [Consultar status](https://developers.datafyapi.com.br/api-reference/instagram/publicacoes/status.md).

## Carrossel

Cada item é um contêiner próprio, criado com `is_carousel_item: true` e **sem legenda**:

```json theme={null}
{ "image_url": "https://exemplo.com/foto-1.jpg", "is_carousel_item": true }
```

Com os IDs em mãos, crie o contêiner do carrossel, aí sim com a legenda:

```json theme={null}
{
  "media_type": "CAROUSEL",
  "caption": "Três novidades desta semana.",
  "children": ["17900000000000003", "17900000000000004"]
}
```

São aceitos de 2 a 10 itens. O contêiner do carrossel é o que vai para `media_publish`; os filhos não são publicados individualmente.

## Legenda

A legenda aceita quebras de linha, hashtags e menções. Menção só notifica se o perfil mencionado existir.


## OpenAPI

````yaml api-reference/instagram/specs/pub-container.json POST /ig/me/media
openapi: 3.1.0
info:
  title: Datafy API — Criar contêiner
  version: 1.0.0
servers:
  - url: https://cloud.datafyapi.com.br
    description: Produção
security:
  - bearerAuth: []
paths:
  /ig/me/media:
    post:
      summary: Criar contêiner
      operationId: igCriarContainer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                media_type:
                  type: string
                  enum:
                    - IMAGE
                    - REELS
                    - STORIES
                    - CAROUSEL
                  description: Omitido equivale a `IMAGE`.
                image_url:
                  type: string
                  format: uri
                  description: Obrigatório para imagem. URL pública e direta.
                  example: https://exemplo.com/foto.jpg
                video_url:
                  type: string
                  format: uri
                  description: Obrigatório para `REELS`. URL pública e direta.
                caption:
                  type: string
                  description: Legenda da publicação. Aceita hashtags e menções.
                  example: 'Lançamento da semana. #novidade'
                is_carousel_item:
                  type: boolean
                  description: Marca o contêiner como item de um carrossel.
                children:
                  type: array
                  items:
                    type: string
                  description: Só em `CAROUSEL`. IDs dos contêineres filhos, de 2 a 10.
                location_id:
                  type: string
                  description: ID da localização a marcar.
            example:
              image_url: https://exemplo.com/foto.jpg
              caption: 'Lançamento da semana. #novidade'
      responses:
        '200':
          description: Operação aceita.
          content:
            application/json:
              example:
                id: '17900000000000002'
        '400':
          description: Erro retornado pela Meta.
          content:
            application/json:
              example:
                error:
                  message: Invalid parameter
                  type: OAuthException
                  code: 100
                  error_subcode: 2207076
                  error_user_title: Falha ao baixar a mídia.
        '401':
          description: Token ausente ou inválido.
          content:
            application/json:
              example:
                statusCode: 401
                message: Token inválido ou não encontrado.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Token do canal do Instagram, gerado no painel da Datafy. Formato:
        `sk_live_xxx`.

````

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