# Pixelrope > Top AI image & video models, one credit balance: 13 models (6 image, 7 video) incl. Nano Banana Pro, GPT Image 2.5, Seedance 2.5 and Kling 4, with a REST API (OpenAPI spec) and AI Character Swap. 30 free credits. - **URL:** https://pixelrope.com - **Category:** saas - **Directory profile:** https://www.aiagentpages.com/listings/pixelrope-com - **Machine spec:** https://www.aiagentpages.com/api/listings/pixelrope-com/spec - **Directory llms.txt:** https://www.aiagentpages.com/listings/pixelrope-com/llms.txt - **Readiness score:** 80 - **Listing status:** Unclaimed - **Origin llms.txt:** https://pixelrope.com/llms.txt - **Origin MCP card:** https://pixelrope.com/.well-known/mcp/server-card.json - **Origin ARD:** https://pixelrope.com/.well-known/ard.json ## Best for - Generating AI images and videos via one REST API across 13 models ## Differentiators One credit balance for 13 image & video models; OpenAPI spec at /api/v1/openapi.json; llms.txt ## 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": "pixelrope-com", "url": "https://pixelrope.com", "title": "Pixelrope", "description": "Top AI image & video models, one credit balance: 13 models (6 image, 7 video) incl. Nano Banana Pro, GPT Image 2.5, Seedance 2.5 and Kling 4, with a REST API (OpenAPI spec) and AI Character Swap. 30 free credits.", "category": "saas", "tags": [ "ai image generator", "ai video generator", "api" ], "readiness_score": 80, "readiness_breakdown": { "level": 5, "score": 80, "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) records found, but DNSSEC was not validated", "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": false, "path": "", "detail": "informational", "status": null, "counts_toward_profile": false }, { "id": "discovery.authMd", "name": "auth.md", "pass": false, "path": "", "detail": "auth.md exists but OAuth Protected Resource Metadata was not found", "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": false, "path": "(optional)", "detail": "optional", "status": null, "counts_toward_profile": false }, { "id": "commerce.acp", "name": "ACP discovery", "pass": false, "path": "(optional)", "detail": "optional", "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://pixelrope.com", "score_raw": 71, "site_type": "product", "iar_checks": { "commerce": { "acp": { "status": "neutral", "message": "ACP discovery document not found (not a commerce site)", "evidence": [ { "label": "GET /.well-known/acp.json", "action": "fetch", "finding": { "outcome": "negative", "summary": "Server returned 404 -- ACP discovery document not found" }, "request": { "url": "https://pixelrope.com/.well-known/acp.json", "method": "GET" }, "response": { "status": 404, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691f899b49a4-IAD", "content-type": "text/html" }, "statusText": "Not Found" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "negative", "summary": "ACP discovery document not found" } } ], "durationMs": 486, "messageRef": { "code": "scanner.commerceCheckNotApplicable", "params": { "check": "acp", "original": { "code": "check.acp.notFound" } } } }, "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://pixelrope.com/openapi.json", "method": "GET" }, "response": { "status": 404, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691f798549a4-IAD", "content-type": "text/html" }, "statusText": "Not Found" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "negative", "summary": "MPP payment discovery not detected" } } ], "durationMs": 480, "messageRef": { "code": "scanner.commerceCheckNotApplicable", "params": { "check": "mpp", "original": { "code": "check.mpp.notDetected" } } } }, "ucp": { "status": "neutral", "message": "UCP profile not found (not a commerce site)", "evidence": [ { "label": "GET /.well-known/ucp", "action": "fetch", "finding": { "outcome": "negative", "summary": "Server returned 404 -- UCP profile not found" }, "request": { "url": "https://pixelrope.com/.well-known/ucp", "method": "GET" }, "response": { "status": 404, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691daec949a4-IAD", "content-type": "text/html" }, "statusText": "Not Found" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "negative", "summary": "UCP profile not found" } } ], "durationMs": 185, "messageRef": { "code": "scanner.commerceCheckNotApplicable", "params": { "check": "ucp", "original": { "code": "check.ucp.notFound" } } } }, "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://pixelrope.com/", "method": "GET" }, "response": { "status": 200, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691dbef449a4-IAD", "content-type": "text/html" }, "statusText": "OK" } }, { "label": "GET /api", "action": "fetch", "finding": { "outcome": "neutral", "summary": "/api returned 404 (not 402)" }, "request": { "url": "https://pixelrope.com/api", "method": "GET" }, "response": { "status": 404, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691f090549a4-IAD", "content-type": "text/html" }, "statusText": "Not Found" } }, { "label": "GET /api/v1", "action": "fetch", "finding": { "outcome": "neutral", "summary": "/api/v1 returned 404 (not 402)" }, "request": { "url": "https://pixelrope.com/api/v1", "method": "GET" }, "response": { "status": 404, "headers": { "cf-ray": "a516691f696a49a4-IAD", "content-type": "application/json", "content-length": "30" }, "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": "a516691dbedd49a4-IAD", "content-type": "application/json" }, "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": 594, "messageRef": { "code": "scanner.commerceCheckNotApplicable", "params": { "check": "x402", "original": { "code": "check.x402.notDetected" } } } } }, "discovery": { "ard": { "status": "pass", "details": { "entryCount": 4, "entryTypes": { "text/plain": 1, "text/markdown": 1, "application/mcp-server-card+json": 1, "application/vnd.oai.openapi+json": 1 }, "contentType": "application/json", "entryIssues": [], "specVersion": "1.0", "hasCollections": false, "hostIdentifier": "did:web:pixelrope.com", "manifestSource": "well-known", "entryIssueCount": 0, "hostDisplayName": "Pixelrope", "searchEndpoints": [], "validEntryCount": 4, "correctMediaType": false, "entriesInspected": 4, "withTrustManifest": 0, "nestedCatalogCount": 0, "urnConformantCount": 4, "discoveryMechanisms": [ "well-known" ], "registryEndpointCount": 0, "withRepresentativeQueries": 4 }, "message": "ARD capability manifest found with 4 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://pixelrope.com/.well-known/ai-catalog.json", "method": "GET", "headers": { "Accept": "application/json" } }, "response": { "status": 200, "headers": { "cf-ray": "a516691c9d1d49a4-IAD", "content-type": "application/json", "content-length": "2169" }, "statusText": "OK", "bodyPreview": "{\"specVersion\":\"1.0\",\"host\":{\"displayName\":\"Pixelrope\",\"identifier\":\"did:web:pixelrope.com\"},\"entries\":[{\"identifier\":\"urn:air:pixelrope.com:api:pixelrope\",\"displayName\":\"Pixelrope API\",\"description\":\"Generate AI images and videos with Nano Banana, GPT Image, Seedream, FLUX 3, Seedance, Kling, Wan and MiniMax.\",\"type\":\"application/vnd.oai.openapi+json\",\"url\":\"https://pixelrope.com/api/v1/openapi.json\",\"representativeQueries\":[\"generate an image with Nano Banana Pro\",\"make a 5 second video from a..." } }, { "label": "Validate manifest entries", "action": "validate", "finding": { "outcome": "positive", "summary": "4 of 4 inspected entries valid; 4 use a conformant urn:air identifier" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "positive", "summary": "ARD capability manifest found with 4 agentic resources" } }, { "label": "DoH TXT _catalog._agents.pixelrope.com", "action": "fetch", "finding": { "outcome": "neutral", "summary": "No TXT answers (NOERROR)" }, "request": { "url": "https://cloudflare-dns.com/dns-query?name=_catalog._agents.pixelrope.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\":0,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_catalog._agents.pixelrope.com\",\"type\":16}],\"Authority\":[{\"name\":\"pixelrope.com\",\"type\":6,\"TTL\":1800,\"data\":\"candy.ns.cloudflare.com. dns.cloudflare.com. 2418573080 10000 2400 604800 1800\"},{\"name\":\"pixelrope.com\",\"type\":46,\"TTL\":1800,\"data\":\"SOA 13 2 1800 1793243494 1793063494 34505 pixelrope.com. GA9eF6nmBPj0kNk5xX+AjBf2J4xt7+F7l3OGeUwmB+ocUHAS6a9xVwWji36ZJe6VzwEORkajOFGWHVae+t6FRg==\"},{\"name\":\"_catalog._agen..." } }, { "label": "DoH SRV _search._agents.pixelrope.com", "action": "fetch", "finding": { "outcome": "neutral", "summary": "No SRV answers (NOERROR)" }, "request": { "url": "https://cloudflare-dns.com/dns-query?name=_search._agents.pixelrope.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\":0,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_search._agents.pixelrope.com\",\"type\":33}],\"Authority\":[{\"name\":\"pixelrope.com\",\"type\":6,\"TTL\":1800,\"data\":\"candy.ns.cloudflare.com. dns.cloudflare.com. 2418573080 10000 2400 604800 1800\"},{\"name\":\"pixelrope.com\",\"type\":46,\"TTL\":1800,\"data\":\"SOA 13 2 1800 1793243494 1793063494 34505 pixelrope.com. 5pYCPVVLc5S4U64OCAtFqABHf+HSusOcoaPkTNxAzE3TqbIgOBJgwKOLgAgX6nwaQ4jLw7MvvoW50EyquX/T3g==\"},{\"name\":\"_search._agents..." } } ], "durationMs": 83, "messageRef": { "code": "check.ard.found", "params": { "resourceCount": 4 } } }, "authMd": { "status": "fail", "message": "auth.md exists but OAuth Protected Resource Metadata was not found", "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://pixelrope.com/auth.md", "method": "GET", "headers": { "Accept": "text/markdown, text/plain, */*" } }, "response": { "status": 200, "headers": { "cf-ray": "a516691d1df249a4-IAD", "content-type": "text/markdown; charset=utf-8", "content-length": "1428" }, "statusText": "OK", "bodyPreview": "# Pixelrope auth.md\n\nHow AI agents and MCP clients get access to a Pixelrope account.\n\n## Audience\n\nAgents acting for a Pixelrope user: MCP clients (Claude, Cursor, ChatGPT connectors…) and apps that call the API on\nthe user's behalf. Every action runs as that user and spends their credits.\n\n## Register\n\nOAuth 2.0 Dynamic Client Registration (RFC 7591), no prior account needed for the client:\n`POST https://pixelrope.com/api/auth/oauth2/register` with `client_name`, `redirect_uris`, and `token_en..." } }, { "label": "Detect Auth.md registration markers", "action": "parse", "finding": { "outcome": "positive", "summary": "Found 1 Auth.md marker(s)" } }, { "label": "Detect self-contained Auth.md registration flow", "action": "parse", "finding": { "outcome": "neutral", "summary": "No complete standalone registration flow found in auth.md" } }, { "label": "GET /.well-known/oauth-protected-resource", "action": "fetch", "finding": { "outcome": "positive", "summary": "Received JSON response (200)" }, "request": { "url": "https://pixelrope.com/.well-known/oauth-protected-resource", "method": "GET", "headers": { "Accept": "application/json" } }, "response": { "status": 200, "headers": { "cf-ray": "a516691f99cd49a4-IAD", "content-type": "application/json", "content-length": "215" }, "statusText": "OK", "bodyPreview": "{\"resource\":\"https://pixelrope.com/mcp\",\"authorization_servers\":[\"https://pixelrope.com/api/auth\"],\"bearer_methods_supported\":[\"header\"],\"dpop_signing_alg_values_supported\":[\"EdDSA\",\"ES256\",\"ES512\",\"PS256\",\"RS256\"]}" } }, { "label": "Validate Protected Resource Metadata", "action": "validate", "finding": { "outcome": "negative", "summary": "Missing scopes_supported array" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "negative", "summary": "auth.md exists but OAuth Protected Resource Metadata was not found" } } ], "durationMs": 964, "messageRef": { "code": "check.authMd.protectedResourceMetadataMissing" } }, "webMcp": { "status": "pass", "details": { "tools": [ { "name": "list_models", "hasSchema": true, "description": "List the AI image and video models on Pixelrope with their modes and page URLs." }, { "name": "open_generator", "hasSchema": true, "description": "Open the image or video generator for a model, optionally with a prompt filled in, so the user can review it." }, { "name": "start_generation", "hasSchema": true, "description": "Start a generation with the signed-in user's credits. Spends credits: confirm the model, prompt and cost with the user first. Returns the generation id and the credits held." }, { "name": "get_generation", "hasSchema": true, "description": "Get a generation's status and output URLs by id." } ], "toolCount": 4, "detectionMethod": "imperative_api" }, "message": "Found 4 WebMCP tools via document.modelContext: list_models, open_generator, start_generation, get_generation", "evidence": [ { "label": "WebMCP detection", "action": "parse", "finding": { "outcome": "neutral", "summary": "Checking page for WebMCP tool registrations" } }, { "label": "Navigate to https://pixelrope.com", "action": "fetch", "finding": { "outcome": "neutral", "summary": "Loading page to detect WebMCP tool registrations" }, "request": { "url": "https://pixelrope.com", "method": "GET" } }, { "label": "Check imperative WebMCP API", "action": "parse", "finding": { "outcome": "positive", "summary": "Found 4 tool(s) via document.modelContext" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "positive", "summary": "Found 4 WebMCP tool(s) via document.modelContext" } } ], "durationMs": 2863, "messageRef": { "code": "check.webMcp.toolsDetected", "params": { "toolCount": 4, "toolNames": [ "list_models", "open_generator", "start_generation", "get_generation" ], "detectionMethod": "imperative_api" } } }, "apiCatalog": { "status": "pass", "details": { "apiCount": 1, "hasItems": false, "linksetEntries": 1, "hasNestedCatalogs": false, "correctContentType": true }, "message": "API Catalog found with 1 API listed", "evidence": [ { "label": "GET /.well-known/api-catalog", "action": "fetch", "finding": { "outcome": "positive", "summary": "Received 200 with valid JSON response" }, "request": { "url": "https://pixelrope.com/.well-known/api-catalog", "method": "GET", "headers": { "Accept": "application/linkset+json, application/json" } }, "response": { "status": 200, "headers": { "cf-ray": "a516691daec849a4-IAD", "content-type": "application/linkset+json", "content-length": "525" }, "statusText": "OK", "bodyPreview": "{\"linkset\":[{\"anchor\":\"https://pixelrope.com/api/v1\",\"service-desc\":[{\"href\":\"https://pixelrope.com/api/v1/openapi.json\",\"type\":\"application/vnd.oai.openapi+json\"}],\"service-doc\":[{\"href\":\"https://pixelrope.com/docs/api\",\"type\":\"text/html\"}],\"status\":[{\"href\":\"https://pixelrope.com/api/v1/health\",\"type\":\"application/json\"}]}]}" } }, { "label": "Validate Linkset structure", "action": "validate", "finding": { "outcome": "positive", "summary": "Found \"linkset\" array with 1 entries" } }, { "label": "Analyze linkset entries", "action": "validate", "finding": { "outcome": "positive", "summary": "1 API listed, correct content-type" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "positive", "summary": "API Catalog found with 1 API listed" } } ], "durationMs": 177, "messageRef": { "code": "check.apiCatalog.found", "params": { "apiCount": 1 } } }, "agentSkills": { "status": "pass", "details": { "path": "/.well-known/agent-skills/index.json", "skillCount": 1, "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" }, "request": { "url": "https://pixelrope.com/.well-known/agent-skills/index.json", "method": "GET" }, "response": { "status": 200, "headers": { "cf-ray": "a516691d9ea949a4-IAD", "content-type": "application/json", "content-length": "442" }, "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 1 entry (1 with valid v0.2.0 fields)" } }, { "label": "Validate skill count", "action": "validate", "finding": { "outcome": "positive", "summary": "Index contains 1 skill" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "positive", "summary": "Agent Skills index exists with valid JSON" } } ], "durationMs": 170, "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://pixelrope.com/.well-known/agent-card.json", "method": "GET" }, "response": { "status": 404, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691d8e9149a4-IAD", "content-type": "text/html" }, "statusText": "Not Found" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "negative", "summary": "A2A Agent Card not found" } } ], "durationMs": 170, "messageRef": { "code": "check.a2aAgentCard.notFound" } }, "mcpServerCard": { "status": "pass", "details": { "name": "pixelrope", "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://pixelrope.com/.well-known/mcp/server-card.json", "method": "GET" }, "response": { "status": 200, "headers": { "cf-ray": "a516691d3e2649a4-IAD", "content-type": "application/json", "content-length": "1062" }, "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://pixelrope.com/.well-known/mcp/server-cards.json", "method": "GET" }, "response": { "status": 404, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691d6e6a49a4-IAD", "content-type": "text/html" }, "statusText": "Not Found" } }, { "label": "GET /.well-known/mcp.json", "action": "fetch", "finding": { "outcome": "negative", "summary": "/.well-known/mcp.json returned 404" }, "request": { "url": "https://pixelrope.com/.well-known/mcp.json", "method": "GET" }, "response": { "status": 404, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691d7e7d49a4-IAD", "content-type": "text/html" }, "statusText": "Not Found" } }, { "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": 157, "messageRef": { "code": "check.mcpServerCard.found", "params": { "path": "/.well-known/mcp/server-card.json" } } }, "oauthDiscovery": { "status": "pass", "details": { "issuer": "https://pixelrope.com/api/auth", "source": "openid-configuration", "grantTypes": [ "authorization_code", "client_credentials", "refresh_token" ], "hasJwksUri": true, "hasTokenEndpoint": true, "hasAuthorizationEndpoint": true }, "message": "OpenID Connect discovery metadata found", "evidence": [ { "label": "GET /.well-known/openid-configuration", "action": "fetch", "finding": { "outcome": "positive", "summary": "Received JSON from openid-configuration" }, "request": { "url": "https://pixelrope.com/.well-known/openid-configuration", "method": "GET" }, "response": { "status": 200, "headers": { "cf-ray": "a516691c9d1c49a4-IAD", "content-type": "application/json", "content-length": "2256" }, "statusText": "OK" } }, { "label": "Validate openid-configuration structure", "action": "validate", "finding": { "outcome": "positive", "summary": "Valid metadata with issuer: https://pixelrope.com/api/auth" } }, { "label": "GET /.well-known/oauth-authorization-server", "action": "fetch", "finding": { "outcome": "positive", "summary": "Received JSON from oauth-authorization-server" }, "request": { "url": "https://pixelrope.com/.well-known/oauth-authorization-server", "method": "GET" }, "response": { "status": 200, "headers": { "cf-ray": "a516691cad3049a4-IAD", "content-type": "application/json", "content-length": "2256" }, "statusText": "OK" } }, { "label": "Validate oauth-authorization-server structure", "action": "validate", "finding": { "outcome": "positive", "summary": "Valid metadata with issuer: https://pixelrope.com/api/auth" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "positive", "summary": "OpenID Connect discovery metadata found" } } ], "durationMs": 656, "messageRef": { "code": "check.oauthDiscovery.found", "params": { "source": "openid-configuration" } } }, "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://pixelrope.com/.well-known/poppy.json", "method": "GET", "headers": { "Accept": "application/json" } }, "response": { "status": 404, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a5166919c88b49a4-IAD", "content-type": "text/html" }, "statusText": "Not Found" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "negative", "summary": "Personal Agent Protocol manifest not found" } } ], "durationMs": 26, "messageRef": { "code": "check.personalAgentProtocol.notFound" } }, "oauthProtectedResource": { "status": "fail", "message": "No OAuth Protected Resource Metadata found", "evidence": [ { "label": "GET /", "action": "fetch", "finding": { "outcome": "neutral", "summary": "Target resource returned 200 (no WWW-Authenticate header)" }, "request": { "url": "https://pixelrope.com", "method": "GET" }, "response": { "status": 200, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691cad3649a4-IAD", "content-type": "text/html" }, "statusText": "OK" } }, { "label": "GET /.well-known/oauth-protected-resource", "action": "fetch", "finding": { "outcome": "positive", "summary": "Received JSON response (200)" }, "request": { "url": "https://pixelrope.com/.well-known/oauth-protected-resource", "method": "GET" }, "response": { "status": 200, "headers": { "cf-ray": "a516691cad3149a4-IAD", "content-type": "application/json", "content-length": "215" }, "statusText": "OK" } }, { "label": "Validate resource metadata", "action": "validate", "finding": { "outcome": "negative", "summary": "JSON missing or invalid \"resource\" field, or resource mismatch" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "negative", "summary": "No OAuth Protected Resource Metadata found" } } ], "durationMs": 665, "messageRef": { "code": "check.oauthProtectedResource.notFound" } } }, "discoverability": { "dnsAid": { "status": "fail", "details": { "records": [ { "alpn": [ "h2", "http/1.1" ], "mode": "service", "port": 443, "rrType": "SVCB", "target": "pixelrope.com", "ipv4hint": [], "ipv6hint": [], "priority": 1, "mandatory": [], "ownerName": "_index._agents.pixelrope.com", "customParamKeys": [], "dnssecValidated": false, "validServiceMode": true, "validationIssues": [] }, { "alpn": [ "h2", "http/1.1" ], "mode": "service", "port": 443, "rrType": "SVCB", "target": "pixelrope.com", "ipv4hint": [], "ipv6hint": [], "priority": 1, "mandatory": [], "ownerName": "_mcp._agents.pixelrope.com", "customParamKeys": [], "dnssecValidated": false, "validServiceMode": true, "validationIssues": [] } ], "domainsChecked": [ "pixelrope.com" ], "dnssecValidated": false, "txtIndexEntries": [], "aliasRecordCount": 0, "queriesAttempted": [ "SVCB _index._agents.pixelrope.com", "HTTPS _index._agents.pixelrope.com", "SVCB _a2a._agents.pixelrope.com", "HTTPS _a2a._agents.pixelrope.com", "SVCB _mcp._agents.pixelrope.com", "HTTPS _mcp._agents.pixelrope.com", "TXT _index._agents.pixelrope.com" ], "serviceRecordCount": 2, "txtIndexEntryCount": 0 }, "message": "DNS for AI Discovery (DNS-AID) records found, but DNSSEC was not validated", "evidence": [ { "label": "DoH SVCB _index._agents.pixelrope.com", "action": "fetch", "finding": { "outcome": "positive", "summary": "Found 1 SVCB answer" }, "request": { "url": "https://cloudflare-dns.com/dns-query?name=_index._agents.pixelrope.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\":0,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_index._agents.pixelrope.com\",\"type\":64}],\"Answer\":[{\"name\":\"_index._agents.pixelrope.com\",\"type\":64,\"TTL\":3600,\"data\":\"1 pixelrope.com. alpn=h2,http/1.1 port=443\"},{\"name\":\"_index._agents.pixelrope.com\",\"type\":46,\"TTL\":3600,\"data\":\"SVCB 13 4 3600 1793243494 1793063494 34505 pixelrope.com. CQQaUaczBvAbPDHl2eHjrMjfqOo6rPtWg/pm6m6JxVxixgqA8N8f2ViJl4AbeUq6lGq9YcJBiEoUr14nsbqv9w==\"}]}" } }, { "label": "DoH HTTPS _index._agents.pixelrope.com", "action": "fetch", "finding": { "outcome": "neutral", "summary": "No HTTPS answers (NOERROR)" }, "request": { "url": "https://cloudflare-dns.com/dns-query?name=_index._agents.pixelrope.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\":0,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_index._agents.pixelrope.com\",\"type\":65}],\"Authority\":[{\"name\":\"pixelrope.com\",\"type\":6,\"TTL\":1800,\"data\":\"candy.ns.cloudflare.com. dns.cloudflare.com. 2418573080 10000 2400 604800 1800\"},{\"name\":\"pixelrope.com\",\"type\":46,\"TTL\":1800,\"data\":\"SOA 13 2 1800 1793243494 1793063494 34505 pixelrope.com. J0prrvkM2VJwP0ESQU4tGI76FMszpODjaYgomOYWTGLJV/NbsrrXNtdAHgRqkDOypbeoZfNLtb0cgwh9/mVlCQ==\"},{\"name\":\"_index._agents.p..." } }, { "label": "DoH SVCB _a2a._agents.pixelrope.com", "action": "fetch", "finding": { "outcome": "neutral", "summary": "No SVCB answers (NOERROR)" }, "request": { "url": "https://cloudflare-dns.com/dns-query?name=_a2a._agents.pixelrope.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\":0,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_a2a._agents.pixelrope.com\",\"type\":64}],\"Authority\":[{\"name\":\"pixelrope.com\",\"type\":6,\"TTL\":1800,\"data\":\"candy.ns.cloudflare.com. dns.cloudflare.com. 2418573080 10000 2400 604800 1800\"},{\"name\":\"pixelrope.com\",\"type\":46,\"TTL\":1800,\"data\":\"SOA 13 2 1800 1793243494 1793063494 34505 pixelrope.com. YCRpiGxtQ9KFNqvNqICXqVvXDReGd1nbwlckyNwdqT0lnrERL/TGRlYqyOWndn7DP0ZK1m275WLo/HLTWMYK3Q==\"},{\"name\":\"_a2a._agents.pixel..." } }, { "label": "DoH HTTPS _a2a._agents.pixelrope.com", "action": "fetch", "finding": { "outcome": "neutral", "summary": "No HTTPS answers (NOERROR)" }, "request": { "url": "https://cloudflare-dns.com/dns-query?name=_a2a._agents.pixelrope.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\":0,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_a2a._agents.pixelrope.com\",\"type\":65}],\"Authority\":[{\"name\":\"pixelrope.com\",\"type\":6,\"TTL\":1800,\"data\":\"candy.ns.cloudflare.com. dns.cloudflare.com. 2418573080 10000 2400 604800 1800\"},{\"name\":\"pixelrope.com\",\"type\":46,\"TTL\":1800,\"data\":\"SOA 13 2 1800 1793243494 1793063494 34505 pixelrope.com. 8NSB6Xg6YGfQUL9BhADSPBodFqeKheGokj2TZUBbY0+G32/dokSyjNiueYb6ABsX+/HT+olvofMdczvw+/gsAw==\"},{\"name\":\"_a2a._agents.pixel..." } }, { "label": "DoH SVCB _mcp._agents.pixelrope.com", "action": "fetch", "finding": { "outcome": "positive", "summary": "Found 1 SVCB answer" }, "request": { "url": "https://cloudflare-dns.com/dns-query?name=_mcp._agents.pixelrope.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\":0,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_mcp._agents.pixelrope.com\",\"type\":64}],\"Answer\":[{\"name\":\"_mcp._agents.pixelrope.com\",\"type\":64,\"TTL\":3600,\"data\":\"1 pixelrope.com. alpn=h2,http/1.1 port=443\"},{\"name\":\"_mcp._agents.pixelrope.com\",\"type\":46,\"TTL\":3600,\"data\":\"SVCB 13 4 3600 1793243494 1793063494 34505 pixelrope.com. XK2N1NXUs+yctwXuvqraGQth0QLWGn98mDOgpCj8e3/ZW+bHk7gl38HZpMha7aAfPu03oHMkDe1egdp5KGCYaQ==\"}]}" } }, { "label": "DoH HTTPS _mcp._agents.pixelrope.com", "action": "fetch", "finding": { "outcome": "neutral", "summary": "No HTTPS answers (NOERROR)" }, "request": { "url": "https://cloudflare-dns.com/dns-query?name=_mcp._agents.pixelrope.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\":0,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_mcp._agents.pixelrope.com\",\"type\":65}],\"Authority\":[{\"name\":\"pixelrope.com\",\"type\":6,\"TTL\":1800,\"data\":\"candy.ns.cloudflare.com. dns.cloudflare.com. 2418573080 10000 2400 604800 1800\"},{\"name\":\"pixelrope.com\",\"type\":46,\"TTL\":1800,\"data\":\"SOA 13 2 1800 1793243494 1793063494 34505 pixelrope.com. IqrNZzcFVr6HzYTKIbez+m0J32MNVsOXa7b15evZh4eHsEf/b07KkpxeEIjnHMv4L7JtDjxXrrpDKssZ/cO+Tw==\"},{\"name\":\"_mcp._agents.pixel..." } }, { "label": "DoH TXT _index._agents.pixelrope.com", "action": "fetch", "finding": { "outcome": "neutral", "summary": "No TXT answers (NOERROR)" }, "request": { "url": "https://cloudflare-dns.com/dns-query?name=_index._agents.pixelrope.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\":0,\"TC\":false,\"RD\":true,\"RA\":true,\"AD\":false,\"CD\":false,\"Question\":[{\"name\":\"_index._agents.pixelrope.com\",\"type\":16}],\"Authority\":[{\"name\":\"pixelrope.com\",\"type\":6,\"TTL\":1800,\"data\":\"candy.ns.cloudflare.com. dns.cloudflare.com. 2418573080 10000 2400 604800 1800\"},{\"name\":\"pixelrope.com\",\"type\":46,\"TTL\":1800,\"data\":\"SOA 13 2 1800 1793243494 1793063494 34505 pixelrope.com. ZtSCmiU9TNa50mwXxmRwJG5LditXRH3MYth1rKMjr/s4DhI4UmwU3t3YJlDkC8NcUXYCF8dePu3MoXWxHU4niw==\"},{\"name\":\"_index._agents.p..." } }, { "label": "Parse DNS for AI Discovery (DNS-AID) SVCB/HTTPS records", "action": "parse", "finding": { "outcome": "positive", "summary": "Found 2 ServiceMode records" } }, { "label": "Validate DNSSEC requirement", "action": "validate", "finding": { "outcome": "negative", "summary": "DNS for AI Discovery (DNS-AID) draft-01 requires public discovery records to be DNSSEC-signed and validated, but AD=true was not returned" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "negative", "summary": "DNS for AI Discovery (DNS-AID) records found but DNSSEC was not validated" } } ], "durationMs": 13, "messageRef": { "code": "check.dnsAid.dnssecNotValidated" } }, "sitemap": { "status": "pass", "details": { "url": "https://pixelrope.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://pixelrope.com/sitemap.xml" }, "request": { "url": "https://pixelrope.com/sitemap.xml", "method": "GET" }, "response": { "status": 200, "headers": { "cf-ray": "a516691c9d2049a4-IAD", "content-type": "application/xml; charset=utf-8", "content-length": "421" }, "statusText": "OK" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "positive", "summary": "sitemap.xml exists with valid structure" } } ], "durationMs": 16, "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://pixelrope.com/robots.txt", "method": "GET" }, "response": { "status": 200, "headers": { "cf-ray": "a5166919c89049a4-IAD", "content-type": "text/plain; charset=utf-8", "content-length": "914" }, "statusText": "OK", "bodyPreview": "# Pixelrope. All crawlers welcome, AI search and training bots included (decided 2026-10-23,\n# docs/LAUNCH-SEO.md).\n\nContent-Signal: search=yes, ai-input=yes, ai-train=yes\n\nUser-agent: *\nAllow: /\nAllow: /api/v1/posts/*/media\nAllow: /api/v1/posts/*/elements/*/media\nAllow: /api/v1/avatars/\nAllow: /api/v1/openapi.json\nDisallow: /api/\nDisallow: /app/\nDisallow: /webhooks/\n\nUser-agent: OAI-SearchBot\nUser-agent: ChatGPT-User\nUser-agent: GPTBot\nUser-agent: Claude-SearchBot\nUser-agent: Claude-User\nUser-a..." } }, { "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": 7, "relationsFound": [ { "rel": "api-catalog", "href": "/.well-known/api-catalog" }, { "rel": "service-desc", "href": "/api/v1/openapi.json", "type": "application/vnd.oai.openapi+json" }, { "rel": "service-doc", "href": "/docs/api" }, { "rel": "status", "href": "/api/v1/health" }, { "rel": "describedby", "href": "/llms.txt", "type": "text/plain" } ] }, "message": "Found agent-useful Link relations: api-catalog, service-desc, service-doc, status, describedby", "evidence": [ { "label": "GET /", "action": "fetch", "finding": { "outcome": "positive", "summary": "Target page returned 200 with Link header" }, "request": { "url": "https://pixelrope.com", "method": "GET" }, "response": { "status": 200, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691f89b649a4-IAD", "content-type": "text/html" }, "statusText": "OK" } }, { "label": "Parse Link header (RFC 8288)", "action": "parse", "finding": { "outcome": "neutral", "summary": "Parsed 7 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, status, describedby" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "positive", "summary": "Found agent-useful Link relations: api-catalog, service-desc, service-doc, status, describedby" } } ], "durationMs": 651, "messageRef": { "code": "check.linkHeaders.found", "params": { "relationNames": [ "api-catalog", "service-desc", "service-doc", "status", "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://pixelrope.com/.well-known/http-message-signatures-directory", "method": "GET" }, "response": { "status": 404, "headers": { "link": "; rel=\"api-catalog\", ; rel=\"service-desc\"; type=\"application/vnd.oai.openapi+json\", ; rel=\"service-doc\", ; rel=\"status\", ; rel=\"describedby\"; type=\"text/plain\", ; rel=\"https://agentskills.io/rel/skills\", ; rel=\"https://modelcontextprotocol.io/rel/server-card\"; type=\"application/json\"", "cf-ray": "a516691c9d1b49a4-IAD", "content-type": "text/html" }, "statusText": "Not Found" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "negative", "summary": "Web Bot Auth directory not found" } } ], "durationMs": 132, "messageRef": { "code": "scanner.webBotAuthInformational", "params": { "original": { "code": "check.webBotAuth.notFound" } } } }, "contentSignals": { "status": "pass", "details": { "signals": [ { "path": null, "search": "yes", "aiInput": "yes", "aiTrain": "yes", "userAgent": "*" } ], "signalCount": 1 }, "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://pixelrope.com/robots.txt", "method": "GET" }, "response": { "status": 200, "headers": { "cf-ray": "a5166919c89049a4-IAD", "content-type": "text/plain; charset=utf-8", "content-length": "914" }, "statusText": "OK", "bodyPreview": "# Pixelrope. All crawlers welcome, AI search and training bots included (decided 2026-10-23,\n# docs/LAUNCH-SEO.md).\n\nContent-Signal: search=yes, ai-input=yes, ai-train=yes\n\nUser-agent: *\nAllow: /\nAllow: /api/v1/posts/*/media\nAllow: /api/v1/posts/*/elements/*/media\nAllow: /api/v1/avatars/\nAllow: /api/v1/openapi.json\nDisallow: /api/\nDisallow: /app/\nDisallow: /webhooks/\n\nUser-agent: OAI-SearchBot\nUser-agent: ChatGPT-User\nUser-agent: GPTBot\nUser-agent: Claude-SearchBot\nUser-agent: Claude-User\nUser-a..." } }, { "label": "Parse Content-Signal directives", "action": "parse", "finding": { "outcome": "positive", "summary": "Found 1 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", "chatgpt-user", "oai-searchbot", "google-extended", "ccbot", "perplexitybot", "applebot-extended", "claudebot", "claude-searchbot", "claude-user", "perplexity-user" ], "targetPath": "/", "botPolicies": [ { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "gptbot", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "chatgpt-user", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "oai-searchbot", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "google-extended", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "ccbot", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "anthropic-ai", "ruleSource": "wildcard", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "claude-web", "ruleSource": "wildcard", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "bytespider", "ruleSource": "wildcard", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "perplexitybot", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "cohere-ai", "ruleSource": "wildcard", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "applebot-extended", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "amazonbot", "ruleSource": "wildcard", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "meta-externalagent", "ruleSource": "wildcard", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "facebookbot", "ruleSource": "wildcard", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "omgilibot", "ruleSource": "wildcard", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "diffbot", "ruleSource": "wildcard", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "claudebot", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "claude-searchbot", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "claude-user", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" }, { "rules": [ { "pattern": "/", "directive": "allow" }, { "pattern": "/api/v1/posts/*/media", "directive": "allow" }, { "pattern": "/api/v1/posts/*/elements/*/media", "directive": "allow" }, { "pattern": "/api/v1/avatars/", "directive": "allow" }, { "pattern": "/api/v1/openapi.json", "directive": "allow" }, { "pattern": "/api/", "directive": "disallow" }, { "pattern": "/app/", "directive": "disallow" }, { "pattern": "/webhooks/", "directive": "disallow" } ], "userAgent": "perplexity-user", "ruleSource": "explicit", "matchedRule": { "pattern": "/", "directive": "allow" }, "effectiveAccess": "allowed" } ], "robotsStatus": "ok" }, "message": "Found rules for AI bots: gptbot, chatgpt-user, oai-searchbot, google-extended, ccbot, perplexitybot, applebot-extended, claudebot, claude-searchbot, claude-user, perplexity-user", "evidence": [ { "label": "GET /robots.txt", "action": "fetch", "finding": { "outcome": "positive", "summary": "Received valid robots.txt (200, text/plain; charset=utf-8)" }, "request": { "url": "https://pixelrope.com/robots.txt", "method": "GET" }, "response": { "status": 200, "headers": { "cf-ray": "a5166919c89049a4-IAD", "content-type": "text/plain; charset=utf-8", "content-length": "914" }, "statusText": "OK", "bodyPreview": "# Pixelrope. All crawlers welcome, AI search and training bots included (decided 2026-10-23,\n# docs/LAUNCH-SEO.md).\n\nContent-Signal: search=yes, ai-input=yes, ai-train=yes\n\nUser-agent: *\nAllow: /\nAllow: /api/v1/posts/*/media\nAllow: /api/v1/posts/*/elements/*/media\nAllow: /api/v1/avatars/\nAllow: /api/v1/openapi.json\nDisallow: /api/\nDisallow: /app/\nDisallow: /webhooks/\n\nUser-agent: OAI-SearchBot\nUser-agent: ChatGPT-User\nUser-agent: GPTBot\nUser-agent: Claude-SearchBot\nUser-agent: Claude-User\nUser-a..." } }, { "label": "Scan for AI bot User-agent directives", "action": "parse", "finding": { "outcome": "positive", "summary": "Found rules for AI bots: gptbot, chatgpt-user, oai-searchbot, google-extended, ccbot, perplexitybot, applebot-extended, claudebot, claude-searchbot, claude-user, perplexity-user" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "positive", "summary": "Found rules for 11 AI bots" } } ], "durationMs": 0, "messageRef": { "code": "check.aiRules.rulesFound", "params": { "bots": [ "gptbot", "chatgpt-user", "oai-searchbot", "google-extended", "ccbot", "perplexitybot", "applebot-extended", "claudebot", "claude-searchbot", "claude-user", "perplexity-user" ] } } } }, "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://pixelrope.com", "method": "GET", "headers": { "accept": "text/markdown", "cache-control": "no-cache" } }, "response": { "status": 200, "headers": { "cf-ray": "a516691e4cab2ade-IAD", "content-type": "text/markdown; charset=utf-8" }, "statusText": "OK" } }, { "label": "Conclusion", "action": "conclude", "finding": { "outcome": "positive", "summary": "Site supports Markdown for Agents" } } ], "durationMs": 1213, "messageRef": { "code": "check.markdownNegotiation.supported" } } } }, "iar_preset": "api", "level_name": "Agent-Native", "scanned_at": "2026-10-28T02:11:37.458Z", "is_commerce": false, "mismatch_warning": "Declared as product, but scan level suggests full agent-native stack." }, "agent_endpoints": { "llms_txt": "https://pixelrope.com/llms.txt", "ard_url": "https://pixelrope.com/.well-known/ard.json", "mcp_card_url": "https://pixelrope.com/.well-known/mcp/server-card.json" }, "commerce": { "ucp_ready": false, "ucp_manifest_url": "https://pixelrope.com/.well-known/ucp", "checks": [ { "id": "commerce.ucp", "status": "neutral", "message": "UCP profile not found (not a commerce site)" }, { "id": "commerce.ap2", "status": "neutral", "message": "AP2 not detected (no A2A Agent Card) (not a commerce site)" }, { "id": "commerce.acp", "status": "neutral", "message": "ACP discovery document not found (not a commerce site)" }, { "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": [ "Generating AI images and videos via one REST API across 13 models" ], "differentiators": "One credit balance for 13 image & video models; OpenAPI spec at /api/v1/openapi.json; llms.txt" }, "directory": { "name": "AI Agent Pages", "listing_url": "https://www.aiagentpages.com/listings/pixelrope-com", "spec_url": "https://www.aiagentpages.com/api/listings/pixelrope-com/spec", "llms_txt_url": "https://www.aiagentpages.com/listings/pixelrope-com/llms.txt" }, "updated_at": "2026-10-28T02:45:52.443669+00:00" } ```