# Offer Create API

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

: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>action</td><td>String</td><td><strong>Allowed Values:</strong><br>create / update / delete</td></tr><tr><td>offer_id</td><td>Integer</td><td>Required in Offer Update and Delete</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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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="/pages/ytQjT8cViRfxea7uvzlN#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**

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

**API Response**

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

**Offer Update**

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

**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 %}


---

# 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/network/network-api/offer-create-api.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.
