# Website for Agents Audit (`bmiller1009/agent-ready-audit`) Actor

Audit whether AI assistants, crawlers, and software agents can discover and use a public website.

- **URL**: https://apify.com/bmiller1009/agent-ready-audit.md
- **Developed by:** [Sentinel Signal](https://apify.com/bmiller1009) (community)
- **Categories:** AI, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 completed website audits

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/actors/running/actors-in-store.md#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

## Website for Agents Audit

See how well AI assistants, crawlers, and software agents can discover and understand your public website. The Actor performs a deterministic, robots-aware audit and returns prioritized findings, category scores, and practical machine-readiness evidence.

### What it checks

- HTTP reachability, redirects, canonical identity, and crawlability
- `robots.txt`, sitemaps, `llms.txt`, and machine-readable discovery links
- OpenAPI 3.0/3.1 descriptions and documented authentication
- MCP and tool-discovery references
- JSON-LD, OpenGraph, Twitter metadata, documentation, product, and pricing discovery
- Accidental public exposure of metrics, debug output, and infrastructure details

The Actor does not execute JavaScript, call discovered APIs or tools, perform an MCP handshake, bypass `robots.txt`, or crawl other origins.

### Pricing

**This is a paid, pay-per-event Actor: $0.10 per completed website audit.**

Exactly one event is charged per run, only after a real audit result exists —
a `success` or a useful `partial` finding. There is no charge for invalid
input, a target blocked by the public-network policy, a target that could not
be resolved, or a run that fails before an audit result is produced.

### Input

Provide one public HTTP or HTTPS site root, such as `https://example.com/`. Targets containing credentials, queries, or fragments are rejected. Private, local, link-local, CGNAT, metadata-service, and mixed public/private DNS destinations are blocked.

Advanced: you can optionally adjust the resource limit, request timeout, standard probes, and strict operational configuration. Audits inspect at most 50 resources and 25 MiB in total.

### Output

Each run writes one bounded dataset result and a `RUN_SUMMARY`. Selected artifacts are available from the run key-value store:

- `REPORT.json` — complete machine-readable report
- `REPORT.md` — human-readable findings and scores
- `FINDINGS.csv` — tabular finding export

Useful partial, restricted, and unreachable audits are reported explicitly. Reports never include response bodies, extracted page text, credentials, query values, sensitive header values, or resolved private addresses.

### Safety and reproducibility

Requests are DNS-pinned and revalidated before every redirect. HTTPS-to-HTTP downgrades are rejected, concurrency and redirects are bounded, and transient retries are deterministic. Scoring rules and report schemas are independently versioned so identical captured observations produce stable ordering and scores.

For support or reproducible bug reports, open an issue in the [API-IFY repository](https://github.com/sentinelsignal/api-ify/issues) and include the Actor run ID. Do not include credentials or private site data.

# Actor input Schema

## `url` (type: `string`):

Public HTTP or HTTPS root without a path, query, fragment, or credentials.

## `outputFormats` (type: `array`):

Artifacts to write to the run key-value store.

## `maxPages` (type: `integer`):

Maximum unique resources to inspect, including robots and probes.

## `timeout` (type: `number`):

Per-request timeout in seconds.

## `standardProbes` (type: `boolean`):

Check bounded standard discovery and operational paths.

## `config` (type: `object`):

Optional strict operational configuration.

## Actor input object example

```json
{
  "url": "https://example.com/",
  "outputFormats": [
    "json",
    "markdown",
    "csv"
  ],
  "maxPages": 20,
  "timeout": 10,
  "standardProbes": true,
  "config": {}
}
```

# Actor output Schema

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

No description

## `jsonReport` (type: `string`):

No description

## `markdownReport` (type: `string`):

No description

## `findingsCsv` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

# 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 = {
    "url": "https://example.com/"
};

// Run the Actor and wait for it to finish
const run = await client.actor("bmiller1009/agent-ready-audit").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 = { "url": "https://example.com/" }

# Run the Actor and wait for it to finish
run = client.actor("bmiller1009/agent-ready-audit").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "url": "https://example.com/"
}' |
apify call bmiller1009/agent-ready-audit --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,bmiller1009/agent-ready-audit"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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