# EU AI Act Transparency Lead Scanner (`zinin/eu-ai-act-transparency-lead-scanner`) Actor

BYOD compliance scanner for observed AI transparency signals on a submitted URL. Deterministic, robots-aware, no LLMs, no legal verdicts.

- **URL**: https://apify.com/zinin/eu-ai-act-transparency-lead-scanner.md
- **Developed by:** [Tim Zinin](https://apify.com/zinin) (community)
- **Categories:** MCP servers, Lead generation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $42.50 / 1,000 result founds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## EU AI Act Transparency Lead Scanner

Scan submitted public URLs for observable AI-transparency signals in page HTML. The Actor fetches `robots.txt` first, then the submitted page, and returns deterministic Dataset rows with signal evidence, a transparency gap score, lead tier, and review flag. It does not crawl discovered links, call an LLM, or issue a legal or compliance verdict.

### Contract

- Input is JSON with `schemaVersion`, `requestId`, `urls`, `maxResults`, `freshnessMinutes`, and `detailLevel`.
- `urls` contains 1-100 public HTTP(S) URLs. IP literals, credentials, fragments, and non-standard ports are rejected.
- The Actor checks robots rules, same-host redirects, public-address SSRF constraints, response limits, and timeouts.
- Useful observations are written to the default Dataset and summarized in the default Key-Value Store record `OUTPUT`.
- Errors, robots denials, source outages, invalid URLs, and budget failures are represented in the output envelope and do not become legal findings.

### Input

```json
{
  "schemaVersion": "1.0",
  "requestId": "demo-ai-001",
  "urls": ["https://www.w3.org"],
  "maxResults": 1,
  "freshnessMinutes": 60,
  "detailLevel": "compact"
}
```

### Dataset row

```json
{
  "requestId": "demo-ai-001",
  "actor": "eu-ai-act-transparency-lead-scanner",
  "dedupeKey": "f4eb4d0e69440fef0bd286b0caf1163b72dd9ea1400941188677961ac1ccef2e",
  "sourceUrl": "https://www.w3.org",
  "canonicalUrl": "https://www.w3.org/",
  "transparencyGapScore": 45,
  "leadTier": "medium",
  "isLead": true,
  "needsReview": true
}
```

The full Dataset row also contains the observed signal set, source metrics, timestamps, robots result, and evidence hashes. The compact `OUTPUT` record contains the bounded run envelope described by `.actor/business_output_schema.json`.

`dedupeKey` is a stable fingerprint of the canonical URL for your own deduplication — it does not by itself decide whether a repeat request is billed again; caching and re-billing on this Actor also depend on the run's detail level and scanner version.

### API

Start a run with a bearer token and explicit JSON input:

```bash
curl -sS -X POST 'https://api.apify.com/v2/acts/zinin~eu-ai-act-transparency-lead-scanner/runs?waitForFinish=60' \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  --data '{"schemaVersion":"1.0","requestId":"demo-ai-001","urls":["https://www.w3.org"],"maxResults":1,"freshnessMinutes":60,"detailLevel":"compact"}'
```

Read Dataset rows using the returned `defaultDatasetId`:

```bash
curl -sS "https://api.apify.com/v2/datasets/$DEFAULT_DATASET_ID/items?clean=true&format=json" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

Read the compact run envelope using the returned `defaultKeyValueStoreId`:

```bash
curl -sS "https://api.apify.com/v2/key-value-stores/$DEFAULT_KEY_VALUE_STORE_ID/records/OUTPUT" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

### MCP

For an Apify MCP client exposing the standard `call-actor` tool, send this exact payload:

```json
{
  "name": "call-actor",
  "arguments": {
    "actor": "zinin/eu-ai-act-transparency-lead-scanner",
    "input": {
      "schemaVersion": "1.0",
      "requestId": "demo-ai-001",
      "urls": ["https://www.w3.org"],
      "maxResults": 1,
      "freshnessMinutes": 60,
      "detailLevel": "compact"
    }
  }
}
```

### Boundaries and pricing

This is a BYOD observation scanner. It does not discover prospects, decide whether the EU AI Act applies, assign a legal risk class, or provide legal advice. The Store pricing page is authoritative; only useful Dataset rows use the configured `result-found` event, while the platform may also charge the automatic run-start event.

#### Related tools

Related tools for adjacent workflows in compliance and public procurement, operational gap-lead generation.

| Actor | What it does |
|---|---|
| [EU Accessibility Privacy Lead Scanner](https://apify.com/zinin/eu-accessibility-privacy-lead-scanner) | Pair it in the operational gap-lead generation workflow: BYOD compliance scanner for observed accessibility and privacy exposure signals on a submitted URL.... |
| [Clinic Reception Gap Lead Finder](https://apify.com/zinin/clinic-reception-gap-lead-finder) | Pair it in the operational gap-lead generation workflow: Analyze submitted clinic websites for reception-channel gaps with exact BYOD crawling and no discovery |
| [Counterparty Risk Rollup — Sanctions, Courts, Registry, Hiring](https://apify.com/zinin/counterparty-risk-rollup) | Pair it in the compliance and public procurement workflow: One call, one row per counterparty: sanctions screening (OFAC + EU), legal-entity registry (GLEIF),... |
| [Restaurant Booking Gap Lead Finder](https://apify.com/zinin/restaurant-booking-gap-lead-finder) | Pair it in the operational gap-lead generation workflow: Analyze submitted restaurant websites for booking-channel gaps with exact BYOD crawling and no discovery |
| [Company Registry Enricher](https://apify.com/zinin/company-registry-enricher) | Pair it in the compliance and public procurement workflow: Turn a company name, LEI or UK company number into an official registry card: legal name, status,... |

### Machine use

The Actor is callable through the Apify API, SDK, and Apify MCP server. The input, Dataset row, and bounded `OUTPUT` envelope are the machine-facing contracts; observed signals are evidence, not a compliance conclusion.

# Actor input Schema

## `schemaVersion` (type: `string`):

Input schema version. Must equal 1.0.

## `requestId` (type: `string`):

Stable idempotency key for this semantic input.

## `urls` (type: `array`):

Submitted absolute HTTP(S) URLs to audit. No discovery, no crawling beyond the page itself.

## `maxResults` (type: `integer`):

Maximum number of useful rows to deliver.

## `freshnessMinutes` (type: `integer`):

Use cached useful reports only if they are this fresh or newer.

## `detailLevel` (type: `string`):

compact for summaries, evidence for selectors and excerpts.

## Actor input object example

```json
{
  "schemaVersion": "1.0",
  "requestId": "web-daily-prefill-001",
  "urls": [
    "https://www.intercom.com",
    "https://www.w3.org"
  ],
  "maxResults": 10,
  "freshnessMinutes": 60,
  "detailLevel": "compact"
}
```

# Actor output Schema

## `OUTPUT` (type: `string`):

Compact business OUTPUT envelope stored in the default key-value store.

# 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 = {
    "requestId": "web-daily-prefill-001",
    "urls": [
        "https://www.intercom.com",
        "https://www.w3.org"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("zinin/eu-ai-act-transparency-lead-scanner").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 = {
    "requestId": "web-daily-prefill-001",
    "urls": [
        "https://www.intercom.com",
        "https://www.w3.org",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("zinin/eu-ai-act-transparency-lead-scanner").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 '{
  "requestId": "web-daily-prefill-001",
  "urls": [
    "https://www.intercom.com",
    "https://www.w3.org"
  ]
}' |
apify call zinin/eu-ai-act-transparency-lead-scanner --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zinin/eu-ai-act-transparency-lead-scanner",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/edEEdKL7AfGEo6e0g/builds/EcDiUkjfRY2r4n1jd/openapi.json
