# Data Galactica
> Data Galactica gives organisations and people a permanent Galactica ID and a sourced record, built from company registers, GLEIF LEI, SEC filings and Wikidata. Browse records and their sources free on the site; API and MCP server access (with free starting credit) let KYB, due-diligence teams and AI assistants resolve names to IDs.
- **URL:** https://datagalactica.com
- **Category:** developer-tools
- **Directory profile:** https://www.aiagentpages.com/listings/datagalactica-com
- **Machine spec:** https://www.aiagentpages.com/api/listings/datagalactica-com/spec
- **Directory llms.txt:** https://www.aiagentpages.com/listings/datagalactica-com/llms.txt
- **Readiness score:** 90
- **Listing status:** Unclaimed
- **Origin llms.txt:** https://datagalactica.com/llms.txt
- **Origin MCP card:** https://datagalactica.com/.well-known/mcp/server-card.json
- **Origin ARD:** https://datagalactica.com/.well-known/ard.json
## Best for
- Resolving a company or person name to a permanent ID
- KYB and due diligence lookups with sourced records
- LEI
- SEC and register cross-references
## Differentiators
A permanent ID and sourced record for organisations and people
## Query this directory
- MCP: https://www.aiagentpages.com/mcp
- REST: https://www.aiagentpages.com/api/v1/listings
- Developers: https://www.aiagentpages.com/developers
- Platform index: https://www.aiagentpages.com/llms.txt
## Structured Data
```json
{
"spec_version": "1.0",
"slug": "datagalactica-com",
"url": "https://datagalactica.com",
"title": "Data Galactica",
"description": "Data Galactica gives organisations and people a permanent Galactica ID and a sourced record, built from company registers, GLEIF LEI, SEC filings and Wikidata. Browse records and their sources free on the site; API and MCP server access (with free starting credit) let KYB, due-diligence teams and AI assistants resolve names to IDs.",
"category": "developer-tools",
"tags": [
"kyb",
"due diligence",
"entity resolution",
"api",
"mcp"
],
"readiness_score": 90,
"readiness_breakdown": {
"level": 5,
"score": 90,
"probes": [
{
"id": "discoverability.robotsTxt",
"name": "robots.txt",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": true
},
{
"id": "discoverability.sitemap",
"name": "sitemap.xml",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": true
},
{
"id": "discoverability.linkHeaders",
"name": "Link headers (/)",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": true
},
{
"id": "discoverability.dnsAid",
"name": "DNS-AID + DNSSEC",
"pass": false,
"path": "",
"detail": "DNS for AI Discovery (DNS-AID) well-known entrypoint records not found",
"status": null,
"counts_toward_profile": true
},
{
"id": "contentAccessibility.markdownNegotiation",
"name": "Markdown negotiation (/)",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": true
},
{
"id": "botAccessControl.robotsTxtAiRules",
"name": "AI bot rules (robots.txt)",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": true
},
{
"id": "botAccessControl.contentSignals",
"name": "Content-Signal (robots.txt)",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": true
},
{
"id": "botAccessControl.webBotAuth",
"name": "Web Bot Auth",
"pass": false,
"path": "(optional)",
"detail": "optional",
"status": null,
"counts_toward_profile": false
},
{
"id": "discovery.apiCatalog",
"name": "API catalog",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": true
},
{
"id": "discovery.oauthDiscovery",
"name": "OAuth authorization server",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": false
},
{
"id": "discovery.oauthProtectedResource",
"name": "OAuth protected resource",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": false
},
{
"id": "discovery.authMd",
"name": "auth.md",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": true
},
{
"id": "discovery.mcpServerCard",
"name": "MCP server card",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": false
},
{
"id": "discovery.a2aAgentCard",
"name": "A2A agent card",
"pass": false,
"path": "",
"detail": "informational",
"status": null,
"counts_toward_profile": false
},
{
"id": "discovery.agentSkills",
"name": "Agent skills index",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": false
},
{
"id": "discovery.webMcp",
"name": "WebMCP bootstrap",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": false
},
{
"id": "discovery.ard",
"name": "ARD / ai-catalog.json",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": true
},
{
"id": "discovery.personalAgentProtocol",
"name": "discovery.personalAgentProtocol",
"pass": false,
"path": "",
"detail": "informational",
"status": null,
"counts_toward_profile": false
},
{
"id": "commerce.x402",
"name": "x402 payments",
"pass": false,
"path": "(optional)",
"detail": "optional",
"status": null,
"counts_toward_profile": false
},
{
"id": "commerce.mpp",
"name": "MPP commerce",
"pass": false,
"path": "(optional)",
"detail": "optional",
"status": null,
"counts_toward_profile": false
},
{
"id": "commerce.ucp",
"name": "UCP profile",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": false
},
{
"id": "commerce.acp",
"name": "ACP discovery",
"pass": true,
"path": "",
"status": null,
"counts_toward_profile": false
},
{
"id": "commerce.ap2",
"name": "AP2 (A2A commerce)",
"pass": false,
"path": "(optional)",
"detail": "optional",
"status": null,
"counts_toward_profile": false
}
],
"scanner": "isitagentready",
"base_url": "https://datagalactica.com",
"score_raw": 84,
"site_type": "product",
"iar_checks": {
"commerce": {
"acp": {
"status": "pass",
"details": {
"services": [
"checkout"
],
"apiBaseUrl": "https://datagalactica.com/api/v1/acp",
"transports": [
"rest"
],
"protocolVersion": "2026-04-17",
"supportedVersions": [
"2026-04-17"
]
},
"message": "ACP discovery document exists",
"evidence": [
{
"label": "GET /.well-known/acp.json",
"action": "fetch",
"request": {
"url": "https://datagalactica.com/.well-known/acp.json",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a549671999132a30-IAD",
"content-type": "application/json; charset=utf-8",
"cf-cache-status": "MISS"
},
"statusText": "OK",
"bodyPreview": "{\n \"protocol\": {\n \"name\": \"acp\",\n \"version\": \"2026-04-17\",\n \"supported_versions\": [\n \"2026-04-17\"\n ],\n \"documentation_url\": \"https://datagalactica.com/commerce.md\"\n },\n \"api_base_url\": \"https://datagalactica.com/api/v1/acp\",\n \"transports\": [\n \"rest\"\n ],\n \"capabilities\": {\n \"services\": [\n \"checkout\"\n ],\n \"supported_currencies\": [\n \"inr\"\n ],\n \"supported_locales\": [\n \"en-IN\"\n ]\n }\n}"
}
},
{
"label": "Validate ACP discovery structure",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "Found ACP protocol version \"2026-04-17\" with 1 transport(s) and 1 service(s)"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "ACP discovery document exists"
}
}
],
"durationMs": 687,
"messageRef": {
"code": "check.acp.found"
}
},
"ap2": {
"status": "neutral",
"message": "AP2 not detected (no A2A Agent Card) (not a commerce site)",
"evidence": [
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "negative",
"summary": "No A2A Agent Card found -- AP2 requires an A2A Agent Card"
}
}
],
"messageRef": {
"code": "scanner.commerceCheckNotApplicable",
"params": {
"check": "ap2",
"original": {
"code": "check.ap2.agentCardMissing"
}
}
}
},
"mpp": {
"status": "neutral",
"message": "MPP payment discovery not detected (not a commerce site)",
"evidence": [
{
"label": "GET /openapi.json",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "/openapi.json returned 404"
},
"request": {
"url": "https://datagalactica.com/openapi.json",
"method": "GET"
},
"response": {
"status": 404,
"headers": {
"cf-ray": "a549671989062a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "BYPASS"
},
"statusText": "Not Found"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "negative",
"summary": "MPP payment discovery not detected"
}
}
],
"durationMs": 674,
"messageRef": {
"code": "scanner.commerceCheckNotApplicable",
"params": {
"check": "mpp",
"original": {
"code": "check.mpp.notDetected"
}
}
}
},
"ucp": {
"status": "pass",
"details": {
"hasVersion": true,
"hasServices": true,
"hasCapabilities": true
},
"message": "UCP profile exists",
"evidence": [
{
"label": "GET /.well-known/ucp",
"action": "fetch",
"request": {
"url": "https://datagalactica.com/.well-known/ucp",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a549671928be2a30-IAD",
"content-type": "application/json; charset=utf-8",
"cf-cache-status": "MISS"
},
"statusText": "OK",
"bodyPreview": "{\n \"protocol_version\": \"2026-08-25\",\n \"ucp\": {\n \"version\": \"2026-08-25\",\n \"services\": {\n \"dev.ucp.shopping\": [\n {\n \"version\": \"2026-08-25\",\n \"spec\": \"https://ucp.dev/2026-08-25/specification/overview/\",\n \"transport\": \"rest\",\n \"endpoint\": \"https://datagalactica.com/api/v1/ucp\",\n \"schema\": \"https://ucp.dev/2026-08-25/services/shopping/rest.openapi.json\"\n }\n ]\n },\n \"capabilities\": {\n \"dev.ucp.shopping.checkout\":..."
}
},
{
"label": "Validate UCP profile structure",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "Has ucp.version \"2026-08-25\", services, capabilities"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "UCP profile exists"
}
}
],
"durationMs": 627,
"messageRef": {
"code": "check.ucp.found"
}
},
"x402": {
"status": "neutral",
"message": "x402 payment protocol not detected (not a commerce site)",
"evidence": [
{
"label": "GET /",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "/ returned 200 (not 402)"
},
"request": {
"url": "https://datagalactica.com/",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"age": "11685",
"link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\"; type=\"text/html\", ; rel=\"describedby\"; type=\"text/markdown\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"service-desc\"; type=\"application/json\"",
"cf-ray": "a549671958da2a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "HIT"
},
"statusText": "OK"
}
},
{
"label": "GET /api",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "/api returned 200 (not 402)"
},
"request": {
"url": "https://datagalactica.com/api",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a549671958e62a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "DYNAMIC"
},
"statusText": "OK"
}
},
{
"label": "GET /api/v1",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "/api/v1 returned 404 (not 402)"
},
"request": {
"url": "https://datagalactica.com/api/v1",
"method": "GET"
},
"response": {
"status": 404,
"headers": {
"cf-ray": "a549671958e72a30-IAD",
"content-type": "application/json",
"cf-cache-status": "DYNAMIC"
},
"statusText": "Not Found"
}
},
{
"label": "GET /platform/v2/x402/discovery/resources",
"action": "fetch",
"request": {
"url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources?limit=500",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a549671938c32a30-IAD",
"content-type": "application/json",
"cf-cache-status": "DYNAMIC"
},
"statusText": "OK"
}
},
{
"label": "GET Bazaar discovery API",
"action": "fetch",
"finding": {
"outcome": "negative",
"summary": "Network error querying Bazaar API"
},
"request": {
"url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources?limit=500",
"method": "GET"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "negative",
"summary": "x402 payment protocol not detected"
}
}
],
"durationMs": 647,
"messageRef": {
"code": "scanner.commerceCheckNotApplicable",
"params": {
"check": "x402",
"original": {
"code": "check.x402.notDetected"
}
}
}
}
},
"discovery": {
"ard": {
"status": "pass",
"details": {
"entryCount": 3,
"entryTypes": {
"text/markdown": 1,
"application/mcp-server-card+json": 1,
"application/vnd.oai.openapi+json": 1
},
"contentType": "application/json; charset=utf-8",
"entryIssues": [],
"specVersion": "1.0",
"hasCollections": false,
"hostIdentifier": "did:web:datagalactica.com",
"manifestSource": "well-known",
"entryIssueCount": 0,
"hostDisplayName": "Data Galactica",
"searchEndpoints": [],
"validEntryCount": 3,
"correctMediaType": false,
"entriesInspected": 3,
"withTrustManifest": 0,
"nestedCatalogCount": 0,
"urnConformantCount": 3,
"discoveryMechanisms": [
"well-known"
],
"registryEndpointCount": 0,
"withRepresentativeQueries": 3
},
"message": "ARD capability manifest found with 3 agentic resources",
"evidence": [
{
"label": "Extract Agentmap directives from robots.txt",
"action": "parse",
"finding": {
"outcome": "neutral",
"summary": "No Agentmap directives found"
}
},
{
"label": "Extract from page head",
"action": "parse",
"finding": {
"outcome": "neutral",
"summary": "No catalog links found"
}
},
{
"label": "GET /.well-known/ai-catalog.json",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received 200 with valid JSON response"
},
"request": {
"url": "https://datagalactica.com/.well-known/ai-catalog.json",
"method": "GET",
"headers": {
"Accept": "application/json"
}
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a5496716ae402a30-IAD",
"content-type": "application/json; charset=utf-8",
"cf-cache-status": "MISS"
},
"statusText": "OK",
"bodyPreview": "{\"specVersion\":\"1.0\",\"host\":{\"displayName\":\"Data Galactica\",\"identifier\":\"did:web:datagalactica.com\",\"documentationUrl\":\"https://datagalactica.com/api/docs\"},\"entries\":[{\"identifier\":\"urn:air:datagalactica.com:server:datagalactica\",\"displayName\":\"Data Galactica MCP server\",\"description\":\"B2B leads and prospecting data for sales, hiring and research: 28M+ organisations and 98M+ people (strongest on India and the UK), searchable by job title, employer, industry, size and place, with e-mails and ph..."
}
},
{
"label": "Validate manifest entries",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "3 of 3 inspected entries valid; 3 use a conformant urn:air identifier"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "ARD capability manifest found with 3 agentic resources"
}
},
{
"label": "DoH TXT _catalog._agents.datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "No TXT answers (NXDOMAIN)"
},
"request": {
"url": "https://cloudflare-dns.com/dns-query?name=_catalog._agents.datagalactica.com&type=TXT&do=1",
"method": "GET",
"headers": {
"Accept": "application/dns-json"
}
},
"response": {
"status": 200,
"headers": {
"content-type": "application/dns-json"
},
"statusText": "OK",
"bodyPreview": "{\"Status\":3,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_catalog._agents.datagalactica.com\",\"type\":16}],\"Authority\":[{\"name\":\"datagalactica.com\",\"type\":6,\"TTL\":1800,\"data\":\"itzel.ns.cloudflare.com. dns.cloudflare.com. 2417632164 10000 2400 604800 1800\"}]}"
}
},
{
"label": "DoH SRV _search._agents.datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "No SRV answers (NXDOMAIN)"
},
"request": {
"url": "https://cloudflare-dns.com/dns-query?name=_search._agents.datagalactica.com&type=SRV&do=1",
"method": "GET",
"headers": {
"Accept": "application/dns-json"
}
},
"response": {
"status": 200,
"headers": {
"content-type": "application/dns-json"
},
"statusText": "OK",
"bodyPreview": "{\"Status\":3,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_search._agents.datagalactica.com\",\"type\":33}],\"Authority\":[{\"name\":\"datagalactica.com\",\"type\":6,\"TTL\":1800,\"data\":\"itzel.ns.cloudflare.com. dns.cloudflare.com. 2417632164 10000 2400 604800 1800\"}]}"
}
}
],
"durationMs": 217,
"messageRef": {
"code": "check.ard.found",
"params": {
"resourceCount": 3
}
}
},
"authMd": {
"status": "pass",
"details": {
"skill": "https://datagalactica.com/auth.md",
"issuer": "https://datagalactica.com",
"claimUri": "https://datagalactica.com/agent/identity/claim",
"resource": "https://datagalactica.com/",
"warnings": [],
"authMdUrl": "https://datagalactica.com/auth.md",
"markerCount": 4,
"metadataUrl": "https://datagalactica.com/.well-known/oauth-authorization-server",
"registerUri": "https://datagalactica.com/agent/identity",
"sourceField": "agent_auth",
"supportsIdJag": false,
"eventsSupported": [],
"scopesSupported": [
"api",
"profile:read",
"profile:write",
"notes:write"
],
"supportsAnonymous": false,
"authorizationServers": [
"https://datagalactica.com"
],
"supportsVerifiedEmail": true,
"bearerMethodsSupported": [
"header"
],
"identityTypesSupported": [
"identity_assertion"
],
"assertionTypesSupported": [
"verified_email"
],
"credentialTypesSupported": [
"api_key"
],
"protectedResourceMetadataUrl": "https://datagalactica.com/.well-known/oauth-protected-resource"
},
"message": "Auth.md support detected (verified email)",
"evidence": [
{
"label": "GET /auth.md",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received 200 response with content-type: text/markdown; charset=utf-8"
},
"request": {
"url": "https://datagalactica.com/auth.md",
"method": "GET",
"headers": {
"Accept": "text/markdown, text/plain, */*"
}
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a5496716ce7e2a30-IAD",
"content-type": "text/markdown; charset=utf-8",
"cf-cache-status": "EXPIRED"
},
"statusText": "OK",
"bodyPreview": "# Data Galactica auth.md\n\nYou are an AI agent. Data Galactica (https://datagalactica.com) gives a permanent Galactica ID to people (DGP-) and organisations (DGC-)\nand keeps a graded record for each: company registers (India MCA, UK Companies House, GLEIF LEI, US SEC),\nWikidata, career profiles and business lists. Use it through the REST API (`https://api.datagalactica.com/api/v1`, OpenAPI:\n`https://datagalactica.com/api/openapi.json`) or the MCP server (`https://api.datagalactica.com/mcp`, Strea..."
}
},
{
"label": "Detect Auth.md registration markers",
"action": "parse",
"finding": {
"outcome": "positive",
"summary": "Found 4 Auth.md marker(s)"
}
},
{
"label": "Detect self-contained Auth.md registration flow",
"action": "parse",
"finding": {
"outcome": "positive",
"summary": "Found 7 registration endpoint(s) and 3 credential marker(s)"
}
},
{
"label": "GET /.well-known/oauth-protected-resource",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received JSON response (200)"
},
"request": {
"url": "https://datagalactica.com/.well-known/oauth-protected-resource",
"method": "GET",
"headers": {
"Accept": "application/json"
}
},
"response": {
"status": 200,
"headers": {
"age": "219",
"cf-ray": "a549671a99f22a30-IAD",
"content-type": "application/json",
"cf-cache-status": "HIT"
},
"statusText": "OK",
"bodyPreview": "{\"resource\":\"https://datagalactica.com/\",\"authorization_servers\":[\"https://datagalactica.com\"],\"scopes_supported\":[\"api\",\"profile:read\",\"profile:write\",\"notes:write\"],\"bearer_methods_supported\":[\"header\"],\"resource_name\":\"Data Galactica\",\"resource_documentation\":\"https://datagalactica.com/api#oauth\"}"
}
},
{
"label": "Validate Protected Resource Metadata",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "Valid metadata with resource https://datagalactica.com/ and 1 authorization server(s)"
}
},
{
"label": "GET /.well-known/oauth-protected-resource%60",
"action": "fetch",
"finding": {
"outcome": "negative",
"summary": "OAuth Protected Resource Metadata returned 404"
},
"request": {
"url": "https://datagalactica.com/.well-known/oauth-protected-resource`",
"method": "GET",
"headers": {
"Accept": "application/json"
}
},
"response": {
"status": 404,
"headers": {
"cf-ray": "a549671aaa012a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "BYPASS"
},
"statusText": "Not Found"
}
},
{
"label": "GET /.well-known/oauth-authorization-server",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received JSON response (200)"
},
"request": {
"url": "https://datagalactica.com/.well-known/oauth-authorization-server",
"method": "GET",
"headers": {
"Accept": "application/json"
}
},
"response": {
"status": 200,
"headers": {
"age": "2035",
"cf-ray": "a549671c0b5d2a30-IAD",
"content-type": "application/json",
"cf-cache-status": "HIT"
},
"statusText": "OK",
"bodyPreview": "{\"issuer\":\"https://datagalactica.com\",\"authorization_endpoint\":\"https://datagalactica.com/oauth/authorize\",\"token_endpoint\":\"https://datagalactica.com/oauth/token\",\"registration_endpoint\":\"https://datagalactica.com/oauth/register\",\"scopes_supported\":[\"api\",\"profile:read\",\"profile:write\",\"notes:write\"],\"response_types_supported\":[\"code\"],\"grant_types_supported\":[\"authorization_code\",\"refresh_token\"],\"code_challenge_methods_supported\":[\"S256\"],\"token_endpoint_auth_methods_supported\":[\"none\"],\"serv..."
}
},
{
"label": "Validate agent_auth metadata",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "Found agent_auth with register_uri and supported methods"
}
},
{
"label": "GET /.well-known/oauth-authorization-server%60",
"action": "fetch",
"finding": {
"outcome": "negative",
"summary": "OAuth Authorization Server metadata returned 404"
},
"request": {
"url": "https://datagalactica.com/.well-known/oauth-authorization-server`",
"method": "GET",
"headers": {
"Accept": "application/json"
}
},
"response": {
"status": 404,
"headers": {
"cf-ray": "a549671c0b5b2a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "BYPASS"
},
"statusText": "Not Found"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "Auth.md support detected (verified email)"
}
}
],
"durationMs": 1064,
"messageRef": {
"code": "check.authMd.detected",
"params": {
"methods": [
"verified-email"
]
}
}
},
"webMcp": {
"status": "pass",
"details": {
"tools": [
{
"name": "search_galactica",
"hasSchema": true,
"description": "Search Data Galactica people and organisations by name or words. Each hit has a Galactica ID (DGP- person, DGC- organisation) and a grade for its contact details; when names collide, match on place, identifiers and sources, not the grade."
},
{
"name": "get_entity",
"hasSchema": true,
"description": "Get a person or organisation card by Galactica ID, CIN, LEI, GB-, CIK- or Wikidata Q-id."
},
{
"name": "current_page_entity",
"hasSchema": true,
"description": "The Galactica ID and JSON of the card on this page, if any."
}
],
"toolCount": 3,
"detectionMethod": "imperative_api"
},
"message": "Found 3 WebMCP tools via document.modelContext: search_galactica, get_entity, current_page_entity",
"evidence": [
{
"label": "WebMCP detection",
"action": "parse",
"finding": {
"outcome": "neutral",
"summary": "Checking page for WebMCP tool registrations"
}
},
{
"label": "Navigate to https://datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "Loading page to detect WebMCP tool registrations"
},
"request": {
"url": "https://datagalactica.com",
"method": "GET"
}
},
{
"label": "Check imperative WebMCP API",
"action": "parse",
"finding": {
"outcome": "positive",
"summary": "Found 3 tool(s) via document.modelContext"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "Found 3 WebMCP tool(s) via document.modelContext"
}
}
],
"durationMs": 915,
"messageRef": {
"code": "check.webMcp.toolsDetected",
"params": {
"toolCount": 3,
"toolNames": [
"search_galactica",
"get_entity",
"current_page_entity"
],
"detectionMethod": "imperative_api"
}
}
},
"apiCatalog": {
"status": "pass",
"details": {
"apiCount": 4,
"hasItems": false,
"linksetEntries": 4,
"hasNestedCatalogs": false,
"correctContentType": true
},
"message": "API Catalog found with 4 APIs listed",
"evidence": [
{
"label": "GET /.well-known/api-catalog",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received 200 with valid JSON response"
},
"request": {
"url": "https://datagalactica.com/.well-known/api-catalog",
"method": "GET",
"headers": {
"Accept": "application/linkset+json, application/json"
}
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a54967183fcd2a30-IAD",
"content-type": "application/linkset+json; charset=utf-8",
"content-length": "1694",
"cf-cache-status": "HIT"
},
"statusText": "OK",
"bodyPreview": "{\"linkset\":[{\"anchor\":\"https://api.datagalactica.com/api/v1\",\"service-desc\":[{\"href\":\"https://datagalactica.com/api/openapi.json\",\"type\":\"application/vnd.oai.openapi+json\"}],\"service-doc\":[{\"href\":\"https://datagalactica.com/api/docs\",\"type\":\"text/html\"},{\"href\":\"https://datagalactica.com/auth.md\",\"type\":\"text/markdown\"}],\"status\":[{\"href\":\"https://datagalactica.com/healthz\",\"type\":\"text/plain\"}]},{\"anchor\":\"https://api.datagalactica.com/mcp\",\"service-desc\":[{\"href\":\"https://datagalactica.com/.we..."
}
},
{
"label": "Validate Linkset structure",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "Found \"linkset\" array with 4 entries"
}
},
{
"label": "Analyze linkset entries",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "4 APIs listed, correct content-type"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "API Catalog found with 4 APIs listed"
}
}
],
"durationMs": 468,
"messageRef": {
"code": "check.apiCatalog.found",
"params": {
"apiCount": 4
}
}
},
"agentSkills": {
"status": "pass",
"details": {
"path": "/.well-known/agent-skills/index.json",
"skillCount": 4,
"specVersion": "0.2.0",
"v2ValidEntries": true
},
"message": "Agent Skills index exists with valid JSON",
"evidence": [
{
"label": "GET /.well-known/agent-skills/index.json",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received 200 response with content-type: application/json; charset=utf-8"
},
"request": {
"url": "https://datagalactica.com/.well-known/agent-skills/index.json",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a54967181fb42a30-IAD",
"content-type": "application/json; charset=utf-8",
"cf-cache-status": "MISS"
},
"statusText": "OK"
}
},
{
"label": "Detect spec version",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "Found $schema field — v0.2.0 format detected"
}
},
{
"label": "Count skills",
"action": "validate",
"finding": {
"outcome": "neutral",
"summary": "Found \"skills\" array with 4 entries (4 with valid v0.2.0 fields)"
}
},
{
"label": "Validate skill count",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "Index contains 4 skills"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "Agent Skills index exists with valid JSON"
}
}
],
"durationMs": 462,
"messageRef": {
"code": "check.agentSkills.valid"
}
},
"a2aAgentCard": {
"status": "fail",
"message": "A2A Agent Card not found",
"evidence": [
{
"label": "GET /.well-known/agent-card.json",
"action": "fetch",
"finding": {
"outcome": "negative",
"summary": "Server returned 404 -- A2A Agent Card not found"
},
"request": {
"url": "https://datagalactica.com/.well-known/agent-card.json",
"method": "GET"
},
"response": {
"status": 404,
"headers": {
"cf-ray": "a5496717ff982a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "BYPASS"
},
"statusText": "Not Found"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "negative",
"summary": "A2A Agent Card not found"
}
}
],
"durationMs": 436,
"messageRef": {
"code": "check.a2aAgentCard.notFound"
}
},
"mcpServerCard": {
"status": "pass",
"details": {
"name": "datagalactica",
"path": "/.well-known/mcp/server-card.json",
"format": "sep",
"hasTools": true,
"hasVersion": true,
"hasTransport": true,
"hasDescription": true,
"hasCapabilities": true
},
"message": "MCP Server Card found at /.well-known/mcp/server-card.json",
"evidence": [
{
"label": "GET /.well-known/mcp/server-card.json",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Found valid MCP Server Card (sep format) at /.well-known/mcp/server-card.json"
},
"request": {
"url": "https://datagalactica.com/.well-known/mcp/server-card.json",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a5496717df5a2a30-IAD",
"content-type": "application/json; charset=utf-8",
"cf-cache-status": "EXPIRED"
},
"statusText": "OK"
}
},
{
"label": "GET /.well-known/mcp/server-cards.json",
"action": "fetch",
"finding": {
"outcome": "negative",
"summary": "/.well-known/mcp/server-cards.json returned 404"
},
"request": {
"url": "https://datagalactica.com/.well-known/mcp/server-cards.json",
"method": "GET"
},
"response": {
"status": 404,
"headers": {
"cf-ray": "a5496717ef7f2a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "BYPASS"
},
"statusText": "Not Found"
}
},
{
"label": "GET /.well-known/mcp.json",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Found valid MCP Server Card (sep format) at /.well-known/mcp.json"
},
"request": {
"url": "https://datagalactica.com/.well-known/mcp.json",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a5496717ff892a30-IAD",
"content-type": "application/json; charset=utf-8",
"cf-cache-status": "MISS"
},
"statusText": "OK"
}
},
{
"label": "Validate Server Card",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "SEP-format card found at /.well-known/mcp/server-card.json"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "MCP Server Card found at /.well-known/mcp/server-card.json"
}
}
],
"durationMs": 431,
"messageRef": {
"code": "check.mcpServerCard.found",
"params": {
"path": "/.well-known/mcp/server-card.json"
}
}
},
"oauthDiscovery": {
"status": "pass",
"details": {
"issuer": "https://datagalactica.com",
"source": "oauth-authorization-server",
"grantTypes": [
"authorization_code",
"refresh_token"
],
"hasJwksUri": false,
"hasTokenEndpoint": true,
"hasAuthorizationEndpoint": true
},
"message": "OAuth 2.0 (RFC 8414) discovery metadata found",
"evidence": [
{
"label": "GET /.well-known/oauth-authorization-server",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received JSON from oauth-authorization-server"
},
"request": {
"url": "https://datagalactica.com/.well-known/oauth-authorization-server",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"age": "2034",
"cf-ray": "a5496716ae492a30-IAD",
"content-type": "application/json",
"cf-cache-status": "HIT"
},
"statusText": "OK"
}
},
{
"label": "Validate oauth-authorization-server structure",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "Valid metadata with issuer: https://datagalactica.com"
}
},
{
"label": "GET /.well-known/openid-configuration",
"action": "fetch",
"finding": {
"outcome": "negative",
"summary": "openid-configuration returned 404"
},
"request": {
"url": "https://datagalactica.com/.well-known/openid-configuration",
"method": "GET"
},
"response": {
"status": 404,
"headers": {
"cf-ray": "a5496716ae482a30-IAD",
"content-type": "application/json",
"cf-cache-status": "BYPASS"
},
"statusText": "Not Found"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "OAuth 2.0 (RFC 8414) discovery metadata found"
}
}
],
"durationMs": 209,
"messageRef": {
"code": "check.oauthDiscovery.found",
"params": {
"source": "oauth-authorization-server"
}
}
},
"personalAgentProtocol": {
"status": "fail",
"details": {
"issuerValidation": "notChecked",
"manifestDetected": false
},
"message": "Personal Agent Protocol manifest not found",
"evidence": [
{
"label": "GET /.well-known/poppy.json",
"action": "fetch",
"request": {
"url": "https://datagalactica.com/.well-known/poppy.json",
"method": "GET",
"headers": {
"Accept": "application/json"
}
},
"response": {
"status": 404,
"headers": {
"cf-ray": "a54967167e182a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "BYPASS"
},
"statusText": "Not Found"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "negative",
"summary": "Personal Agent Protocol manifest not found"
}
}
],
"durationMs": 204,
"messageRef": {
"code": "check.personalAgentProtocol.notFound"
}
},
"oauthProtectedResource": {
"status": "pass",
"details": {
"resource": "https://datagalactica.com/",
"resourceName": "Data Galactica",
"discoveryMethod": "well-known",
"scopesSupported": [
"api",
"profile:read",
"profile:write",
"notes:write"
],
"authorizationServers": [
"https://datagalactica.com"
],
"resourceDocumentation": "https://datagalactica.com/api#oauth",
"bearerMethodsSupported": [
"header"
]
},
"message": "OAuth Protected Resource Metadata found (well-known)",
"evidence": [
{
"label": "GET /.well-known/oauth-protected-resource",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received JSON response (200)"
},
"request": {
"url": "https://datagalactica.com/.well-known/oauth-protected-resource",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"age": "218",
"cf-ray": "a5496716be5a2a30-IAD",
"content-type": "application/json",
"cf-cache-status": "HIT"
},
"statusText": "OK"
}
},
{
"label": "Validate resource metadata",
"action": "validate",
"finding": {
"outcome": "positive",
"summary": "Valid metadata with resource: https://datagalactica.com/"
}
},
{
"label": "GET /",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "Target resource returned 200 (no WWW-Authenticate header)"
},
"request": {
"url": "https://datagalactica.com",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"age": "11685",
"link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\"; type=\"text/html\", ; rel=\"describedby\"; type=\"text/markdown\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"service-desc\"; type=\"application/json\"",
"cf-ray": "a5496716ce6e2a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "HIT"
},
"statusText": "OK"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "OAuth Protected Resource Metadata found (well-known)"
}
}
],
"durationMs": 24,
"messageRef": {
"code": "check.oauthProtectedResource.found",
"params": {
"discoveryMethod": "well-known"
}
}
}
},
"discoverability": {
"dnsAid": {
"status": "fail",
"details": {
"records": [],
"domainsChecked": [
"datagalactica.com"
],
"dnssecValidated": false,
"txtIndexEntries": [],
"aliasRecordCount": 0,
"queriesAttempted": [
"SVCB _index._agents.datagalactica.com",
"HTTPS _index._agents.datagalactica.com",
"SVCB _a2a._agents.datagalactica.com",
"HTTPS _a2a._agents.datagalactica.com",
"SVCB _mcp._agents.datagalactica.com",
"HTTPS _mcp._agents.datagalactica.com",
"TXT _index._agents.datagalactica.com"
],
"serviceRecordCount": 0,
"txtIndexEntryCount": 0
},
"message": "DNS for AI Discovery (DNS-AID) well-known entrypoint records not found",
"evidence": [
{
"label": "DoH SVCB _index._agents.datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "No SVCB answers (NXDOMAIN)"
},
"request": {
"url": "https://cloudflare-dns.com/dns-query?name=_index._agents.datagalactica.com&type=SVCB&do=1",
"method": "GET",
"headers": {
"Accept": "application/dns-json"
}
},
"response": {
"status": 200,
"headers": {
"content-type": "application/dns-json"
},
"statusText": "OK",
"bodyPreview": "{\"Status\":3,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_index._agents.datagalactica.com\",\"type\":64}],\"Authority\":[{\"name\":\"datagalactica.com\",\"type\":6,\"TTL\":1800,\"data\":\"itzel.ns.cloudflare.com. dns.cloudflare.com. 2417632164 10000 2400 604800 1800\"}]}"
}
},
{
"label": "DoH HTTPS _index._agents.datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "No HTTPS answers (NXDOMAIN)"
},
"request": {
"url": "https://cloudflare-dns.com/dns-query?name=_index._agents.datagalactica.com&type=HTTPS&do=1",
"method": "GET",
"headers": {
"Accept": "application/dns-json"
}
},
"response": {
"status": 200,
"headers": {
"content-type": "application/dns-json"
},
"statusText": "OK",
"bodyPreview": "{\"Status\":3,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_index._agents.datagalactica.com\",\"type\":65}],\"Authority\":[{\"name\":\"datagalactica.com\",\"type\":6,\"TTL\":1800,\"data\":\"itzel.ns.cloudflare.com. dns.cloudflare.com. 2417632164 10000 2400 604800 1800\"}]}"
}
},
{
"label": "DoH SVCB _a2a._agents.datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "No SVCB answers (NXDOMAIN)"
},
"request": {
"url": "https://cloudflare-dns.com/dns-query?name=_a2a._agents.datagalactica.com&type=SVCB&do=1",
"method": "GET",
"headers": {
"Accept": "application/dns-json"
}
},
"response": {
"status": 200,
"headers": {
"content-type": "application/dns-json"
},
"statusText": "OK",
"bodyPreview": "{\"Status\":3,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_a2a._agents.datagalactica.com\",\"type\":64}],\"Authority\":[{\"name\":\"datagalactica.com\",\"type\":6,\"TTL\":1800,\"data\":\"itzel.ns.cloudflare.com. dns.cloudflare.com. 2417632164 10000 2400 604800 1800\"}]}"
}
},
{
"label": "DoH HTTPS _a2a._agents.datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "No HTTPS answers (NXDOMAIN)"
},
"request": {
"url": "https://cloudflare-dns.com/dns-query?name=_a2a._agents.datagalactica.com&type=HTTPS&do=1",
"method": "GET",
"headers": {
"Accept": "application/dns-json"
}
},
"response": {
"status": 200,
"headers": {
"content-type": "application/dns-json"
},
"statusText": "OK",
"bodyPreview": "{\"Status\":3,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_a2a._agents.datagalactica.com\",\"type\":65}],\"Authority\":[{\"name\":\"datagalactica.com\",\"type\":6,\"TTL\":1800,\"data\":\"itzel.ns.cloudflare.com. dns.cloudflare.com. 2417632164 10000 2400 604800 1800\"}]}"
}
},
{
"label": "DoH SVCB _mcp._agents.datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "No SVCB answers (NXDOMAIN)"
},
"request": {
"url": "https://cloudflare-dns.com/dns-query?name=_mcp._agents.datagalactica.com&type=SVCB&do=1",
"method": "GET",
"headers": {
"Accept": "application/dns-json"
}
},
"response": {
"status": 200,
"headers": {
"content-type": "application/dns-json"
},
"statusText": "OK",
"bodyPreview": "{\"Status\":3,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_mcp._agents.datagalactica.com\",\"type\":64}],\"Authority\":[{\"name\":\"datagalactica.com\",\"type\":6,\"TTL\":1800,\"data\":\"itzel.ns.cloudflare.com. dns.cloudflare.com. 2417632164 10000 2400 604800 1800\"}]}"
}
},
{
"label": "DoH HTTPS _mcp._agents.datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "No HTTPS answers (NXDOMAIN)"
},
"request": {
"url": "https://cloudflare-dns.com/dns-query?name=_mcp._agents.datagalactica.com&type=HTTPS&do=1",
"method": "GET",
"headers": {
"Accept": "application/dns-json"
}
},
"response": {
"status": 200,
"headers": {
"content-type": "application/dns-json"
},
"statusText": "OK",
"bodyPreview": "{\"Status\":3,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_mcp._agents.datagalactica.com\",\"type\":65}],\"Authority\":[{\"name\":\"datagalactica.com\",\"type\":6,\"TTL\":1800,\"data\":\"itzel.ns.cloudflare.com. dns.cloudflare.com. 2417632164 10000 2400 604800 1800\"}]}"
}
},
{
"label": "DoH TXT _index._agents.datagalactica.com",
"action": "fetch",
"finding": {
"outcome": "neutral",
"summary": "No TXT answers (NXDOMAIN)"
},
"request": {
"url": "https://cloudflare-dns.com/dns-query?name=_index._agents.datagalactica.com&type=TXT&do=1",
"method": "GET",
"headers": {
"Accept": "application/dns-json"
}
},
"response": {
"status": 200,
"headers": {
"content-type": "application/dns-json"
},
"statusText": "OK",
"bodyPreview": "{\"Status\":3,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_index._agents.datagalactica.com\",\"type\":16}],\"Authority\":[{\"name\":\"datagalactica.com\",\"type\":6,\"TTL\":1800,\"data\":\"itzel.ns.cloudflare.com. dns.cloudflare.com. 2417632164 10000 2400 604800 1800\"}]}"
}
},
{
"label": "Parse DNS for AI Discovery (DNS-AID) SVCB/HTTPS records",
"action": "parse",
"finding": {
"outcome": "neutral",
"summary": "No DNS for AI Discovery (DNS-AID) SVCB or HTTPS records found at well-known entrypoints"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "negative",
"summary": "DNS for AI Discovery (DNS-AID) well-known entrypoint records not found"
}
}
],
"durationMs": 10,
"messageRef": {
"code": "check.dnsAid.notFound"
}
},
"sitemap": {
"status": "pass",
"details": {
"url": "https://datagalactica.com/sitemap.xml",
"format": "xml",
"fromRobotsTxt": true
},
"message": "sitemap.xml exists with valid structure",
"evidence": [
{
"label": "Extract Sitemap directives from robots.txt",
"action": "parse",
"finding": {
"outcome": "positive",
"summary": "Found 1 Sitemap directive(s) in robots.txt"
}
},
{
"label": "GET /sitemap.xml",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Found valid xml sitemap at https://datagalactica.com/sitemap.xml"
},
"request": {
"url": "https://datagalactica.com/sitemap.xml",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a5496716ae412a30-IAD",
"content-type": "application/xml; charset=utf-8",
"cf-cache-status": "HIT"
},
"statusText": "OK"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "sitemap.xml exists with valid structure"
}
}
],
"durationMs": 207,
"messageRef": {
"code": "check.sitemap.valid"
}
},
"robotsTxt": {
"status": "pass",
"message": "robots.txt exists with valid format",
"evidence": [
{
"label": "GET /robots.txt",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received valid robots.txt (200, text/plain; charset=utf-8)"
},
"request": {
"url": "https://datagalactica.com/robots.txt",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"age": "80",
"cf-ray": "a54967168e1c2a30-IAD",
"content-type": "text/plain; charset=utf-8",
"content-length": "1005",
"cf-cache-status": "HIT"
},
"statusText": "OK",
"bodyPreview": "# Content signals (contentsignals.org): search and answers yes, model training no (see /terms)\nContent-Signal: search=yes, ai-input=yes, ai-train=no\n\nUser-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no\nAllow: /\nDisallow: /search\nDisallow: /feedback\nDisallow: /account\nDisallow: /admin\nDisallow: /pay/\nDisallow: /_md/\nDisallow: /api/v1/\n\n# AI search and assistants are welcome under the rules above: see /llms.txt, /llms-full.txt, /auth.md, /api and\n# /.well-known/api-catalog. Crawler..."
}
},
{
"label": "Validate robots.txt structure",
"action": "parse",
"finding": {
"outcome": "positive",
"summary": "Contains valid User-agent directive(s)"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "robots.txt exists with valid format"
}
}
],
"durationMs": 0,
"messageRef": {
"code": "check.robotsTxt.valid"
}
},
"linkHeaders": {
"status": "pass",
"details": {
"totalLinks": 6,
"relationsFound": [
{
"rel": "api-catalog",
"href": "/.well-known/api-catalog"
},
{
"rel": "service-desc",
"href": "/api/openapi.json",
"type": "application/vnd.oai.openapi+json"
},
{
"rel": "service-doc",
"href": "/api/docs",
"type": "text/html"
},
{
"rel": "describedby",
"href": "/auth.md",
"type": "text/markdown"
},
{
"rel": "describedby",
"href": "/llms.txt",
"type": "text/plain"
},
{
"rel": "service-desc",
"href": "/.well-known/mcp/server-card.json",
"type": "application/json"
}
]
},
"message": "Found agent-useful Link relations: api-catalog, service-desc, service-doc, describedby",
"evidence": [
{
"label": "GET /",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Target page returned 200 with Link header"
},
"request": {
"url": "https://datagalactica.com",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"age": "11685",
"link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\"; type=\"text/html\", ; rel=\"describedby\"; type=\"text/markdown\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"service-desc\"; type=\"application/json\"",
"cf-ray": "a549671a99e82a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "HIT"
},
"statusText": "OK"
}
},
{
"label": "Parse Link header (RFC 8288)",
"action": "parse",
"finding": {
"outcome": "neutral",
"summary": "Parsed 6 link(s) from header"
}
},
{
"label": "Match agent-useful relations",
"action": "parse",
"finding": {
"outcome": "positive",
"summary": "Found agent-useful relations: api-catalog, service-desc, service-doc, describedby"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "Found agent-useful Link relations: api-catalog, service-desc, service-doc, describedby"
}
}
],
"durationMs": 632,
"messageRef": {
"code": "check.linkHeaders.found",
"params": {
"relationNames": [
"api-catalog",
"service-desc",
"service-doc",
"describedby"
]
}
}
}
},
"botAccessControl": {
"webBotAuth": {
"status": "neutral",
"message": "Web Bot Auth directory not found (informational only)",
"evidence": [
{
"label": "GET /.well-known/http-message-signatures-directory",
"action": "fetch",
"finding": {
"outcome": "negative",
"summary": "Server returned 404 -- Web Bot Auth directory not found"
},
"request": {
"url": "https://datagalactica.com/.well-known/http-message-signatures-directory",
"method": "GET"
},
"response": {
"status": 404,
"headers": {
"cf-ray": "a5496716ae422a30-IAD",
"content-type": "text/html; charset=UTF-8",
"cf-cache-status": "BYPASS"
},
"statusText": "Not Found"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "negative",
"summary": "Web Bot Auth directory not found"
}
}
],
"durationMs": 229,
"messageRef": {
"code": "scanner.webBotAuthInformational",
"params": {
"original": {
"code": "check.webBotAuth.notFound"
}
}
}
},
"contentSignals": {
"status": "pass",
"details": {
"signals": [
{
"path": null,
"search": "yes",
"aiInput": "yes",
"aiTrain": "no",
"userAgent": "*"
},
{
"path": null,
"search": "yes",
"aiInput": "yes",
"aiTrain": "no",
"userAgent": "*"
}
],
"signalCount": 2
},
"message": "Content Signals found in robots.txt",
"evidence": [
{
"label": "GET /robots.txt",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received valid robots.txt (200, text/plain; charset=utf-8)"
},
"request": {
"url": "https://datagalactica.com/robots.txt",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"age": "80",
"cf-ray": "a54967168e1c2a30-IAD",
"content-type": "text/plain; charset=utf-8",
"content-length": "1005",
"cf-cache-status": "HIT"
},
"statusText": "OK",
"bodyPreview": "# Content signals (contentsignals.org): search and answers yes, model training no (see /terms)\nContent-Signal: search=yes, ai-input=yes, ai-train=no\n\nUser-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no\nAllow: /\nDisallow: /search\nDisallow: /feedback\nDisallow: /account\nDisallow: /admin\nDisallow: /pay/\nDisallow: /_md/\nDisallow: /api/v1/\n\n# AI search and assistants are welcome under the rules above: see /llms.txt, /llms-full.txt, /auth.md, /api and\n# /.well-known/api-catalog. Crawler..."
}
},
{
"label": "Parse Content-Signal directives",
"action": "parse",
"finding": {
"outcome": "positive",
"summary": "Found 2 Content-Signal directive(s)"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "Content Signals found in robots.txt"
}
}
],
"durationMs": 0,
"messageRef": {
"code": "check.contentSignals.found"
}
},
"robotsTxtAiRules": {
"status": "pass",
"details": {
"botsFound": [
"gptbot",
"google-extended",
"ccbot",
"anthropic-ai",
"bytespider",
"applebot-extended",
"amazonbot",
"meta-externalagent",
"omgilibot",
"diffbot",
"claudebot"
],
"targetPath": "/",
"botPolicies": [
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "gptbot",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "allow"
},
{
"pattern": "/search",
"directive": "disallow"
},
{
"pattern": "/feedback",
"directive": "disallow"
},
{
"pattern": "/account",
"directive": "disallow"
},
{
"pattern": "/admin",
"directive": "disallow"
},
{
"pattern": "/pay/",
"directive": "disallow"
},
{
"pattern": "/_md/",
"directive": "disallow"
},
{
"pattern": "/api/v1/",
"directive": "disallow"
}
],
"userAgent": "chatgpt-user",
"ruleSource": "wildcard",
"matchedRule": {
"pattern": "/",
"directive": "allow"
},
"effectiveAccess": "allowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "allow"
},
{
"pattern": "/search",
"directive": "disallow"
},
{
"pattern": "/feedback",
"directive": "disallow"
},
{
"pattern": "/account",
"directive": "disallow"
},
{
"pattern": "/admin",
"directive": "disallow"
},
{
"pattern": "/pay/",
"directive": "disallow"
},
{
"pattern": "/_md/",
"directive": "disallow"
},
{
"pattern": "/api/v1/",
"directive": "disallow"
}
],
"userAgent": "oai-searchbot",
"ruleSource": "wildcard",
"matchedRule": {
"pattern": "/",
"directive": "allow"
},
"effectiveAccess": "allowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "google-extended",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "ccbot",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "anthropic-ai",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "allow"
},
{
"pattern": "/search",
"directive": "disallow"
},
{
"pattern": "/feedback",
"directive": "disallow"
},
{
"pattern": "/account",
"directive": "disallow"
},
{
"pattern": "/admin",
"directive": "disallow"
},
{
"pattern": "/pay/",
"directive": "disallow"
},
{
"pattern": "/_md/",
"directive": "disallow"
},
{
"pattern": "/api/v1/",
"directive": "disallow"
}
],
"userAgent": "claude-web",
"ruleSource": "wildcard",
"matchedRule": {
"pattern": "/",
"directive": "allow"
},
"effectiveAccess": "allowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "bytespider",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "allow"
},
{
"pattern": "/search",
"directive": "disallow"
},
{
"pattern": "/feedback",
"directive": "disallow"
},
{
"pattern": "/account",
"directive": "disallow"
},
{
"pattern": "/admin",
"directive": "disallow"
},
{
"pattern": "/pay/",
"directive": "disallow"
},
{
"pattern": "/_md/",
"directive": "disallow"
},
{
"pattern": "/api/v1/",
"directive": "disallow"
}
],
"userAgent": "perplexitybot",
"ruleSource": "wildcard",
"matchedRule": {
"pattern": "/",
"directive": "allow"
},
"effectiveAccess": "allowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "allow"
},
{
"pattern": "/search",
"directive": "disallow"
},
{
"pattern": "/feedback",
"directive": "disallow"
},
{
"pattern": "/account",
"directive": "disallow"
},
{
"pattern": "/admin",
"directive": "disallow"
},
{
"pattern": "/pay/",
"directive": "disallow"
},
{
"pattern": "/_md/",
"directive": "disallow"
},
{
"pattern": "/api/v1/",
"directive": "disallow"
}
],
"userAgent": "cohere-ai",
"ruleSource": "wildcard",
"matchedRule": {
"pattern": "/",
"directive": "allow"
},
"effectiveAccess": "allowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "applebot-extended",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "amazonbot",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "meta-externalagent",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "allow"
},
{
"pattern": "/search",
"directive": "disallow"
},
{
"pattern": "/feedback",
"directive": "disallow"
},
{
"pattern": "/account",
"directive": "disallow"
},
{
"pattern": "/admin",
"directive": "disallow"
},
{
"pattern": "/pay/",
"directive": "disallow"
},
{
"pattern": "/_md/",
"directive": "disallow"
},
{
"pattern": "/api/v1/",
"directive": "disallow"
}
],
"userAgent": "facebookbot",
"ruleSource": "wildcard",
"matchedRule": {
"pattern": "/",
"directive": "allow"
},
"effectiveAccess": "allowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "omgilibot",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "diffbot",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "disallow"
}
],
"userAgent": "claudebot",
"ruleSource": "explicit",
"matchedRule": {
"pattern": "/",
"directive": "disallow"
},
"effectiveAccess": "disallowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "allow"
},
{
"pattern": "/search",
"directive": "disallow"
},
{
"pattern": "/feedback",
"directive": "disallow"
},
{
"pattern": "/account",
"directive": "disallow"
},
{
"pattern": "/admin",
"directive": "disallow"
},
{
"pattern": "/pay/",
"directive": "disallow"
},
{
"pattern": "/_md/",
"directive": "disallow"
},
{
"pattern": "/api/v1/",
"directive": "disallow"
}
],
"userAgent": "claude-searchbot",
"ruleSource": "wildcard",
"matchedRule": {
"pattern": "/",
"directive": "allow"
},
"effectiveAccess": "allowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "allow"
},
{
"pattern": "/search",
"directive": "disallow"
},
{
"pattern": "/feedback",
"directive": "disallow"
},
{
"pattern": "/account",
"directive": "disallow"
},
{
"pattern": "/admin",
"directive": "disallow"
},
{
"pattern": "/pay/",
"directive": "disallow"
},
{
"pattern": "/_md/",
"directive": "disallow"
},
{
"pattern": "/api/v1/",
"directive": "disallow"
}
],
"userAgent": "claude-user",
"ruleSource": "wildcard",
"matchedRule": {
"pattern": "/",
"directive": "allow"
},
"effectiveAccess": "allowed"
},
{
"rules": [
{
"pattern": "/",
"directive": "allow"
},
{
"pattern": "/search",
"directive": "disallow"
},
{
"pattern": "/feedback",
"directive": "disallow"
},
{
"pattern": "/account",
"directive": "disallow"
},
{
"pattern": "/admin",
"directive": "disallow"
},
{
"pattern": "/pay/",
"directive": "disallow"
},
{
"pattern": "/_md/",
"directive": "disallow"
},
{
"pattern": "/api/v1/",
"directive": "disallow"
}
],
"userAgent": "perplexity-user",
"ruleSource": "wildcard",
"matchedRule": {
"pattern": "/",
"directive": "allow"
},
"effectiveAccess": "allowed"
}
],
"robotsStatus": "ok"
},
"message": "Found rules for AI bots: gptbot, google-extended, ccbot, anthropic-ai, bytespider, applebot-extended, amazonbot, meta-externalagent, omgilibot, diffbot, claudebot",
"evidence": [
{
"label": "GET /robots.txt",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Received valid robots.txt (200, text/plain; charset=utf-8)"
},
"request": {
"url": "https://datagalactica.com/robots.txt",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"age": "80",
"cf-ray": "a54967168e1c2a30-IAD",
"content-type": "text/plain; charset=utf-8",
"content-length": "1005",
"cf-cache-status": "HIT"
},
"statusText": "OK",
"bodyPreview": "# Content signals (contentsignals.org): search and answers yes, model training no (see /terms)\nContent-Signal: search=yes, ai-input=yes, ai-train=no\n\nUser-agent: *\nContent-Signal: search=yes, ai-input=yes, ai-train=no\nAllow: /\nDisallow: /search\nDisallow: /feedback\nDisallow: /account\nDisallow: /admin\nDisallow: /pay/\nDisallow: /_md/\nDisallow: /api/v1/\n\n# AI search and assistants are welcome under the rules above: see /llms.txt, /llms-full.txt, /auth.md, /api and\n# /.well-known/api-catalog. Crawler..."
}
},
{
"label": "Scan for AI bot User-agent directives",
"action": "parse",
"finding": {
"outcome": "positive",
"summary": "Found rules for AI bots: gptbot, google-extended, ccbot, anthropic-ai, bytespider, applebot-extended, amazonbot, meta-externalagent, omgilibot, diffbot, claudebot"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "Found rules for 11 AI bots"
}
}
],
"durationMs": 0,
"messageRef": {
"code": "check.aiRules.rulesFound",
"params": {
"bots": [
"gptbot",
"google-extended",
"ccbot",
"anthropic-ai",
"bytespider",
"applebot-extended",
"amazonbot",
"meta-externalagent",
"omgilibot",
"diffbot",
"claudebot"
]
}
}
}
},
"contentAccessibility": {
"markdownNegotiation": {
"status": "pass",
"details": {
"contentType": "text/markdown; charset=utf-8"
},
"message": "Site supports Markdown for Agents",
"evidence": [
{
"label": "GET target page (Accept: text/markdown)",
"action": "fetch",
"finding": {
"outcome": "positive",
"summary": "Response content-type is text/markdown; charset=utf-8 -- site supports markdown negotiation"
},
"request": {
"url": "https://datagalactica.com",
"method": "GET",
"headers": {
"accept": "text/markdown",
"cache-control": "no-cache"
}
},
"response": {
"status": 200,
"headers": {
"cf-ray": "a549671dae0c75c6-IAD",
"content-type": "text/markdown; charset=utf-8"
},
"statusText": "OK"
}
},
{
"label": "Conclusion",
"action": "conclude",
"finding": {
"outcome": "positive",
"summary": "Site supports Markdown for Agents"
}
}
],
"durationMs": 559,
"messageRef": {
"code": "check.markdownNegotiation.supported"
}
}
}
},
"iar_preset": "api",
"level_name": "Agent-Native",
"scanned_at": "2026-11-03T06:43:07.215Z",
"is_commerce": false,
"mismatch_warning": "Declared as product, but scan level suggests full agent-native stack."
},
"agent_endpoints": {
"llms_txt": "https://datagalactica.com/llms.txt",
"ard_url": "https://datagalactica.com/.well-known/ard.json",
"mcp_card_url": "https://datagalactica.com/.well-known/mcp/server-card.json"
},
"commerce": {
"ucp_ready": true,
"ucp_manifest_url": "https://datagalactica.com/.well-known/ucp",
"checks": [
{
"id": "commerce.ucp",
"status": "pass",
"message": "UCP profile exists"
},
{
"id": "commerce.ap2",
"status": "neutral",
"message": "AP2 not detected (no A2A Agent Card) (not a commerce site)"
},
{
"id": "commerce.acp",
"status": "pass",
"message": "ACP discovery document exists"
},
{
"id": "commerce.x402",
"status": "neutral",
"message": "x402 payment protocol not detected (not a commerce site)"
},
{
"id": "commerce.mpp",
"status": "neutral",
"message": "MPP payment discovery not detected (not a commerce site)"
}
]
},
"site_type": "product",
"agent_profile": {
"best_for": [
"Resolving a company or person name to a permanent ID",
"KYB and due diligence lookups with sourced records",
"LEI",
"SEC and register cross-references"
],
"differentiators": "A permanent ID and sourced record for organisations and people"
},
"directory": {
"name": "AI Agent Pages",
"listing_url": "https://www.aiagentpages.com/listings/datagalactica-com",
"spec_url": "https://www.aiagentpages.com/api/listings/datagalactica-com/spec",
"llms_txt_url": "https://www.aiagentpages.com/listings/datagalactica-com/llms.txt"
},
"updated_at": "2026-11-04T01:20:00.624576+00:00"
}
```