# Introduction

This API allows to create (or update large amount of members.

At most 1000 member records may be sent in one request.
If you intend to run an import more than that, you may group them by `import_id`, so multiple bulks will be grouped into one import.

## Updating

With `operation: "update"` param given, members will be updated. Only attributes present in payload will be updated.

You can specify by which attribute (`id`, `msisdn`, `email`) members for update will be identified.

## Import statuses

Each bulk is processed by an asynchronous job, so you need to check it's status some time after sending a request.

For that, you should firstly check the import status [here](api-3511023) and then 
check bulks details for each bulk [here](api-3511025).

Please note that:

* We recommend to check status in intervals not smaller than 5 seconds
* In extreme cases, it make take even few hours for bulk to be fully processed
* 24 hours after import request any potential personal data (contained in `member_payloads` and `errors`) is permanently removed from server

## Bulk statuses

When bulk is created, it gets `waiting` status.

When bulk has been picked by asynchronous job, it transitions into `working` status.
Depending on the server load, it may get picked instantly or even after few hours in extreme cases.

When the job has been executed successfully (which make take up to few minutes), bulk will have `finished` status assigned.
Please note that it doesn't mean that members have been successfully processed (there may be even none), you'll need to check bulk status
for errors.

When job failed for some internal reason, it will have either `failed` or `waiting_for_retry` status. See below
for more details.  

## Asynchronous job failures

Jobs that couldn't be processed because of some internal reasons will be retried up to 5 times.

After each failure, the bulk will have `waiting_for_retry` status assigned and it's `retries` attribute will be incremented.

After 5th failure, the bulk will have `failed` status assigned. In such case, please contact us, so we may identify 
and resolve the problem.