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

# API do TikTok

> Opções para publicar usando a API do TikTok

<Info>
  O Ayrshare oferece [publicação direta de vídeos no TikTok](https://www.ayrshare.com/blog/introducing-tiktok-direct-publishing-analytics-and-commenting/), gerenciamento de comentários e obtenção de analytics avançadas para sua conta pessoal ou de negócios do TikTok usando a API do TikTok.

  O TikTok processa vídeos e fotos de forma assíncrona, portanto a resposta JSON terá status: "pending" tanto para publicações imediatas quanto para agendadas. Assim que o TikTok concluir o processamento, o [webhook Scheduled Action](/apis/webhooks/actions#scheduled-action) registrado será chamado.
</Info>

## Publicação de vídeo no TikTok

JSON para uma publicação de vídeo básica no TikTok, publicada diretamente:

```json TikTok Video Post theme={"system"}
{
  "post": "The best TikTok \n video ever #bestvideo", // Max 2,200 characters with a line break
  "mediaUrls": ["https://img.ayrshare.com/012/tiktok.mp4"],
  "platforms": ["tiktok"]
}
```

Exemplo de resposta JSON da publicação:

```json TikTok Video Post Response theme={"system"}
{
  "status": "success",
  "errors": [],
  "postIds": [
    {
      "status": "success",
      "idShare": "video.7088122496758679353.nzLqBWbf",
      "id": "pending",
      "isVideo": true,
      "platform": "tiktok"
    }
  ],
  "id": "lb42orDhySAZmLWtj6b6",
  "refId": "23a9da9e0df1184a7a6a1fc2c60b8023aa9a32a1",
  "post": "The best TikTok video ever #bestvideo"
}
```

<ul class="custom-bullets">
  <li>
    O TikTok atualmente não suporta quebras de linha no texto da publicação. Quebras de linha incluídas serão
    ignoradas.
  </li>

  <li>
    Pode ser publicado um vídeo ou até 35 imagens. O TikTok não suporta combinação de
    vídeo e imagens. Veja abaixo para mais detalhes.
  </li>

  <li>
    Se o vídeo não terminar em uma extensão conhecida, use
    [isVideo](/apis/post/overview#video-extension).
  </li>

  <li>
    O TikTok também suporta envio de mídia sem texto de publicação. Se você não quiser incluir texto na publicação,
    envie uma String vazia `post: ""`.
  </li>

  <li>
    Consulte as [Diretrizes de mídia do TikTok](/media-guidelines/tiktok) e a [Autorização do
    TikTok](/dashboard/connect-social-accounts/tiktok) para mais informações.
  </li>
</ul>

### Requisitos de vídeo do TikTok

<ul class="custom-bullets">
  <li>Consulte [Requisitos de vídeo do TikTok](/media-guidelines/tiktok#video).</li>

  <li>
    O vídeo deve terminar em uma extensão de vídeo conhecida, como mp4. Faça reverse proxy na URL,
    adicione uma [URL personalizada com um
    CDN](https://www.ayrshare.com/blog/how-to-put-a-cdn-in-front-of-firebase-cloud-storage/) ou use o
    endpoint [/media](/apis/media/overview).
  </li>

  <li>O limite de caracteres do texto de publicação do TikTok é 2.200.</li>
</ul>

<Note>
  O TikTok limita a publicação de vídeos via API a 6 vídeos por minuto, com um limite máximo de 15 vídeos por
  dia.
</Note>

## Publicação de imagens no TikTok

JSON para uma publicação básica de imagens (fotos) no TikTok, publicada diretamente:

```json TikTok Image Post theme={"system"}
{
  "post": "The best TikTok \n video ever #bestvideo", // Max 2,200 characters with a line break
  "mediaUrls": [
    "https://img.ayrshare.com/012/gb.jpg",
    "https://img.ayrshare.com/random/photo-1.jpg"
  ], // Up to 35 images
  "platforms": ["tiktok"]
}
```

Exemplo de resposta JSON:

```json TikTok Image Post Response theme={"system"}
{
  "status": "success",
  "errors": [],
  "postIds": [
    {
      "status": "success",
      "idShare": "p_pub_url~v2.7408974036430047275",
      "id": "pending",
      "isVideo": false,
      "platform": "tiktok"
    }
  ],
  "id": "8815mJ5bWApEebWjE233",
  "tikTokId": "p_pub_url~v2.7408974036430047333",
  "refId": "9abf1426d6ce9122ef11c72bd62e59807c5cc333",
  "post": "Opportunity is missed by most people because it is dressed in overalls and looks like work - Thomas Edison"
}
```

<ul class="custom-bullets">
  <li>
    O TikTok atualmente não suporta quebras de linha no texto da publicação. Quebras de linha incluídas serão
    ignoradas.
  </li>

  <li>Pode ser publicado um vídeo ou até 35 imagens.</li>

  <li>
    O TikTok não suporta combinação de vídeo e imagens. Veja abaixo para mais detalhes.
  </li>

  <li>As imagens devem ser do tipo JPG, JPEG ou WEBP. O TikTok não aceita arquivos de mídia PNG.</li>

  <li>
    Você também pode selecionar uma das imagens como foto de capa usando `imageCoverIndex`. Por padrão,
    a primeira imagem é usada. Veja abaixo para detalhes.
  </li>
</ul>

### Requisitos de imagem do TikTok

<ul class="custom-bullets">
  <li>Consulte [Requisitos de imagem do TikTok](/media-guidelines/tiktok#images).</li>
  <li>Até 35 imagens podem ser incluídas em uma publicação, com 20 MB por imagem.</li>
  <li>As imagens devem ser do tipo JPG, JPEG ou WEBP. O TikTok não aceita arquivos de mídia PNG.</li>
  <li>O limite de caracteres do texto de publicação do TikTok é 2.200.</li>
</ul>

<Note>
  O TikTok limita a publicação de imagens via API a 6 fotos por minuto, com um limite máximo de 15 fotos por
  dia.
</Note>

## Processamento do TikTok

O TikTok processa vídeos e imagens de forma assíncrona, portanto a resposta terá o campo `id` definido como `"pending"`.
Depois que o TikTok concluir o processamento, geralmente em 1 - 2 minutos, o campo `id` será atualizado com o `id` do vídeo no TikTok e um `postUrl` será adicionado.

<ul class="custom-bullets">
  <li>
    Você pode obter o status final da publicação do TikTok usando
    [webhooks](/apis/webhooks/actions#tiktok-publishing-webhook) ou o endpoint
    [/history](/apis/history/overview), que geralmente leva de 1 a 2 minutos para estar disponível.
  </li>

  <li>
    Quando o usuário publica o vídeo no aplicativo móvel do TikTok, um webhook "scheduled" será enviado
    com `subAction: "tikTokPublished"`.
  </li>

  <li>
    Um [primeiro comentário](/apis/post/overview#first-comment) em uma publicação do TikTok é adiado: é publicado
    automaticamente assim que o webhook `tikTokPublished` resolve o `id` real do vídeo, não no momento da publicação.
    O `visibility` do vídeo deve ser `public`; caso contrário, o primeiro comentário não poderá ser publicado e um
    erro de comentário será retornado.
  </li>

  <li>
    Se ocorrer um erro, como o TikTok não conseguir processar o vídeo ou testes internos do Ayrshare
    falharem, o campo `id` será definido como "failed" e o campo `errors` conterá os detalhes
    do erro.
  </li>

  <li>O `idShare` é usado para referência interna do vídeo pendente.</li>
</ul>

## Opções do TikTok

Ao publicar um vídeo ou imagens no TikTok, [opções adicionais](/apis/post/social-networks/tiktok#available-tiktok-options) estão disponíveis.

Exemplo de publicação de vídeo:

```json TikTok Video Publishing theme={"system"}
{
  "tikTokOptions": {
    "disableComments": true, // Default false. Disable comments on the published video.
    "disableDuet": true, // Default false. Disable duets on the published video.
    "disableStitch": true // Default false. Disable stitches on the published video.
  }
}
```

Exemplo de publicação de imagens:

```json TikTok Image Publishing theme={"system"}
{
  "tikTokOptions": {
    "imageCoverIndex": 1, // Use the second image in the mediaUrls.
    "title": "Amazing images"
  }
}
```

### Opções

As seguintes opções estão disponíveis para publicações do TikTok.
Devem ser adicionadas ao objeto `tikTokOptions`.
Veja abaixo mais detalhes sobre cada opção.

```json TikTok Options theme={"system"}
{
  "post": "The best TikTok video ever #bestvideo",
  "mediaUrls": ["https://img.ayrshare.com/012/tiktok.mp4"],
  "platforms": ["tiktok"],
  "tikTokOptions": {
    "autoAddMusic": true,
    "disableComments": true,
    "disableDuet": true,
    "disableStitch": true,
    "draft": true,
    "isAIGenerated": true,
    "isBrandedContent": true,
    "isBrandOrganic": true,
    "imageCoverIndex": 1,
    "title": "Amazing images",
    "thumbNailOffset": 30000,
    "visibility": "public"
  }
}
```

<ParamField body="autoAddMusic" type="boolean" default={false}>
  Define se música recomendada será automaticamente adicionada à publicação.
  Se você definir este campo como `true`, poderá alterar a música mais tarde no app do TikTok.

  Tipo de mídia: imagem
</ParamField>

<ParamField body="disableComments" type="boolean" default={false}>
  Se deve desabilitar comentários na publicação publicada.

  Tipo de mídia: vídeo, imagem
</ParamField>

<ParamField body="disableDuet" type="boolean" default={false}>
  Desabilita duets no vídeo publicado.

  Tipo de mídia: vídeo
</ParamField>

<ParamField body="disableStitch" type="boolean" default={false}>
  Desabilita stitch no vídeo publicado.

  Tipo de mídia: vídeo
</ParamField>

<ParamField body="draft" type="boolean" default={false}>
  Define se será criada uma publicação como rascunho.

  Consulte [opções de rascunho](/apis/post/social-networks/tiktok#tiktok-video-draft-post) para mais informações.

  Tipo de mídia: vídeo ou imagem
</ParamField>

<ParamField body="isAIGenerated" type="boolean" default={false}>
  Define se o toggle de conteúdo gerado por IA será habilitado para a publicação de vídeo.

  Se você habilitar esse toggle, seu vídeo será rotulado como "Creator labeled as AI-generated" ao ser publicado, e o rótulo não poderá ser alterado.
  O rótulo "Creator labeled as AI-generated" indica que o conteúdo foi totalmente gerado por IA ou significativamente editado com IA.

  <Note>
    Ativar a configuração de conteúdo gerado por IA não afetará a distribuição do seu vídeo, desde que
    ele não viole as [Diretrizes da Comunidade](https://www.tiktok.com/community-guidelines/en/) do TikTok.
  </Note>

  Tipo de mídia: vídeo
</ParamField>

<ParamField body="isBrandedContent" type="boolean" default={false}>
  Define se o toggle de <a href="https://creatormarketplace.tiktok.com/help#/doc/9493/10008169">Branded Content</a> será habilitado. Se este campo for definido como `true`, o vídeo será rotulado como Branded Content, indicando que você está em uma parceria paga com uma marca. Um rótulo "Paid partnership" será anexado ao vídeo.

  Tipo de mídia: vídeo, imagem
</ParamField>

<ParamField body="isBrandOrganic" type="boolean" default={false}>
  Define se o toggle de Brand Organic Content será habilitado. Se este campo for definido como `true`, o vídeo será rotulado como Brand Organic Content, indicando que você está promovendo a si mesmo ou seu próprio negócio. Um rótulo "Promotional content" será anexado ao vídeo.

  Tipo de mídia: vídeo, imagem
</ParamField>

<ParamField body="imageCoverIndex" type="number" default="0">
  O índice do `mediaUrls` a ser usado como capa da publicação.

  Tipo de mídia: imagem
</ParamField>

<ParamField body="title" type="string">
  O título da publicação.

  Tipo de mídia: imagem
</ParamField>

<ParamField body="thumbNailOffset" type="number">
  O frame a ser usado como capa do vídeo.

  Consulte [opções de thumbnail de vídeo](/apis/post/social-networks/tiktok#video-thumbnail) para mais informações.

  Tipo de mídia: vídeo
</ParamField>

<ParamField body="visibility" type="string" default="public">
  Como a publicação é compartilhada e quem pode vê-la.

  Valores: `public`, `private`, `followers` ou `friends`.

  Consulte [opções de visibilidade](/apis/post/social-networks/tiktok#visibility-options) para mais informações.

  Tipo de mídia: imagem
</ParamField>

### Opções de visibilidade

| Visibilidade | Descrição                                     |
| :----------- | :-------------------------------------------- |
| public       | Visível para todos os usuários do TikTok.     |
| private      | Privado, visível apenas para a própria conta. |
| followers    | Visível apenas para os seguidores da conta.   |
| friends      | Visível apenas para seguidores mútuos.        |

Publicações privadas permanecerão com status `pending` e nenhum webhook do TikTok será enviado até que a publicação seja tornada pública.

## Thumbnail de vídeo

Há duas maneiras de definir uma thumbnail, também conhecida como foto de capa, para um vídeo do TikTok:

1. Usando o parâmetro `thumbNailOffset` para definir um frame como thumbnail.
2. Usando o parâmetro `thumbNail` para definir uma imagem de thumbnail a partir de uma URL.

Apenas vídeos são suportados para a definição de thumbnail.

### Offset de thumbnail

Defina uma thumbnail para um vídeo do TikTok selecionando um frame por offset.

```json TikTok Video Thumbnail Offset theme={"system"}
{
  "tikTokOptions": {
    "thumbNailOffset": 30000 // milliseconds of offset image
  }
}
```

O offset é a posição em milissegundos do frame do thumbnail. O valor padrão é `0`, que é o primeiro frame do vídeo.

### URL do thumbnail

Defina uma thumbnail para um vídeo do TikTok fazendo upload de uma imagem a partir de uma URL.

```json TikTok Video Thumbnail URL theme={"system"}
{
  "tikTokOptions": {
    "thumbNail": "https://img.ayrshare.com/012/gb.jpg"
  }
}
```

Se você usar o parâmetro `thumbNail`, o parâmetro `thumbNailOffset` será ignorado.

Consulte [Requisitos de thumbnail do TikTok](/media-guidelines/tiktok#video-thumbnail) para mais informações.

## Menções no TikTok

Mencione outro usuário do TikTok adicionando `@handle` no texto da publicação. Por exemplo:

```json TikTok Mention theme={"system"}
{
  "post": "Love the @ayrshare social media api"
}
```

<Warning>
  Revise as [regras importantes](/testing/post-verification#mentions) sobre menções.
</Warning>

## Publicação de rascunho no TikTok

Crie uma publicação de rascunho para um vídeo ou imagem do TikTok, permitindo editar o vídeo ou imagem antes de publicar.

```json TikTok Video Draft Post theme={"system"}
{
  "post": "The best TikTok video ever #bestvideo", // empty string is allowed
  "mediaUrls": ["https://img.ayrshare.com/012/tiktok.mp4"],
  "platforms": ["tiktok"],
  "tikTokOptions": {
    "draft": true
  }
}
```

A publicação de rascunho de vídeo ou imagem estará disponível em **Inbox** de notificações, na barra inferior do aplicativo do TikTok.
Procure por uma mensagem **System notifications** e clique na mensagem no topo **Your content from Ayrshare is ready**.

A `postUrl` do Ayrshare permanecerá em status `pending` até que o vídeo seja publicado. O primeiro comentário não é suportado em publicações de rascunho.

<img src="https://mintcdn.com/ayrshare-docs/Nmrhj2Gh7WSf62Bh/images/apis/post/tiktok-draft-post.webp?fit=max&auto=format&n=Nmrhj2Gh7WSf62Bh&q=85&s=6e7fdce5ef106f6af6cd060bfbc446ba" alt="TikTok Draft Post" class="center" width="278" height="600" data-path="images/apis/post/tiktok-draft-post.webp" />

## Renovação de autorização

O TikTok deve ser reautorizado *todo ano* via página Social Accounts.

<ul class="custom-bullets">
  <li>
    Uma notificação por e-mail e webhook de ação social será enviada 15 dias antes da expiração da autorização.
  </li>

  <li>
    A data de renovação necessária e os dias restantes podem ser obtidos no
    endpoint [/user](/apis/user/overview).
  </li>
</ul>

## Limites de caracteres

Consulte [Limites de caracteres do TikTok](/help-center/technical-support/character_limits#tiktok-character-limits) para mais informações.

## Informações adicionais

[Exemplos adicionais sobre uso da API do TikTok](https://www.ayrshare.com/blog/tiktok-api-how-to-post-to-tiktok-using-a-social-media-api/).
