Skip to main content
Glama

rowfeed/broken-link-checker

rowfeed--broken-link-checker
Destructive

This tool calls the Actor "rowfeed/broken-link-checker" and retrieves its output results. Actor description: Crawl a website and check every link and image: broken links (404, 410, 5xx, dead domains), redirect chains, timeouts and links the site blocks, with the pages each link is on. Or check a plain list of URLs. Plain HTTP, robots.txt respected.

Input Schema

NameRequiredDescriptionDefault
crawlNoOn: follow links on the same site, page by page, and check every link and image found. Off: only check the URLs you listed. Example values: true
outputNoProblems only (broken, timed out, blocked), problems plus redirects, or every checked URL. With 'Crawl the site' off, every URL is always output. Example values: "problems"problems
maxPagesNoHow many pages of the site are opened to collect links. Links on those pages are all checked. Example values: 20
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
startUrlsNoStart pages of the sites to check (e.g. https://example.com/). With 'Crawl the site' off, every URL here is checked on its own (bulk URL status and redirect check). Example values: ["https://www.scrapethissite.com/pages/"]
checkImagesNoAlso check image files (img src) for broken images. Example values: true
maxLinksPerSiteNoUpper limit on unique URLs checked per site (pages, links and images together). Each checked URL is one charged event. Example values: 1000
checkExternalLinksNoAlso check links that point to other domains (not crawled, just checked). Example values: true

Output Schema

NameRequiredDescriptionDefault
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Added value: +{
      +  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      +  "properties": {
      +    "anchor_text": {
      +      "type": "string"
      +    },
      +    "category": {
      +      "type": "string"
      +    },
      +    "checked_at": {
      +      "type": "string"
      +    },
      +    "content_type": {
      +      "type": "string"
      +    },
      +    "element": {
      +      "type": "string"
      +    },
      +    "error": {
      +      "type": "null"
      +    },
      +    "error_message": {
      +      "type": "null"
      +    },
      +    "final_url": {
      +      "type": "string"
      +    },
      +    "found_on": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "found_on_count": {
      +      "type": "number"
      +    },
      +    "link_type": {
      +      "type": "string"
      +    },
      +    "redirect_chain": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "redirects": {
      +      "type": "number"
      +    },
      +    "response_ms": {
      +      "type": "number"
      +    },
      +    "site": {
      +      "type": "string"
      +    },
      +    "status_code": {
      +      "type": "number"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Removed value: -{
      -  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      -  "properties": {
      -    "anchor_text": {
      -      "type": "string"
      -    },
      -    "category": {
      -      "type": "string"
      -    },
      -    "checked_at": {
      -      "type": "string"
      -    },
      -    "content_type": {
      -      "type": "string"
      -    },
      -    "element": {
      -      "type": "string"
      -    },
      -    "error": {
      -      "type": "null"
      -    },
      -    "error_message": {
      -      "type": "null"
      -    },
      -    "final_url": {
      -      "type": "string"
      -    },
      -    "found_on": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "found_on_count": {
      -      "type": "number"
      -    },
      -    "link_type": {
      -      "type": "string"
      -    },
      -    "redirect_chain": {
      -      "items": {},
      -      "type": "array"
      -    },
      -    "redirects": {
      -      "type": "number"
      -    },
      -    "response_ms": {
      -      "type": "number"
      -    },
      -    "site": {
      -      "type": "string"
      -    },
      -    "status_code": {
      -      "type": "number"
      -    },
      -    "url": {
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
  3. Changed1 schema field changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Added value: +{
      +  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      +  "properties": {
      +    "anchor_text": {
      +      "type": "string"
      +    },
      +    "category": {
      +      "type": "string"
      +    },
      +    "checked_at": {
      +      "type": "string"
      +    },
      +    "content_type": {
      +      "type": "string"
      +    },
      +    "element": {
      +      "type": "string"
      +    },
      +    "error": {
      +      "type": "null"
      +    },
      +    "error_message": {
      +      "type": "null"
      +    },
      +    "final_url": {
      +      "type": "string"
      +    },
      +    "found_on": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "found_on_count": {
      +      "type": "number"
      +    },
      +    "link_type": {
      +      "type": "string"
      +    },
      +    "redirect_chain": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "redirects": {
      +      "type": "number"
      +    },
      +    "response_ms": {
      +      "type": "number"
      +    },
      +    "site": {
      +      "type": "string"
      +    },
      +    "status_code": {
      +      "type": "number"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Removed value: -{
      -  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      -  "properties": {
      -    "anchor_text": {
      -      "type": "string"
      -    },
      -    "category": {
      -      "type": "string"
      -    },
      -    "checked_at": {
      -      "type": "string"
      -    },
      -    "content_type": {
      -      "type": "string"
      -    },
      -    "element": {
      -      "type": "string"
      -    },
      -    "error": {
      -      "type": "null"
      -    },
      -    "error_message": {
      -      "type": "null"
      -    },
      -    "final_url": {
      -      "type": "string"
      -    },
      -    "found_on": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "found_on_count": {
      -      "type": "number"
      -    },
      -    "link_type": {
      -      "type": "string"
      -    },
      -    "redirect_chain": {
      -      "items": {},
      -      "type": "array"
      -    },
      -    "redirects": {
      -      "type": "number"
      -    },
      -    "response_ms": {
      -      "type": "number"
      -    },
      -    "site": {
      -      "type": "string"
      -    },
      -    "status_code": {
      -      "type": "number"
      -    },
      -    "url": {
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
  5. Changed1 schema field changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Added value: +{
      +  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      +  "properties": {
      +    "anchor_text": {
      +      "type": "string"
      +    },
      +    "category": {
      +      "type": "string"
      +    },
      +    "checked_at": {
      +      "type": "string"
      +    },
      +    "content_type": {
      +      "type": "string"
      +    },
      +    "element": {
      +      "type": "string"
      +    },
      +    "error": {
      +      "type": "null"
      +    },
      +    "error_message": {
      +      "type": "null"
      +    },
      +    "final_url": {
      +      "type": "string"
      +    },
      +    "found_on": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "found_on_count": {
      +      "type": "number"
      +    },
      +    "link_type": {
      +      "type": "string"
      +    },
      +    "redirect_chain": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "redirects": {
      +      "type": "number"
      +    },
      +    "response_ms": {
      +      "type": "number"
      +    },
      +    "site": {
      +      "type": "string"
      +    },
      +    "status_code": {
      +      "type": "number"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  6. Changed1 schema field changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Removed value: -{
      -  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      -  "properties": {
      -    "anchor_text": {
      -      "type": "string"
      -    },
      -    "category": {
      -      "type": "string"
      -    },
      -    "checked_at": {
      -      "type": "string"
      -    },
      -    "content_type": {
      -      "type": "string"
      -    },
      -    "element": {
      -      "type": "string"
      -    },
      -    "error": {
      -      "type": "null"
      -    },
      -    "error_message": {
      -      "type": "null"
      -    },
      -    "final_url": {
      -      "type": "string"
      -    },
      -    "found_on": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "found_on_count": {
      -      "type": "number"
      -    },
      -    "link_type": {
      -      "type": "string"
      -    },
      -    "redirect_chain": {
      -      "items": {},
      -      "type": "array"
      -    },
      -    "redirects": {
      -      "type": "number"
      -    },
      -    "response_ms": {
      -      "type": "number"
      -    },
      -    "site": {
      -      "type": "string"
      -    },
      -    "status_code": {
      -      "type": "number"
      -    },
      -    "url": {
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
  7. Changed1 schema field changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Added value: +{
      +  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      +  "properties": {
      +    "anchor_text": {
      +      "type": "string"
      +    },
      +    "category": {
      +      "type": "string"
      +    },
      +    "checked_at": {
      +      "type": "string"
      +    },
      +    "content_type": {
      +      "type": "string"
      +    },
      +    "element": {
      +      "type": "string"
      +    },
      +    "error": {
      +      "type": "null"
      +    },
      +    "error_message": {
      +      "type": "null"
      +    },
      +    "final_url": {
      +      "type": "string"
      +    },
      +    "found_on": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "found_on_count": {
      +      "type": "number"
      +    },
      +    "link_type": {
      +      "type": "string"
      +    },
      +    "redirect_chain": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "redirects": {
      +      "type": "number"
      +    },
      +    "response_ms": {
      +      "type": "number"
      +    },
      +    "site": {
      +      "type": "string"
      +    },
      +    "status_code": {
      +      "type": "number"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  8. Changed1 schema field changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Removed value: -{
      -  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      -  "properties": {
      -    "anchor_text": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "category": {
      -      "type": "string"
      -    },
      -    "checked_at": {
      -      "type": "string"
      -    },
      -    "content_type": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "element": {
      -      "type": "string"
      -    },
      -    "error": {
      -      "type": [
      -        "null",
      -        "string"
      -      ]
      -    },
      -    "error_message": {
      -      "type": [
      -        "null",
      -        "string"
      -      ]
      -    },
      -    "final_url": {
      -      "type": "string"
      -    },
      -    "found_on": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "found_on_count": {
      -      "type": "number"
      -    },
      -    "link_type": {
      -      "type": "string"
      -    },
      -    "redirect_chain": {
      -      "items": {
      -        "properties": {
      -          "status_code": {
      -            "type": "number"
      -          },
      -          "url": {
      -            "type": "string"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "redirects": {
      -      "type": "number"
      -    },
      -    "response_ms": {
      -      "type": "number"
      -    },
      -    "site": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "status_code": {
      -      "type": [
      -        "number",
      -        "null"
      -      ]
      -    },
      -    "url": {
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}
  9. Added

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the agent knows this is a mutating/open-world Actor run. The description adds useful context ('Plain HTTP, robots.txt respected') and the Actor's checking scope, but it does not disclose charging behavior, rate limits, or what 'destructive' means in practice. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact at two sentences, but the first sentence is generic wrapper boilerplate and the actual useful purpose appears only in the second sentence. It is adequately sized but not front-loaded with the most useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, annotations are present, and the input schema is fully described, so the description does not need to explain return values or every parameter. Still, for an 8-parameter Actor wrapper with destructive/open-world annotations, the description could better mention charging, long-running behavior, or run/poll semantics beyond what the schema states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents all 8 parameters in detail, including crawl vs. URL-list modes, output filtering, and waitSecs behavior. The description itself adds little parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool invokes the 'rowfeed/broken-link-checker' Actor and retrieves its output, and the Actor description specifies crawling a site to check links/images for 404s, redirects, timeouts, and blocked links, or checking a plain URL list. This distinguishes it from sibling tools like backlink-checker or seo-site-audit, though the first sentence is generic Actor-wrapper boilerplate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The Actor description implies two usage modes: crawling a website or checking a plain list of URLs. However, it does not explicitly say when to choose this over sibling tools such as rowfeed--backlink-checker or rowfeed--seo-site-audit, nor does it state exclusions or prerequisites beyond 'robots.txt respected.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.