# API de Criação de Oferta

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

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

### Parâmetros comuns

| **Query**  | **Type** | **Description**       |
| ---------- | -------- | --------------------- |
| mid        | Integer  | 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>Query</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td></tr><tr><td>action</td><td>String</td><td><strong>Valores permitidos:</strong><br>create / update</td></tr><tr><td>offer_id</td><td>Integer</td><td>Obrigatório na atualizaçã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>Body</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td></tr><tr><td>offer_name</td><td>String</td><td>Nome da campanha</td></tr><tr><td>advertiser_id</td><td>Integer</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:blue;">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 pela 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:blue;">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:blue;">Ver modelos</mark> </a></td></tr><tr><td>hide_affiliate_payout</td><td>Integer</td><td>Valores permitidos <br><strong>1:</strong> Para ocultar o pagamento ao 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>Integer</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_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_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 fallback</td></tr><tr><td>fallback_offer_id</td><td>Integer</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>Integer</td><td>Tempo em segundos</td></tr><tr><td>proxy_block</td><td>Integer</td><td>Valores permitidos:<br><strong>1:</strong> Para bloquear proxies</td></tr><tr><td>blank_ref_block</td><td>Integer</td><td>Valores permitidos:<br><strong>1:</strong> Para bloquear referência em branco</td></tr><tr><td>hide_referral</td><td>Integer</td><td>Valores permitidos:<br><strong>1:</strong> Para ocultar a referência</td></tr><tr><td>assign_affiliates</td><td>Integer</td><td>Atribuir afiliados a esta campanha<br>(valores separados por vírgula)</td></tr><tr><td>capping_rule_id</td><td>String</td><td>Caso o usuário queira atualizar uma 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>Timestamp</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>daily</strong><br>2. <strong>weekly</strong><br>3. <strong>monthly</strong><br>4. <strong>hourly</strong></td></tr><tr><td>capping[0][capping_value]</td><td>Integer</td><td>Valor do capping</td></tr><tr><td>capping[0][overcap_action]</td><td>String</td><td>Ação ao exceder o capping<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 do capping</td></tr><tr><td>capping[0][capping_affiliate_visibility]</td><td>Integer</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 dos afiliados (separados por vírgula)</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:blue;">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:blue;">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:blue;">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:blue;">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:blue;">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:blue;">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:blue;">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:blue;">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:orange;"><strong>Depreciado</strong></mark></td></tr><tr><td>capping_budget</td><td>Integer</td><td><mark style="color:orange;"><strong>Depreciado</strong></mark></td></tr><tr><td>capping_conversion</td><td>Integer</td><td><mark style="color:orange;"><strong>Depreciado</strong></mark></td></tr><tr><td>capping_budget_period</td><td>String</td><td><mark style="color:orange;"><strong>Depreciado</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 requisiçã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 requisição da API

**Criação de oferta**

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

**Resposta da API**

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

**Atualização de 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, chame sempre a API do lado do servidor.**
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://knowledgebase.offer18.com/pt/rede/api-da-rede/api-de-criacao-de-oferta.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
