docs.projectdiscovery.io
ProjectDiscovery
Open source security tools for attack surface discovery.
docs.projectdiscovery.io
Open source security tools for attack surface discovery.
Submitted URLs are declarations until checked. Verification inspects published content and does not execute third-party tools.
Quality suggestion: add a short summary blockquote before the file sections.
2 duplicate documentation links
Format finding: start with one H1 naming the site or project.
Quality suggestion: add a short summary blockquote before the file sections.
421 duplicate documentation links
9 unsupported, malformed or unresolved links
The score measures observable documentation quality. Each component below lists its earned points, exact checks, and source observations. It is not a prediction of AI rankings or citations.
Overall readiness
Confidence: high· V2
How this score is calculated
round(87.48 ÷ 100 × 100) = 87/100
87.48 points earned out of 100 assessed. All 100 available points were assessed. The checks below show each result. Optional integrations and file size earn no extra points.
Full scoring rules and worked exampleCurrent usable primary file: 25/25.
Current llms.txt retrieval succeeded (HTTP 304); usable text verified.
llms.txt: Documentation sections: ProjectDiscovery Documentation; OpenAPI Specs; Optional. Derived from headings; source checked 2026-11-10.
llms-full.txt: Documentation sections: Export the list of unique input domains of an enumeration.; Add labels to an asset; Overview; Quick Example; Request Body; Response. Derived from headings; source checked 2026-11-10.
Listing updated: . Machine-readable profile (JSON)
{
"schemaVersion": "1.0",
"name": "ProjectDiscovery",
"slug": "projectdiscovery",
"website": "https://docs.projectdiscovery.io",
"category": "developer-tools",
"description": "Open source security tools for attack surface discovery.",
"capabilities": [
"llmsTxt documentation",
"llmsFullTxt documentation"
],
"aiResources": {
"llmsTxt": {
"type": "llmsTxt",
"url": "https://docs.projectdiscovery.io/llms.txt",
"status": "verified",
"available": true,
"httpStatus": 304,
"checkedAt": "2026-11-10T22:16:49.254Z",
"lastSuccessfulAt": "2026-11-10T22:16:49.254Z",
"contentType": "text/plain; charset=utf-8",
"contentSize": 41043,
"estimatedTokens": 10261,
"tokenMethod": "UTF-16 characters / 4 (approximation)",
"contentHash": "5c28bef3c45ef75a6363f83693d735ade1f4b74d7f94f73330c9db387c9b9626",
"internalLinks": 288,
"externalLinks": 4,
"document": {
"h1Count": 1,
"firstBlockIsH1": true,
"title": "ProjectDiscovery Documentation",
"usefulTitle": true,
"headingCount": 3,
"uniqueHeadingCount": 3,
"hasSections": true,
"orderedHeadings": true,
"sectionWithContent": true,
"fileListLinks": 293,
"summaryPresent": false,
"contextPresent": false,
"validLinks": 294,
"invalidLinks": 0,
"duplicateLinks": 2,
"descriptiveLinks": 292,
"annotatedLinks": 235
},
"linkHealth": {
"eligibleCount": 292,
"selectedCount": 5,
"sampledCount": 5,
"working": 4,
"broken": 1,
"unknown": 0,
"checkedAt": "2026-11-10T22:16:49.565Z",
"sourceHash": "5c28bef3c45ef75a6363f83693d735ade1f4b74d7f94f73330c9db387c9b9626",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://docs.projectdiscovery.io/templates/protocols/headless.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://docs.projectdiscovery.io/api-reference/results/get-vulnerability-timeline.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://docs.projectdiscovery.io/api-reference/configurations/delete-config.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://docs.projectdiscovery.io/templates/protocols/http/request-tampering.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://github.com/projectdiscovery",
"httpStatus": 410,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "broken",
"reason": "not_found"
}
]
},
"headings": [
"ProjectDiscovery Documentation",
"OpenAPI Specs",
"Optional"
],
"warnings": [
"Quality suggestion: add a short summary blockquote before the file sections.",
"2 duplicate documentation links"
],
"summary": "Documentation sections: ProjectDiscovery Documentation; OpenAPI Specs; Optional.",
"summarySourceHash": "5c28bef3c45ef75a6363f83693d735ade1f4b74d7f94f73330c9db387c9b9626",
"processingVersion": "2.0",
"method": "markdown-ast-analysis"
},
"llmsFullTxt": {
"type": "llmsFullTxt",
"url": "https://docs.projectdiscovery.io/llms-full.txt",
"status": "verified",
"available": true,
"httpStatus": 200,
"checkedAt": "2026-11-10T22:16:49.403Z",
"lastSuccessfulAt": "2026-11-10T22:16:49.403Z",
"contentType": "text/plain; charset=utf-8",
"contentSize": 1024334,
"estimatedTokens": 255809,
"tokenMethod": "UTF-16 characters / 4 (approximation)",
"contentHash": "16eebb9ea54ffcdab484badb74f66dd1a9097d3ae2664259b9e35085908bf57f",
"internalLinks": 186,
"externalLinks": 343,
"document": {
"h1Count": 317,
"firstBlockIsH1": true,
"title": "Export the list of unique input domains of an enumeration.",
"usefulTitle": true,
"headingCount": 1682,
"uniqueHeadingCount": 1254,
"hasSections": true,
"orderedHeadings": false,
"sectionWithContent": true,
"fileListLinks": 405,
"summaryPresent": false,
"contextPresent": true,
"validLinks": 950,
"invalidLinks": 9,
"duplicateLinks": 421,
"descriptiveLinks": 438,
"annotatedLinks": 10
},
"headings": [
"Export the list of unique input domains of an enumeration.",
"Add labels to an asset",
"Overview",
"Quick Example",
"Request Body",
"Response",
"Success Response",
"Error Responses",
"Use Cases",
"1. Manual Asset Review",
"2. Security Assessment",
"3. Incident Response"
],
"warnings": [
"Format finding: start with one H1 naming the site or project.",
"Quality suggestion: add a short summary blockquote before the file sections.",
"421 duplicate documentation links",
"9 unsupported, malformed or unresolved links"
],
"summary": "Documentation sections: Export the list of unique input domains of an enumeration.; Add labels to an asset; Overview; Quick Example; Request Body; Response.",
"summarySourceHash": "16eebb9ea54ffcdab484badb74f66dd1a9097d3ae2664259b9e35085908bf57f",
"processingVersion": "2.0",
"method": "markdown-ast-analysis"
},
"webmcp": null
},
"readiness": {
"score": 87,
"version": "2.0",
"confidence": "high",
"components": [
{
"name": "availability",
"weight": 25,
"assessedWeight": 25,
"points": 25,
"rules": [
{
"id": "current_access",
"label": "Current usable primary file",
"weight": 25,
"observation": "Current llms.txt retrieval succeeded (HTTP 304); usable text verified.",
"points": 25
}
],
"explanation": "Current usable primary file: 25/25."
},
{
"name": "structure",
"weight": 25,
"assessedWeight": 25,
"points": 25,
"rules": [
{
"id": "title",
"label": "One project H1 at the beginning",
"weight": 10,
"observation": "1 H1 heading(s); starts with H1: yes.",
"points": 10
},
{
"id": "sections",
"label": "Coherent content sections",
"weight": 5,
"observation": "H2 with content: yes; no heading-level jumps: yes.",
"points": 5
},
{
"id": "file_lists",
"label": "Documentation links organized in lists",
"weight": 5,
"observation": "293 valid link occurrence(s) inside Markdown lists.",
"points": 5
},
{
"id": "heading_uniqueness",
"label": "Non-repeated headings",
"weight": 5,
"observation": "3 unique heading(s) out of 3; code examples are excluded.",
"points": 5
}
],
"explanation": "One project H1 at the beginning: 10/10. Coherent content sections: 5/5. Documentation links organized in lists: 5/5. Non-repeated headings: 5/5."
},
{
"name": "links",
"weight": 25,
"assessedWeight": 25,
"points": 22.48,
"rules": [
{
"id": "link_syntax",
"label": "Resolvable HTTP(S) link syntax",
"weight": 5,
"observation": "294 valid URL occurrence(s), 0 malformed, unsupported or unresolved.",
"points": 5
},
{
"id": "link_uniqueness",
"label": "Unique documentation destinations",
"weight": 5,
"observation": "292 unique destination(s) from 294 valid occurrence(s).",
"points": 4.97
},
{
"id": "link_labels",
"label": "Descriptive link labels",
"weight": 2.5,
"observation": "292 of 292 unique links have non-placeholder labels. This is a text heuristic, not a semantic guarantee.",
"points": 2.5
},
{
"id": "link_notes",
"label": "Context beside file links",
"weight": 2.5,
"observation": "235 of 292 unique links have notes beside a Markdown list link.",
"points": 2.01
},
{
"id": "link_health",
"label": "Sampled destination accessibility",
"weight": 10,
"observation": "5 of 292 destinations sampled: 4 working, 1 confirmed 404/410, 0 unknown. Only working and confirmed-broken results enter this fraction.",
"points": 8
}
],
"explanation": "Resolvable HTTP(S) link syntax: 5/5. Unique documentation destinations: 4.97/5. Descriptive link labels: 2.5/2.5. Context beside file links: 2.01/2.5. Sampled destination accessibility: 8/10."
},
{
"name": "confidence",
"weight": 15,
"assessedWeight": 15,
"points": 15,
"rules": [
{
"id": "verification_age",
"label": "Age of last successful verification",
"weight": 10,
"observation": "Last success: 2026-11-10T22:16:49.254Z. Full points through day 8 (7-day schedule plus 1-day grace), 60% through day 30, 20% thereafter or for an unknown date.",
"points": 10
},
{
"id": "latest_success",
"label": "Latest primary check succeeded",
"weight": 5,
"observation": "Latest primary verification succeeded.",
"points": 5
}
],
"explanation": "Age of last successful verification: 10/10. Latest primary check succeeded: 5/5."
},
{
"name": "metadata",
"weight": 10,
"assessedWeight": 10,
"points": 0,
"rules": [
{
"id": "summary",
"label": "Useful summary blockquote",
"weight": 5,
"observation": "A blockquote before the first H2 with at least 20 non-whitespace characters and no placeholder-only text.",
"points": 0
},
{
"id": "context",
"label": "Useful introductory context",
"weight": 5,
"observation": "An introductory paragraph before the first H2 with at least 20 non-whitespace characters and no placeholder-only text. Listing form fields do not earn these points.",
"points": 0
}
],
"explanation": "Useful summary blockquote: 0/5. Useful introductory context: 0/5."
}
],
"earnedPoints": 87.48,
"assessedWeight": 100,
"availableWeight": 100,
"provisional": false,
"calculatedAt": "2026-11-10T22:16:51.619Z",
"lastVerifiedAt": "2026-11-10T22:16:49.254Z",
"evidence": {
"sourceUrl": "https://docs.projectdiscovery.io/llms.txt",
"contentHash": "5c28bef3c45ef75a6363f83693d735ade1f4b74d7f94f73330c9db387c9b9626",
"processingVersion": "2.0",
"retrievedAt": "2026-11-10T22:16:49.254Z"
},
"linkSampling": {
"eligibleCount": 292,
"selectedCount": 5,
"sampledCount": 5,
"working": 4,
"broken": 1,
"unknown": 0,
"checkedAt": "2026-11-10T22:16:49.565Z",
"sourceHash": "5c28bef3c45ef75a6363f83693d735ade1f4b74d7f94f73330c9db387c9b9626",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://docs.projectdiscovery.io/templates/protocols/headless.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://docs.projectdiscovery.io/api-reference/results/get-vulnerability-timeline.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://docs.projectdiscovery.io/api-reference/configurations/delete-config.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://docs.projectdiscovery.io/templates/protocols/http/request-tampering.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://github.com/projectdiscovery",
"httpStatus": 410,
"checkedAt": "2026-11-10T22:16:49.565Z",
"attempted": true,
"status": "broken",
"reason": "not_found"
}
]
},
"warnings": [
"This measures observable documentation, not model rankings or citation probability.",
"H1 is the only required section in the llms.txt proposal. Other checks are LLMSList quality preferences; missing optional sections do not make usable text invalid.",
"Destination accessibility covers a sample of 5 out of 292 unique links, not the entire website."
]
},
"updatedAt": "2026-11-10T22:16:51.620Z"
}Related listings based on category, resource types, and description keywords
agentsandboxes.fyi
A neutral index of cloud sandboxes for AI agents, with source-linked specs, a free REST API and an MCP endpoint.
One project H1 at the beginning: 10/10. Coherent content sections: 5/5. Documentation links organized in lists: 5/5. Non-repeated headings: 5/5.
1 H1 heading(s); starts with H1: yes.
H2 with content: yes; no heading-level jumps: yes.
293 valid link occurrence(s) inside Markdown lists.
3 unique heading(s) out of 3; code examples are excluded.
Resolvable HTTP(S) link syntax: 5/5. Unique documentation destinations: 4.97/5. Descriptive link labels: 2.5/2.5. Context beside file links: 2.01/2.5. Sampled destination accessibility: 8/10.
294 valid URL occurrence(s), 0 malformed, unsupported or unresolved.
292 unique destination(s) from 294 valid occurrence(s).
292 of 292 unique links have non-placeholder labels. This is a text heuristic, not a semantic guarantee.
235 of 292 unique links have notes beside a Markdown list link.
5 of 292 destinations sampled: 4 working, 1 confirmed 404/410, 0 unknown. Only working and confirmed-broken results enter this fraction.
Age of last successful verification: 10/10. Latest primary check succeeded: 5/5.
Last success: 2026-11-10T22:16:49.254Z. Full points through day 8 (7-day schedule plus 1-day grace), 60% through day 30, 20% thereafter or for an unknown date.
Latest primary verification succeeded.
Useful summary blockquote: 0/5. Useful introductory context: 0/5.
A blockquote before the first H2 with at least 20 non-whitespace characters and no placeholder-only text.
An introductory paragraph before the first H2 with at least 20 non-whitespace characters and no placeholder-only text. Listing form fields do not earn these points.
How to improve: Add a useful > summary and a separate introductory paragraph before the first ## section in the file itself. Each must contain at least 20 non-whitespace characters and not consist only of placeholder text. Each earns five default points. Editing listing form fields alone does not improve this component.
80–100%50–79%0–49%Gray: not assessed
Component colors use earned points ÷ assessed points. Unmeasured checks are excluded from the assessed maximum. Model v2.0. Calculated 2026-11-10 22:16:51 UTC.
5 of 292 unique destinations checked: 4 working, 1 confirmed broken, 0 unknown. We check up to five destinations, not every page. A successful HTTP response does not prove that a page is relevant or factually correct.
Sample checked: 2026-11-10 22:16:49 UTC · Source snapshot: 5c28bef3c45e
Destination responded successfully
Destination responded successfully
Destination responded successfully
Last verified: 2026-11-10.
This measures observable documentation, not model rankings or citation probability.
H1 is the only required section in the llms.txt proposal. Other checks are LLMSList quality preferences; missing optional sections do not make usable text invalid.
Destination accessibility covers a sample of 5 out of 292 unique links, not the entire website.
AI Resource Readiness
Confidence: high· V2
lab.awaara.cn
Free single-purpose browser tools for people who build with AI: llms.txt Checker, Claude Skill Validator, UUID v7 generator and model pricing notes. No signup.
AI Resource Readiness
Confidence: high· V2
apiclaw.biz
Flat-rate [OI]-compatible AI API gateway. One key for Claude, GPT, Gemini, DeepSeek, Qwen, Kimi and 100+ models from $19/mo with unlimited tokens per request and a daily request quota that resets at 00:00 UTC. Works with Cursor, [CC], Codex CLI, Cline, Windsurf and OpenCode. 50 free trial requests, no card.
AI Resource Readiness
Confidence: medium· V2
gpuclouds.fyi
Compare GPU cloud providers for AI training and inference.
AI Resource Readiness
Confidence: high· V2
docs.lastscanned.com
Developer documentation for lastscanned's 542-carrier package tracking REST API, stateless MCP server, x402/MPP payment endpoints, and automated Shipment Watches & HMAC-SHA256 webhooks.
AI Resource Readiness
Confidence: medium· V2
pereval.dev
Web development studio (Russian): websites, online stores, business systems and CRMs, online services, mobile apps and bots, AI for business, integrations, hosting and marketing.
AI Resource Readiness
Confidence: high· V2
Destination responded successfully
Confirmed missing destination
Only HTTP 404/410 is classified as confirmed broken. HTTP 403/429, timeouts and incomplete checks remain unknown. If all sample outcomes are unknown, the link-health check is excluded from the assessed maximum and the score is marked provisional.