# API দ্বারা শুরু করুন

`POST` `https://journey.pushwoosh.com/api/journey/{id}/start/external`

একটি জার্নির **API এন্ট্রি পয়েন্টে** ব্যবহারকারীদের একটি সেট প্রবেশ করায়। আপনার নিজের ব্যাকএন্ড থেকে জার্নি চালাতে এটি ব্যবহার করুন। উদাহরণস্বরূপ, যখন একজন ব্যবহারকারী আপনার সার্ভারে সাইনআপ সম্পন্ন করে, তখন একটি অনবোর্ডিং ফ্লো শুরু করুন।

<Aside type="tip">
এই কলটিকে [লাইফসাইকেল স্টার্ট](/bn/developer/api-reference/customer-journey-api/lifecycle/#endpoints) এর সাথে গুলিয়ে ফেলবেন না, যা একটি জার্নি সক্রিয় করে এবং এটিকে **চলমান** অবস্থায় নিয়ে যায়। API দ্বারা শুরু করুন একটি জার্নিতে ব্যবহারকারীদের ইনজেক্ট করে যা ইতিমধ্যে চলছে। [তুলনামূলক সারণী](/bn/developer/api-reference/customer-journey-api/#lifecycle-start-vs-start-by-api) দেখুন।
</Aside>

## পূর্বশর্ত

- জার্নিটি **চলমান** অবস্থায় আছে।
- জার্নিতে ঠিক একটি API এন্ট্রি পয়েন্ট রয়েছে ("API দ্বারা শুরু করুন" এলিমেন্ট), এবং সেই এলিমেন্টটি নিষ্ক্রিয় করা হয়নি।
- আপনি যে অ্যাট্রিবিউটের নাম পাঠান তা সেই API এন্ট্রি পয়েন্টে কনফিগার করা অ্যাট্রিবিউটের সাথে মেলে।

<Aside type="caution" title="রেট লিমিট">
প্রতিটি API এন্ট্রি পয়েন্ট **প্রতি মিনিটে একটি অনুরোধ** গ্রহণ করে। সেই উইন্ডোর মধ্যে দ্বিতীয় অনুরোধ একটি ত্রুটি ফেরত দেয় (`Enhance your calm! only one request per minute is allowed`)। অনেক ছোট অনুরোধ পাঠানোর পরিবর্তে আপনার প্রাপকদের একটি একক অনুরোধে ব্যাচ করুন।
</Aside>

## পাথ প্যারামিটার

| নাম | টাইপ | বিবরণ |
|---|---|---|
| `id` | string | চলমান জার্নির [জার্নি আইডি](/bn/developer/api-reference/api-identifiers/#journey-id)। |

## রিকোয়েস্ট হেডার

| নাম | প্রয়োজনীয় | মান |
|---|---|---|
| `Content-Type` | হ্যাঁ | `application/json` |
| `Authorization` | হ্যাঁ | `Api <server_api_token>`। দেখুন [সার্ভার API টোকেন](/bn/developer/api-reference/api-access-token/#server-api-token)। |

## রিকোয়েস্ট বডি

বডিতে একটি একক `payload` অবজেক্ট রয়েছে। জার্নিতে কে প্রবেশ করবে তা নির্বাচন করতে আপনাকে `users`, `hwids`, বা `filter` এর মধ্যে **ঠিক একটি** প্রদান করতে হবে।

| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
| `payload.users` | string[] | প্রবেশ করার জন্য [ইউজার আইডি](/bn/developer/api-reference/api-identifiers/#user-id)। `hwids` এবং `filter` এর সাথে পারস্পরিকভাবে স্বতন্ত্র। |
| `payload.hwids` | string[] | প্রবেশ করার জন্য [HWIDs](/bn/developer/pushwoosh-knowledge-hub/device-identifiers/#hwid)। `users` এবং `filter` এর সাথে পারস্পরিকভাবে স্বতন্ত্র। |
| `payload.filter` | string | একটি [সেগমেন্টেশন ল্যাঙ্গুয়েজ](/bn/developer/api-reference/segmentation-filters-api/segmentation-language/) এক্সপ্রেশন যা অডিয়েন্স নির্বাচন করে। `users` এবং `hwids` এর সাথে পারস্পরিকভাবে স্বতন্ত্র। |
| `payload.attribute_values` | map&lt;string, string&gt; | ঐচ্ছিক। API এন্ট্রি পয়েন্টে সংজ্ঞায়িত কাস্টম অ্যাট্রিবিউটের জন্য মান। প্রতিটি কী একটি কনফিগার করা অ্যাট্রিবিউটের নামের সাথে মিলতে হবে। |

### রিকোয়েস্টের উদাহরণ

##### নির্দিষ্ট ব্যবহারকারীদের প্রবেশ করান

```bash
curl -X POST 'https://journey.pushwoosh.com/api/journey/<journey_id>/start/external' \
  -H 'Authorization: Api YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "payload": {
      "users": ["user-123", "user-456"]
    }
  }'
```
##### অ্যাট্রিবিউট সহ নির্দিষ্ট ব্যবহারকারীদের প্রবেশ করান

```json
{
  "payload": {
    "users": ["user-123", "user-456"],
    "attribute_values": {
      "promo_code": "SUMMER25",
      "tier": "gold"
    }
  }
}
```

##### ফিল্টার দ্বারা একটি অডিয়েন্স প্রবেশ করান

```json
{
  "payload": {
    "filter": "A(\"XXXXX-XXXXX\").tags(\"City\").eq(\"London\")"
  }
}
```


## রেসপন্স

<Tabs>
<TabItem label="200">

```json
{
  "request_uuid": "9f8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d"
}
```

| ফিল্ড | টাইপ | বিবরণ |
|---|---|---|
| `request_uuid` | string | গৃহীত এন্ট্রি অনুরোধের শনাক্তকারী। অনুরোধটি অ্যাসিঙ্ক্রোনাসভাবে প্রক্রিয়া করা হয়। |

</TabItem>
<TabItem label="400">

যাচাইকরণ ত্রুটিগুলি একটি বর্ণনামূলক বার্তা সহ HTTP `400` ফেরত দেয়। সাধারণ ক্ষেত্রগুলি:

| বার্তা | কারণ |
|---|---|
| `one of users, hwids or filter must be provided` | তিনটি নির্বাচকের কোনোটিই সেট করা হয়নি। |
| `only one of users, hwids or filter must be provided` | একাধিক নির্বাচক সেট করা হয়েছিল। |
| `Journey is not running` | জার্নিটি চলমান অবস্থায় নেই। |
| `zero api start points` | জার্নিতে কোনো API এন্ট্রি পয়েন্ট নেই। |
| `there is more then one api start point` | জার্নিতে একাধিক API এন্ট্রি পয়েন্ট রয়েছে। |
| `point is deactivated` | API এন্ট্রি পয়েন্টটি নিষ্ক্রিয় করা হয়েছে। |
| `unknown attribute: <name>` | একটি `attribute_values` কী API এন্ট্রি পয়েন্টে কনফিগার করা নেই। |
| `Enhance your calm! only one request per minute is allowed` | রেট লিমিট হিট হয়েছে (প্রতি এন্ট্রি পয়েন্টে প্রতি মিনিটে একটি অনুরোধ)। |

</TabItem>
</Tabs>

## সম্পর্কিত

<CardGrid>
  <LinkCard title="লাইফসাইকেল" href="/developer/api-reference/customer-journey-api/lifecycle/" />
  <LinkCard title="জার্নির পরিসংখ্যান পান" href="/developer/api-reference/customer-journey-api/statistics/" />
  <LinkCard title="সেগমেন্টেশন ল্যাঙ্গুয়েজ" href="/developer/api-reference/segmentation-filters-api/segmentation-language/" />
</CardGrid>