# Asana Apps Scraper - Project Management Integrations (`maximedupre/asana-apps`) Actor

Search or browse the public Asana Apps Directory. Get app names, pages, descriptions, categories, collections, partner details, and icons without an Asana login.

- **URL**: https://apify.com/maximedupre/asana-apps.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Developer tools, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.25 / 1,000 asana apps

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### 🔎 Find Asana apps and integration details

Asana users, software teams, and market researchers can search or browse the public Asana Apps Directory. Get app names, Asana pages, descriptions, categories, collections, partner details, and icon links without an Asana login.

- Find the **[Asana Google Drive Integration](https://apify.com/maximedupre/asana-apps/examples/asana-google-drive-integration)** and save its public listing details.
- Check the **[Asana Salesforce Integration](https://apify.com/maximedupre/asana-apps/examples/asana-salesforce-integration)** for categories and partner details.
- Find the **[Asana Microsoft Teams Integration](https://apify.com/maximedupre/asana-apps/examples/asana-microsoft-teams-integration)** in the public directory.
- Collect the **[Asana Slack Integration](https://apify.com/maximedupre/asana-apps/examples/asana-slack-integration)** name, page, description, and public details.
- Browse the **[Asana App Directory](https://apify.com/maximedupre/asana-apps/examples/asana-app-directory)** and filter the apps you need.

#### 📦 What data does the Actor return?

Each saved row is one genuine app listing. It can include the app name, canonical Asana page, public description, categories, featured collections, developer, partner tiers, premium-partner status, and icon link.

#### ▶️ How to run the Actor

1. Choose **Search apps** or **Browse directory**.
2. For a search, enter one keyword such as `Slack`.
3. Add any category, featured collection, or partner tier filters.
4. Set **Maximum apps**, or clear it to collect all available results until the source is exhausted.
5. Click **Start** and open the dataset when the run ends.

Filters of the same type match any listed value. When you use more than one filter type, an app must match each type.

#### 🔧 Input

| Field | Type | What it does |
|---|---|---|
| `target` | string | Chooses keyword search or directory browsing. |
| `query` | string | Sets the keyword for **Search apps**. It is ignored while browsing. |
| `categories` | string array | Keeps apps in any listed Asana category. An empty list uses all categories. |
| `featuredCollections` | string array | Keeps apps in any listed featured collection. An empty list uses all collections. |
| `partnerTiers` | string array | Keeps apps in any listed partner tier. An empty list uses all tiers. |
| `maxItems` | integer | Stops after this many apps. Leave it empty to return all available results until the source is exhausted. |

```json
{
  "target": "search",
  "query": "Slack",
  "maxItems": 25
}
```

#### 📤 Output

| Field | Type | What it does |
|---|---|---|
| `name` | string | App or integration name shown by Asana. |
| `url` | string | Canonical public Asana app page. |
| `description` | string | Public app or integration description. |
| `categories` | string array | Asana categories linked to the app. |
| `featuredCollections` | string array | Featured collections that include the app. |
| `developerName` | string | Developer name shown by Asana, when available. |
| `partnerTiers` | string array | Asana partner tiers linked to the app. |
| `isPremiumPartner` | boolean | Whether Asana marks the developer as a premium partner, when available. |
| `iconUrl` | string | Public app icon link, when available. |

```json
{
  "name": "Slack Workflows",
  "url": "https://asana.com/apps/slackworkflows",
  "description": "Instantly bring Asana into your no-code workflows in Slack",
  "categories": [
    "Operations",
    "Communication"
  ],
  "featuredCollections": [],
  "partnerTiers": [
    "Made by Developer",
    "Strategic Partner"
  ],
  "isPremiumPartner": true,
  "iconUrl": "https://assets.asana.biz/transform/f0fa0c8a-4de2-45f3-82c0-1793cadc55fe/SlackWorkflows"
}
```

You can download the dataset as JSON, CSV, Excel, XML, or another format offered by Apify.

#### 💳 Pricing

You are charged for each Asana app or integration saved to the dataset. A run that saves no app rows does not create an app charge. Check the Actor page for the current event price.

#### 🔌 Integrations

Run the Actor through the Apify API, schedule it, send dataset rows with webhooks, or connect the output to tools supported by Apify integrations.

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### Do I need an Asana account or API key?

No. The Actor reads the public Asana Apps Directory without an Asana login, API key, or private session.

##### Can it collect projects, tasks, users, or messages from my workspace?

No. It collects public app listings only. It does not read private Asana workspace data.

##### Can I combine filters?

Yes. You can use category, featured collection, and partner tier filters together. An app must match each filter type you set.

##### What happens when the same app appears more than once?

The first eligible match is saved. Later copies of the same app are ignored.

##### Can I track directory changes over time?

The Actor does not compare runs or keep a change history. You can schedule runs and compare the exported datasets in your own workflow.

### 📝 Changelog

#### 0.0: Initial release

- Search or browse the public Asana Apps Directory and export app details, categories, collections, partner information, and icon links.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~asana-apps/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [Slack App Directory Scraper](https://apify.com/maximedupre/slack-app-directory-scraper) — research public Slack apps, categories, vendors, and policies.
- [Zoom Marketplace Scraper](https://apify.com/maximedupre/zoom-marketplace-scraper) — compare Zoom apps, developers, ratings, and app flags.
- [HubSpot Marketplace Scraper](https://apify.com/maximedupre/hubspot-marketplace-scraper) — collect HubSpot app and solutions-partner listings.
- [Google Play Store Scraper](https://apify.com/maximedupre/google-play-store-scraper) — study mobile apps, reviews, permissions, and Data Safety details.
- [Chrome Extensions Scraper](https://apify.com/maximedupre/chrome-extensions-scraper) — collect Chrome extensions, publishers, permissions, and ratings.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `target` (type: `string`):

Choose whether to search for apps by keyword or browse the directory.

## `query` (type: `string`):

Enter the app, tool, or type of integration to find. This is used only for the Search apps Target.

## `categories` (type: `array`):

Keep apps in any listed Asana category. Leave this empty to use all categories. This works for Search apps and Browse directory.

## `featuredCollections` (type: `array`):

Keep apps in any listed Asana featured collection. Leave this empty to use all collections. This works for Search apps and Browse directory.

## `partnerTiers` (type: `array`):

Keep apps in any listed Asana partner tier. Leave this empty to use all tiers. This works for Search apps and Browse directory.

## `maxItems` (type: `integer`):

Stop after collecting this many apps. Leave this empty to return all available results until the source is exhausted.

## Actor input object example

```json
{
  "target": "search",
  "query": "Slack",
  "maxItems": 25
}
```

# Actor output Schema

## `results` (type: `string`):

Open the dataset with app names, descriptions, Asana pages, categories, collections, partner details, and icons.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "target": "search",
    "query": "Slack",
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/asana-apps").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "target": "search",
    "query": "Slack",
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/asana-apps").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "target": "search",
  "query": "Slack",
  "maxItems": 25
}' |
apify call maximedupre/asana-apps --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=maximedupre/asana-apps",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/bH22lj9nZs0MXVQMP/builds/Bpx6IkMxhDSEXOMuG/openapi.json
