раздел 03
Интеграция по API
Веб-интерфейс удобен для разовых задач. Но если запуск нужно встроить в свой код, скрипт или AI-агента - Apify полностью управляется по API.
API-токен
Для доступа по API нужен персональный API-токен. Он выдаётся в настройках аккаунта (раздел Integrations / API). Токен - это секрет: с ним можно запускать акторы и читать ваши данные, поэтому в код его вписывать нельзя.
Храните токен в переменной окружения, например в файле .env:
APIFY_TOKEN=apify_api_xxxxxxxxxxxxxxxxxxxx
Клиент apify-client
Самый простой путь - официальный клиент apify-client. Он есть для Python и JavaScript и берёт на себя запуск актора, ожидание результата и чтение датасета.
Python
Установка: pip install apify-client.
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
# вход для актора - зависит от конкретного актора в Store
run_input = {
"searchStringsArray": ["coffee shop"],
"maxCrawledPlaces": 20,
}
# запускаем актор и ждём завершения
run = client.actor("compass/crawler-google-places").call(run_input=run_input)
# читаем результат из датасета
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item.get("title"), item.get("address"))
JavaScript
Установка: npm install apify-client.
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
searchStringsArray: ["coffee shop"],
maxCrawledPlaces: 20,
};
const run = await client.actor("compass/crawler-google-places").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(item.title, item.address);
}
REST API напрямую
Если клиент ставить не хочется, всё то же доступно по REST. Запуск актора - это POST-запрос с входными данными, токен передаётся параметром. Упрощённо:
curl -X POST \
"https://api.apify.com/v2/acts/USERNAME~ACTOR/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "searchStringsArray": ["coffee shop"], "maxCrawledPlaces": 20 }'
В ответе придёт идентификатор запуска и датасета. Результат потом читается отдельным GET-запросом к датасету. Клиент apify-client просто оборачивает эти же вызовы.
Применение в AI-агенте
Главная польза для AI-агентов: модель сама по себе не видит свежих данных с сайтов. Apify закрывает этот пробел. Схема такая:
- Агенту нужны актуальные факты с сайта без API (товары, отзывы, организации, контент страниц).
- Агент (или ваш код) запускает подходящий актор через
apify-client, передав запрос. - Собранные данные из датасета попадают в контекст модели - и она отвечает по реальным фактам.
Так связку Apify используют как «руки» агента для сбора данных: модель формулирует, что нужно, актор это собирает, результат возвращается в диалог.