> ## 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 de TikTok

> Opciones para publicar usando la API de TikTok

<Info>
  Ayrshare ofrece [publicación directa de videos de TikTok](https://www.ayrshare.com/blog/introducing-tiktok-direct-publishing-analytics-and-commenting/), gestión de comentarios y obtención de analíticas avanzadas para tu cuenta personal o business de TikTok usando la API de TikTok.

  TikTok procesa videos y fotos de forma asíncrona, por lo que la respuesta JSON tendrá status: "pending" tanto para publicaciones inmediatas como programadas. Una vez que TikTok complete el procesamiento, se llamará al [webhook Scheduled Action](/apis/webhooks/actions#scheduled-action) que hayas registrado.
</Info>

## Publicación de video en TikTok

JSON para una publicación básica de video en TikTok que se publica directamente:

```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"]
}
```

Ejemplo de respuesta JSON de la publicación:

```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>
    TikTok actualmente no admite saltos de línea en el texto de la publicación. Los saltos de línea incluidos serán
    ignorados.
  </li>

  <li>
    Se puede publicar un video o hasta 35 imágenes. TikTok no admite combinar
    video e imágenes. Consulta a continuación más detalles.
  </li>

  <li>
    Si el video no termina con una extensión conocida, usa
    [isVideo](/apis/post/overview#video-extension).
  </li>

  <li>
    TikTok también admite el envío de medios sin texto de publicación. Si no quieres incluir texto en la publicación,
    envía una cadena vacía `post: ""`.
  </li>

  <li>
    Consulta las [Directrices de medios de TikTok](/media-guidelines/tiktok) y la [Autorización de TikTok](/dashboard/connect-social-accounts/tiktok) para más información.
  </li>
</ul>

### Requisitos de video de TikTok

<ul class="custom-bullets">
  <li>Consulta los [Requisitos de video de TikTok](/media-guidelines/tiktok#video).</li>

  <li>
    El video debe terminar con una extensión de video conocida como mp4. Puedes hacer reverse proxy de la URL,
    añadir una [URL personalizada con un
    CDN](https://www.ayrshare.com/blog/how-to-put-a-cdn-in-front-of-firebase-cloud-storage/), o usar el
    endpoint [/media](/apis/media/overview).
  </li>

  <li>El límite de caracteres del texto de la publicación en TikTok es de 2200.</li>
</ul>

<Note>
  TikTok limita la publicación de videos por la API a 6 videos por minuto con un límite superior de 15 videos por
  día.
</Note>

## Publicación de imagen en TikTok

JSON para una publicación básica de imagen (foto) en TikTok que se publica directamente:

```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"]
}
```

Ejemplo de respuesta 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>
    TikTok actualmente no admite saltos de línea en el texto de la publicación. Los saltos de línea incluidos serán
    ignorados.
  </li>

  <li>Se puede publicar un video o hasta 35 imágenes.</li>

  <li>
    TikTok no admite combinar video e imágenes. Consulta a continuación más detalles.
  </li>

  <li>Las imágenes deben ser de tipo JPG, JPEG o WEBP. TikTok no acepta archivos de medios PNG.</li>

  <li>
    También puedes seleccionar una de las imágenes como foto de portada con `imageCoverIndex`. Por defecto,
    se usa la primera imagen. Consulta más detalles a continuación.
  </li>
</ul>

### Requisitos de imagen de TikTok

<ul class="custom-bullets">
  <li>Consulta los [Requisitos de imagen de TikTok](/media-guidelines/tiktok#images).</li>
  <li>Se pueden incluir hasta 35 imágenes en una publicación, con un máximo de 20 MB por imagen.</li>
  <li>Las imágenes deben ser de tipo JPG, JPEG o WEBP. TikTok no acepta archivos de medios PNG.</li>
  <li>El límite de caracteres del texto de la publicación en TikTok es de 2200.</li>
</ul>

<Note>
  TikTok limita la publicación por la API a 6 fotos por minuto con un límite superior de 15 fotos por
  día.
</Note>

## Procesamiento de TikTok

TikTok realiza un procesamiento asíncrono de videos e imágenes, por lo que la respuesta tendrá el campo `id` establecido en `"pending"`.
Después de que TikTok complete su procesamiento, normalmente en 1-2 minutos, el campo `id` se actualizará con el `id` del video de TikTok y se añadirá un `postUrl`.

<ul class="custom-bullets">
  <li>
    Puedes recuperar el estado final de la publicación de TikTok usando
    [webhooks](/apis/webhooks/actions#tiktok-publishing-webhook) o el
    endpoint [/history](/apis/history/overview) y suele tardar entre 1 y 2 minutos en estar disponible.
  </li>

  <li>
    Cuando el usuario publica el video en la app móvil de TikTok, se enviará un webhook "scheduled"
    con `subAction: "tikTokPublished"`.
  </li>

  <li>
    Un [primer comentario](/apis/post/overview#first-comment) en una publicación de TikTok se difiere: se publica
    automáticamente una vez que el webhook `tikTokPublished` resuelve el `id` real del video, no en el momento
    de la publicación. La `visibility` del video debe ser `public`; de lo contrario, no se podrá publicar el primer comentario y se devolverá
    un error de comentario.
  </li>

  <li>
    Si ocurre un error, como que TikTok no pudo procesar el video o fallaron las pruebas internas de Ayrshare,
    el campo `id` se establecerá en "failed" y el campo `errors` contendrá los detalles del error.
  </li>

  <li>El `idShare` se usa para referencia interna del video pendiente.</li>
</ul>

## Opciones de TikTok

Al publicar un video o imágenes en TikTok hay [opciones adicionales](/apis/post/social-networks/tiktok#available-tiktok-options) disponibles.

Ejemplo de publicación de video:

```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.
  }
}
```

Ejemplo de publicación de imagen:

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

### Opciones

Las siguientes opciones están disponibles para publicaciones de TikTok.
Deben añadirse dentro del objeto `tikTokOptions`.
Consulta a continuación más detalles sobre cada opción.

```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}>
  Si se debe agregar automáticamente música recomendada a la publicación.
  Si estableces este campo en `true`, luego podrás cambiar la música desde la app de TikTok.

  Tipo de medio: image
</ParamField>

<ParamField body="disableComments" type="boolean" default={false}>
  Si se deben deshabilitar los comentarios en la publicación publicada.

  Tipo de medio: video, image
</ParamField>

<ParamField body="disableDuet" type="boolean" default={false}>
  Deshabilita los duetos en el video publicado.

  Tipo de medio: video
</ParamField>

<ParamField body="disableStitch" type="boolean" default={false}>
  Deshabilita stitch en el video publicado.

  Tipo de medio: video
</ParamField>

<ParamField body="draft" type="boolean" default={false}>
  Si se debe crear una publicación como borrador.

  Consulta las [opciones de borrador](/apis/post/social-networks/tiktok#tiktok-video-draft-post) para más información.

  Tipo de medio: video o image
</ParamField>

<ParamField body="isAIGenerated" type="boolean" default={false}>
  Si se debe habilitar el toggle de contenido generado por IA para la publicación de video.

  Si habilitas el toggle, tu video será etiquetado como "Creator labeled as AI-generated" una vez publicado y no se puede cambiar.
  La etiqueta "Creator labeled as AI-generated" indica que el contenido fue generado completamente por IA o editado significativamente con IA.

  <Note>
    Activar la configuración de contenido generado por IA no afectará la distribución de tu video siempre
    y cuando no infrinja las [Community
    Guidelines](https://www.tiktok.com/community-guidelines/en/) de TikTok.
  </Note>

  Tipo de medio: video
</ParamField>

<ParamField body="isBrandedContent" type="boolean" default={false}>
  Si se debe habilitar el toggle de <a href="https://creatormarketplace.tiktok.com/help#/doc/9493/10008169">Branded Content</a>. Si este campo se establece en `true`, el video será etiquetado como Branded Content, indicando que estás en una asociación pagada con una marca. Se adjuntará una etiqueta "Paid partnership" al video.

  Tipo de medio: video, image
</ParamField>

<ParamField body="isBrandOrganic" type="boolean" default={false}>
  Si se debe habilitar el toggle de Brand Organic Content. Si este campo se establece en `true`, el video será etiquetado como Brand Organic Content, indicando que estás promocionándote a ti mismo o a tu propio negocio. Se adjuntará una etiqueta "Promotional content" al video.

  Tipo de medio: video, image
</ParamField>

<ParamField body="imageCoverIndex" type="number" default="0">
  El índice de `mediaUrls` que se usará como portada de la publicación.

  Tipo de medio: image
</ParamField>

<ParamField body="title" type="string">
  El título de la publicación.

  Tipo de medio: image
</ParamField>

<ParamField body="thumbNailOffset" type="number">
  El frame que se usará como portada del video.

  Consulta las [opciones de miniatura de video](/apis/post/social-networks/tiktok#video-thumbnail) para más información.

  Tipo de medio: video
</ParamField>

<ParamField body="visibility" type="string" default="public">
  Cómo se comparte la publicación y quién puede verla.

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

  Consulta las [opciones de visibilidad](/apis/post/social-networks/tiktok#visibility-options) para más información.

  Tipo de medio: image
</ParamField>

### Opciones de visibilidad

| Visibility | Descripción                                    |
| :--------- | :--------------------------------------------- |
| public     | Visible para todos los usuarios de TikTok.     |
| private    | Privada, solo visible para la propia cuenta.   |
| followers  | Solo visible para los seguidores de la cuenta. |
| friends    | Solo visible para seguidores mutuos.           |

Las publicaciones privadas permanecerán con estado `pending` y no se enviará ningún webhook de TikTok hasta que la publicación se haga pública.

## Miniatura del video

Hay dos formas de establecer una miniatura, también conocida como foto de portada, para un video de TikTok:

1. Usando el parámetro `thumbNailOffset` para establecer un frame de miniatura.
2. Usando el parámetro `thumbNail` para establecer una imagen de miniatura desde una URL.

Solo se admiten videos para establecer una miniatura.

### Offset de miniatura

Establece una miniatura para un video de TikTok seleccionando un frame por offset.

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

El offset es la ubicación en milisegundos del frame de miniatura. El valor por defecto es `0`, que corresponde al primer frame del video.

### URL de miniatura

Establece una miniatura para un video de TikTok subiendo una imagen desde una URL.

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

Si usas el parámetro `thumbNail`, el parámetro `thumbNailOffset` será ignorado.

Consulta los [Requisitos de miniatura de TikTok](/media-guidelines/tiktok#video-thumbnail) para más información.

## Menciones en TikTok

Menciona otro handle de TikTok añadiendo `@handle` en el texto de la publicación. Por ejemplo:

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

<Warning>
  Consulta las [reglas importantes](/testing/post-verification#mentions) sobre menciones.
</Warning>

## Publicación como borrador en TikTok

Crea una publicación en borrador para un video o imagen de TikTok, lo que te permite editar el video o la imagen antes de publicarlo.

```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
  }
}
```

La publicación de video o imagen en borrador se encontrará en las notificaciones del **Inbox** en la fila inferior de la app de TikTok.
Busca un mensaje de **System notifications** y luego haz clic en el mensaje superior **Your content from Ayrshare is ready**.

El `postUrl` de Ayrshare permanecerá en estado `pending` hasta que el video se publique. No se admite el primer comentario en publicaciones en borrador.

<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" />

## Renovación de la autorización

TikTok debe reautorizarse *cada año* a través de la página Social Accounts.

<ul class="custom-bullets">
  <li>
    Se enviará una notificación por correo electrónico y por webhook social action con 15 días de anticipación al vencimiento
    de la autorización.
  </li>

  <li>
    La fecha en la que se requiere la renovación y los días restantes se pueden obtener desde el
    endpoint [/user](/apis/user/overview).
  </li>
</ul>

## Límites de caracteres

Consulta [Límites de caracteres de TikTok](/help-center/technical-support/character_limits#tiktok-character-limits) para más información.

## Información adicional

Más [ejemplos sobre cómo usar la API de TikTok](https://www.ayrshare.com/blog/tiktok-api-how-to-post-to-tiktok-using-a-social-media-api/).
