buildwithfern.com
Fern
Generate SDKs and API documentation from your OpenAPI spec.
buildwithfern.com
Generate SDKs and API documentation from your OpenAPI spec.
Submitted URLs are declarations until checked. Verification inspects published content and does not execute third-party tools.
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(93.17 ÷ 100 × 100) = 93/100
93.17 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 200); usable text verified.
llms.txt: Documentation sections: Fern Documentation; Instructions for AI Agents; Products. Derived from headings; source checked 2026-11-10.
Listing updated: . Machine-readable profile (JSON)
{
"schemaVersion": "1.0",
"name": "Fern",
"slug": "fern",
"website": "https://buildwithfern.com",
"category": "developer-tools",
"description": "Generate SDKs and API documentation from your OpenAPI spec.",
"capabilities": [
"llmsTxt documentation"
],
"aiResources": {
"llmsTxt": {
"type": "llmsTxt",
"url": "https://buildwithfern.com/learn/llms.txt",
"status": "verified",
"available": true,
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.556Z",
"lastSuccessfulAt": "2026-11-10T22:15:57.556Z",
"contentType": "text/plain; charset=utf-8",
"contentSize": 4833,
"estimatedTokens": 1209,
"tokenMethod": "UTF-16 characters / 4 (approximation)",
"contentHash": "ea375e560c532f9b80507e8a15e6e133756c69dd96050865e4d4f9d085601f30",
"internalLinks": 45,
"externalLinks": 0,
"document": {
"h1Count": 1,
"firstBlockIsH1": true,
"title": "Fern Documentation",
"usefulTitle": true,
"headingCount": 3,
"uniqueHeadingCount": 3,
"hasSections": true,
"orderedHeadings": true,
"sectionWithContent": true,
"fileListLinks": 45,
"summaryPresent": true,
"contextPresent": false,
"validLinks": 45,
"invalidLinks": 0,
"duplicateLinks": 0,
"descriptiveLinks": 45,
"annotatedLinks": 12
},
"linkHealth": {
"eligibleCount": 45,
"selectedCount": 5,
"sampledCount": 5,
"working": 5,
"broken": 0,
"unknown": 0,
"checkedAt": "2026-11-10T22:15:57.962Z",
"sourceHash": "ea375e560c532f9b80507e8a15e6e133756c69dd96050865e4d4f9d085601f30",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://buildwithfern.com/learn/mcp-generator/get-started/manage.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://buildwithfern.com/learn/dashboard/configuration/sso.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://buildwithfern.com/learn/cli-generator/get-started/quickstart.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://buildwithfern.com/learn/dashboard/llms.txt",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://buildwithfern.com/learn/api-definitions/overview/project-structure.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
}
]
},
"headings": [
"Fern Documentation",
"Instructions for AI Agents",
"Products"
],
"warnings": [],
"summary": "Documentation sections: Fern Documentation; Instructions for AI Agents; Products.",
"summarySourceHash": "ea375e560c532f9b80507e8a15e6e133756c69dd96050865e4d4f9d085601f30",
"processingVersion": "2.0",
"method": "markdown-ast-analysis"
},
"llmsFullTxt": null,
"webmcp": null
},
"readiness": {
"score": 93,
"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": "45 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": 23.17,
"rules": [
{
"id": "link_syntax",
"label": "Resolvable HTTP(S) link syntax",
"weight": 5,
"observation": "45 valid URL occurrence(s), 0 malformed, unsupported or unresolved.",
"points": 5
},
{
"id": "link_uniqueness",
"label": "Unique documentation destinations",
"weight": 5,
"observation": "45 unique destination(s) from 45 valid occurrence(s).",
"points": 5
},
{
"id": "link_labels",
"label": "Descriptive link labels",
"weight": 2.5,
"observation": "45 of 45 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": "12 of 45 unique links have notes beside a Markdown list link.",
"points": 0.67
},
{
"id": "link_health",
"label": "Sampled destination accessibility",
"weight": 10,
"observation": "5 of 45 destinations sampled: 5 working, 0 confirmed 404/410, 0 unknown. Only working and confirmed-broken results enter this fraction.",
"points": 10
}
],
"explanation": "Resolvable HTTP(S) link syntax: 5/5. Unique documentation destinations: 5/5. Descriptive link labels: 2.5/2.5. Context beside file links: 0.67/2.5. Sampled destination accessibility: 10/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:15:57.556Z. 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": 5,
"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": 5
},
{
"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: 5/5. Useful introductory context: 0/5."
}
],
"earnedPoints": 93.17,
"assessedWeight": 100,
"availableWeight": 100,
"provisional": false,
"calculatedAt": "2026-11-10T22:16:00.968Z",
"lastVerifiedAt": "2026-11-10T22:15:57.556Z",
"evidence": {
"sourceUrl": "https://buildwithfern.com/learn/llms.txt",
"contentHash": "ea375e560c532f9b80507e8a15e6e133756c69dd96050865e4d4f9d085601f30",
"processingVersion": "2.0",
"retrievedAt": "2026-11-10T22:15:57.556Z"
},
"linkSampling": {
"eligibleCount": 45,
"selectedCount": 5,
"sampledCount": 5,
"working": 5,
"broken": 0,
"unknown": 0,
"checkedAt": "2026-11-10T22:15:57.962Z",
"sourceHash": "ea375e560c532f9b80507e8a15e6e133756c69dd96050865e4d4f9d085601f30",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://buildwithfern.com/learn/mcp-generator/get-started/manage.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://buildwithfern.com/learn/dashboard/configuration/sso.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://buildwithfern.com/learn/cli-generator/get-started/quickstart.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://buildwithfern.com/learn/dashboard/llms.txt",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://buildwithfern.com/learn/api-definitions/overview/project-structure.md",
"httpStatus": 200,
"checkedAt": "2026-11-10T22:15:57.962Z",
"attempted": true,
"status": "working",
"reason": "http_success"
}
]
},
"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 45 unique links, not the entire website."
]
},
"updatedAt": "2026-11-10T22:16:00.969Z"
}Related listings based on category, resource types, and description keywords
alwaysagent.app
AlwaysAgent gives each user a dedicated Linux cloud server with Claude Code and OpenAI Codex CLI preinstalled, used from any browser, phone or iPad. Bring your own API key, OpenRouter, a relay, or Anthropic-compatible models. Tasks keep running after you close your laptop.
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.
45 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: 5/5. Descriptive link labels: 2.5/2.5. Context beside file links: 0.67/2.5. Sampled destination accessibility: 10/10.
45 valid URL occurrence(s), 0 malformed, unsupported or unresolved.
45 unique destination(s) from 45 valid occurrence(s).
45 of 45 unique links have non-placeholder labels. This is a text heuristic, not a semantic guarantee.
12 of 45 unique links have notes beside a Markdown list link.
5 of 45 destinations sampled: 5 working, 0 confirmed 404/410, 0 unknown. Only working and confirmed-broken results enter this fraction.
Use unique HTTP(S) documentation links with descriptive labels and short notes beside list links. Fix confirmed HTTP 404/410 destinations in the sample below. Access-denied, rate-limited or timed-out checks are unknown, not confirmed broken. Request a recheck after changes; more links alone earn no extra points.
Age of last successful verification: 10/10. Latest primary check succeeded: 5/5.
Last success: 2026-11-10T22:15:57.556Z. 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: 5/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:00 UTC.
5 of 45 unique destinations checked: 5 working, 0 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:15:57 UTC · Source snapshot: ea375e560c53
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 45 unique links, not the entire website.
AI Resource Readiness
Confidence: medium· 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
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
agentsandboxes.fyi
A neutral index of cloud sandboxes for AI agents, with source-linked specs, a free REST API and an MCP endpoint.
AI Resource Readiness
Confidence: high· V2
cloudgpu.app
Rent RTX 4090/5090 GPUs or use an OpenAI-compatible model API for AI development, including training, inference, and ComfyUI workflows.
AI Resource Readiness
Confidence: medium· V2 · provisional
getmirror.online
Free passive checks of public domain configuration: email authentication, HTTPS, security headers and DNS. JSON API and printable reports. Not a security certification.
AI Resource Readiness
Confidence: medium· V2
Destination responded successfully
Destination responded successfully
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.