Skip to content
103 changes: 57 additions & 46 deletions sources/platform/actors/publishing/publish-task.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
---
title: Publish your Actor task
description: Publish a saved Actor task as a public use-case landing page on Apify Store by completing the display information, input, and dataset schema sections.
description: Publish a saved Actor task as a landing page on Apify Store. Each published task can be found on Google and by AI agents.
slug: /actors/publishing/publish-task
sidebar_position: 2
---

[Actor tasks](/actors/running/tasks) are shareable, pre-configured inputs for your Actors. [Publishing a task](#publish-your-tasks) creates a public landing page that shows what the Actor does, what inputs it uses, and what output to expect. Public tasks also appear in your Actor's **Examples** tab, which helps users discover your Actor through search engines and AI agents. For monetized Actors, this can lead to more page views, more runs, and more revenue.
[Actor tasks](/actors/running/tasks) are shareable, pre-configured inputs for your Actors. [Publishing a task](#publish-your-tasks) creates a public landing page that shows what it does, what inputs to provide, and what output to expect. Public tasks also appear in your Actor's **Example tasks** tab, which helps users discover your Actor through search engines and AI agents. For monetized Actors, more discoverability means more paid runs.

You can create up to 50 tasks per Actor.

Expand All @@ -17,6 +17,8 @@ Before you publish a task, make sure you have:
- A [saved task](/actors/running/tasks) with a complete input configuration.
- An [input schema](/actors/development/actor-definition/input-schema) and at least one [dataset schema view](/storage/dataset-schema) defined on the Actor.

If your Actor is missing an input schema or dataset schema, the **Publishing** tab shows what needs to be set up before you can publish.

## What tasks to publish

Focus on tasks that represent a real use case someone would search for and that show your Actor solving a specific problem. Not every saved task needs a public landing page.
Expand All @@ -25,21 +27,19 @@ Focus on tasks that represent a real use case someone would search for and that

The best tasks aim to solve a problem a user actually has. Instead of publishing a generic "default configuration" task, publish one that answers a question someone might type into a search engine or AI agent.

For example, if you maintain Google Maps, Amazon, and Yahoo scraper Actors:
For example, if you maintain Google Maps, Amazon, and Yahoo Finance scraper Actors:

| ❌ Weak task | ✅ Strong task |
| Generic task | Specific task |
| --- | --- |
| Google Maps - default config | Find dentists in San Francisco with reviews |
| Test run 2 | Extract restaurant emails for local marketing |
| All fields enabled | Compare gym ratings across New York boroughs |
| Amazon default | Monitor Amazon product prices and reviews for market research |
| Yahoo Finance test | Track stock prices and news on Yahoo Finance |
| Google Maps business task | Analyze San Francisco business competitors with AI |
| Yahoo Finance test | Monitor stock prices on Yahoo Finance |
| Amazon scraper | Track Amazon product prices for market research |

Each strong task focuses on a specific industry, location, or workflow. A user searching for "dentist data San Francisco" is far more likely to land on a page with that exact framing.
Each task focuses on a specific industry, location, or workflow. A user searching for "San Francisco business competitors" is more likely to land on a page with that exact framing.

### Target search traffic and AI discovery

Each landing page is indexed by search engines and includes a markdown (`.md`) version that AI agents can access directly, making your task discoverable through AI-powered search and AI assistants.
Each landing page shows up in Google results. It also has a markdown (`.md`) version that AI agents can read directly.

Think of each task as a keyword-targeted landing page:

Expand All @@ -57,30 +57,31 @@ If your Actor supports multiple use cases, publish a task for each one. A web sc

## Publish your tasks

Once your task runs reliably and produces the output you want users to see, publish it from Apify Console.

1. From your task's page in Apify Console, open the **Publication** tab.
1. Complete the three sections: [Display information](#display-information), [Input](#input), and [Dataset schema](#dataset-schema).
1. Click **Publish task**.
Once your task runs reliably and produces the output you want users to see, publish it from Apify Console. The **Publishing** tab guides you through each requirement.

![Publication tab on a task page.](./images/public-tasks/task-publication-tab.webp)
1. From your task's page in Apify Console, open the **Publishing** tab.
1. Complete the three sections: [Page details](#page-details), [Input](#input), and [Dataset schema](#dataset-schema).
1. Select **Publish task**.

### Display information
![The Publishing tab showing the Publish task button and three sections to complete.](./images/public-tasks/task-publishing-tab.webp)

This section controls how your task appears on the public task landing page and in search results.
### Page details

There are three fields in this section:
This section controls how your task appears on the landing page and in search results.

- **Slug:** the URL-friendly name used in the task's landing page URL.
- **SEO task title:** shown as the heading on the landing page and as the page title in search results.
- **Slug:** the URL path for your task's landing page (lowercase, hyphens, no spaces).
- **SEO title:** appears as the heading on the landing page and as the page title in search results.
- **SEO description:** appears under the title on the landing page and as the meta description in search results.
- **Use case:** categorizes your task for Store browsing and search filtering. Required.

You can live preview how the fields propagate on the right (they update as you type):
Use the AI icon to generate the SEO title and description from your task configuration.

- **Page Preview:** how the landing page will look to visitors.
- **SERP Preview:** how the page will appear in search engine results pages (SERPs).
The preview on the right updates as you type:

![Display information section with page and SERP previews.](./images/public-tasks/task-display-information.webp)
- **Page preview:** how the landing page will look to users.
- **Google preview:** how the page will appear in search results.

![Page details fields (slug, SEO title, SEO description) with live page and Google previews on the right.](./images/public-tasks/task-page-details.webp)

:::tip Title format

Expand All @@ -98,16 +99,11 @@ Avoid titles like "Google Maps scraper - task 3" or "Test task" that describe th

### Input

The Input section controls which fields from your task's input configuration appear on the public landing page. By default, every field defined in your task input is selected. Deselect any field that is not relevant to the task's use case.
The **Input** section controls which fields from your task's input configuration appear on the landing page. Every input field is selected by default. Deselect any field that isn't relevant to this task's use case.

This control affects display only. The task itself always runs with the full input configuration, regardless of which fields are selected here.

![Input section with field selection.](./images/public-tasks/task-input-section.webp)

Use this section to:

- Show only the fields that demonstrate how the task is configured for its specific use case.
- Hide configuration fields that are not relevant to the task and would confuse first-time users.
![Input section showing checkboxes to select which fields appear on the landing page.](./images/public-tasks/task-input-section.webp)

:::info Secret fields are protected automatically

Expand All @@ -117,43 +113,58 @@ All input fields with `"isSecret": true` in the Actor's [input schema](/actors/d

### Dataset schema

The Dataset schema section selects which view of the Actor's dataset is rendered on the landing page. Each view organizes the output fields differently. Pick the one that best matches the task's use case.
The **Dataset schema** section selects which view of the Actor's dataset is rendered on the landing page. Each view organizes the output fields differently. Pick the one that best matches the task's use case.

![Dataset schema view selection.](./images/public-tasks/task-dataset-schema.webp)
![Dataset schema section with a dropdown to select which output view to display.](./images/public-tasks/task-dataset-schema.webp)

For more on configuring views, see [Dataset schema](/storage/dataset-schema).

### After publishing

A confirmation dialog reminds you that your runs and data stay private. Once published, anyone on Apify can duplicate and run your task with their own input.

A success dialog lets you share your task on social media. Use the **View landing page** button in the **Publishing** tab to preview it.

## Unpublish a task

To remove a task's landing page, open the task's **Publishing** tab and select **Unpublish task**. Confirm to remove it.

Unpublishing removes the landing page, but your task and its configuration stay saved. Republish anytime.

![Unpublish confirmation dialog with a Confirm button.](./images/public-tasks/task-unpublish-dialog.webp)

To see which tasks are published, filter by **Publish status** in the Tasks list in the sidebar.

## Task landing page

Each published task gets its own standalone landing page on the [Apify website](https://apify.com). This page is publicly accessible, indexed by search engines, and readable by AI agents. Published tasks also appear in the **Examples** tab of the Actor's detail page, linking visitors directly to the landing page.
Each published task gets its own standalone landing page on the [Apify website](https://apify.com). Published tasks also appear in the **Example tasks** tab of the Actor's detail page, linking users directly to the landing page.

![Examples tab on the Actor detail page showing published tasks.](./images/public-tasks/actor-examples-tab.webp)
![Example tasks tab on an Actor page listing published tasks with their titles.](./images/public-tasks/actor-examples-tab.webp)

### URL structure

The landing page URL is built from your username, Actor name, and task name. For example:

```text
https://apify.com/john/google-maps-scraper/examples/find-dentists-san-francisco
https://apify.com/john/google-maps-scraper/examples/analyze-local-business-competitors
```

Keep the task name short, descriptive, and focused on the use case keyword.

### Landing page content

![Task landing page with title, input fields, and output preview.](./images/public-tasks/task-landing-page.webp)
![A published task landing page showing the SEO title, input configuration, and dataset preview.](./images/public-tasks/task-landing-page.webp)

The landing page displays the information you configured in the [Display information](#display-information), [Input](#input), and [Dataset schema](#dataset-schema) sections:
The landing page displays the information you configured in the [Page details](#page-details), [Input](#input), and [Dataset schema](#dataset-schema) sections:

- The **SEO task title** and **SEO description** at the top of the page.
- The selected **input fields** with their configured values, so visitors can see exactly how the task is set up.
- The **SEO title** and **SEO description** at the top of the page.
- The selected **input fields** with their exact configured values.
- A preview of the **Dataset schema fields** based on the dataset view you selected.
- A call-to-action button that lets visitors try the task immediately.
- Generic sections explaining how Apify works and how to integrate it.
- A call-to-action button that lets users try the task right away.

### What happens when a visitor tries the task
### After a user tries your task

When a visitor clicks the call-to-action button, Apify creates a new task under their account with the same input configuration. The visitor gets their own independent copy. They can modify, run, and manage it without affecting your original task. You don't need to worry about other users consuming your resources or altering your configuration.
When a user clicks the call-to-action button, Apify creates a new task under their account with the same input configuration. The user can change, run, and manage it without affecting your original task. Your runs, data, and configuration stay private.

## Next steps

Expand Down
Loading