# Notify

`POST` `https://api.pushwoosh.com/messaging/v2/notify`

एकल संदेश बनाता और शेड्यूल करता है।

## अनुरोध संरचना

अनुरोध बॉडी एक `NotifyRequest` है जिसमें ठीक दो में से एक प्रकार होता है:

- [`segment`](#notifysegment): सेगमेंट कोड, एक [seglang](/hi/developer/api-reference/segmentation-filters-api/segmentation-language/) एक्सप्रेशन, या एक संरचित फ़िल्टर एक्सप्रेशन द्वारा एक ऑडियंस सेगमेंट को लक्षित करें।
- [`transactional`](#notifytransactional): hwids, यूजर आईडी, पुश टोकन, या परीक्षण उपकरणों की एक स्पष्ट सूची में भेजें।

```json title="Shape"
{
  "segment": { ... }       // OR
  "transactional": { ... }
}
```

## NotifySegment

उन उपयोगकर्ताओं को लक्षित करता है जो एक ऑडियंस सेगमेंट या फ़िल्टर एक्सप्रेशन से मेल खाते हैं।

| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| `schedule` | [`Schedule`](#schedule) | कब और कैसे भेजना है। आवश्यक। |
| `application` | string | [एप्लिकेशन कोड](/hi/developer/api-reference/api-identifiers/#application-code)। |
| `platforms` | array of [`Platform`](#platform-enum) | प्लेटफ़ॉर्म जिन्हें संदेश लक्षित करता है। |
| `code` | string | [सेगमेंट कोड](/hi/developer/api-reference/api-identifiers/#segment--filter-code)। `expression` और `filter_expression` के साथ परस्पर अनन्य। |
| `expression` | string | [Seglang](/hi/developer/api-reference/segmentation-filters-api/segmentation-language/) एक्सप्रेशन। |
| `filter_expression` | `FilterExpression` | संरचित फ़िल्टर एक्सप्रेशन (उन्नत)। |
| `payload` | [`Payload`](/hi/developer/api-reference/messaging-api-v2/payload-reference/) | पुश / SMS / Telegram / Kakao / LINE / WhatsApp / Viber पेलोड। `email_payload` के साथ परस्पर अनन्य। |
| `email_payload` | [`EmailPayload`](/hi/developer/api-reference/messaging-api-v2/email-payload-reference/) | ईमेल पेलोड। |
| `campaign` | string | इस संदेश को एट्रिब्यूट करने के लिए [कैंपेन कोड](/hi/developer/api-reference/api-identifiers/#campaign-code)। |
| `frequency_capping` | [`FrequencyCapping`](#frequencycapping) | प्रति-उपयोगकर्ता आवृत्ति सीमा। |
| `send_rate` | [`SendRate`](#sendrate) | भेजने के लिए थ्रॉटलिंग। |
| `message_type` | [`MessageType`](#messagetype-enum) | `MESSAGE_TYPE_MARKETING` (डिफ़ॉल्ट) या `MESSAGE_TYPE_TRANSACTIONAL`। कंट्रोल-ग्रुप फ़िल्टरिंग को नियंत्रित करता है। |
| `dynamic_content_placeholders` | map&lt;string, string&gt; | सामग्री में प्लेसहोल्डर्स को प्रतिस्थापित करता है। |
| `meta_data` | object | डाउनस्ट्रीम एनालिटिक्स को अग्रेषित फ्री-फॉर्म मेटाडेटा। |

### उदाहरण: एक सेगमेंट को भेजें

```bash
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
  -H "Authorization: Token YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "segment": {
      "application": "XXXXX-XXXXX",
      "platforms": ["IOS", "ANDROID"],
      "code": "active_users",
      "payload": {
        "content": {
          "localized_content": {
            "en": {
              "ios":     { "body": "Hello!" },
              "android": { "body": "Hello!" }
            }
          }
        }
      },
      "schedule": { "at": "2026-05-01T12:00:00Z" },
      "message_type": "MESSAGE_TYPE_MARKETING"
    }
  }'
```

## NotifyTransactional

प्राप्तकर्ताओं की एक स्पष्ट सूची में भेजता है।

| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| `schedule` | [`Schedule`](#schedule) | आवश्यक। |
| `application` | string | [एप्लिकेशन कोड](/hi/developer/api-reference/api-identifiers/#application-code)। |
| `platforms` | array of [`Platform`](#platform-enum) | प्लेटफ़ॉर्म जिन्हें संदेश लक्षित करता है। |
| `test_devices` | bool | यदि `true`, तो केवल ऐप के परीक्षण उपकरणों पर भेजें। |
| `hwids` | `{ "list": [string, ...] }` | केवल इन [hwids](/hi/developer/pushwoosh-knowledge-hub/device-identifiers/#hwid) पर भेजें। |
| `users` | `{ "list": [string, ...] }` | केवल इन [यूजर आईडी](/hi/developer/pushwoosh-knowledge-hub/users-userids/) पर भेजें। |
| `push_tokens` | `{ "list": [string, ...] }` | केवल इन [पुश टोकन](/hi/developer/pushwoosh-knowledge-hub/device-identifiers/#push-token) पर भेजें। |
| `payload` | [`Payload`](/hi/developer/api-reference/messaging-api-v2/payload-reference/) | पुश / SMS / Telegram / Kakao / LINE / WhatsApp / Viber पेलोड। |
| `email_payload` | [`EmailPayload`](/hi/developer/api-reference/messaging-api-v2/email-payload-reference/) | ईमेल पेलोड। |
| `return_unknown_identifiers` | bool | जब `true`, तो प्रतिक्रिया का `unknown_identifiers` उन पहचानकर्ताओं को सूचीबद्ध करता है जो नहीं मिले। |
| `use_latest_user_device` | bool | केवल तब लागू होता है जब आप `users` को लक्षित करते हैं। जब `true`, तो संदेश प्रत्येक उपयोगकर्ता के सबसे हाल ही में सक्रिय डिवाइस पर पहुंचाया जाता है — नवीनतम लास्ट एप्लिकेशन ओपन वाला — उस यूजर आईडी से जुड़े सभी उपकरणों के बजाय। डिफ़ॉल्ट रूप से `false` (हर डिवाइस पर भेजें)। |
| `campaign`, `frequency_capping`, `send_rate`, `message_type`, `dynamic_content_placeholders`, `meta_data` | | ऊपर `NotifySegment` देखें। |

`test_devices`, `hwids`, `users`, और `push_tokens` परस्पर अनन्य हैं। ठीक एक सेट होना चाहिए।

### उदाहरण: यूजर आईडी द्वारा ट्रांजैक्शनल

```bash
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
  -H "Authorization: Token YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "transactional": {
      "application": "XXXXX-XXXXX",
      "platforms": ["IOS", "ANDROID"],
      "users": { "list": ["user-123", "user-456"] },
      "payload": {
        "content": {
          "localized_content": {
            "en": { "ios": { "body": "Your order has shipped." } }
          }
        }
      },
      "schedule": { "at": "2026-05-01T12:00:00Z" },
      "message_type": "MESSAGE_TYPE_TRANSACTIONAL",
      "return_unknown_identifiers": true,
      "use_latest_user_device": true
    }
  }'
```

## प्रतिक्रिया

```json
{
  "result": {
    "message_code": "XXXXX-XXXXX-XXXXX",
    "unknown_identifiers": []
  }
}
```

| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| `message_code` | string | अद्वितीय [संदेश कोड](/hi/developer/api-reference/api-identifiers/#message-code)। इसे [`/getMessageDetails`](/hi/developer/api-reference/messages-api/#getmessagedetails) और संदेश सांख्यिकी एंडपॉइंट्स के साथ उपयोग करें। |
| `unknown_identifiers` | array of string | खाते पर नहीं मिले पहचानकर्ता। केवल तब पॉप्युलेट होता है जब `transactional` प्रकार पर `return_unknown_identifiers: true` सेट किया गया था। |

## साझा प्रकार

### Schedule

```json
{
  "at": "2026-05-01T12:00:00Z",
  "follow_user_timezone": true,
  "past_timezones_behaviour": "PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY"
}
```

| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| `at` | timestamp | निरपेक्ष भेजने का समय (RFC 3339)। यदि अतीत में है, तो संदेश तुरंत भेजा जाता है। भविष्य में अधिकतम 14 दिन। |
| `after` | duration | `at` का विकल्प। "अब" से इस ऑफसेट के बाद भेजें (जैसे `"3600s"`)। |
| `follow_user_timezone` | bool | जब `true`, तो प्रत्येक डिवाइस अपने स्थानीय टाइमज़ोन में `at` पर संदेश प्राप्त करता है। |
| `past_timezones_behaviour` | enum | `PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY` (डिफ़ॉल्ट), `PAST_TIMEZONES_BEHAVIOUR_DO_NOT_SEND`, या `PAST_TIMEZONES_BEHAVIOUR_NEXT_DAY`। केवल तब सार्थक है जब `follow_user_timezone` `true` है। |

### FrequencyCapping

मार्केटिंग भेजने के लिए प्रति-उपयोगकर्ता आवृत्ति सीमा। कैपिंग को अक्षम करने के लिए, `frequency_capping` को पूरी तरह से छोड़ दें, या `days: 0` को `count: 0` के साथ भेजें।

```json
{ "days": 7, "count": 3, "exclude": false, "avoid": true }
```

- `days` (int, 1–30, या `0` कैपिंग अक्षम करने के लिए): लुक-बैक विंडो। `count` के साथ भेजा जाना चाहिए — यदि एक `0` है, तो दूसरा भी `0` होना चाहिए; एक को `0` के रूप में भेजना जबकि दूसरा गैर-शून्य है, `400` लौटाता है।
- `count` (int, 1 या उच्चतर, या `0` कैपिंग अक्षम करने के लिए): `days` के भीतर अनुमत अधिकतम संदेश। ऊपर `days` के समान जोड़ी नियम।
- `exclude` (bool): उन उपयोगकर्ताओं को हार्ड-एक्सक्लूड करें जो पहले ही कैप तक पहुंच चुके हैं।
- `avoid` (bool): उन उपयोगकर्ताओं से सॉफ्ट-अवॉइड करें जो पहले ही कैप तक पहुंच चुके हैं (वे अभी भी एनालिटिक्स में गिने जाते हैं)।

<Aside type="caution" title="महत्वपूर्ण">
`days` और `count` को बेमेल शून्य-नेस के साथ भेजना (जैसे `{"days": 0, "count": 5}`) `400` लौटाता है। यह सत्यापन `Notify` में एक ब्रेकिंग चेंज है — वे क्लाइंट जो पहले एक अकेले `0` को चुपचाप अनदेखा किए जाने पर निर्भर थे, अब उन्हें इसके बजाय एक त्रुटि मिलेगी।
</Aside>

### SendRate

```json
{ "value": 500, "bucket": "1s", "avoid": false }
```

भेजने की गति को नियंत्रित करता है। `value` प्रति `bucket` संदेश है; सामान्य `bucket` `"1s"` है।

### Platform enum

`IOS`, `ANDROID`, `OSX`, `WINDOWS`, `AMAZON`, `SAFARI`, `CHROME`, `FIREFOX`, `IE`, `EMAIL`, `BAIDU_ANDROID`, `HUAWEI_ANDROID`, `SMS`, `WEB`, `KAKAO`, `TELEGRAM`, `LINE`, `WHATS_APP`, `VIBER`।

### MessageType enum

- `MESSAGE_TYPE_UNSPECIFIED`: `MESSAGE_TYPE_MARKETING` के बराबर।
- `MESSAGE_TYPE_MARKETING`: कंट्रोल-ग्रुप फ़िल्टरिंग और फ़्रीक्वेंसी कैपिंग के अधीन।
- `MESSAGE_TYPE_TRANSACTIONAL`: कंट्रोल-ग्रुप फ़िल्टरिंग और फ़्रीक्वेंसी कैपिंग को छोड़ देता है। ऑर्डर कन्फर्मेशन, OTP, और इसी तरह के महत्वपूर्ण प्रवाहों के लिए उपयोग करें।

## संबंधित

<CardGrid>
  <LinkCard title="रद्द करें" href="/developer/api-reference/messaging-api-v2/cancel/" />
  <LinkCard title="पेलोड संदर्भ" href="/developer/api-reference/messaging-api-v2/payload-reference/" />
  <LinkCard title="ईमेल पेलोड संदर्भ" href="/developer/api-reference/messaging-api-v2/email-payload-reference/" />
  <LinkCard title="v1 से माइग्रेशन" href="/developer/api-reference/messaging-api-v2/migration-from-v1/" />
</CardGrid>