# Documentation Deprecation Monitor (`flintglade/documentation-deprecation-monitor`) Actor

Monitor explicit HTML, Markdown, and OpenAPI documentation for evidence-backed deprecations, removals, authentication changes, migrations, and endpoint revisions.

- **URL**: https://apify.com/flintglade/documentation-deprecation-monitor.md
- **Developed by:** [Flintglade](https://apify.com/flintglade) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $50.00 / 1,000 documentation checks

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

## Documentation Deprecation Monitor

Monitor explicit documentation URLs and report evidence-backed endpoint, authentication, migration, deprecation, sunset, removal, version, and policy changes.

### What this does not do

- No generic site crawl or universal breaking-change detection.
- No promise that all breaking changes are documented.
- No code migration, patch generation, or LLM summary.
- No login bypass or private-doc monitoring without user-authorized credentials.

### Sources and authorization

Every HTML, Markdown, or OpenAPI document is an explicit user URL passing the SSRF gate. Version 1 uses bounded HTTP only, follows at most five revalidated redirects, accepts only optional Authorization/Accept headers, and performs no recursive discovery.

### Input

Submit 1-100 documents with `url`, `type`, and optional `priorUrl`, HTML selectors, or secret headers. A `baselineStoreId` enables scheduled monitoring.

```json
{"documents":[{"url":"https://flintglade-tools.github.io/apify-fixtures/docs/current.html","type":"html","priorUrl":"https://flintglade-tools.github.io/apify-fixtures/docs/prior.html"}],"taxonomy":["endpoint","auth","migration","deprecation","sunset","removal"],"concurrency":1}
```

### Output

Each row contains baseline state, canonical hashes, category deltas, exact before/after excerpts and locators, OpenAPI operation changes, severity, source metadata, and diff artifacts. The final run summary is uncharged.

### Pricing

`documentation-check` costs **$0.05 per terminal document check**. Baseline creation, unchanged/changed reports, and definitive 404/410 results are charged. Blocked/auth/rate/transient/parse failures and missing requested priors are uncharged. Maximum event cost is admitted checks multiplied by $0.05, plus platform usage.

### State and partial failures

Explicit `priorUrl` comparisons are stateless. Persistent baselines are journaled in the selected KVS and committed only after Apify confirms the paid event. A 304 with a valid baseline is a successful unchanged check; uncharged failures never advance state. Duplicate inputs receive explicit uncharged rows.

### Resources and data handling

Limits are 256 MB minimum, 1024 MB default, 2048 MB maximum, 600 seconds, 2 MB per response, eight concurrent requests, and 100 documents. Secret header values are never echoed. Delete the run storages and chosen baseline KVS records to remove data.

### Rights, attribution, and limitations

Users must be authorized to fetch submitted documentation. The controlled fixture is Flintglade-authored. Historical changelog text is labeled and cannot create a high-severity alert by itself. Provider documentation can be incomplete, and unchanged text cannot prove an API is unchanged.

Support: support@flintglade.com

# Actor input Schema

## `inputSchemaVersion` (type: `integer`):

Versioned runtime input contract.

## `documents` (type: `array`):

Explicit HTML, Markdown, or OpenAPI documents; each URL is fetched without recursive discovery.

## `baselineStoreId` (type: `string`):

Optional KVS ID for scheduled monitoring state.

## `taxonomy` (type: `array`):

Change categories to report.

## `renderMode` (type: `string`):

Version 1 uses bounded HTTP only.

## `concurrency` (type: `integer`):

Maximum concurrently active document requests.

## Actor input object example

```json
{
  "inputSchemaVersion": 1,
  "documents": [
    {
      "url": "https://flintglade-tools.github.io/apify-fixtures/docs/current.html",
      "type": "html",
      "priorUrl": "https://flintglade-tools.github.io/apify-fixtures/docs/prior.html"
    }
  ],
  "taxonomy": [
    "endpoint",
    "auth",
    "migration",
    "deprecation",
    "sunset",
    "removal"
  ],
  "renderMode": "http",
  "concurrency": 4
}
```

# Actor output Schema

## `defaultDataset` (type: `string`):

No description

## `artifactManifest` (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 = {
    "documents": [
        {
            "url": "https://flintglade-tools.github.io/apify-fixtures/docs/current.html",
            "type": "html",
            "priorUrl": "https://flintglade-tools.github.io/apify-fixtures/docs/prior.html"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("flintglade/documentation-deprecation-monitor").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 = { "documents": [{
            "url": "https://flintglade-tools.github.io/apify-fixtures/docs/current.html",
            "type": "html",
            "priorUrl": "https://flintglade-tools.github.io/apify-fixtures/docs/prior.html",
        }] }

# Run the Actor and wait for it to finish
run = client.actor("flintglade/documentation-deprecation-monitor").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 '{
  "documents": [
    {
      "url": "https://flintglade-tools.github.io/apify-fixtures/docs/current.html",
      "type": "html",
      "priorUrl": "https://flintglade-tools.github.io/apify-fixtures/docs/prior.html"
    }
  ]
}' |
apify call flintglade/documentation-deprecation-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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