Skip to main content

Overview

The Apify SDK for Python is the official library for creating Apify Actors in Python.

from apify import Actor
from bs4 import BeautifulSoup
import requests

async def main():
async with Actor:
input = await Actor.get_input()
response = requests.get(input['url'])
soup = BeautifulSoup(response.content, 'html.parser')
await Actor.push_data({ 'url': input['url'], 'title': soup.title.string })

Requirements

The Apify SDK requires Python version 3.10 or above to run Python Actors locally.

Installation

The Apify Python SDK is available as apify package on PyPi. To install it, run:

pip install apify

When you create an Actor using the Apify CLI, the Apify SDK for Python is installed for you automatically.

If you are not developing Apify Actors and you just need to access the Apify API from Python, consider using the Apify API client for Python directly.

Quick start

Creating Actors

To create and run Actors in Apify Console, refer to the Console documentation.

To create a new Apify Actor on your computer, you can use the Apify CLI, and select one of the Python Actor templates.

For example, to create an Actor from the "[beta] Python SDK" template, you can use the apify create command.

apify create my-first-actor --template python-start

This will create a new folder called my-first-actor, download and extract the "Getting started with Python" Actor template there, create a virtual environment in my-first-actor/.venv, and install the Actor dependencies in it.

actor create command run

Running the Actor

To run the Actor, you can use the apify run command:

cd my-first-actor
apify run

This command:

  • Activates the virtual environment in .venv (if no other virtual environment is activated yet)
  • Starts the Actor with the appropriate environment variables for local running
  • Configures it to use local storages from the storage folder

The Actor input, for example, will be in storage/key_value_stores/default/INPUT.json.

Actor structure

All Python Actor templates follow the same structure.

The .actor directory contains the Actor configuration, such as the Actor's definition and input schema, and the Dockerfile necessary to run the Actor on the Apify platform.

The Actor's runtime dependencies are specified in the requirements.txt file, which follows the standard requirements file format.

The Actor's source code is in the src folder. This folder contains two important files:

  • main.py - which contains the main function of the Actor
  • __main__.py - which is the entrypoint of the Actor package setting up the Actor logger and executing the Actor's main function via asyncio.run().
from apify import Actor

async def main():
async with Actor:
Actor.log.info('Actor input:', await Actor.get_input())
await Actor.set_value('OUTPUT', 'Hello, world!')

If you want to modify the Actor structure, you need to make sure that your Actor is executable as a module, via python -m src, as that is the command started by apify run in the Apify CLI. We recommend keeping the entrypoint for the Actor in the src/__main__.py file.

Adding dependencies

First, add the dependencies in the requirements.txt file in the Actor source folder.

Then activate the virtual environment in .venv:

source .venv/bin/activate

Finally, install the dependencies:

python -m pip install -r requirements.txt

Next steps

Guides

To see how you can integrate the Apify SDK with some of the most popular web scraping libraries, check out our guides for working with:

Usage concepts

To learn more about the features of the Apify SDK and how to use them, check out the Usage Concepts section in the sidebar, especially the guides for: