---
title: "Як отримати дані з API через send_request"
description: "Налаштуйте ноду Send Request, збережіть поля JSON-відповіді у змінні та перевірте гілки успіху і помилки."
---

# Як отримати дані з API за допомогою send_request

Дія `send_request` дає змогу отримувати дані із зовнішніх API та обробляти відповідь у сценарії. Це корисно для отримання курсу валют, погоди, інформації про замовлення з CRM та інших даних.

> **Секрети для сценаріїв:** якщо адміністратор увімкнув збережені секрети, дані автентифікації вставляють у URL, заголовки або тіло запиту ноди Send Request через **Вставити поле credential** чи **Вставити auth header**. Див. [керування секретами](/uk/settings/how-to/manage-action-credentials.md) та [секрет у Send Request](/uk/scenariobuilder/how-to/use-saved-credential-in-send-request.md).

1. Дія `send_request` надсилає HTTP-запит на вказаний URL
2. Отримує відповідь у форматі JSON
3. Обробляє відповідь через `response_mapping` або зберігає у стані сценарію
4. Дані стають доступними в сценарії через плейсхолдери

## Обробка JSON-об'єкту у відповідь

### Приклад 1: Отримання назви завдання

**Конфігурація:**

```json
{
  "url": "https://jsonplaceholder.typicode.com/todos/1",
  "method": "GET",
  "response_mapping": {
    "title": "task_title"
  }
}
```

**Пояснення:**
- `response_mapping` вказує, в який плейсхолдер записати параметр відповіді
- Поле відповіді API `title` буде доступне у сценарії як `{{task_title}}`.

**Використання в сценарії:**

Після виконання запиту використовуйте `{{task_title}}` у наступних нодах сценарію. JSONPlaceholder — публічний тестовий API; у робочому середовищі використовуйте власну контрольовану кінцеву точку API.

## Обробка масиву об'єктів у відповідь

### Приклад 2: Отримання курсу валют

**Конфігурація:**

```json
{
  "url": "https://api.privatbank.ua/p24api/pubinfo?json&exchange&coursid=5",
  "method": "GET",
  "response_mapping": {
    "list_obj": {
      "text": "{{ccy}}/{{base_ccy}}",
      "value": "{{buy}}"
    }
  },
  "save_mapped_list_obj": "currency_mapped_obj"
}
```

**Пояснення конфігурації:**

- `list_obj` — вказує, що ми обробляємо масив об'єктів
- `text` — текст, який буде відображатися (може містити плейсхолдери з відповіді API)
- `value` — значення, яке буде збережено при виборі (може містити плейсхолдери з відповіді API)
- `save_mapped_list_obj` — назва змінної, в яку буде збережено оброблений масив

**Приклад відповіді API:**

```json
[
  {
    "ccy": "USD",
    "base_ccy": "UAH",
    "buy": "36.56860"
  },
  {
    "ccy": "EUR",
    "base_ccy": "UAH",
    "buy": "40.20000"
  }
]
```

**Результат обробки:**

Після обробки `currency_mapped_obj` буде містити:

```json
[
  {
    "text": "USD/UAH",
    "value": "36.56860"
  },
  {
    "text": "EUR/UAH",
    "value": "40.20000"
  }
]
```

**Використання в блоці "Список":**

В блоці "Список" вкажіть змінну `{{currency_mapped_obj}}` як джерело даних. Блок буде отримувати дані про курс валют і виводити їх кнопками.

**Використання результату вибору:**

Після вибору користувачем валюти, ви можете використовувати результат в сценарії, наприклад вивести курс валюти.

## Збереження необробленого результату запиту

Якщо до блоку `send_request` додати параметр конфігурації `save_responce`, результат виконання запиту буде записаний у змінну стану:

```json
{
  "url": "https://api.example.com/data",
  "method": "GET",
  "save_responce": "currency_arr"
}
```

Після виконання запиту вся JSON-відповідь буде доступна у змінній `{{currency_arr}}` для подальшої обробки через Action Jail або інші механізми.

## Обробка помилок

Якщо API-запит завершився помилкою:

- Дія повертає `"not_ok"`
- `response_mapping` не виконується
- `save_responce` не зберігається

В сценарії можна обробити подію `"not_ok"` для:

- Повторної спроби
- Відправки повідомлення користувачу
- Використання резервного джерела даних

## Обмеження

- `response_mapping` працює тільки з успішними відповідями (HTTP 200)
- Максимальний розмір відповіді обмежений налаштуваннями системи
- Складні вкладені структури можуть потребувати додаткової обробки в Бібліотеці дій

## Пов'язані статті

- [Передача даних через send_request](/uk/integrations/how-to/data-transfer/send-data-via-send-request.md)
- [Керувати секретами для сценаріїв](/uk/settings/how-to/manage-action-credentials.md)
- [Секрет у Send Request](/uk/scenariobuilder/how-to/use-saved-credential-in-send-request.md)
- [Що таке інтеграції](/uk/integrations/explanation/what-are-integrations.md)
