{"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":200,"checkedAt":"2026-11-03T22:15:46.956Z","lastSuccessfulAt":"2026-11-03T22:15:46.956Z","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-03T22:15:49.313Z","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-03T22:15:49.313Z","attempted":true,"status":"working","reason":"http_success"},{"url":"https://docs.projectdiscovery.io/api-reference/results/get-vulnerability-timeline.md","httpStatus":200,"checkedAt":"2026-11-03T22:15:49.313Z","attempted":true,"status":"working","reason":"http_success"},{"url":"https://docs.projectdiscovery.io/api-reference/configurations/delete-config.md","httpStatus":200,"checkedAt":"2026-11-03T22:15:49.313Z","attempted":true,"status":"working","reason":"http_success"},{"url":"https://docs.projectdiscovery.io/templates/protocols/http/request-tampering.md","httpStatus":200,"checkedAt":"2026-11-03T22:15:49.313Z","attempted":true,"status":"working","reason":"http_success"},{"url":"https://github.com/projectdiscovery","httpStatus":410,"checkedAt":"2026-11-03T22:15:49.313Z","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-03T22:15:47.142Z","lastSuccessfulAt":"2026-11-03T22:15:47.142Z","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 200); 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-03T22:15:46.956Z. 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-03T22:15:50.144Z","lastVerifiedAt":"2026-11-03T22:15:46.956Z","evidence":{"sourceUrl":"https://docs.projectdiscovery.io/llms.txt","contentHash":"5c28bef3c45ef75a6363f83693d735ade1f4b74d7f94f73330c9db387c9b9626","processingVersion":"2.0","retrievedAt":"2026-11-03T22:15:46.956Z"},"linkSampling":{"eligibleCount":292,"selectedCount":5,"sampledCount":5,"working":4,"broken":1,"unknown":0,"checkedAt":"2026-11-03T22:15:49.313Z","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-03T22:15:49.313Z","attempted":true,"status":"working","reason":"http_success"},{"url":"https://docs.projectdiscovery.io/api-reference/results/get-vulnerability-timeline.md","httpStatus":200,"checkedAt":"2026-11-03T22:15:49.313Z","attempted":true,"status":"working","reason":"http_success"},{"url":"https://docs.projectdiscovery.io/api-reference/configurations/delete-config.md","httpStatus":200,"checkedAt":"2026-11-03T22:15:49.313Z","attempted":true,"status":"working","reason":"http_success"},{"url":"https://docs.projectdiscovery.io/templates/protocols/http/request-tampering.md","httpStatus":200,"checkedAt":"2026-11-03T22:15:49.313Z","attempted":true,"status":"working","reason":"http_success"},{"url":"https://github.com/projectdiscovery","httpStatus":410,"checkedAt":"2026-11-03T22:15:49.313Z","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-03T22:15:50.144Z"}