Public API
REST API для интеграции с ImpactBot из вашей системы.
Base URL
`https://api.impactbot.ru/api/public`
Authentication
API key — Settings → API Keys → Generate:
- Имя ключа (для удобства)
- Permissions: read / write / admin
- Expiration: never / 30 days / 90 days
Header в запросе: ``` Authorization: Bearer ib_pk_your_key_here ```
Endpoints
### Clients
- `GET /clients` — список с pagination
- `GET /clients/:id` — один клиент
- `POST /clients` — создать клиента вручную
- `PUT /clients/:id` — обновить переменные/теги
- `DELETE /clients/:id` — удалить (soft)
### Flows
- `GET /flows` — список flows
- `POST /flows/:id/trigger` — запустить flow на клиенте
```json { "client_id": "...", "input_data": { "amount": 100 } } ```
### Messages
- `POST /messages/send` — отправить сообщение
```json { "client_id": "...", "text": "Hello!", "buttons": [...] } ```
### Webhooks
- `POST /webhooks/incoming` — для приёма от других систем
- `GET /webhooks` — список outgoing webhooks
- `POST /webhooks` — зарегистрировать новый
Rate limits
- 100 req/min для default API key
- 1000 req/min для Pro tier
- 5000 req/min для Enterprise
При превышении — 429 с `Retry-After` header.
Errors
- 400 — invalid request body
- 401 — invalid API key
- 403 — insufficient permissions
- 404 — not found
- 429 — rate limit
- 500 — server error
SDK
- Python: `pip install impactbot-sdk` (planned)
- Node.js: `npm install impactbot-sdk` (planned)
- Generate OpenAPI spec: `/api/openapi.json`
Postman collection
Settings → API → Download Postman collection — готовые запросы со всеми endpoints.