раздел 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 используют как «руки» агента для сбора данных: модель формулирует, что нужно, актор это собирает, результат возвращается в диалог.