aapi.ai
AAPI
OpenAI-compatible multi-model Chat Completions gateway. Base URL https://aapi.ai/v1. Official prices only on https://aapi.ai/pricing.
aapi.ai
OpenAI-compatible multi-model Chat Completions gateway. Base URL https://aapi.ai/v1. Official prices only on https://aapi.ai/pricing.
Submitted URLs are declarations until checked. Verification inspects published content and does not execute third-party tools.
2 duplicate documentation links
4 duplicate documentation 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: medium· V2
How this score is calculated
round(99.64 ÷ 100 × 100) = 100/100
99.64 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: AAPI; Docs; Pricing; Clients; Optional. Derived from headings; source checked 2026-11-08.
llms-full.txt: Documentation sections: AAPI; Canonical URLs; Environment; curl; OpenAI Python; Other clients. Derived from headings; source checked 2026-11-08.
Listing updated: . Machine-readable profile (JSON)
{
"schemaVersion": "1.0",
"name": "AAPI",
"slug": "aapi",
"website": "https://aapi.ai",
"category": "ai-tools",
"description": "OpenAI-compatible multi-model Chat Completions gateway. Base URL https://aapi.ai/v1. Official prices only on https://aapi.ai/pricing.",
"capabilities": [
"llmsTxt documentation",
"llmsFullTxt documentation"
],
"aiResources": {
"llmsTxt": {
"type": "llmsTxt",
"url": "https://aapi.ai/llms.txt",
"status": "verified",
"available": true,
"httpStatus": 200,
"checkedAt": "2026-11-08T12:37:03.074Z",
"lastSuccessfulAt": "2026-11-08T12:37:03.074Z",
"contentType": "text/plain; charset=utf-8",
"contentSize": 6452,
"estimatedTokens": 1609,
"tokenMethod": "UTF-16 characters / 4 (approximation)",
"contentHash": "79279c67751340f1313d433ef5098520b221ce13a783aecadde9e3e52f329637",
"internalLinks": 29,
"externalLinks": 19,
"document": {
"h1Count": 1,
"firstBlockIsH1": true,
"title": "AAPI",
"usefulTitle": true,
"headingCount": 5,
"uniqueHeadingCount": 5,
"hasSections": true,
"orderedHeadings": true,
"sectionWithContent": true,
"fileListLinks": 47,
"summaryPresent": true,
"contextPresent": true,
"validLinks": 50,
"invalidLinks": 0,
"duplicateLinks": 2,
"descriptiveLinks": 48,
"annotatedLinks": 45
},
"linkHealth": {
"eligibleCount": 48,
"selectedCount": 5,
"sampledCount": 5,
"working": 3,
"broken": 0,
"unknown": 2,
"checkedAt": "2026-11-08T12:37:05.288Z",
"sourceHash": "79279c67751340f1313d433ef5098520b221ce13a783aecadde9e3e52f329637",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://aapi.ai/topics/use-aapi-in-cursor.md",
"httpStatus": 200,
"checkedAt": "2026-11-08T12:37:05.288Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://github.com/cozcc/aapi/blob/main/docs/clients/README.zh-CN.md",
"status": "unknown",
"httpStatus": null,
"reason": "oversized",
"attempted": true,
"checkedAt": "2026-11-08T12:37:05.288Z"
},
{
"url": "https://github.com/cozcc/aapi/blob/main/docs/clients/openai-python.md",
"status": "unknown",
"httpStatus": null,
"reason": "oversized",
"attempted": true,
"checkedAt": "2026-11-08T12:37:05.288Z"
},
{
"url": "https://aapi.ai/topics/pricing-and-models.md",
"httpStatus": 200,
"checkedAt": "2026-11-08T12:37:05.288Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aapi.ai/topics/primary-facts.zh-CN.md",
"httpStatus": 200,
"checkedAt": "2026-11-08T12:37:05.288Z",
"attempted": true,
"status": "working",
"reason": "http_success"
}
]
},
"headings": [
"AAPI",
"Docs",
"Pricing",
"Clients",
"Optional"
],
"warnings": [
"2 duplicate documentation links"
],
"summary": "Documentation sections: AAPI; Docs; Pricing; Clients; Optional.",
"summarySourceHash": "79279c67751340f1313d433ef5098520b221ce13a783aecadde9e3e52f329637",
"processingVersion": "2.0",
"method": "markdown-ast-analysis"
},
"llmsFullTxt": {
"type": "llmsFullTxt",
"url": "https://aapi.ai/llms-full.txt",
"status": "verified",
"available": true,
"httpStatus": 200,
"checkedAt": "2026-11-08T12:37:04.183Z",
"lastSuccessfulAt": "2026-11-08T12:37:04.183Z",
"contentType": "text/plain; charset=utf-8",
"contentSize": 6740,
"estimatedTokens": 1680,
"tokenMethod": "UTF-16 characters / 4 (approximation)",
"contentHash": "c8a87d2d98fe96771f6010a9372d93b138966847b2dfe232ace102bf5d555c42",
"internalLinks": 29,
"externalLinks": 19,
"document": {
"h1Count": 1,
"firstBlockIsH1": true,
"title": "AAPI",
"usefulTitle": true,
"headingCount": 7,
"uniqueHeadingCount": 7,
"hasSections": true,
"orderedHeadings": true,
"sectionWithContent": true,
"fileListLinks": 36,
"summaryPresent": true,
"contextPresent": true,
"validLinks": 52,
"invalidLinks": 0,
"duplicateLinks": 4,
"descriptiveLinks": 48,
"annotatedLinks": 16
},
"headings": [
"AAPI",
"Canonical URLs",
"Environment",
"curl",
"OpenAI Python",
"Other clients",
"Docs map"
],
"warnings": [
"4 duplicate documentation links"
],
"summary": "Documentation sections: AAPI; Canonical URLs; Environment; curl; OpenAI Python; Other clients.",
"summarySourceHash": "c8a87d2d98fe96771f6010a9372d93b138966847b2dfe232ace102bf5d555c42",
"processingVersion": "2.0",
"method": "markdown-ast-analysis"
},
"webmcp": null
},
"readiness": {
"score": 100,
"version": "2.0",
"confidence": "medium",
"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": "47 valid link occurrence(s) inside Markdown lists.",
"points": 5
},
{
"id": "heading_uniqueness",
"label": "Non-repeated headings",
"weight": 5,
"observation": "5 unique heading(s) out of 5; 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": 24.64,
"rules": [
{
"id": "link_syntax",
"label": "Resolvable HTTP(S) link syntax",
"weight": 5,
"observation": "50 valid URL occurrence(s), 0 malformed, unsupported or unresolved.",
"points": 5
},
{
"id": "link_uniqueness",
"label": "Unique documentation destinations",
"weight": 5,
"observation": "48 unique destination(s) from 50 valid occurrence(s).",
"points": 4.8
},
{
"id": "link_labels",
"label": "Descriptive link labels",
"weight": 2.5,
"observation": "48 of 48 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": "45 of 48 unique links have notes beside a Markdown list link.",
"points": 2.34
},
{
"id": "link_health",
"label": "Sampled destination accessibility",
"weight": 10,
"observation": "5 of 48 destinations sampled: 3 working, 0 confirmed 404/410, 2 unknown. Only working and confirmed-broken results enter this fraction.",
"points": 10
}
],
"explanation": "Resolvable HTTP(S) link syntax: 5/5. Unique documentation destinations: 4.8/5. Descriptive link labels: 2.5/2.5. Context beside file links: 2.34/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-08T12:37:03.074Z. 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": 10,
"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": 5
}
],
"explanation": "Useful summary blockquote: 5/5. Useful introductory context: 5/5."
}
],
"earnedPoints": 99.64,
"assessedWeight": 100,
"availableWeight": 100,
"provisional": false,
"calculatedAt": "2026-11-08T12:37:09.226Z",
"lastVerifiedAt": "2026-11-08T12:37:03.074Z",
"evidence": {
"sourceUrl": "https://aapi.ai/llms.txt",
"contentHash": "79279c67751340f1313d433ef5098520b221ce13a783aecadde9e3e52f329637",
"processingVersion": "2.0",
"retrievedAt": "2026-11-08T12:37:03.074Z"
},
"linkSampling": {
"eligibleCount": 48,
"selectedCount": 5,
"sampledCount": 5,
"working": 3,
"broken": 0,
"unknown": 2,
"checkedAt": "2026-11-08T12:37:05.288Z",
"sourceHash": "79279c67751340f1313d433ef5098520b221ce13a783aecadde9e3e52f329637",
"method": "deterministic sample, at most 5 URLs, at most 2 concurrent hosts, 15s budget",
"results": [
{
"url": "https://aapi.ai/topics/use-aapi-in-cursor.md",
"httpStatus": 200,
"checkedAt": "2026-11-08T12:37:05.288Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://github.com/cozcc/aapi/blob/main/docs/clients/README.zh-CN.md",
"status": "unknown",
"httpStatus": null,
"reason": "oversized",
"attempted": true,
"checkedAt": "2026-11-08T12:37:05.288Z"
},
{
"url": "https://github.com/cozcc/aapi/blob/main/docs/clients/openai-python.md",
"status": "unknown",
"httpStatus": null,
"reason": "oversized",
"attempted": true,
"checkedAt": "2026-11-08T12:37:05.288Z"
},
{
"url": "https://aapi.ai/topics/pricing-and-models.md",
"httpStatus": 200,
"checkedAt": "2026-11-08T12:37:05.288Z",
"attempted": true,
"status": "working",
"reason": "http_success"
},
{
"url": "https://aapi.ai/topics/primary-facts.zh-CN.md",
"httpStatus": 200,
"checkedAt": "2026-11-08T12:37:05.288Z",
"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 48 unique links, not the entire website."
]
},
"updatedAt": "2026-11-08T12:37:09.227Z"
}Related listings based on category, resource types, and description keywords
objekto.io
objekto turns a description (a few words, a photo or a sketch) into a real object. Its AI designs the 3D model part by part, checks every part is print-ready and shows an exploded view and an assembly guide; an industrial 3D-printing workshop then makes it. Delivery: France only at launch. Freemium: 2,000 free credits at signup, no card; plans from €29/month.
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.
47 valid link occurrence(s) inside Markdown lists.
5 unique heading(s) out of 5; code examples are excluded.
Resolvable HTTP(S) link syntax: 5/5. Unique documentation destinations: 4.8/5. Descriptive link labels: 2.5/2.5. Context beside file links: 2.34/2.5. Sampled destination accessibility: 10/10.
50 valid URL occurrence(s), 0 malformed, unsupported or unresolved.
48 unique destination(s) from 50 valid occurrence(s).
48 of 48 unique links have non-placeholder labels. This is a text heuristic, not a semantic guarantee.
45 of 48 unique links have notes beside a Markdown list link.
5 of 48 destinations sampled: 3 working, 0 confirmed 404/410, 2 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-08T12:37:03.074Z. 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: 5/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.
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-08 12:37:09 UTC.
5 of 48 unique destinations checked: 3 working, 0 confirmed broken, 2 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-08 12:37:05 UTC · Source snapshot: 79279c677513
Destination responded successfully
Response exceeded the sample size limit
Response exceeded the sample size limit
Last verified: 2026-11-08.
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 48 unique links, not the entire website.
AI Resource Readiness
Confidence: medium· V2
magentlab.com
844 cited clinical calculators and medical code lookup tools for AI agents (842 published-formula calculators such as CKD-EPI 2021 eGFR, plus 2 code-lookup routes for ICD-10-CM, RxNorm and LOINC). Calculator results include the formula and its citation. $0.005 USDC per call on Base (eip155:8453) via x402 v2; no API keys or accounts. Discovery: api.magentlab.com/.well-known/x402, /openapi.json, /v1/catalog, /llms.txt. Not a medical device and not a treatment recommendation.
AI Resource Readiness
Confidence: medium· V2
singitai.app
Pay-per-call web search, page reading, prices and market data for AI agents, paid in USDC over x402.
AI Resource Readiness
Confidence: medium· V2
whisperinput.ai
Whisperinput.ai is a desktop dictation tool for coding and AI prompts built only for macOS. It cleans up dictated speech into readable text before inserting it. It is useful for long AI prompts, where speaking is faster than typing. Busy professionals use it to answer chat messages quickly. Freemium pricing with subscription plans.
AI Resource Readiness
Confidence: high· V2
aibeatvideo.com
AI rap music video generator: turn a performer photo plus your track or lyrics into a beat-synced MP4 with lip-sync and captions. Free rap lyrics, rhyme and rap name generators, no sign-up.
AI Resource Readiness
Confidence: medium· V2
aikissgenerator.net
Consent-first photo animation tool that turns a couple photo or two portraits into a short private kiss video. Adult-consent confirmation on every generation, input and output moderation, no public gallery.
AI Resource Readiness
Confidence: high· 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.