> For the complete documentation index, see [llms.txt](https://knowledgebase.offer18.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knowledgebase.offer18.com/pt/rede/api-da-rede/api-de-criacao-de-oferta.md).

# API de criação de oferta

```
POST https://api.offer18.com/api/m/offers
```

:link: [<mark style="color:azul;">**Clique para testar a API de criação da oferta**</mark>](https://offer18.readme.io/reference/offers-api)

### Parâmetros comuns

| **Consulta** | **Tipo** | **Descrição**         |
| ------------ | -------- | --------------------- |
| mid          | Inteiro  | ID da conta da rede   |
| api-key      | String   | Chave de API da rede  |
| secret-key   | String   | Chave secreta da rede |

**Ação**

<table data-header-hidden><thead><tr><th width="207.16379474883627"></th><th width="194.99924751175493"></th><th></th></tr></thead><tbody><tr><td><strong>Consulta</strong></td><td><strong>Tipo</strong></td><td><strong>Descrição</strong></td></tr><tr><td>action</td><td>String</td><td><strong>Valores permitidos:</strong><br>create / update / delete</td></tr><tr><td>offer_id</td><td>Inteiro</td><td>Obrigatório na atualização e exclusão da oferta</td></tr></tbody></table>

***

### **Campos**&#x20;

<table data-header-hidden data-full-width="false"><thead><tr><th width="329.1820791993198"> </th><th width="124"> </th><th width="293.1921073532865"> </th></tr></thead><tbody><tr><td><strong>Corpo</strong></td><td><strong>Tipo</strong></td><td><strong>Descrição</strong></td></tr><tr><td>offer_name</td><td>String</td><td>Nome da campanha</td></tr><tr><td>advertiser_id</td><td>Inteiro</td><td>ID do anunciante </td></tr><tr><td>offer_url</td><td>URL</td><td>URL da campanha</td></tr><tr><td>external_offer_id</td><td>String</td><td>ID externo da campanha (se houver)</td></tr><tr><td>app_id</td><td>String</td><td>ID do app (se houver)</td></tr><tr><td>logo</td><td>URL</td><td>URL do logo da campanha</td></tr><tr><td>category</td><td>String</td><td>Categoria da campanha</td></tr><tr><td>preview_url</td><td>URL</td><td>URL de pré-visualização da campanha</td></tr><tr><td>currency</td><td>String</td><td><p>Moeda da oferta</p><p><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#currency"><mark style="color:azul;">Ver moedas</mark></a></p></td></tr><tr><td>price_advertiser</td><td>Decimal</td><td>Preço dado pelo anunciante para a campanha</td></tr><tr><td>price_affiliate</td><td>Decimal</td><td>Preço dado ao afiliado para a campanha</td></tr><tr><td>model_advertiser</td><td>String</td><td>Modelo do anunciante da campanha<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#models"><mark style="color:azul;">Ver modelos</mark></a></td></tr><tr><td>model_affiliate</td><td>String</td><td>Modelo do anunciante da campanha<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#models"><mark style="color:azul;">Ver modelos</mark> </a></td></tr><tr><td>hide_affiliate_payout</td><td>Inteiro</td><td>Valores permitidos <br><strong>1:</strong> Para ocultar o pagamento do afiliado</td></tr><tr><td>start_datetime</td><td>Timestamp UTC</td><td>Data/hora de início<br>(YYYY-MM-DD HH:MM:SS) </td></tr><tr><td>end_datetime</td><td>Timestamp UTC</td><td>Data/hora de término<br>(YYYY-MM-DD HH:MM:SS )</td></tr><tr><td>visibility</td><td>String</td><td><strong>Valores permitidos:</strong><br>public, permission, private</td></tr><tr><td>status</td><td>String</td><td><strong>Valores permitidos:</strong> approve, pending</td></tr><tr><td>deep_links</td><td>Inteiro</td><td>Valores permitidos<br><strong>1:</strong> Para habilitar deeplinks nas ofertas</td></tr><tr><td>offer_terms</td><td>String</td><td>Termos da campanha</td></tr><tr><td>offer_kpi</td><td>String</td><td>Termos de KPI da campanha</td></tr><tr><td>private_note</td><td>String</td><td>Notas privadas na campanha</td></tr><tr><td>imps_url</td><td>URL</td><td>URL de impressão</td></tr><tr><td>landing_page_id_1</td><td>Inteiro</td><td>Caso o usuário queira atualizar a landing page existente</td></tr><tr><td>landing_page_name_1</td><td>String</td><td>Nome da primeira landing page </td></tr><tr><td>landing_page_url_1</td><td>URL</td><td>URL da primeira landing page da campanha</td></tr><tr><td>landing_page_id_2</td><td>Inteiro</td><td>Caso o usuário queira atualizar a landing page existente</td></tr><tr><td>landing_page_name_2</td><td>String</td><td>Nome da segunda landing page</td></tr><tr><td>landing_page_url_2</td><td>URL</td><td>URL da segunda landing page da campanha</td></tr><tr><td>creatives</td><td>URL</td><td>URL dos criativos da campanha</td></tr><tr><td>fallback</td><td>boolean</td><td>Valores permitidos:<br><strong>1:</strong> Para habilitar o fallback</td></tr><tr><td>fallback_offer_id</td><td>Inteiro</td><td>ID da oferta de fallback</td></tr><tr><td>fallback_url</td><td>URL</td><td>URL do fallback</td></tr><tr><td>fraud_conv_speed</td><td>Inteiro</td><td>Tempo em segundos</td></tr><tr><td>proxy_block</td><td>Inteiro</td><td>Valores permitidos:<br><strong>1:</strong> Para bloquear proxies</td></tr><tr><td>blank_ref_block</td><td>Inteiro</td><td>Valores permitidos:<br><strong>1:</strong> Para bloquear referência em branco</td></tr><tr><td>hide_referral</td><td>Inteiro</td><td>Valores permitidos:<br><strong>1:</strong> Para ocultar a referência</td></tr><tr><td>assign_affiliates</td><td>Inteiro</td><td>Atribuir afiliados a esta campanha<br>(valores separados por vírgula)</td></tr><tr><td>capping_rule_id</td><td>Inteiro</td><td>Caso o usuário queira atualizar a regra de capping existente</td></tr><tr><td>capping[0][capping_rule_name]</td><td>String</td><td>Nome da regra de capping </td></tr><tr><td>capping[0][capping_rule_type]</td><td>String</td><td>Tipo de regra de capping <br>1. <strong>advertiser_capping</strong><br>2. <strong>affiliate_capping</strong></td></tr><tr><td>capping[0][capping_timezone]</td><td>Carimbo de data/hora</td><td>Fuso horário do capping</td></tr><tr><td>capping[0][capping_events]</td><td>String</td><td>Eventos de capping</td></tr><tr><td>capping[0][capping_type]</td><td>String</td><td>Tipo de capping<br>1. <strong>gross_conversions</strong><br>2. <strong>approved_conversions</strong><br>3. <strong>gross_revenue</strong><br>4. <strong>approved_revenue</strong><br>5. <strong>gross_payout</strong><br>6. <strong>approved_payout</strong><br>7. <strong>gross_clicks</strong><br>8. <strong>approved_clicks</strong></td></tr><tr><td>capping[0][capping_period]</td><td>String</td><td>Período de capping<br>1. <strong>diário</strong><br>2. <strong>semanal</strong><br>3. <strong>mensal</strong><br>4. <strong>por hora</strong></td></tr><tr><td>capping[0][capping_value]</td><td>Inteiro</td><td>Valor de capping</td></tr><tr><td>capping[0][overcap_action]</td><td>String</td><td>Ação ao exceder o limite<br>1. <strong>stop</strong><br>2. <strong>fallback</strong><br>3. <strong>fallback_conversion_accept</strong><br>4. <strong>conversion_accept</strong><br>5. <strong>conversion_reject</strong><br>6. <strong>conversion_pending</strong></td></tr><tr><td>capping[0][capping_notification_email]</td><td>Stirng</td><td>E-mail de notificação de capping</td></tr><tr><td>capping[0][capping_affiliate_visibility]</td><td>Inteiro</td><td><strong>1:</strong> Para mostrar a regra de capping ao afiliado</td></tr><tr><td>capping[0][capping_affiliate_id]</td><td>Stirng</td><td>IDs de afiliado (separados por vírgula)</td></tr><tr><td>targeting_rule_id</td><td>Inteiro</td><td>Caso o usuário queira atualizar a regra de segmentação existente</td></tr><tr><td>target_country</td><td>String</td><td>Permitir país específico <br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#countries"><mark style="color:azul;">Ver países</mark></a></td></tr><tr><td>block_country</td><td>String</td><td>Bloquear país específico <br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#countries"><mark style="color:azul;">Ver países</mark></a></td></tr><tr><td>target_os</td><td>String</td><td>Permitir sistema operacional específico<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#operating-systems"><mark style="color:azul;">Ver SO</mark></a></td></tr><tr><td>block_os</td><td>String</td><td>Bloquear sistema operacional específico<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#operating-systems"><mark style="color:azul;">Ver SO</mark></a></td></tr><tr><td>target_device</td><td>String</td><td>Permitir dispositivos específicos<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span><a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#devices"> <mark style="color:azul;">Ver dispositivos</mark></a></td></tr><tr><td>block_device</td><td>String</td><td>Bloquear dispositivos específicos<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span><a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#devices"> <mark style="color:azul;">Ver dispositivos</mark></a></td></tr><tr><td>target_browser</td><td>String</td><td>Permitir navegador específico<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#browsers"><mark style="color:azul;">Ver navegadores</mark></a></td></tr><tr><td>block_browser</td><td>String</td><td>Bloquear navegador específico<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="/pages/5da7e1e6e768d5a41f8ae646a7778aca0e16dc13#browsers"><mark style="color:azul;">Ver navegadores</mark></a></td></tr><tr><td>target_isp</td><td>String</td><td>Permitir ISP específico</td></tr><tr><td>block_isp</td><td>String</td><td>Bloquear ISP específico</td></tr><tr><td>events[0][event_name]</td><td>String</td><td>Nome do evento </td></tr><tr><td>events[0][event_token]</td><td>String</td><td>Token do evento</td></tr><tr><td>capping_conversion_period</td><td>String</td><td><mark style="color:laranja;"><strong>Obsoleto</strong></mark></td></tr><tr><td>capping_budget</td><td>Inteiro</td><td><mark style="color:laranja;"><strong>Obsoleto</strong></mark></td></tr><tr><td>capping_conversion</td><td>Inteiro</td><td><mark style="color:laranja;"><strong>Obsoleto</strong></mark></td></tr><tr><td>capping_budget_period</td><td>String</td><td><mark style="color:laranja;"><strong>Obsoleto</strong></mark></td></tr></tbody></table>

**Regras de capping (instruções)**&#x20;

{% hint style="info" %}

1. Se você quiser definir várias regras de capping, pode fazer isso atribuindo regras a números diferentes\
   **Exemplo 1:** \
   &#x20; capping\[**1**]\[capping\_rule\_name] \
   &#x20; capping\[**1**]\[capping\_rule\_type]\
   **Exemplo 2:**\
   &#x20; capping\[**2**]\[capping\_rule\_name] \
   &#x20; capping\[**2**]\[capping\_rule\_type]
2. Se você quiser atualizar uma regra de capping existente, você deve enviar **capping\_rule\_id** em a solicitação da API junto com os novos dados para **0**(Zero) número\
   **Exemplo:**\
   &#x20; capping\[**0**]\[capping\_rule\_name] \
   &#x20; capping\[**0**]\[capping\_rule\_type]
   {% endhint %}

**Eventos (instruções)**&#x20;

{% hint style="info" %}

1. Se você quiser criar vários eventos, pode fazer isso atribuindo eventos a números diferentes\
   **Exemplo 1:** \
   &#x20; events\[1]\[event\_name] \
   &#x20; events\[1]\[event\_token]\
   **Exemplo 2:**\
   &#x20; events\[2]\[event\_name] \
   &#x20; events\[2]\[event\_token]
   {% endhint %}

***

### Exemplo de solicitação da API

**Criação da oferta**

<figure><img src="/files/a573f55821e85df0a71fad387095cdeb68fb7480" alt=""><figcaption></figcaption></figure>

**Resposta da API**

```
{
    "status": "200",
    "response": "offer_created_successfully",
    "offer_id": 000012    
}
```

**Atualização da oferta**

<figure><img src="/files/5ad4231fa978d88629617899a5c0b7dd8aa5925d" alt=""><figcaption></figcaption></figure>

**Resposta da API**

```
{
    "status": "200",
    "response": "offer_updated_successfully",
    "offer_id": "000001"
}
```

***

{% hint style="info" %}
**Para interações seguras, sempre chame a API pelo lado do servidor.**
{% endhint %}
