> ## 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.

# Impulsar publicación

> Impulsa una publicación enviándola a la plataforma de anuncios de Instagram

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

export const HeaderAPI = ({noProfileKey, profileKeyRequired}) => <>
    <ParamField header="Authorization" type="string" required>
      <a href="/docs/apis/overview#authorization">API Key</a> of the Primary Profile.
      <br />
      <br />
      Format: <code>Authorization: Bearer API_KEY</code>
    </ParamField>
    {!noProfileKey && (profileKeyRequired ? <ParamField header="Profile-Key" type="string" required>
          <a href="/docs/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField> : <ParamField header="Profile-Key" type="string">
          <a href="/docs/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

Impulsa una publicación existente de Instagram para crear un anuncio.
Este endpoint te permite convertir tus publicaciones orgánicas en anuncios pagos con parámetros personalizados de segmentación, presupuesto y programación.

<ul className="custom-bullets">
  <li>Los montos de presupuesto y de puja deben especificarse en USD con hasta dos decimales.</li>
  <li>El anuncio debe ejecutarse durante al menos 30 horas para cumplir con el requisito de Instagram.</li>

  <li>
    Puedes usar el [endpoint de intereses](/docs/apis/ads/instagram/get-ad-interests) para encontrar los IDs de intereses
    para la segmentación.
  </li>

  <li>Instagram puede tardar hasta 24 horas en revisar y aprobar las publicaciones impulsadas.</li>

  <li>
    Si usas `socialPostId` directamente (en lugar del `postId` de Ayrshare), asegúrate de que sea un ID de publicación
    de Instagram válido.
  </li>

  <li>
    Si un impulso falla después de que Facebook haya creado su campaña (en el paso del creativo, del conjunto de anuncios o del anuncio),
    intentamos eliminar esa campaña. Si la eliminación también falla, la campaña vacía permanece en tu cuenta
    publicitaria. Puedes encontrarla y eliminarla en el Administrador de anuncios (Ads Manager).
  </li>
</ul>

<h3 id="ad-goals">
  Objetivos del anuncio
</h3>

Cada anuncio debe tener un objetivo. El objetivo determina cómo se optimizará el anuncio para su visualización.

<ul className="custom-bullets">
  <li>
    `engagement`: Este objetivo busca aumentar la interacción, asegurando al mismo tiempo que el anuncio llegue al
    mayor número de usuarios únicos. Equilibra la visibilidad con la interacción, mostrando el anuncio a tantas
    personas diferentes como sea posible que puedan interactuar con él.
  </li>

  <li>
    `interactions`: Diseñado para aumentar interacciones, como me gusta, comentarios y compartidos, en el anuncio.
    Instagram prioriza mostrar el anuncio a los usuarios con mayor probabilidad de interactuar con él.
  </li>

  <li>
    `awareness_views`: Se enfoca en aumentar el reconocimiento de marca maximizando la cantidad de veces que se
    muestra el anuncio. Prioriza mostrar el anuncio tantas veces como sea posible dentro del presupuesto,
    independientemente del alcance único.
  </li>

  <li>
    `awareness_audience`: Busca aumentar el reconocimiento de marca maximizando la cantidad de personas únicas
    que ven el anuncio. Garantiza que el anuncio llegue a la mayor cantidad de usuarios diferentes posibles y maximiza
    el tamaño de la audiencia única en lugar de mostrarlo varias veces a la misma audiencia.
  </li>
</ul>

<Note>
  Los anuncios de Instagram requieren una cuenta de Instagram Business conectada a través de Facebook, una página de Facebook asociada y el permiso `ads_management`. Vuelve a vincular a través de Facebook para otorgar este permiso. Las cuentas conectadas con Instagram Login no pueden usar estos endpoints de anuncios. El ID del medio y el ID de la cuenta de Instagram se resuelven a partir de tu cuenta vinculada; no envíes `instagram_user_id`.
</Note>

El selector `socialPostId` también acepta el alias específico de Instagram `igPostId`. `fbPostId` solo aplica a Facebook. Las respuestas exitosas incluyen `platform: "instagram"`, `socialPostId` e `igPostId`.

## Parámetros del encabezado

<HeaderAPI />

## Parámetros del cuerpo

<ParamField body="idempotencyKey" type="string">
  Una clave única y no vacía para esta solicitud de impulso. Reintenta el mismo payload con la misma clave para evitar crear un anuncio duplicado. Reutilizar la clave con un payload o plataforma diferente devuelve HTTP 409. Una solicitud aún en curso también devuelve 409; una reserva no disponible devuelve 503 sin crear un anuncio.
</ParamField>

<ParamField body="adSetBudgetSharingEnabled" type="boolean" default={false}>
  Permite a Meta compartir el presupuesto entre los conjuntos de anuncios de la campaña.
</ParamField>

<ParamField body="accountId" type="string" required>
  El ID de la cuenta publicitaria de Instagram en la que se impulsará la publicación. El ID de la cuenta puede recuperarse desde el
  [endpoint de cuentas publicitarias](/docs/apis/ads/instagram/get-ad-accounts).
</ParamField>

<ParamField body="adName" type="string" required>
  Nombre para tu anuncio (aparece en el Administrador de Anuncios de Instagram) con el formato `{adName} - {postId o socialPostId} - {fecha actual}`.
</ParamField>

<ParamField body="bidAmount" type="number" required>
  Monto máximo de puja en USD, como un monto positivo con hasta dos decimales.
</ParamField>

<ParamField body="budget" type="number" required>
  Presupuesto diario en USD. Usa un monto positivo con hasta dos decimales. Meta puede aplicar mínimos adicionales según tu cuenta y tu objetivo.
</ParamField>

<ParamField body="socialPostId" type="string">
  El [ID de publicación social de Instagram](/docs/apis/overview#social-post-id) de la publicación a impulsar, que te permite
  crear un anuncio a partir de una publicación creada directamente en Instagram. Este es el ID de la [publicación en
  Instagram](/docs/apis/history/history-platform), no de Ayrshare. Requerido si `postId` no está establecido.
</ParamField>

<ParamField body="goal" type="string" default="engagement">
  El objetivo del anuncio. Valores: `engagement`, `interactions`, `awareness_views` y
  `awareness_audience`. Consulta los [detalles de los objetivos del
  anuncio](/docs/apis/ads/instagram/boost-post#ad-goals) arriba para más información.
</ParamField>

<ParamField body="locations" type="object" default={{ countries: ["US"] }}>
  Países objetivo del anuncio con `{"countries": ["US", "CA"]}` usando [códigos de país](/docs/iso-codes/country). También puedes proporcionar arreglos `regions` y `cities`; consulta [regiones](/docs/apis/ads/instagram/get-ad-regions) y [ciudades](/docs/apis/ads/instagram/get-ad-cities). Un objeto que no indica ningún país, región ni ciudad, como `{}`, se rechaza con el código `101`; omite `locations` para dirigir el anuncio a EE. UU.
</ParamField>

<ParamField body="postId" type="string">
  El [ID de publicación de Ayrshare](/docs/apis/overview#ayrshare-post-id) de la publicación a impulsar. Requerido si
  `socialPostId` no está establecido.
</ParamField>

<ParamField body="status" type="string" default="active">
  El estado del anuncio. Valores: `active` y `paused`.

  Más adelante puedes cambiar el estado del anuncio usando el [endpoint de actualización de anuncio](/docs/apis/ads/instagram/put-ad-update).
</ParamField>

<ParamField body="tracking" type="object">
  Realiza el seguimiento del anuncio usando un Meta Pixel.

  <Expandable title="atributos hijos">
    <ParamField body="pixelId" type="number" required>
      El ID del Meta Pixel para hacer seguimiento del anuncio.

      ```json theme={"system"}
      {
       "pixelId": 1234567890
      }
      ```
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="urlTags" type="array">
  Agrega etiquetas UTM a la URL del anuncio.

  ```json theme={"system"}
  {
    "urlTags": ["utm_source=ayrshare", "utm_medium=social", "utm_campaign=ayrshare-social"]
  }
  ```

  Por ejemplo, si la URL de enlace es `https://www.mysite.com/my-post` y las etiquetas de URL agregadas son:

  `utm_source=ayrshare`, `utm_medium=social` y `utm_campaign=ayrshare-social`.

  La URL del anuncio será:
  `https://www.mysite.com/my-post?utm_source=ayrshare&utm_medium=social&utm_campaign=ayrshare-social`.
</ParamField>

<ParamField body="specialAdCategories" type="array">
  Meta requiere que los anunciantes en [categorías especiales de anuncios](https://www.facebook.com/business/help/298000447747885?helpref=faq_content) se auto-identifiquen con la categoría de su campaña.

  Si tu negocio está en una de estas categorías, debes seleccionar la categoría apropiada al impulsar tu publicación.

  Se admiten los siguientes valores:

  <ul className="custom-bullets">
    <li>
      `housing`: Anuncios que promuevan o enlacen directamente con una oportunidad de vivienda o servicio relacionado,
      incluyendo, entre otros, listados para la venta o alquiler de una casa o apartamento, seguros para propietarios de vivienda,
      seguros hipotecarios, préstamos hipotecarios, reparaciones de vivienda y servicios de valoración o crédito con garantía
      hipotecaria.
    </li>

    <li>
      `financial_product_services`: Anuncios que promuevan o enlacen directamente con una oferta de productos y
      servicios financieros, incluido el crédito.
    </li>

    <li>
      `employment`: Anuncios que promuevan o enlacen directamente con una oportunidad de empleo, incluidos, entre otros,
      trabajos a tiempo parcial o completo, pasantías o programas de certificación profesional. Los anuncios relacionados
      que entran en esta categoría incluyen promociones de bolsas de empleo o ferias, servicios de agregación
      o anuncios que detallen los beneficios que una empresa puede ofrecer, independientemente de una oferta de trabajo específica.
    </li>

    <li>
      `issues_elections_politics`: Anuncios realizados por, en nombre de, o sobre un candidato a un cargo público,
      una figura política, un partido político o que aboguen por el resultado de una elección a un cargo público.
      Esto también incluye anuncios sobre cualquier elección, referéndum o iniciativa electoral, incluidas
      las campañas electorales de "Sal a votar". Anuncios regulados como publicidad política o sobre temas
      sociales en cualquier lugar donde se publique el anuncio. Si seleccionas temas, elecciones o política,
      debes seleccionar el país en el que deseas publicar estos anuncios. Se te exige estar
      autorizado para publicar anuncios sobre temas sociales, elecciones o política en el país especificado.
    </li>
  </ul>

  Meta también necesita los países en los que se publica un anuncio de categoría especial. Ayrshare los toma de `locations`: los países que indiques, más el país de cada región y ciudad. Así, un impulso `housing` que segmenta una ciudad del Reino Unido se configura para el Reino Unido, sin nada adicional en tu solicitud. Sin `locations`, el anuncio se publica en EE. UU. y la campaña se configura para EE. UU.

  Meta también establece un radio mínimo alrededor de cada ciudad para estas categorías. Una ciudad del Reino Unido con un radio de 17 kilómetros fue rechazada con `#2909039`, que exige al menos 25 kilómetros (15 millas), así que usa 25 kilómetros o más.

  <Warning>
    Meta exige que los anunciantes identifiquen correctamente la categoría de su campaña.
    Meta utiliza revisores humanos y aprendizaje automático para identificar este tipo de anuncios.
    Si nos envías un `specialAdCategories` incorrecto, existe el riesgo de que tus anuncios se pausen hasta que se ajuste la campaña.
  </Warning>
</ParamField>

<ParamField body="dsaBeneficiary" type="string">
  La persona u organización que se beneficia del anuncio. Se establece junto con `dsaPayor`. Usa el [endpoint de recomendaciones DSA](/docs/apis/ads/instagram/get-dsa-recommendations) para obtener sugerencias.
</ParamField>

<ParamField body="dsaPayor" type="string">
  La persona u organización que paga el anuncio. Se establece junto con `dsaBeneficiary`.
</ParamField>

<ParamField body="endDate" type="string">
  Fecha y hora de finalización en formato ISO 8601 (debe ser al menos 30 horas después del inicio), por ejemplo `2025-03-01T00:00:00Z`.

  Si no se establece, el anuncio se ejecutará indefinidamente y tendrá fecha de finalización `ongoing`.
</ParamField>

<ParamField body="excludedLocations" type="object">
  Excluye ubicaciones usando la misma estructura de `countries`, `regions` y `cities` que `locations`.
</ParamField>

<ParamField body="gender" type="string" default="all">
  El género de la audiencia. Valores: `all`, `male`, `female`.
</ParamField>

<ParamField body="interests" type="array">
  Los intereses objetivo del anuncio como un arreglo de [IDs de
  intereses](/docs/apis/ads/instagram/get-ad-interests) de Instagram.
</ParamField>

<ParamField body="maxAge" type="number" default={65}>
  Edad máxima para la segmentación del anuncio (predeterminado: 65).
</ParamField>

<ParamField body="minAge" type="number" default={18}>
  Edad mínima para la segmentación del anuncio (predeterminado: 18).
</ParamField>

<ParamField body="startDate" type="string">
  Fecha y hora de inicio en formato ISO 8601, por ejemplo `2025-03-01T00:00:00Z`.

  Si no se establece, el anuncio comenzará inmediatamente.
</ParamField>

Reemplaza los IDs de ejemplo por los tuyos. Establece `startDate` y `endDate` según tu programación prevista; las fechas de ejemplo son ilustrativas.

<h2 id="campaign-budgets">
  Presupuestos de campaña
</h2>

Para que el presupuesto esté en la campaña en lugar del conjunto de anuncios, envía `budget.level: "campaign"` en la forma anidada. El conjunto de anuncios queda entonces sin presupuesto propio. Funciona con presupuestos diarios y totales.

```json theme={"system"}
{
  "accountId": "123456789",
  "postId": "Ut1fWU6XkqkMayHGnJZ",
  "goal": "engagement",
  "budget": { "amount": 50, "type": "lifetime", "level": "campaign" },
  "schedule": { "start": "2026-11-01T00:00:00Z", "end": "2026-11-08T00:00:00Z" },
  "platformOptions": { "instagram": { "adName": "November boost", "bidAmount": 2 } }
}
```

* `budget.level`: `adSet` (el valor predeterminado) o `campaign`. Un presupuesto de campaña no se puede combinar con `adSetBudgetSharingEnabled`. Enviar ambos se rechaza con un `400` y `code: 101`.
* La respuesta añade `budgetLevel: "campaign"` para un presupuesto de campaña. Un presupuesto de conjunto de anuncios no devuelve `budgetLevel`, así que trata la ausencia del campo como `adSet`.
* En [Historial](/docs/apis/ads/instagram/get-ad-history), `budgetDaily` muestra el presupuesto diario de la campaña para un anuncio con presupuesto diario de campaña. Si varios anuncios comparten un mismo presupuesto de campaña, cada uno muestra el presupuesto completo de la campaña, no su parte. Historial no muestra los presupuestos totales, ni de la campaña ni del conjunto de anuncios. Una vez agotado un presupuesto total de campaña, cada anuncio de esa campaña muestra `deliveryStatus: "COMPLETED"` tras la siguiente actualización nocturna, incluido un anuncio programado o en revisión. Un anuncio rechazado se mantiene en `REJECTED`.

<h2 id="attach-to">
  Impulsar en una campaña o un conjunto de anuncios existente
</h2>

De forma predeterminada, cada impulso crea su propia campaña, su propio conjunto de anuncios y su propio anuncio. Para añadir el impulso a una campaña o a un conjunto de anuncios que ya gestionas en Meta, envía la forma anidada con `attachTo`.

* `attachTo.campaignId`: el impulso crea un nuevo conjunto de anuncios y un anuncio dentro de esa campaña. Envía `budget`, `targeting` y `bidAmount` como de costumbre: se aplican al nuevo conjunto de anuncios.
* `attachTo.adSetId`: el impulso crea solo el anuncio, dentro de ese conjunto de anuncios. Envía también `attachTo.campaignId`, la campaña a la que pertenece el conjunto de anuncios. Omite `budget`, `targeting` y `platformOptions.instagram.bidAmount`: el conjunto de anuncios conserva los suyos. Enviar cualquiera de ellos devuelve un `400` con `code: 101`.

```json theme={"system"}
{
  "accountId": "123456789",
  "postId": "Ut1fWU6XkqkMayHGnJZ",
  "goal": "engagement",
  "attachTo": { "campaignId": "120210000000000001", "adSetId": "120210000000000002" },
  "platformOptions": { "instagram": { "adName": "November boost" } }
}
```

* La campaña o el conjunto de anuncios debe estar en la cuenta publicitaria indicada en `accountId` y no debe pertenecer a los impulsos de otro usuario. De lo contrario, la solicitud devuelve un `400`. Además, un impulso de Instagram no puede adjuntarse a una campaña creada por un impulso de Facebook, ni a la inversa.
* `attachTo` no se puede combinar con `budget.level: "campaign"`, `specialAdCategories` ni `adSetBudgetSharingEnabled`, que se establecen en una campaña nueva. Enviarlos devuelve `code: 101`.
* Pausar o activar el impulso cambia solo lo que el impulso creó: el anuncio, y el conjunto de anuncios cuando lo creó el impulso. La campaña o el conjunto de anuncios que indicaste en `attachTo` conserva su propio estado. El anuncio solo se publica mientras la campaña y el conjunto de anuncios que lo contienen estén activos. Esto también se aplica cuando Ayrshare pausa tus anuncios, por ejemplo, cuando se elimina un perfil.
* Si el impulso falla, la campaña o el conjunto de anuncios indicado en `attachTo` nunca se elimina.
* Si el conjunto de anuncios al que te adjuntas está en una campaña que tiene el presupuesto (un presupuesto de campaña), [Historial](/docs/apis/ads/instagram/get-ad-history) informa del impulso como de cualquier anuncio con presupuesto de campaña: `budgetDaily` muestra el presupuesto completo de la campaña, no la parte del impulso, y una vez agotado un presupuesto total de campaña, cada anuncio que Ayrshare registra en esa campaña muestra `deliveryStatus: "COMPLETED"` tras la siguiente actualización nocturna, incluido un anuncio programado o en revisión. Un anuncio rechazado se mantiene en `REJECTED`.

<RequestExample>
  ```bash cURL theme={"system"}
  curl -X POST https://api.ayrshare.com/api/ads/instagram/boost \
    -H "Authorization: Bearer API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "postId": "1234567890",
      "accountId": "1234567890",
      "adName": "My Ad",
      "status": "active",
      "goal": "engagement",
      "minAge": 18,
      "maxAge": 65,
      "locations": {"countries": ["US"]},
      "budget": 100,
      "bidAmount": 1,
      "startDate": "2025-03-01T00:00:00Z",
      "endDate": "2025-03-07T23:59:59Z",
      "interests": [1234567890, 1234567891]
    }'
  ```

  ```javascript JavaScript theme={"system"}
  const API_KEY = "API_KEY";

  fetch("https://api.ayrshare.com/api/ads/instagram/boost", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${API_KEY}`
    },
    body: JSON.stringify({
      postId: "1234567890",
      accountId: "1234567890",
      adName: "My Ad",
      status: "active",
      goal: "engagement",
      minAge: 18,
      maxAge: 65,
      locations: { countries: ["US"] },
      budget: 100,
      bidAmount: 1,
      startDate: "2025-03-01T00:00:00Z",
      endDate: "2025-03-07T23:59:59Z",
      interests: [1234567890, 1234567891]
    })
  })
    .then((res) => res.json())
    .then((json) => console.log(json))
    .catch(console.error);
  ```

  ```python Python theme={"system"}
  import requests

  API_KEY = "API_KEY"

  url = "https://api.ayrshare.com/api/ads/instagram/boost"
  payload = {
      "postId": "1234567890",
      "accountId": "1234567890",
      "adName": "My Ad",
      "status": "active",
      "goal": "engagement",
      "minAge": 18,
      "maxAge": 65,
      "locations": {"countries": ["US"]},
      "budget": 100,
      "bidAmount": 1,
      "startDate": "2025-03-01T00:00:00Z",
      "endDate": "2025-03-07T23:59:59Z",
      "interests": [1234567890, 1234567891]
  }

  response = requests.post(url, headers={"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}, json=payload)

  print(response.json())
  ```

  ```php PHP theme={"system"}
  <?php
  $API_KEY = "API_KEY";

  $payload = [
      "postId" => "1234567890",
      "accountId" => "1234567890",
      "adName" => "My Ad",
      "status" => "active",
      "goal" => "engagement",
      "minAge" => 18,
      "maxAge" => 65,
      "locations" => ["countries" => ["US"]],
      "budget" => 100,
      "bidAmount" => 1,
      "startDate" => "2025-03-01T00:00:00Z",
      "endDate" => "2025-03-07T23:59:59Z",
      "interests" => [1234567890, 1234567891]
  ];

  $ch = curl_init("https://api.ayrshare.com/api/ads/instagram/boost");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
  curl_setopt($ch, CURLOPT_HTTPHEADER, [
      "Content-Type: application/json",
      "Authorization: Bearer " . $API_KEY
  ]);

  $response = curl_exec($ch);
  $result = json_decode($response, true);

  print_r($result);
  curl_close($ch);
  ```

  ```csharp C# theme={"system"}
  using System;
  using System.Net.Http;
  using System.Net.Http.Headers;
  using System.Text;
  using System.Text.Json;
  using System.Threading.Tasks;

  class Program
  {
      static async Task Main()
      {
          string API_KEY = "API_KEY";

          var payload = new
          {
              postId = "1234567890",
              accountId = "1234567890",
              adName = "My Ad",
              status = "active",
              goal = "engagement",
              minAge = 18,
              maxAge = 65,
              locations = new { countries = new[] { "US" } },
              budget = 100,
              bidAmount = 1,
              startDate = "2025-03-01T00:00:00Z",
              endDate = "2025-03-07T23:59:59Z",
              interests = new[] { 1234567890, 1234567891 }
          };

          using var client = new HttpClient();
          client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", API_KEY);

          var content = new StringContent(
              JsonSerializer.Serialize(payload),
              Encoding.UTF8,
              "application/json"
          );

          var response = await client.PostAsync("https://api.ayrshare.com/api/ads/instagram/boost", content);
          var responseBody = await response.Content.ReadAsStringAsync();

          Console.WriteLine(responseBody);
      }
  }
  ```

  ```go Go theme={"system"}
  package main

  import (
  	"bytes"
  	"encoding/json"
  	"fmt"
  	"io/ioutil"
  	"net/http"
  )

  func main() {
  	apiKey := "API_KEY"

  	payload := map[string]interface{}{
  		"postId":    "1234567890",
  		"accountId": "1234567890",
  		"adName":    "My Ad",
  		"status":    "active",
  		"goal":      "engagement",
  		"minAge":    18,
  		"maxAge":    65,
  		"locations": map[string]interface{}{"countries": []string{"US"}},
  		"budget":    100,
  		"bidAmount": 1,
  		"startDate": "2025-03-01T00:00:00Z",
  		"endDate":   "2025-03-07T23:59:59Z",
  		"interests": []int{1234567890, 1234567891},
  	}

  	jsonData, err := json.Marshal(payload)
  	if err != nil {
  		fmt.Println("Error marshaling JSON:", err)
  		return
  	}

  	req, err := http.NewRequest("POST", "https://api.ayrshare.com/api/ads/instagram/boost", bytes.NewBuffer(jsonData))
  	if err != nil {
  		fmt.Println("Error creating request:", err)
  		return
  	}

  	req.Header.Set("Content-Type", "application/json")
  	req.Header.Set("Authorization", "Bearer "+apiKey)

  	client := &http.Client{}
  	resp, err := client.Do(req)
  	if err != nil {
  		fmt.Println("Error sending request:", err)
  		return
  	}
  	defer resp.Body.Close()

  	body, err := ioutil.ReadAll(resp.Body)
  	if err != nil {
  		fmt.Println("Error reading response:", err)
  		return
  	}

  	fmt.Println(string(body))
  }
  ```

  ```java Java theme={"system"}
  import java.io.IOException;
  import java.net.URI;
  import java.net.http.HttpClient;
  import java.net.http.HttpRequest;
  import java.net.http.HttpResponse;
  import java.util.Arrays;
  import java.util.HashMap;
  import java.util.Map;

  import com.fasterxml.jackson.databind.ObjectMapper;

  public class BoostPost {
      public static void main(String[] args) {
          String API_KEY = "API_KEY";
          String url = "https://api.ayrshare.com/api/ads/instagram/boost";

          Map<String, Object> payload = new HashMap<>();
          payload.put("postId", "1234567890");
          payload.put("accountId", "1234567890");
          payload.put("adName", "My Ad");
          payload.put("status", "active");
          payload.put("goal", "engagement");
          payload.put("minAge", 18);
          payload.put("maxAge", 65);
          payload.put("locations", Map.of("countries", Arrays.asList("US")));
          payload.put("budget", 100);
          payload.put("bidAmount", 1);
          payload.put("startDate", "2025-03-01T00:00:00Z");
          payload.put("endDate", "2025-03-07T23:59:59Z");
          payload.put("interests", Arrays.asList(1234567890, 1234567891));

          try {
              ObjectMapper objectMapper = new ObjectMapper();
              String requestBody = objectMapper.writeValueAsString(payload);

              HttpClient client = HttpClient.newHttpClient();
              HttpRequest request = HttpRequest.newBuilder()
                      .uri(URI.create(url))
                      .header("Content-Type", "application/json")
                      .header("Authorization", "Bearer " + API_KEY)
                      .POST(HttpRequest.BodyPublishers.ofString(requestBody))
                      .build();

              HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
              System.out.println(response.body());

          } catch (IOException | InterruptedException e) {
              e.printStackTrace();
          }
      }
  }
  ```

  ```ruby Ruby theme={"system"}
  require 'net/http'
  require 'uri'
  require 'json'

  API_KEY = "API_KEY"

  uri = URI.parse("https://api.ayrshare.com/api/ads/instagram/boost")
  payload = {
    postId: "1234567890",
    accountId: "1234567890",
    adName: "My Ad",
    status: "active",
    goal: "engagement",
    minAge: 18,
    maxAge: 65,
    locations: { countries: ["US"] },
    budget: 100,
    bidAmount: 1,
    startDate: "2025-03-01T00:00:00Z",
    endDate: "2025-03-07T23:59:59Z",
    interests: [1234567890, 1234567891]
  }

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  request = Net::HTTP::Post.new(uri.request_uri)
  request["Content-Type"] = "application/json"
  request["Authorization"] = "Bearer #{API_KEY}"
  request.body = payload.to_json

  response = http.request(request)
  puts response.body
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Publicación impulsada theme={"system"}
  {
      "status": "success",
      "adId": "120217670757750410",
      "adName": "API Post - DE6gpw8kxlonHy2b7Lo - 2025-03-26T23:42:43",
      "adStatus": "active",
      "bidAmount": 10,
      "budget": 100,
      "endDate": "2026-03-28T22:30:00Z",
      "goal": {
          "title": "Get More Engagement",
          "description": "This goal seeks to increase engagement...",
          "type": "engagement"
      },
      "interests": [
          "6003195554098"
      ],
      "locations": {"countries": ["US"]},
      "maxAge": 65,
      "minAge": 18,
      "postId": "DE6gpw8kxlonHy2b7Lo",
      "socialPostId": "1234567890",
      "igPostId": "1234567890",
      "platform": "instagram",
      "startDate": "2026-03-26T22:30:00Z"
  }
  ```

  ```json 400: ID de cuenta inválido theme={"system"}
  {
    "action": "boost post",
    "status": "error",
    "code": 369,
    "message": "Unable to boost post. Please try again or contact us if the issue persists.",
    "details": "The accountId likely does not exist. Please check the accountId and try again."
  }
  ```

  ```json 400: Faltan parámetros requeridos theme={"system"}
  {
    "action": "request",
    "status": "error",
    "code": 101,
    "message": "Missing or incorrect parameters. Please verify with the docs. https://www.ayrshare.com/docs/apis",
    "details": "Missing required fields: accountId"
  }
  ```
</ResponseExample>


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