# a5000 API
## Авторизация
Любые запросы к API возможны только при прохождении авторизации. Авторизация осуществляется путем передачи **персонального ключа** в заголовке запроса. Ключ для авторизации выдается сотрудником а5000 при настройке интеграции и может быть использован во всех доступных методах.
```
x-api-key = d9787ffe415ffd64d553e9fc88364788f4ea7a548ac297e528a6acd74eac6ed45d1707e6c64cc40eb9ea4ccf00714aaf
```
## Получение полного списка анкет
**GET** /api/export/data/**exportID**
`exportID` - id конфигурации экспорта, выдается сотрудником а5000 при настройке интеграции
При успешном запросе сервер возвращает **status 200** и список анкет в формате JSON
Пример ответа
```
[
{"citizenship":"Россия","lastName":"Иванов","category":"Организатор","gender":"Мужской","firstName":"Иван","id":"522493"},
{"citizenship":"Индия","lastName":"Brown","category":"Участник","gender":"Мужской","firstName":"John","id":"522494"}
]
```
Все ключи JSON могут при необходимости изменяться
## Получение списка анкет с timestamp
**GET** /api/export/data/**exportID**/**timestamp**
`exportID` - id конфигурации экспорта, выдается сотрудником а5000 при настройке интеграции
`timestamp` - timestamp в **миллисекундах**
При успешном запросе сервер возвращает **status 200** и список анкет в формате JSON, измененных или созданных с момента, переданного в `timestamp`
Пример ответа
```
[
{"citizenship":"Россия","lastName":"Иванов","category":"Организатор","gender":"Мужской","firstName":"Иван","id":"522493"},
{"citizenship":"Индия","lastName":"Brown","category":"Участник","gender":"Мужской","firstName":"John","id":"522494"}
]
```
Все ключи JSON могут при необходимости изменяться
## Добавление/обновление анкеты по внешнему запросу
**PUT** /api/app/formdata/import/**importID**
`importID` - id конфигурации импорта, выдается сотрудником а5000 при настройке интеграции
Пример тела запроса
```
{
"id":"123456",
"email":"example@mail.ru",
"name":"John"
}
```
также допустимо передавать массив
```
[
{
"id":"123456",
"email":"example@mail.ru",
"name":"John"
},
{
"id":"123457",
"email":"example2@mail.ru",
"name":"Genry"
}
]
```
В теле запроса необходимо передавать уникальный идентификатор анкеты (оговаривается при настройке интеграции), если анкета с переданным идентификатором не будет найдена, то она будет создана, если анкета с переданным идентификатором будет найдена - все переданные для неё данные будут обновлены.
Для удаления значения поля необходимо передать в соответствующем ключе значение `null`.
Пример тела запроса
```
{
"id":"123456",
"email":null,
"name":"John"
}
```
При успешном запросе сервер возвращает **status 200**