Apify command line client (apify-cli)

npm version Build Status

Apify command line client (CLI) helps you to create, develop, build and run Apify Actor acts from a local computer.

Apify Actor is a serverless computing platform that enables the execution of arbitrary web scraping and automation jobs in the cloud. A single job is called an act.

While you can develop acts in a code editor directly in the Apify web application, for more complex projects it is more convenient to develop the acts locally and only push them to the Apify cloud for execution. This is where the CLI comes in.

Note that the acts running on the Apify platform are executed in Docker containers, so with an appropriate Dockerfile you can build your acts in any programming language. However, we recommend using JavaScript / Node.js, for which we provide most libraries and support.

Installation

First, make sure you have Node.js version 7.10 or higher installed on your computer:

node --version

Install Apify CLI by running:

npm -g install apify-cli

Finally, you can test that the CLI was installed correctly:

apify info

Basic usage

The following examples show basic usage of the CLI.

Create a new act from scratch

apify create my_hello_world

First, you will be prompted to select a template with the boilerplate for the act, to help you get started quickly. The command will create a directory called my_hello_world that contains a Node.js project for the act and a few configuration files.

Create a new act from existing project

cd ./my/awesome/project
apify init

This command will only set up local act development environment in an existing directory, i.e. it will create the apify.json file and apify_local directory.

Run the act locally

cd my_hello_world
apify run

This command runs the act on your local machine. Now's your chance to develop the logic - or magic :smirk:

Login with your Apify account

apify login

Before you can interact with the Apify cloud, you need to create an Apify account and log in to it using the above command. You will be prompted for your Apify API token. Note that the command will store the API token and other sensitive information to ~/.apify.

Push the act to the Apify cloud

apify push

This command creates a ZIP archive with your project, uploads it to the Apify cloud and builds an act from it.

Run an act on the Apify cloud

apify call

Runs the act corresponding to the current directory on the Apify platform.

This command can also be used to run other acts, for example:

apify call apify/hello-world

So what's in this apify.json file?

This file associates your local development project with an act on the Apify platform. It contains information such as act name or ID, version and build tag. Make sure you commit this file to the Git repository.

Need help?

To see all CLI commands simply run:

apify help

To get information about a specific command run:

apify help COMMAND

Still haven't found what you were looking for? Please go to Apify Help center or contact us.

Command reference

This section contains printouts of apify help for all commands.

Apify command line client to help you create, develop, build and run Actor acts.

VERSION
  apify-cli/0.1.11 darwin-x64 node-v8.4.0

USAGE
  $ apify [COMMAND]

COMMANDS
  call    Runs the act remotely on the Apify platform.
  create  Creates a new act project directory from a selected template.
  info    Displays information about current Apify settings.
  init    Initializes an act project in an existing directory.
  login   Logs in to the Apify platform using the API token.
  logout  Logs out of the Apify platform.
  push    Uploads the act to the Apify platform and builds it there.
  run     Runs the act locally in the current directory.

apify call

Runs the act remotely on the Apify platform.

USAGE
  $ apify call [ACTID]

ARGUMENTS
  ACTID  Name or ID of the act to run (e.g. "apify/hello-world" or
         "E2jjCZBezvAZnX8Rb"). If not provided, the command runs the remote act
         specified in the "apify.json" file.

OPTIONS
  -b, --build=build      Tag or number of the build to run (e.g. "latest" or
                         "1.2.34").

  -m, --memory=memory    Amount of memory allocated for the act run, in
                         megabytes.

  -t, --timeout=timeout  Timeout for the act run in seconds. Zero value means
                         there is no timeout.

DESCRIPTION
  The act is run under your current Apify account, therefore you need to be
  logged in by calling "apify login". It takes input for the act from default
  local key-value store by default.

apify create

Creates a new act project directory from a selected template.

USAGE
  $ apify create ACTNAME

ARGUMENTS
  ACTNAME  Name of the act and its directory

OPTIONS
  -t, --template=basic|puppeteer|puppeteer_crawler|plain_request_urls_list
      Template for the act. If not provided, the command will prompt for it.

apify info

Displays information about current Apify settings.

USAGE
  $ apify info

DESCRIPTION
  This command prints information about Apify to the console.

apify init

Initializes an act project in an existing directory.

USAGE
  $ apify init [ACTNAME]

ARGUMENTS
  ACTNAME  Name of the act. If not provided, you will be prompted for it.

DESCRIPTION
  The command only creates the "apify.json" file and the "apify_local" directory
  in the current directory, but will not touch anything else.

  WARNING: If the files already exist, they will be overwritten!

apify login

Logs in to the Apify platform using the API token.

USAGE
  $ apify login

OPTIONS
  -t, --token=token  [Optional] Apify API token

DESCRIPTION
  The token and other account information is stored to the ~/.apify directory,
  from where it is read by all other "apify" commands. To log out, call "apify
  logout".

apify logout

Logs out of the Apify platform.

USAGE
  $ apify logout

DESCRIPTION
  The command deletes the API token and all other account information stored in
  the ~/.apify directory. To log in again, call "apify login".

apify push

Uploads the act to the Apify platform and builds it there.

USAGE
  $ apify push [ACTID]

ARGUMENTS
  ACTID  ID of an existing act on the Apify platform where the files will be
         pushed. If not provided, the command will create or modify the act with
         the name specified in "apify.json" file.

OPTIONS
  -b, --build-tag=build-tag            Build tag to be applied to the successful
                                       act build. By default, it is taken from
                                       the "apify.json" file

  -v, --version-number=version-number  Act version number to which the files
                                       should be pushed. By default, it is taken
                                       from the "apify.json" file.

DESCRIPTION
  The command creates a ZIP with files of the act from the current directory,
  uploads it to the Apify platform and builds it. The act settings are read from
  the "apify.json" file in the current directory, but they can be overridden
  using command-line options.

  WARNING: If the target act already exists in your Apify account, it will be
  overwritten!

apify run

Runs the act locally in the current directory.

USAGE
  $ apify run

DESCRIPTION
  The command runs a Node.js process with the act in the current directory. It
  sets various APIFY_XYZ environment variables in order to provide a working
  execution environment for the act. For example, this causes the act input, as
  well as all other data in key-value stores, datasets or request queues to be
  stored in the "apify_local" directory, rather than on the Apify platform.