Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
165 changes: 165 additions & 0 deletions sources/platform/actors/publishing/publish-task.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
---
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.
slug: /actors/publishing/publish-task
sidebar_position: 2
---

Actor tasks are shareable, pre-configured inputs for your Actors. Published tasks get their own public landing pages that showcase real-world use cases and improve discoverability through search engines and AI agents.

A published task gets its own public landing page that shows users an example of what the Actor does, what inputs it uses, and what output to expect. Public tasks also appear in your Actor’s **Examples** tab. This helps people searching for or asking AI agents for a specific phrase or use case discover your Actor. Publishing tasks can lead to more page views, more runs, and, for monetized Actors, more revenue.
Comment on lines +8 to +10
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Actor tasks are shareable, pre-configured inputs for your Actors. Published tasks get their own public landing pages that showcase real-world use cases and improve discoverability through search engines and AI agents.
A published task gets its own public landing page that shows users an example of what the Actor does, what inputs it uses, and what output to expect. Public tasks also appear in your Actor’s **Examples** tab. This helps people searching for or asking AI agents for a specific phrase or use case discover your Actor. Publishing tasks can lead to more page views, more runs, and, for monetized Actors, more revenue.
[Actor tasks](/platform/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.

Copy link
Copy Markdown
Contributor

@marcel-rbro marcel-rbro May 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My suggestion somewhat clashes with @jgagne's, feel free to discard or combine. Please keep the links, they are my main point.


This guide walks you through the publication process on the **Publication** tab and the steps to make a task public.

Before you publish a task, your Actor itself must already be public. See [Publish your Actor](./publish.mdx) for the prerequisites that apply at the Actor level.

:::note Prerequisites

- A published Actor that you own or maintain.
- A [saved task](../running/tasks.md) with a complete input configuration.
- An [input schema](/platform/actors/development/actor-definition/input-schema) and at least one [dataset schema view](/platform/actors/development/actor-definition/dataset-schema) defined on the Actor.

:::
Comment on lines +14 to +22
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Before you publish a task, your Actor itself must already be public. See [Publish your Actor](./publish.mdx) for the prerequisites that apply at the Actor level.
:::note Prerequisites
- A published Actor that you own or maintain.
- A [saved task](../running/tasks.md) with a complete input configuration.
- An [input schema](/platform/actors/development/actor-definition/input-schema) and at least one [dataset schema view](/platform/actors/development/actor-definition/dataset-schema) defined on the Actor.
:::
## Prerequisites
Before you publish a task, make sure you have:
- A [published Actor](./publish.mdx) that you own or maintain.
- A [saved task](/platform/actors/running/tasks) with a complete input configuration.
- An [input schema](/platform/actors/development/actor-definition/input-schema) and at least one [dataset schema view](/platform/actors/development/actor-definition/dataset-schema) defined on the Actor.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This format is used throughout our docs


## 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.

### Demonstrate a specific job-to-be-done
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Demonstrate a specific job-to-be-done
### Focus on a real use case

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a specific reason to use the phrase "job-to-be-done"?


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 a Google Maps scraper, Amazon scraper and Yahoo scraper Actors:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For example, if you maintain a Google Maps scraper, Amazon scraper and Yahoo scraper Actors:
For example, if you maintain Google Maps, Amazon, and Yahoo scraper Actors:


| Weak task | Strong task |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| Weak task | Strong task |
| Weak task | Strong task |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the most minorest issue, but looks nice :)

| --- | --- |
| Google Maps - default config | Find dentists in San Francisco with reviews |
| Test run 2 | Extract restaurant emails for local marketing |
Comment thread
jbartadev marked this conversation as resolved.
| 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 |

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.

### 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.

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

- Location-specific tasks: "Scrape real estate listings in Austin" rather than "Scrape real estate listings"
- Industry-specific tasks: "Monitor competitor pricing for electronics" rather than "Monitor competitor pricing"
- Workflow-specific tasks: "Export LinkedIn company data to Google Sheets" rather than "Export LinkedIn data"

The more specific the task, the less competition it has in search results and the more relevant it is to the person who finds it.

:::info Show the range of your Actor

If your Actor supports multiple use cases, publish a task for each one. A web scraping Actor might have tasks for lead generation, price monitoring, and content aggregation. Each task demonstrates a different capability and attracts a different audience.

:::

## Make your task public
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Make your task public
## 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 3 sections: **Display information**, **Input**, and **Dataset schema**.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Complete the 3 sections: **Display information**, **Input**, and **Dataset schema**.
1. Complete the three sections: [Display information](#display-information), [Input](#input), and [Dataset schema](#dataset-schema).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added links instead of just text

1. Click **Publish task**.

![Publication tab on a task page.](./images/public-tasks/task-publication-tab.webp)

### Display information

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

There are 3 fields in this section:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
There are 3 fields in this section:
There are three fields in this section:


- **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.
- **SEO description:** appears under the title on the landing page and as the meta description in search results.

You can live preview how the fields propagate on the right (they update as you type):

- **Page Preview:** how the landing page will look to visitors.
- **SERP Preview:** how the page will appear in search engine results pages (SERPs).

![Display information section with page and SERP previews.](./images/public-tasks/task-display-information.webp)

:::tip Title format

Frame the title as the user's job-to-be-done, not as a description of the Actor's mechanics. A good title combines an action, a target, and a qualifier.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Frame the title as the user's job-to-be-done, not as a description of the Actor's mechanics. A good title combines an action, a target, and a qualifier.
Frame the title as the user's goal, not as a description of the Actor's mechanics. A good title combines an action, a target, and a qualifier.


Good examples:

- Track competitors' store locations
- Get a local B2B leads list
- Verify business emails from Google Maps

Avoid titles like "Google Maps scraper - task 3" or "Test task" that describe the Actor instead of the user's goal.

:::

### 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.

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.

:::info Secret fields are protected automatically

All input fields with `"isSecret": true` in the Actor's [input schema](/platform/actors/development/actor-definition/input-schema) are automatically masked and never shown on the landing page. Before publishing, confirm sensitive fields are marked as secret.

:::

### 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.

![Dataset schema view selection.](./images/public-tasks/task-dataset-schema.webp)

For more on configuring views, see [Dataset schema](/platform/actors/development/actor-definition/dataset-schema).
Comment thread
jbartadev marked this conversation as resolved.

## 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.

![Examples tab on the Actor detail page showing published tasks.](./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
```

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)

The landing page displays the information you configured in the [Display information](#display-information), [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.
- 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.

### What happens when a visitor tries the 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.

## Next steps

- Set up [monetization](./monetize/index.mdx) for your Actor.
- Track quality with the [Actor quality score](./quality_score.mdx).
Loading