# Offer Create API

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

:link: [<mark style="color:blue;">**Click to Test Offer Create API**</mark>](https://offer18.readme.io/reference/offers-api)

### Common Parameters

| **Query**  | **Type** | **Description**    |
| ---------- | -------- | ------------------ |
| mid        | Integer  | Network Account ID |
| api-key    | String   | Network API Key    |
| secret-key | String   | Network Secret Key |

**Action**

<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>type</td><td>String</td><td><strong>Allowed Values:</strong><br>create / update</td></tr><tr><td>oid</td><td>Integer</td><td>Required in Offer Update</td></tr></tbody></table>

***

### **Fields**&#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>Name of the Campaign</td></tr><tr><td>advertiser_id</td><td>Integer</td><td>Advertiser ID </td></tr><tr><td>offer_url</td><td>URL</td><td>Campaign's URL</td></tr><tr><td>external_offer_id</td><td>String</td><td>External Campaign id (if any)</td></tr><tr><td>app_id</td><td>String</td><td>App id (if any)</td></tr><tr><td>logo</td><td>URL</td><td>URL of the Campaign's logo</td></tr><tr><td>category</td><td>String</td><td>Category of the Campaign</td></tr><tr><td>preview_url</td><td>URL</td><td>Preview URL of the Campaign</td></tr><tr><td>currency</td><td>String</td><td><p>Currency of the Offer</p><p><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="../../../universal/common-values#currency"><mark style="color:blue;">View Currencies</mark></a></p></td></tr><tr><td>price_advertiser</td><td>Decimal</td><td>Price given by Advertiser for Campaign</td></tr><tr><td>price_affiliate</td><td>Decimal</td><td>Price given to Affiliate for Campaign</td></tr><tr><td>model_advertiser</td><td>String</td><td>Advertiser Model of Campaign<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="../../../universal/common-values#models"><mark style="color:blue;">View Models</mark></a></td></tr><tr><td>model_affiliate</td><td>String</td><td>Advertiser Model of Campaign<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="../../../universal/common-values#models"><mark style="color:blue;">View Models</mark> </a></td></tr><tr><td>hide_affiliate_payout</td><td>Integer</td><td>Allowed values <br><strong>1:</strong> To hide Affiliate Payout</td></tr><tr><td>start_datetime</td><td>Timestamp UTC</td><td>Start date / time<br>(YYYY-MM-DD HH:MM:SS) </td></tr><tr><td>end_datetime</td><td>Timestamp UTC</td><td>End date / time<br>(YYYY-MM-DD HH:MM:SS )</td></tr><tr><td>visibility</td><td>String</td><td><strong>Allowed values:</strong><br>public, permission, private</td></tr><tr><td>status</td><td>String</td><td><strong>Allowed values:</strong> approve, pending</td></tr><tr><td>deep_links</td><td>Integer</td><td>Allowed values<br><strong>1:</strong> To enable deeplinks in Offers</td></tr><tr><td>offer_terms</td><td>String</td><td>Terms of the Campaign</td></tr><tr><td>offer_kpi</td><td>String</td><td>KPI terms of the Campaign</td></tr><tr><td>private_note</td><td>String</td><td>Private Notes in Campaign</td></tr><tr><td>imps_url</td><td>URL</td><td>Impression URL</td></tr><tr><td>landing_page_name_1</td><td>String</td><td>Name of the first landing page </td></tr><tr><td>landing_page_url_1</td><td>URL</td><td>URL of the first landing page for the Campaign</td></tr><tr><td>landing_page_name_2</td><td>String</td><td>Name of the second landing page</td></tr><tr><td>landing_page_url_2</td><td>URL</td><td>URL of the second landing page for the Campaign</td></tr><tr><td>creatives</td><td>URL</td><td>URL of the Creatives for the Campaign</td></tr><tr><td>fallback</td><td>boolean</td><td>Allowed values:<br><strong>1:</strong> To enable Fallback</td></tr><tr><td>fallback_offer_id</td><td>Integer</td><td>Fallback's Offer ID</td></tr><tr><td>fallback_url</td><td>URL</td><td>URL of the Fallback</td></tr><tr><td>fraud_conv_speed</td><td>Integer</td><td>Time in seconds</td></tr><tr><td>proxy_block</td><td>Integer</td><td>Allowed values:<br><strong>1:</strong> To block proxies</td></tr><tr><td>blank_ref_block</td><td>Integer</td><td>Allowed values:<br><strong>1:</strong> To block blank Reference</td></tr><tr><td>hide_referral</td><td>Integer</td><td>Allowed values:<br><strong>1:</strong> To hide referral</td></tr><tr><td>assign_affiliates</td><td>Integer</td><td>Assign Affiliates to this Campaign<br>(Comma-separated values)</td></tr><tr><td>capping_rule_id</td><td>String</td><td>In case user wants to Update existing capping rule</td></tr><tr><td>capping[0][capping_rule_name]</td><td>String</td><td>Capping Rule Name </td></tr><tr><td>capping[0][capping_rule_type]</td><td>String</td><td>Type of capping rule <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>Capping Timezone</td></tr><tr><td>capping[0][capping_events]</td><td>String</td><td>Capping events</td></tr><tr><td>capping[0][capping_type]</td><td>String</td><td>Type of 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>Capping period<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>Capping Value</td></tr><tr><td>capping[0][overcap_action]</td><td>String</td><td>Overcap Action<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>Capping Notification Email</td></tr><tr><td>capping[0][capping_affiliate_visibility]</td><td>Integer</td><td><strong>1:</strong> To Show Capping Rule to affiliate</td></tr><tr><td>capping[0][capping_affiliate_id]</td><td>Stirng</td><td>Affiliate ID's (Comma seperated)</td></tr><tr><td>target_country</td><td>String</td><td>Allow specific Country <br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="../../../universal/common-values#countries"><mark style="color:blue;">View Countries</mark></a></td></tr><tr><td>block_country</td><td>String</td><td>Block specific Country <br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="../../../universal/common-values#countries"><mark style="color:blue;">View Countries</mark></a></td></tr><tr><td>target_os</td><td>String</td><td>Allow specific Operating system<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="../../../universal/common-values#operating-systems"><mark style="color:blue;">View OS</mark></a></td></tr><tr><td>block_os</td><td>String</td><td>Block specific Operating system<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="../../../universal/common-values#operating-systems"><mark style="color:blue;">View OS</mark></a></td></tr><tr><td>target_device</td><td>String</td><td>Allow specific Devices<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span><a href="../../../universal/common-values#devices"> <mark style="color:blue;">View Devices</mark></a></td></tr><tr><td>block_device</td><td>String</td><td>Block specific Devices<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span><a href="../../../universal/common-values#devices"> <mark style="color:blue;">View Devices</mark></a></td></tr><tr><td>target_browser</td><td>String</td><td>Allow specific Browser<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="../../../universal/common-values#browsers"><mark style="color:blue;">View Browsers</mark></a></td></tr><tr><td>block_browser</td><td>String</td><td>Block specific Browser<br><span data-gb-custom-inline data-tag="emoji" data-code="1f517">🔗</span> <a href="../../../universal/common-values#browsers"><mark style="color:blue;">View Browsers</mark></a></td></tr><tr><td>target_isp</td><td>String</td><td>Allow specific ISP</td></tr><tr><td>block_isp</td><td>String</td><td>Block specific ISP</td></tr><tr><td>events[0][event_name]</td><td>String</td><td>Name of the event </td></tr><tr><td>events[0][event_token]</td><td>String</td><td>Token for the event</td></tr><tr><td>capping_conversion_period</td><td>String</td><td><mark style="color:orange;"><strong>Depreciated</strong></mark></td></tr><tr><td>capping_budget</td><td>Integer</td><td><mark style="color:orange;"><strong>Depreciated</strong></mark></td></tr><tr><td>capping_conversion</td><td>Integer</td><td><mark style="color:orange;"><strong>Depreciated</strong></mark></td></tr><tr><td>capping_budget_period</td><td>String</td><td><mark style="color:orange;"><strong>Depreciated</strong></mark></td></tr></tbody></table>

**Capping Rules (Instructions)**&#x20;

{% hint style="info" %}

1. If you want to set multiple capping rules, you can do it by assigning rules to different numbers\
   **Example 1:** \
   &#x20; capping\[**1**]\[capping\_rule\_name] \
   &#x20; capping\[**1**]\[capping\_rule\_type]\
   **Example 2:**\
   &#x20; capping\[**2**]\[capping\_rule\_name] \
   &#x20; capping\[**2**]\[capping\_rule\_type]
2. If you want to update existing capping rule, you must post **capping\_rule\_id** in API Request along with new data to **0**(Zero) number\
   **Example:**\
   &#x20; capping\[**0**]\[capping\_rule\_name] \
   &#x20; capping\[**0**]\[capping\_rule\_type]
   {% endhint %}

**Events (Instructions)**&#x20;

{% hint style="info" %}

1. If you want to create multiple events, you can do it by assigning events to different numbers\
   **Example 1:** \
   &#x20; events\[1]\[event\_name] \
   &#x20; events\[1]\[event\_token]\
   **Example 2:**\
   &#x20; events\[2]\[event\_name] \
   &#x20; events\[2]\[event\_token]
   {% endhint %}

***

### Example API Request

**Offer Create**

![](https://295230641-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F41f2EboJipeUA6flsLGK%2Fuploads%2Fdx5QTRNVdSSn89Lmib9O%2Fimage.png?alt=media\&token=855f8e50-bbf1-4c8d-998d-2a0bf3133d67)

**API Response**

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

**Offer Update**

![](https://295230641-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F41f2EboJipeUA6flsLGK%2Fuploads%2Fp9ZW5G3rU3gMmESmYWwY%2Fimage.png?alt=media\&token=ba10f54b-9203-4576-b029-139456429b94)

**API Response**

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

***

{% hint style="info" %}
**For secure interactions, always call the API from the server-side.**
{% endhint %}
