apify-sdk-integration

bởi apify

Tích hợp Apify vào ứng dụng JavaScript/TypeScript hoặc Python hiện có bằng gói apify-client. Sử dụng khi thêm tính năng thu thập dữ liệu web, tự động hóa hoặc dữ liệu…

npx skills add https://github.com/apify/apify-claude-code-plugin --skill apify-sdk-integration

Apify SDK Integration

Add Apify Actor execution to an existing application. This skill covers the apify-client package for JS/TS and Python, plus the REST API for other languages.

When to Use This Skill

  • Adding web scraping or automation to an existing app
  • Calling Apify Actors programmatically from application code
  • Building a product that uses Apify as a backend service
  • Integrating Actor results into a data pipeline

Critical: Package Naming

apify-client is the API client for calling Actors from your app. apify is the SDK for building Actors (wrong package for this use case).

Always install apify-client. Never install apify for integration work.

Prerequisites

The user needs an APIFY_TOKEN. Direct them to Console > Settings > Integrations at https://console.apify.com/settings/integrations to create one. If they don't have an account: https://console.apify.com/sign-up (free, no credit card).

Store the token securely — environment variable or secrets manager, never hardcoded.

Finding the Right Actor

Before writing integration code, find the Actor that fits the user's needs. Use the MCP tools if available:

  • search-actors — search the Apify Store by keyword
  • fetch-actor-details — get the Actor's input schema, output format, and pricing

Alternatively, browse https://apify.com/store. Append .md to any Actor's Store URL to get its docs in markdown.

JavaScript / TypeScript

Install

npm install apify-client

Synchronous Execution (wait for results)

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });

const run = await client.actor('apify/web-scraper').call({
    startUrls: [{ url: 'https://example.com' }],
    maxPagesPerCrawl: 10,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();

.call() blocks until the Actor finishes. Use for short-running Actors (under a few minutes).

Asynchronous Execution (start and poll/retrieve later)

const run = await client.actor('apify/web-scraper').start({
    startUrls: [{ url: 'https://example.com' }],
});

// Poll for completion
const finishedRun = await client.run(run.id).waitForFinish();

// Retrieve results
const { items } = await client.dataset(finishedRun.defaultDatasetId).listItems();

Use .start() + .waitForFinish() for long-running Actors or when you need the run ID immediately.

Retrieving Results

// Dataset items (structured data from pushData)
const { items } = await client.dataset(run.defaultDatasetId).listItems({
    limit: 100,
    offset: 0,
});

// Key-value store (files, screenshots, etc.)
const record = await client.keyValueStore(run.defaultKeyValueStoreId).getRecord('OUTPUT');

Error Handling

try {
    const run = await client.actor('apify/web-scraper').call(input);

    if (run.status !== 'SUCCEEDED') {
        const log = await client.log(run.id).get();
        throw new Error(`Actor failed with status ${run.status}: ${log}`);
    }

    const { items } = await client.dataset(run.defaultDatasetId).listItems();
} catch (error) {
    if (error.message?.includes('not found')) {
        // Actor ID is wrong or Actor was deleted
    } else if (error.statusCode === 401) {
        // Invalid or missing APIFY_TOKEN
    }
    throw error;
}

Python

Install

pip install apify-client

Synchronous Execution

from apify_client import ApifyClient
import os

client = ApifyClient(token=os.environ['APIFY_TOKEN'])

run = client.actor('apify/web-scraper').call(run_input={
    'startUrls': [{'url': 'https://example.com'}],
    'maxPagesPerCrawl': 10,
})

items = client.dataset(run['defaultDatasetId']).list_items().items

Asynchronous Execution

run = client.actor('apify/web-scraper').start(run_input={
    'startUrls': [{'url': 'https://example.com'}],
})

# Poll for completion
finished_run = client.run(run['id']).wait_for_finish()

items = client.dataset(finished_run['defaultDatasetId']).list_items().items

Async Client (asyncio)

from apify_client import ApifyClientAsync

client = ApifyClientAsync(token=os.environ['APIFY_TOKEN'])

run = await client.actor('apify/web-scraper').call(run_input={
    'startUrls': [{'url': 'https://example.com'}],
})

items = (await client.dataset(run['defaultDatasetId']).list_items()).items

REST API (Any Language)

For languages without an official client, use the REST API directly.

Start a Run

POST https://api.apify.com/v2/actors/{actorId}/runs
Authorization: Bearer <APIFY_TOKEN>
Content-Type: application/json

{ "startUrls": [{ "url": "https://example.com" }] }

Get Run Status

GET https://api.apify.com/v2/actor-runs/{runId}
Authorization: Bearer <APIFY_TOKEN>

Get Dataset Items

GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json
Authorization: Bearer <APIFY_TOKEN>

Full API reference: https://docs.apify.com/api/v2

Best Practices

  • Set timeouts: Pass timeoutSecs in the Actor input or use waitSecs on .call() to avoid indefinite waits.
  • Paginate large datasets: Use limit and offset when retrieving dataset items. Default limit is 250K items.
  • Reuse clients: Create one ApifyClient instance and reuse it across calls.
  • Handle Actor-specific input: Every Actor has its own input schema. Use fetch-actor-details MCP tool or append .md to the Actor's Store URL to get the schema before constructing input.

Documentation

If the Apify MCP server is available, use search-apify-docs and fetch-apify-docs tools for contextual documentation lookups during development.

Thêm skills từ apify

apify-influencer-brand-collabs
apify
Khám phá quan hệ đối tác giữa thương hiệu và người sáng tạo trên Instagram bằng cách kết nối các Apify Actors. Sử dụng khi người dùng hỏi ai hợp tác với một thương hiệu, thương hiệu nào người sáng tạo đã thực hiện quảng cáo trả phí…
apify-actor-development
apify
Tạo, gỡ lỗi và triển khai các chương trình đám mây không máy chủ để thu thập dữ liệu web, tự động hóa và xử lý dữ liệu. Hỗ trợ các mẫu JavaScript, TypeScript và Python với các thư viện Crawlee, Playwright và Cheerio tích hợp cho việc thu thập dữ liệu qua HTTP và trình duyệt. Bao gồm kiểm thử cục bộ qua apify run với bộ nhớ cách ly, xác thực lược đồ cho đầu vào/đầu ra và triển khai lên nền tảng Apify qua apify push. Yêu cầu xác thực Apify CLI và siêu dữ liệu generatedBy bắt buộc trong .actor/actor.json cho AI...
apify-actorization
apify
Chuyển đổi các dự án hiện có thành Apify Actors không máy chủ với tích hợp SDK theo ngôn ngữ cụ thể. Hỗ trợ JavaScript/TypeScript (với Actor.init() / Actor.exit()), Python (trình quản lý ngữ cảnh bất đồng bộ) và bất kỳ ngôn ngữ nào thông qua trình bao bọc CLI. Cung cấp quy trình làm việc có cấu trúc: apify init để tạo khung, áp dụng bao bọc SDK, cấu hình lược đồ đầu vào/đầu ra, kiểm thử cục bộ với apify run, sau đó triển khai với apify push. Bao gồm xác thực lược đồ đầu vào và đầu ra, đóng gói Docker và tùy chọn thanh toán theo sự kiện...
apify-content-analytics
apify
Phân tích nội dung đa nền tảng qua Apify Actors cho Instagram, Facebook, YouTube và TikTok. Hỗ trợ hơn 17 Actor chuyên biệt bao gồm bài đăng, reel, story, bình luận, hashtag, người theo dõi và quảng cáo trên cả bốn nền tảng. Tự động lấy lược đồ Actor bằng mcpc CLI để xác định đầu vào cần thiết và trường đầu ra khả dụng. Xuất kết quả dưới ba định dạng: hiển thị nhanh trong chat, xuất CSV hoặc xuất JSON với số lượng kết quả tùy chỉnh. Yêu cầu token Apify trong tệp .env và Node.js 20.6+...
apify-ecommerce
apify
Trích xuất dữ liệu sản phẩm, giá cả, đánh giá và thông tin người bán từ hơn 50 thị trường thương mại điện tử. Ba chế độ quy trình làm việc: Sản phẩm & Định giá (theo dõi giá, phân tích đối thủ cạnh tranh), Đánh giá khách hàng (phân tích cảm xúc, vấn đề chất lượng) và Thông tin người bán (khám phá nhà cung cấp qua Google Shopping). Hỗ trợ Amazon (hơn 20 khu vực), Walmart, eBay, IKEA, Costco và các nhà bán lẻ châu Âu; nhập liệu qua URL sản phẩm, URL danh mục hoặc tìm kiếm từ khóa. Phân tích hỗ trợ AI tùy chọn tạo ra thông
apify-generate-output-schema
apify
Tạo lược đồ đầu ra (dataset_schema.json, output_schema.json, key_value_store_schema.json) cho một Apify Actor bằng cách phân tích mã nguồn của nó. Sử dụng khi…
apify-influencer-discovery
apify
Khám phá và đánh giá những người có ảnh hưởng trên Instagram, Facebook, YouTube và TikTok bằng Apify Actors. Định tuyến các yêu cầu khám phá tới hơn 15 Actor chuyên biệt bao gồm thu thập hồ sơ, tìm kiếm hashtag, phân tích mức độ tương tác và khám phá ngách trên tất cả các nền tảng chính. Động lấy lược đồ Actor qua mcpc để xác định đầu vào bắt buộc và trường đầu ra khả dụng trước khi thực thi. Hỗ trợ ba chế độ xuất: hiển thị trò chuyện nội tuyến, tệp CSV hoặc JSON với số lượng kết quả có thể tùy chỉnh...
apify-ultimate-scraper
apify
Trình thu thập web tự động chọn các Actor tối ưu cho hơn 55 nền tảng bao gồm Instagram, TikTok, YouTube, Facebook, Google Maps và nhiều nền tảng khác. Bao gồm hơn 55 Actor được cấu hình sẵn trên 8 nền tảng chính với hướng dẫn lựa chọn theo từng trường hợp sử dụng cụ thể (tạo khách hàng tiềm năng, khám phá người ảnh hưởng, giám sát thương hiệu, phân tích đối thủ cạnh tranh, nghiên cứu xu hướng). Hỗ trợ ba định dạng đầu ra: hiển thị trò chuyện nhanh, xuất CSV hoặc xuất JSON với giới hạn kết quả có thể tùy chỉnh. Bao gồm các mẫu quy trình làm