# সেগমেন্টেশন (ফিল্টার) এপিআই

## createFilter

`POST` `https://api.pushwoosh.com/json/1.3/createFilter`

একটি নতুন ফিল্টার তৈরি করে।

**অনুরোধের বডি**

| নাম | প্রয়োজনীয় | টাইপ | বিবরণ |
| --- | --- | --- | --- |
| auth\* | হ্যাঁ | string | Pushwoosh কন্ট্রোল প্যানেল থেকে প্রাপ্ত [এপিআই অ্যাক্সেস টোকেন](/bn/developer/api-reference/api-identifiers/#api-access-token)। |
| name\* | হ্যাঁ | string | [ফিল্টারের নাম](/bn/developer/api-reference/api-identifiers/#segment--filter-name)। |
| filter\_expression\* | হ্যাঁ | string | <p>[সেগমেন্টেশন ল্যাঙ্গুয়েজ](/bn/developer/api-reference/segmentation-filters-api/segmentation-language/) এর নিয়ম অনুযায়ী নির্মিত এক্সপ্রেশন। <br /><strong>উদাহরণ:</strong> <code>T("City", eq, "Madrid")</code> ব্যবহারকারীদের সেগমেন্ট করতে যাদের শহর মাদ্রিদ।</p> |
| application | না | string | [Pushwoosh অ্যাপ্লিকেশন কোড](/bn/developer/api-reference/api-identifiers/#application-code)। এই প্যারামিটারটি শুধুমাত্র হাই-স্পিড সেটআপের সাথে ব্যবহারযোগ্য; অন্যথায় বাদ দিন। |
| expiration\_date | না | string | ফিল্টারের মেয়াদ শেষ হওয়ার তারিখ। ফিল্টারটি একটি নির্দিষ্ট তারিখে স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে, যদি না এটি একটি প্রিসেট বা একটি আরএসএস ফিডে ব্যবহৃত হয়। |

**200**   
```json
{
  "status_code": 200, 
  "status_message": "OK", 
  "response": {
    "name": "filter name"
  }
}
```



**উদাহরণ**
```json
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",
    "name": "City = Madrid",
    "filter_expression": "T(\"City\", eq, \"Madrid\")",
    "application": "B18XX-XXXXX",
    "expiration_date": "2025-01-01"
  }
}

// টাইমজোনের জন্য ফিল্টার তৈরি করা হচ্ছে 
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // Pushwoosh কন্ট্রোল প্যানেল থেকে এপিআই অ্যাক্সেস টোকেন
    "name": "Timezone Filter",
    "filter_expression": "T(\"Timezone\", BETWEEN, [\"UTC-12:00\", \"UTC+14:00\"])"
  }
}
```


## listFilters

`POST` `https://api.pushwoosh.com/json/1.3/listFilters`

উপলব্ধ সেগমেন্ট (ফিল্টার) এবং তাদের শর্তাবলীসহ একটি তালিকা প্রদান করে।

**অনুরোধের বডি**

| নাম | প্রয়োজনীয় | টাইপ | বিবরণ |
| --- | --- | --- | --- |
| auth\* | হ্যাঁ | string | Pushwoosh কন্ট্রোল প্যানেল থেকে প্রাপ্ত [এপিআই অ্যাক্সেস টোকেন](/bn/developer/api-reference/api-identifiers/#api-access-token)। |
| application\* | হ্যাঁ | string | [Pushwoosh অ্যাপ্লিকেশন কোড](/bn/developer/api-reference/api-identifiers/#application-code) |


**200** 
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "filters": [{
      "code": "52551-F2F42",
      "name": "City = Madrid",
      "filter_expression": "T(\"City\", eq, \"madrid\")",
      "expiration_date": "2025-01-01",
      "application": "B18XX-XXXXX"
    }]
  }
}

```


**উদাহরণ**
```json
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H",
    "application": "B18XX-XXXXX"
  }
}
```

## deleteFilter

`POST` `https://api.pushwoosh.com/json/1.3/deleteFilter`

একটি বিদ্যমান ফিল্টার মুছে ফেলে।

**অনুরোধের বডি**

| নাম | টাইপ | বিবরণ |
| --- | --- | --- |
| auth\* | string | Pushwoosh কন্ট্রোল প্যানেল থেকে প্রাপ্ত [এপিআই অ্যাক্সেস টোকেন](/bn/developer/api-reference/api-identifiers/#api-access-token)। |
| name\* | string | [ফিল্টারের নাম](/bn/developer/api-reference/api-identifiers/#segment--filter-name)। |

<Tabs>
<TabItem label="200">
```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": null
}
```
</TabItem>
</Tabs>



```json title="উদাহরণ"
{
  "request": {
    "auth": "yxoPUlwqm…………pIyEX4H", // Pushwoosh কন্ট্রোল প্যানেল থেকে এপিআই অ্যাক্সেস টোকেন
    "name": "filter name"
  }
}
```

## exportSegment

`POST` `https://api.pushwoosh.com/api/v2/audience/exportSegment`

একটি নির্ধারিত অনুরোধ। নির্দিষ্ট ফিল্টার শর্তের অধীনে থাকা সাবস্ক্রাইবারদের তালিকা এক্সপোর্ট করে।

**অনুরোধের বডি**
| নাম <div style="width:100px"></div> | প্রয়োজনীয় <div style="width:100px"></div> | টাইপ | বিবরণ |
|---|---|---|---|
| auth\* | হ্যাঁ | string | Pushwoosh কন্ট্রোল প্যানেল থেকে প্রাপ্ত [এপিআই অ্যাক্সেস টোকেন](/bn/developer/api-reference/api-identifiers/#api-access-token)। |
| filterExpression\* | হ্যাঁ | string | ফিল্টারের শর্তাবলী |
| exportData | না | array | এক্সপোর্ট করার জন্য ডেটা। সম্ভাব্য মান: `"hwids"`, `"push_tokens"`, `"users"`, `"tags"`, `"location"`। `"location"` অন্তর্ভুক্ত করলে এক্সপোর্ট করা CSV ফাইলে `Latitude` এবং `Longitude` কলাম যুক্ত হয়। যদি `exportData` বাদ দেওয়া হয়, তাহলে `Latitude` এবং `Longitude` ডিফল্টভাবে এক্সপোর্টে অন্তর্ভুক্ত থাকে। |
| filterCode | না | string | আগে থেকে তৈরি [ফিল্টার কোড](/bn/developer/api-reference/api-identifiers/#segment--filter-code), `filterExpression` এর পরিবর্তে ব্যবহার করা যেতে পারে। এটি `/listFilters` এপিআই থেকে বা কন্ট্রোল প্যানেলে ফিল্টার দেখার সময় আপনার ব্রাউজারের অ্যাড্রেস বার থেকে পাওয়া যেতে পারে। |
| applicationCode | `filterExpression` বা `filterCode` ব্যবহার করলে প্রয়োজনীয়। | string | [Pushwoosh অ্যাপ্লিকেশন কোড](/bn/developer/api-reference/api-identifiers/#application-code) |
| generateExport | না | boolean | ডিফল্টভাবে `true` তে সেট করা থাকে, এবং একটি প্রতিক্রিয়াতে ফাইলটি ডাউনলোড করার জন্য একটি লিঙ্ক থাকে। যদি `false` হয়, তবে প্রতিক্রিয়াতে শুধুমাত্র ডিভাইসের সংখ্যা পাঠানো হবে। |
| format | না | string | এক্সপোর্ট করা ফাইলের ফরম্যাট সেট করে: "csv" বা "json\_each\_line"। যদি বাদ দেওয়া হয়, তাহলে CSV ফাইল তৈরি হয়। |
| tagsList | না | array | এক্সপোর্ট করার জন্য [ট্যাগ](/bn/developer/api-reference/api-identifiers/#tag) নির্দিষ্ট করে। শুধুমাত্র নির্দিষ্ট ট্যাগগুলি পেতে, "exportData" অ্যারেতে "tags" মানটি থাকা উচিত। |
| includeWithoutTokens | না | boolean | এক্সপোর্ট করা ফাইলে পুশ টোকেন ছাড়া ব্যবহারকারীদের অন্তর্ভুক্ত করতে `true` তে সেট করুন। ডিফল্ট `false`। |


<Tabs>
<TabItem label="200 সফল">
```json
{
  "task_id": "177458"
}
```
</TabItem>
</Tabs>



```json title="উদাহরণ"
{
  "auth": "yxoPUlwqm…………pIyEX4H",                           // প্রয়োজনীয়। Pushwoosh কন্ট্রোল প্যানেল থেকে এপিআই অ্যাক্সেস টোকেন
  "filterExpression": "AT(\"12345-67890\", \"Name\", any)", // ফিল্টারের শর্তাবলী, সিনট্যাক্সের জন্য সেগমেন্টেশন ল্যাঙ্গুয়েজ গাইড দেখুন 
  "filterCode": "12345-67890",                              // আগে থেকে তৈরি ফিল্টার কোড, filterExpression এর পরিবর্তে ব্যবহার করা যেতে পারে
  "applicationCode": "00000-AAAAA",                         // যদি আপনি `filterExpression` বা `filterCode` ব্যবহার করেন তবে এটি প্রয়োজনীয়। Pushwoosh অ্যাপ কোড। এটি /listFilters এপিআই অনুরোধ থেকে বা কন্ট্রোল প্যানেলে ফিল্টার দেখার সময় আপনার ব্রাউজারের অ্যাড্রেস বার থেকে পাওয়া যেতে পারে।
  "generateExport": true,                                   // যদি false হয়, তবে প্রতিক্রিয়াতে শুধুমাত্র ডিভাইসের সংখ্যা পাঠানো হবে; ডিফল্টভাবে, একটি প্রতিক্রিয়াতে CSV ফাইল ডাউনলোড করার জন্য একটি লিঙ্ক থাকে
  "format": "json_each_line",                               // ডেটা উপস্থাপনের জন্য ফাইলের ফরম্যাট: "csv" – .csv ফাইল ডাউনলোড করা হয়; "json" – সমস্ত এক্সপোর্ট করা ডিভাইসসহ একটি JSON ফাইল; বা "json_each_line" – প্রতিটি ডিভাইসের জন্য JSON লাইন। যদি নির্দিষ্ট না করা হয়, CSV ডিফল্ট ফরম্যাট। 
  "exportData": ["hwids", "tags"],                          // ঐচ্ছিক। এক্সপোর্ট করার জন্য ডেটা। সম্ভাব্য মান: "hwids", "push_tokens", "users", "tags", "location", "fcm_keys", "web keys"
  "tagsList": ["Name", "Level"],                            // ঐচ্ছিক। এক্সপোর্ট করার জন্য ট্যাগ নির্দিষ্ট করে। শুধুমাত্র নির্দিষ্ট ট্যাগগুলি পেতে, "tags" মানটি "exportData" অ্যারের মধ্যে পাঠানো উচিত বা "exportData" খালি থাকা উচিত। 
  "includeWithoutTokens": true                              // ঐচ্ছিক। এক্সপোর্ট করা ফাইলে পুশ টোকেন ছাড়া ব্যবহারকারীদের অন্তর্ভুক্ত করতে true তে সেট করুন। ডিফল্ট false।
}
```

<Aside type="note">
ফিল্টার এক্সপ্রেশন লেখার জন্য সেগমেন্টেশন ল্যাঙ্গুয়েজের রেফারেন্স [এখানে](/bn/developer/api-reference/segmentation-filters-api/segmentation-language/) খুঁজুন।
</Aside>

উদাহরণস্বরূপ, একটি নির্দিষ্ট অ্যাপের সমস্ত সাবস্ক্রাইবার এক্সপোর্ট করতে, নিম্নলিখিত ফিল্টার শর্তাবলী ব্যবহার করুন:

```json
{
  "auth": "yxoPUlwqm…………pIyEX4H",            // Pushwoosh কন্ট্রোল প্যানেল থেকে এপিআই অ্যাক্সেস টোকেন
  "filterExpression": "A(\"AAAAA-BBBBB\")",  // অ্যাপ সেগমেন্ট উল্লেখ করে ফিল্টার এক্সপ্রেশন
  "applicationCode": "AAAAA-BBBBB"           // প্রয়োজনীয় Pushwoosh অ্যাপ কোড
}
```

<Aside type="caution">
প্রতিক্রিয়াতে, আপনি ফলাফল ফাইলটি পেতে **`task_id`** পাবেন। তারপর, ফলাফল ফাইলটি পুনরুদ্ধার করতে অনুরোধের বডিতে সেই `task_id` সহ [/exportSegment/result](./#exportsegment-results) কল করুন।
</Aside>

## exportSegment ফলাফল

`POST` `https://api.pushwoosh.com/api/v2/audience/exportSegment/result`

**/exportSegment ফলাফলের সাথে CSV ফাইলের লিঙ্কটি পুনরুদ্ধার করে।**

**অনুরোধের বডি**

| নাম | টাইপ | বিবরণ |
| --- | --- | --- |
| auth\* | String | Pushwoosh কন্ট্রোল প্যানেল থেকে প্রাপ্ত [এপিআই অ্যাক্সেস টোকেন](/bn/developer/api-reference/api-identifiers/#api-access-token)। |
| task\_id\* | String | আপনার `/exportSegment` প্রতিক্রিয়াতে প্রাপ্ত আইডেন্টিফায়ার। |

<Tabs>
<TabItem label="200: ঠিক আছে">
```json
{
  "devicesCount": "24735",
  "filename": "https://static.pushwoosh.com/segment-export/export_segment_XXXXX_XXXXX_xxxxxxxxxxxxxxxxx.csv.zip",
  "status": "completed"
}
```
</TabItem>
</Tabs>

আপনার `/exportSegment` প্রতিক্রিয়াতে প্রাপ্ত "**task\_id**" `/exportSegment/result` অনুরোধের বডিতে পাস করুন।

"/exportSegment/result" প্রতিক্রিয়াতে, আপনি "filename" প্যারামিটারটি পাবেন। একটি ZIP আর্কাইভ স্বয়ংক্রিয়ভাবে ডাউনলোড করতে সেই প্যারামিটারের মানে দেওয়া লিঙ্কটি অনুসরণ করুন। ডিভাইসের ডেটা সম্বলিত CSV বা JSON ফাইল (আপনার অনুরোধে নির্দিষ্ট "format" এর উপর নির্ভর করে) পুনরুদ্ধার করতে আর্কাইভটি আনপ্যাক করুন।

এপ্রিল ৩, ২০২৫ থেকে ফাইলটি ডাউনলোড করার জন্য অনুমোদন প্রয়োজন:

- যদি একটি **ব্রাউজারের** মাধ্যমে ডাউনলোড করেন, তবে অ্যাক্সেস পেতে কেবল **Pushwoosh কন্ট্রোল প্যানেলে** লগ ইন করুন।  
- যদি **সার্ভার সফটওয়্যারের** মাধ্যমে ডাউনলোড করেন, তবে আপনার অনুরোধে নিম্নলিখিত হেডারটি অন্তর্ভুক্ত করুন:
`Authorization: Token YOUR_API_TOKEN`

যদি আপনি আপনার `/exportSegment` অনুরোধে "exportData" নির্দিষ্ট করেন, তবে ডাউনলোড করা ফাইলে শুধুমাত্র অনুরোধ করা ডেটা থাকবে। ডিফল্টভাবে, ফাইলটিতে নিম্নলিখিত ব্যবহারকারীর ডেটা থাকে:

| **ক্ষেত্র** | বিবরণ | **মানের উদাহরণ** |
| --- | --- | --- |
| Hwid | একটি ডিভাইসের [হার্ডওয়্যার আইডি](/bn/developer/api-reference/api-identifiers/#hardware-id) | 01D1BA5C-AAAA-0000-BBBB-9B81CD5823C8 |
| User ID | [ইউজার আইডি](/bn/developer/api-reference/api-identifiers/#user-id) যা একটি ডিভাইসকে একটি নির্দিষ্ট ব্যবহারকারীর সাথে যুক্ত করে। যদি কোনো ইউজার আইডি বরাদ্দ না করা হয়, তবে HWID ব্যবহৃত হয়। | user8192 |
| Push Token | ক্লাউড মেসেজিং গেটওয়ে দ্বারা একটি ডিভাইসে বরাদ্দ করা অনন্য শনাক্তকারী। [আরও জানুন](/bn/developer/api-reference/api-identifiers/#push-token) | eeeb2fd7....0fc3547 |
| Type | প্ল্যাটফর্মের ধরন (পূর্ণসংখ্যা)। | 1 |
| Type (humanized) | প্ল্যাটফর্মের ধরন (স্ট্রিং)। | iOS |
| Age | ডিফল্ট বয়স ট্যাগের মান। | 29 |
| ApplicationVersion | ডিফল্ট অ্যাপ্লিকেশন সংস্করণ ট্যাগের মান। | 1.12.0.0 |
| City | ডিফল্ট শহর ট্যাগের মান। | us, boston |
| TagName | আপনার অ্যাকাউন্টে তৈরি একটি ট্যাগের মান। | TagValue |