Apify CLI for AI Agents

Trusted by
AWS
Glean
Zoom
Airtable

30 min · no commitment · see it on your stack

Apify logo
CLI logo
divider

Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.

With Composio's Universal CLI, your coding agents can talk to over 1000+ SaaS applications. With Apify, agents can create a new dataset for scraped results, fetch items from a specific apify dataset, get details of your latest apify actor, and more — all without worrying about authentication.

This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Apify automation.

Also integrate Apify with

What is Universal CLI and why use it?

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:

  • Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
  • Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
  • Tool discovery: Search, inspect, and execute 20,000+ tools across 1000+ apps from one interface.
  • Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
  • Type generation: Generate typed schemas for autocomplete and type safety in your projects.

Prerequisites

Install the Composio CLI, authenticate, and initialize your project:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login

During login you'll be redirected to sign in page, finish the complete flow and you're all set.

Composio CLI authentication flow

Connecting Apify to Coding Agents via Universal CLI

Once it is installed, it's essentially done. Claude Code, Codex, OpenCode, OpenClaw, or any other agent will be able to access the CLI. A few steps to give agents access to your apps.

  1. Launch your Coding Agent — Claude Code, Codex, OpenCode, anything you prefer.
  2. Prompt it to "Authenticate with Apify"
  3. Complete the authentication and authorization flow and your Apify integration is all set.
  4. Start asking anything you want.

Supported Tools & Triggers

Tools
Build ActorTool to build an Actor with specified configuration.
Abort Actor BuildTool to abort an Actor build that is starting or running.
Delete Actor BuildTool to delete an Actor build permanently.
Get Actor BuildTool to get detailed information about a specific Actor build.
Get Actor Build LogTool to retrieve the log file for a specific Actor build.
Get user builds listTool to get a paginated list of all builds for a user.
Abort Actor RunTool to abort a running or starting Actor run.
Delete Actor RunTool to delete a finished Actor run.
Get Actor RunTool to get details about a specific Actor run.
Update Actor Run Status MessageTool to update the status message of an Actor run.
Delete Actor TaskTool to delete an Actor task permanently.
Get Actor TaskTool to get complete details about an Actor task.
Update Actor TaskTool to update Actor task settings using JSON payload.
Get last actor task runTool to get the most recent run of a specific Actor task.
Run Task Sync (GET)Tool to run a specific task synchronously and return its output.
Run Task Sync & Get Dataset ItemsTool to run an actor task synchronously and retrieve its dataset items.
Run Task Sync with Input Override & Get Dataset ItemsTool to run an actor task synchronously with input overrides and retrieve its dataset items.
Run Task Sync (POST)Tool to run an Actor task synchronously with input override and return its output.
Update ActorTool to update Actor settings using JSON payload.
Get last actor runTool to get the most recent run of a specific Actor.
Run Actor Sync without Input (GET)Tool to run a specific Actor synchronously without input and return its output.
Run Actor Sync & Get Dataset ItemsTool to run Actor synchronously and get dataset items.
Get list of ActorsTool to get the list of all Actors that the user created or used.
Delete Actor VersionTool to delete a specific version of an Actor's source code.
Delete Actor Version Environment VariableTool to delete an environment variable from a specific Actor version.
Get Actor Version Environment VariableTool to get environment variable details for a specific Actor version.
Update Actor Version Environment VariableTool to update environment variable for a specific Actor version using JSON payload.
Get list of Actor version environment variablesTool to get the list of environment variables for a specific Actor version.
Create Actor Version Environment VariableTool to create an environment variable for a specific Actor version.
Get Actor versionTool to get details about a specific version of an Actor.
Update Actor VersionTool to update an Actor version's configuration and source code.
Get list of Actor versionsTool to get the list of versions of a specific Actor.
Create Actor VersionTool to create a new version of an Actor.
Get list of Actor webhooksTool to get a list of webhooks for a specific Actor.
Create ActorTool to create a new Actor with specified configuration.
Create DatasetTool to create a new dataset.
Create Actor TaskTool to create a new Actor task with specified settings.
Create Task WebhookTool to create a webhook for an Actor task.
Delete DatasetTool to delete a dataset permanently.
Get DatasetTool to retrieve dataset metadata by dataset ID.
Update DatasetTool to update a dataset's name via JSON payload.
Get list of datasetsTool to get list of datasets for a user.
Get Dataset StatisticsTool to get dataset field statistics by dataset ID.
Delete ActorTool to delete an Actor permanently.
Delete WebhookTool to delete a webhook by its ID.
Get Actor DetailsTool to get details of a specific Actor.
Get Actor Last Run Dataset ItemsTool to get dataset items from the last run of an Actor.
Get all webhooksTool to get a list of all webhooks created by the user.
Get dataset itemsTool to retrieve items from a dataset.
Get Default BuildTool to get the default build for an Actor.
Get Key-Value RecordTool to retrieve a record from a key-value store.
Get list of buildsTool to get a list of builds for a specific Actor.
Get list of runsTool to get a list of runs for a specific Actor.
Get list of task runsTool to get a list of runs for a specific Actor task.
Get list of tasksTool to fetch a paginated list of tasks belonging to the authenticated user.
Get list of task webhooksTool to get a list of webhooks for a specific Actor task.
Get logTool to retrieve logs for a specific Actor run or build.
Get OpenAPI DefinitionTool to get the OpenAPI definition for a specific Actor build.
Get Run Dataset ItemsTool to get dataset items from a specific Actor run.
Get Task InputTool to retrieve the input configuration of a specific task.
Get Task Last Run Dataset ItemsTool to get dataset items from the last run of an Actor task.
Delete Key-Value StoreTool to delete a key-value store permanently.
Get Key-Value StoreTool to retrieve key-value store metadata by store ID.
Get Key-Value Store KeysTool to retrieve a list of keys from a key-value store.
Delete Key-Value Store RecordTool to delete a record from a key-value store.
Check Key-Value Store Record ExistsTool to check if a record exists in a key-value store.
Get list of key-value storesTool to get the list of key-value stores owned by the user.
Create Key-Value StoreTool to create a new key-value store or retrieve an existing one by name.
List User Actor RunsTool to get a paginated list of all Actor runs for the authenticated user.
Delete Request QueueTool to delete a request queue permanently.
Get Request QueueTool to retrieve request queue metadata by queue ID.
Get Request Queue HeadTool to retrieve first requests from the queue for inspection.
Get Head and Lock Queue RequestsTool to get and lock head requests from the queue.
Update Request QueueTool to update request queue name using JSON payload.
Delete Request from QueueTool to delete a specific request from a request queue.
Get Request from QueueTool to retrieve a specific request from a request queue by its ID.
Delete Request LockTool to delete a request lock from a request queue.
Prolong Request LockTool to prolong request lock in a request queue.
Update Request in QueueTool to update a request in a request queue.
Batch Delete Requests from QueueTool to batch-delete up to 25 requests from a queue.
Batch Add Requests to QueueTool to batch-add up to 25 requests to a request queue.
List Request Queue RequestsTool to list requests in a request queue with pagination support.
Add Request to QueueTool to add a request to the queue.
Unlock Queue RequestsTool to unlock requests in a request queue that are currently locked by the client.
Get list of request queuesTool to get list of request queues for a user.
Create Request QueueTool to create a new request queue or retrieve an existing one by name.
Run Actor AsynchronouslyTool to run a specific Actor asynchronously.
Run Actor SyncTool to run a specific Actor synchronously with input and return its output record.
Run Actor Sync & Get Dataset ItemsTool to run an Actor synchronously and retrieve its dataset items.
Run Task AsynchronouslyTool to run a specific Actor task asynchronously.
Delete ScheduleTool to delete a schedule by its ID.
Get ScheduleTool to get schedule details by ID.
Get Schedule LogTool to get schedule log by ID.
Update ScheduleTool to update an existing schedule with new settings.
Get list of schedulesTool to get list of schedules created by the user.
Create ScheduleTool to create a new schedule with specified settings.
Store Data in DatasetTool to store data items in a dataset.
Store Data in Key-Value StoreTool to create or update a record in a key-value store.
Get list of Actors in StoreTool to get list of public Actors from Apify Store.
Update Key-Value StoreTool to update a key-value store's properties.
Update Task InputTool to update the input configuration of a specific Actor task.
Get Public User DataTool to get public user data.
Get Current User Account DataTool to get private user account information.
Get Account LimitsTool to get a complete summary of account limits and usage.
Update Account LimitsTool to update account limits manageable on the Limits page.
Get Monthly UsageTool to get monthly usage summary with daily breakdown.
Get list of webhook dispatchesTool to get list of webhook dispatches for the user.
Get Webhook DispatchTool to get webhook dispatch object with all details.
Get webhookTool to get webhook object with all details.
Update WebhookTool to update webhook using JSON payload.
Test WebhookTool to test a webhook by creating a test dispatch with a dummy payload.
Get webhook dispatchesTool to get list of webhook dispatches for a specific webhook.

Universal CLI Commands for Apify

You can also manually execute CLI commands to interact with your Apify.

Connect your Apify account

Link your Apify account and verify the connection:

bash
# Connect your Apify account (opens OAuth flow)
composio connected-accounts link apify

# Verify the connection
composio connected-accounts list --toolkits apify

Discover Apify tools

Search and inspect available Apify tools:

bash
# List all available Apify tools
composio tools list --toolkit apify

# Search for Apify tools by action
composio tools search "apify"

# Inspect a tool's input schema
composio tools info APIFY_CREATE_ACTOR

Common Apify Actions

Create ActorTool to create a new actor with specified configuration

bash
composio tools execute APIFY_CREATE_ACTOR \
  --name "my-new-actor"

Create DatasetTool to create a new dataset

bash
composio tools execute APIFY_CREATE_DATASET \
  --name "my-dataset"

Create Actor TaskTool to create a new actor task with specified settings

bash
composio tools execute APIFY_CREATE_TASK \
  --name "my-recurring-task" \
  --actId "john~my-actor"

Create Task WebhookTool to create a webhook for an actor task

bash
composio tools execute APIFY_CREATE_TASK_WEBHOOK \
  --condition "<object>" \
  --eventTypes "ACTOR.TASK.RUN.SUCCEEDED" \
  --requestUrl "https://example.com/webhook"

Generate Type Definitions

Generate typed schemas for Apify tools to get autocomplete and type safety in your project:

bash
# Auto-detect language
composio generate --toolkits apify

# TypeScript
composio ts generate --toolkits apify

# Python
composio py generate --toolkits apify

Tips & Tricks

  • Always inspect a tool's input schema before executing: composio tools info <TOOL_NAME>
  • Pipe output with jq for better readability: composio tools execute TOOL_NAME -d '{}' | jq
  • Set COMPOSIO_API_KEY as an environment variable for CI/CD pipelines
  • Use composio dev logs tools to inspect execution logs and debug issues

Next Steps

  • Try asking your coding agent to perform various Apify operations
  • Explore cross-app workflows by connecting more toolkits
  • Set up triggers for real-time automation
  • Use composio generate for typed schemas in your projects

How to build Apify MCP Agent with another framework

FAQ

What is the Composio Universal CLI?

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 1000+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

Which coding agents work with the Composio CLI?

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Apify and other connected apps.

How is the CLI different from using an MCP server for Apify?

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

How safe is my Apify data when using the Composio CLI?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Apify data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.