# Actor Quality Readiness Auditor (`silicon1235/actor-quality-readiness-auditor`) Actor

Audit public Apify Actor pages for Store-readiness, quality signals, monetization fit, pricing advice, and concrete fixes.

- **URL**: https://apify.com/silicon1235/actor-quality-readiness-auditor.md
- **Developed by:** [X L](https://apify.com/silicon1235) (community)
- **Categories:** Developer tools, Automation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Actor Quality Readiness Auditor

Local prototype for the next Apify product candidate.

It audits public Apify Actor pages and returns:

- `PUBLISH`, `FIX`, `AVOID`, or `ERROR`
- readiness score
- public stats
- missing Store quality signals
- maintenance/deprecation flags
- monetization fit: `HIGH`, `MEDIUM`, or `LOW`
- agentic/MCP fit: `HIGH`, `MEDIUM`, or `LOW`
- x402/PPE readiness: `READY_FOR_PRIVATE_TEST`, `FIX_FIRST`, or `NOT_READY`
- pricing advice for free, usage-cost-only, or later PPE testing
- next actions before publishing or enabling paid PPE
- Markdown report in key-value store record `REPORT`

### Usage

```powershell
cd D:\Project\SecurityAudits\actor-quality-auditor
node .\audit.js https://apify.com/thenetaji/apify-actor-monitor
node .\audit.js --json https://apify.com/apify/monitoring
node .\audit.js --out sample-output.json https://apify.com/thenetaji/apify-actor-monitor
````

### Apify Actor

This directory is also an Apify Actor package.

```powershell
cd D:\Project\SecurityAudits\actor-quality-auditor
npm install
npm start
```

Actor files:

- `.actor/actor.json`
- `.actor/input_schema.json`
- `.actor/output_schema.json`
- `.actor/dataset_schema.json`
- `assets/icon.svg`
- `src/main.js`
- `src/run-audit.js`
- `APIFY_CONSOLE_PUBLISH_PACK.md`
- `PPE_RELEASE_NOTES.md`
- `STORE_LISTING_DRAFT.md`
- `PUBLISHING_CHECKLIST.md`

Before publishing:

```powershell
npm test
npm pack --dry-run
```

### Validation

```powershell
cd D:\Project\SecurityAudits\actor-quality-auditor
npm test
node .\audit.js --out sample-audit-2026-07-02.json `
  https://apify.com/thenetaji/apify-actor-monitor `
  https://apify.com/apify/monitoring `
  https://apify.com/artificially/github-repo-scraper
```

Current sample output:

- `thenetaji/apify-actor-monitor`: `PUBLISH 96/100`, `monetizationFit=HIGH`
- `apify/monitoring`: `FIX 78/100`, `monetizationFit=MEDIUM`, with `stale-last-modified` and `missing-output-tab`
- `artificially/github-repo-scraper`: `AVOID 58/100`, `monetizationFit=LOW`, due to `under-maintenance`
- sample artifact: `sample-audit-2026-07-02.json`
- MCP/x402 fields are present in the sample: `agenticFit`, `x402Readiness`, `x402Signals`, and `agenticNextActions`

Current Actor validation:

- unit/config/wrapper tests pass
- `npm pack --dry-run` includes schemas, CLI, core, sample, and Actor source
- local `npm start` with empty input initializes the Apify SDK and exits successfully
- PPE-ready path exists: set `PPE_EVENT_NAME=audited-actor` only after configuring the same event in Apify Console

Actor outputs:

- default dataset rows, one per audited Actor URL
- `SUMMARY` key-value-store record with verdict counts and charge counters
- `REPORT` key-value-store record with a human-readable scorecard, pricing advice, MCP/agentic readiness, x402/PPE readiness, and release next actions

### Agentic / x402 Readiness

Apify's newer monetization and agent workflows make `MCP`, `API`, visible pricing, and clean paid-event units more important for Actor creators. This auditor now checks those public Store signals and emits:

- `agenticFit`
- `x402Readiness`
- `x402Signals`
- `agenticNextActions`

The intended paid boundary remains conservative: do not enable paid events on the first public release. Use `x402Readiness=READY_FOR_PRIVATE_TEST` as a signal for later private PPE/x402 testing after organic usage and run cost are measured.

### Product Hypothesis

Apify builders need a low-friction way to check whether their Actor looks publishable before asking users to run it.

This product is better aligned with low-communication income than lead generation because the output is a self-contained scorecard, not a promise of fresh leads.

### Pay-Per-Event Readiness

The Actor is wired for a future PPE event without enabling charging by default.

When Apify Console has a matching event configured, set:

```powershell
$env:PPE_EVENT_NAME = "audited-actor"
```

With that environment variable present, each successful non-`ERROR` audit row is pushed with the `audited-actor` event name. Error rows are still stored but are not charged. The `SUMMARY` value records:

- `chargeEventName`
- `chargeAttempts`
- `chargedCount`

Do not set `PPE_EVENT_NAME` until private Apify tests confirm the event is configured and the run budget behavior is acceptable.

### Local Live Smoke Evidence

Latest local public-source smoke test:

- source URLs:
  - `https://apify.com/thenetaji/apify-actor-monitor`
  - `https://apify.com/apify/monitoring`
  - `https://apify.com/artificially/github-repo-scraper`
- result:
  - `PUBLISH 96/100` for `thenetaji/apify-actor-monitor`
  - `FIX 78/100` for `apify/monitoring`
  - `AVOID 58/100` for `artificially/github-repo-scraper`
- artifact: `sample-audit-2026-07-02.json`

# Actor input Schema

## `actorUrls` (type: `array`):

Public Apify Actor URLs to audit.

## `maxActors` (type: `integer`):

Maximum number of Actor URLs to process from the input list.

## Actor input object example

```json
{
  "actorUrls": [
    "https://apify.com/thenetaji/apify-actor-monitor",
    "https://apify.com/artificially/github-repo-scraper"
  ],
  "maxActors": 50
}
```

# Actor output Schema

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

Default dataset items. Each row is one audited Actor URL with verdict, score, reasons, fixes, public Store signals, monetization fit, agentic fit, x402/PPE readiness, pricing advice, and next actions.

## `summary` (type: `string`):

Key-value store record with counts for audited, PUBLISH, FIX, AVOID, and ERROR rows.

## `report` (type: `string`):

Human-readable Markdown report with verdicts, scores, public signals, reasons, recommended fixes, monetization fit, MCP/agentic fit, x402/PPE readiness, pricing advice, and next actions.

# 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 = {
    "actorUrls": [
        "https://apify.com/thenetaji/apify-actor-monitor",
        "https://apify.com/artificially/github-repo-scraper"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("silicon1235/actor-quality-readiness-auditor").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 = { "actorUrls": [
        "https://apify.com/thenetaji/apify-actor-monitor",
        "https://apify.com/artificially/github-repo-scraper",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("silicon1235/actor-quality-readiness-auditor").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 '{
  "actorUrls": [
    "https://apify.com/thenetaji/apify-actor-monitor",
    "https://apify.com/artificially/github-repo-scraper"
  ]
}' |
apify call silicon1235/actor-quality-readiness-auditor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=silicon1235/actor-quality-readiness-auditor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Actor Quality Readiness Auditor",
        "description": "Audit public Apify Actor pages for Store-readiness, quality signals, monetization fit, pricing advice, and concrete fixes.",
        "version": "0.2",
        "x-build-id": "GDV2sbIamrSMg2SLt"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/silicon1235~actor-quality-readiness-auditor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-silicon1235-actor-quality-readiness-auditor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/silicon1235~actor-quality-readiness-auditor/runs": {
            "post": {
                "operationId": "runs-sync-silicon1235-actor-quality-readiness-auditor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/silicon1235~actor-quality-readiness-auditor/run-sync": {
            "post": {
                "operationId": "run-sync-silicon1235-actor-quality-readiness-auditor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "actorUrls"
                ],
                "properties": {
                    "actorUrls": {
                        "title": "Apify Actor URLs",
                        "type": "array",
                        "description": "Public Apify Actor URLs to audit.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxActors": {
                        "title": "Maximum Actors",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of Actor URLs to process from the input list.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
