# AI Visibility Signal Report (`checksmithcats/ai-visibility-signal-report`) Actor

Inventories public crawler policy, structured data, canonical, hreflang, and site-trust signals without claiming to measure AI citations or rankings.

- **URL**: https://apify.com/checksmithcats/ai-visibility-signal-report.md
- **Developed by:** [Checksmith Cats](https://apify.com/checksmithcats) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / ai visibility signal report generated

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## AI Visibility Signal Report

Inventory public machine-readable site signals across four diagnostic dimensions in one run.

The report keeps each dimension separate so the evidence remains inspectable:

- **Crawler policy**: robots.txt, noindex, sitemap, llms.txt, and crawler directives
- **Structured data**: static JSON-LD types and field signals
- **Canonical / hreflang**: static link-tag signals
- **Site trust**: public policy links, contact signals, sitemap, and related page signals

### Outputs

- `REPORT.json`
- `REPORT.html`
- `REPORT.md`
- dataset rows for each dimension

Only reachable URLs successfully checked during the run are included in per-URL billing. Billing is capped at 50 URLs per run.

### Good fit

- a repeatable public-site signal inventory
- technical SEO or launch QA where several public signal families must be reviewed together
- agency evidence records that must remain machine-readable
- deciding which focused diagnostic Actor to run next

### Boundaries

This Actor reports observed public-site signals only. It does not:

- measure inclusion in ChatGPT, Gemini, Perplexity, or any AI answer system
- improve AI visibility or predict citations
- influence rankings or indexing
- provide SEO certification or platform approval
- inspect rendered JavaScript, private pages, account data, or crawler logs

Checksmith Cats is not affiliated with Google, Microsoft, OpenAI, Anthropic, Perplexity, Common Crawl, or any crawler operator.

### Pricing

Pay per event:

| Event | Price |
|---|---:|
| `ai-visibility-signal-report-generated` | $1.00 per completed report |
| `ai-visibility-signal-url-checked` | $0.10 per reachable URL checked |

Examples:

- 1 reachable URL: **$1.10**
- 10 reachable URLs: **$2.00**
- 50 reachable URLs, the current per-run maximum: **$6.00**

Input-validation failures and runs with no reachable URL are not charged. The Actor's own per-run maximum is $6.00; you can also set an Apify max cost per run for a lower account-level limit.

### Support boundary

Support covers reproducible Actor defects, documented input-format questions, missing output files, and a mismatch between documented and recorded billing events.

Support does not cover SEO consulting, AI-answer or citation research, crawler-policy selection, site remediation, managed monitoring, custom integrations, or interpretation of business outcomes.

### Related Actors

- **AI Crawler Policy Preflight**: focused, one-time crawler-policy inspection
- **AI Crawler Policy Drift Monitor**: recurring baseline comparison for crawler-facing public files
- **Crawler Traffic Log Report**: aggregate observations from submitted access logs

### Minimal input

```json
{
  "siteUrl": "https://checksmithcats.com/",
  "sampleLimit": 3
}
```

### API and scheduled use

Run the same validated input from Apify Console, the Actor API, CLI, schedules, or integrations. The run writes machine-readable findings to the default dataset and the complete report to the run storage.

### Common input errors

Start with the published example and keep `siteUrl`, `sampleLimit` in the documented JSON shape. Malformed JSON, unsupported URL schemes, missing required values, and inputs above the stated limits are rejected rather than repaired silently.

# Actor input Schema

## `siteUrl` (type: `string`):

Public site URL to inspect.

## `sitemapUrl` (type: `string`):

Optional public sitemap URL used by the underlying dimensions.

## `sampleLimit` (type: `integer`):

Maximum number of extracted URLs to inspect in bulk dimensions.

## Actor input object example

```json
{
  "siteUrl": "https://checksmithcats.com/",
  "sampleLimit": 5
}
```

# Actor output Schema

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

No description

## `report` (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 = {
    "siteUrl": "https://checksmithcats.com/"
};

// Run the Actor and wait for it to finish
const run = await client.actor("checksmithcats/ai-visibility-signal-report").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 = { "siteUrl": "https://checksmithcats.com/" }

# Run the Actor and wait for it to finish
run = client.actor("checksmithcats/ai-visibility-signal-report").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 '{
  "siteUrl": "https://checksmithcats.com/"
}' |
apify call checksmithcats/ai-visibility-signal-report --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,checksmithcats/ai-visibility-signal-report"
        }
    }
}

```

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/EBXwzqh3mL1wegGvF/builds/Avd40mF8dq7TAVN9w/openapi.json
