Quick start
Learn how to authenticate, run Actors, and retrieve results using the Apify API client for Python.
Step 1: Authenticate the client
To use the client, you need an API token. You can find your token under the Integrations tab in Apify Console. Copy the token and initialize the client by providing it (MY-APIFY-TOKEN) as a parameter to the ApifyClient constructor.
- Async client
- Sync client
from apify_client import ApifyClientAsync
TOKEN = 'MY-APIFY-TOKEN'
async def main() -> None:
# Client initialization with the API token.
apify_client = ApifyClientAsync(TOKEN)
from apify_client import ApifyClient
TOKEN = 'MY-APIFY-TOKEN'
def main() -> None:
# Client initialization with the API token.
apify_client = ApifyClient(TOKEN)
The API token is used to authorize your requests to the Apify API. You can be charged for the usage of the underlying services, so do not share your API token with untrusted parties or expose it on the client side of your applications.
Step 2: Run an Actor
To start an Actor, call the apify_client.actor() method with the Actor's ID (e.g., john-doe/my-cool-actor). The Actor's ID is a combination of the Actor owner's username and the Actor name. You can run both your own Actors and Actors from Apify Store.
To define the Actor's input, pass a dictionary to the call() method that matches the Actor's input schema. The input can include URLs to scrape, search terms, or other configuration data.
- Async client
- Sync client
from apify_client import ApifyClientAsync
TOKEN = 'MY-APIFY-TOKEN'
async def main() -> None:
apify_client = ApifyClientAsync(TOKEN)
actor_client = apify_client.actor('username/actor-name')
# Define the input for the Actor.
run_input = {
'some': 'input',
}
# Start an Actor and waits for it to finish.
call_result = await actor_client.call(run_input=run_input)
from apify_client import ApifyClient
TOKEN = 'MY-APIFY-TOKEN'
def main() -> None:
apify_client = ApifyClient(TOKEN)
actor_client = apify_client.actor('username/actor-name')
# Define the input for the Actor.
run_input = {
'some': 'input',
}
# Start an Actor and waits for it to finish.
call_result = actor_client.call(run_input=run_input)
Step 3: Get results from the dataset
To get the results from the dataset, call the apify_client.dataset() method with the dataset ID, then call list_items() to retrieve the data. You can get the dataset ID from the Actor's run dictionary (represented by defaultDatasetId).
- Async client
- Sync client
from apify_client import ApifyClientAsync
TOKEN = 'MY-APIFY-TOKEN'
async def main() -> None:
apify_client = ApifyClientAsync(TOKEN)
dataset_client = apify_client.dataset('dataset-id')
# Lists items from the Actor's dataset.
dataset_items = (await dataset_client.list_items()).items
from apify_client import ApifyClient
TOKEN = 'MY-APIFY-TOKEN'
def main() -> None:
apify_client = ApifyClient(TOKEN)
dataset_client = apify_client.dataset('dataset-id')
# Lists items from the Actor's dataset.
dataset_items = dataset_client.list_items().items
Running an Actor might take time, depending on the Actor's complexity and the amount of data it processes. If you want only to get data and have an immediate response, you should access the existing dataset of the finished Actor run.
Next steps
Concepts
To learn more about how the client works, check out the Concepts section in the sidebar:
- Asyncio support - asynchronous programming with the client
- Single and collection clients - resource clients and collection clients
- Error handling - automatic data extraction and error debugging
- Retries - automatic retries with exponential backoff
- Pagination - iterating through large result sets
Guides
For practical examples of common tasks, see the Guides section: