Hidden AI Instructions Scanner: Prompt Injection Detector
hidden_ai_instructions_scannerScan web pages for hidden text and instructions aimed at AI agents, then classify findings as policy notices, manipulation, or prompt injection with locations and excerpts.
Instructions
Scan web pages for text hidden from people but read by AI agents (display:none, off-screen, tiny or same-color text, HTML comments, alt/meta/data attributes, zero-width and Unicode tag characters) and classify it as policy notice, manipulation or harmful prompt injection, with location and excerpt. Unlike ai_search_seo_audit (visible SEO and AI-readiness) and website_change_monitor (diffs over time), this is a security check on content an agent is about to read. Use when an agent or workflow will ingest a page and you need to know whether it carries hidden instructions, or when auditing your own site. Do not use for SEO grading (use ai_search_seo_audit) or for email security (use email_domain_security_checker). Parameters: renderJs=true runs a real browser to catch script-injected text (much slower, plus settleSecs per page); off is a fast HTTP read. agentUaDiff adds three fetches per page (GPTBot, ClaudeBot, ChatGPT-User) to detect cloaking. crawlDepth follows same-site links but maxPages always caps the run. Findings are leads for review, not proof of intent. Returns per item: page summaries (type page-summary, url, verdict, findings, categories, topSeverity, techniques, agentSummary) and findings (technique, location, excerpt, category, severity).
Behavior: read-only; runs the Apify Actor pandadad0214/hidden-ai-instructions-scanner (https://apify.com/pandadad0214/hidden-ai-instructions-scanner) on your own Apify account. Price: free (no per-result charge). Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxPages when you leave it unset, so it also limits what is billed; setting maxPages higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Page URLs. Pages to scan, one per line. Each URL is scanned once; links are not followed. | |
| maxPages | No | Max pages. Hard cap on pages scanned in one run. | |
| renderJs | No | Render JavaScript (browser). Off: fast HTTP fetch, reads inline styles, rules, comments, meta, data-* and other attributes, JSON-LD/script data blocks, iframe srcdoc and Unicode tricks. On: loads each page in headless Chromium, waits for network idle plus the settle time (catches delayed injections), checks the computed style of every element, and walks open shadow roots and same-origin iframes. | |
| crawlDepth | No | Crawl depth. 0 = only the URLs you give. 1+ = also follow same-site links that many clicks deep (signed-out pages only). Max pages still caps the run. | |
| settleSecs | No | Wait after load (render mode). Extra wait after network idle so text injected on a timer is caught. | |
| agentUaDiff | No | Check AI-agent cloaking. Also fetch each page as GPTBot, ClaudeBot and ChatGPT-User and flag AI-addressed text served to those agents but not to a normal browser. | |
| minSeverity | No | Minimum severity. Drop findings below this severity. Choices: low = Low (include policy notices); medium = Medium; high = High only. | low |
| timeoutSecs | No | Page timeout. Per-page load timeout. | |
| run_max_items | No | Optional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field. | |
| run_timeout_secs | No | Optional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300). | |
| run_max_charge_usd | No | Optional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50). |