{"uid":"cap_gHpjbEpevu2kEwlLolhAm","slug":"three-ws-369d20c2","name":"three.ws Model Check","description":"three.ws — agent-first 3D platform: drag-and-drop glTF/GLB preview plus model validation, inspection, and optimization, with Solana agent data, all reachable as MCP tools or pay-per-call x402 endpoints. This Model Check route fetches a glTF/GLB model from a URL and returns structural stats (vertices, triangles, materials, textures, animations, extensions) plus a prioritized list of optimization recommendations. Pay-per-call in USDC on Solana mainnet.","url":"https://three.ws/api/x402/model-check","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET","HEAD","DELETE"],"type":"string"},"queryParams":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Public HTTPS URL of a glTF (.gltf) or binary glTF (.glb) model. Max 16 MiB."}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["url","fetchedBytes","model","suggestions"],"properties":{"url":{"type":"string","format":"uri"},"model":{"type":"object","required":["container","counts"],"properties":{"counts":{"type":"object","properties":{"nodes":{"type":"integer"},"skins":{"type":"integer"},"meshes":{"type":"integer"},"scenes":{"type":"integer"},"textures":{"type":"integer"},"materials":{"type":"integer"},"animations":{"type":"integer"},"totalVertices":{"type":"integer"},"totalTriangles":{"type":"integer"},"indexedPrimitives":{"type":"integer"},"nonIndexedPrimitives":{"type":"integer"}}},"version":{"type":["string","null"]},"container":{"enum":["glb","gltf"],"type":"string"},"generator":{"type":["string","null"]},"extensionsUsed":{"type":"array","items":{"type":"string"}},"extensionsRequired":{"type":"array","items":{"type":"string"}}}},"suggestions":{"type":"array","items":{"type":"object","required":["id","severity","message"],"properties":{"id":{"type":"string"},"message":{"type":"string"},"estimate":{"type":"string"},"severity":{"enum":["info","warn","critical"],"type":"string"}}}},"fetchedBytes":{"type":"integer"}}}}}}},"responseSchema":{"type":"json","example":{"url":"https://three.ws/avatars/mannequin.glb","model":{"counts":{"nodes":18,"skins":1,"meshes":6,"scenes":1,"textures":3,"materials":4,"animations":1,"totalVertices":12480,"totalTriangles":24812,"indexedPrimitives":6,"nonIndexedPrimitives":0},"version":"2.0","container":"glb","generator":"three.ws CharacterStudio v1.5","extensionsUsed":["KHR_materials_unlit"],"extensionsRequired":[]},"suggestions":[{"id":"texture_size","message":"All textures are within 1024x1024 — good for mobile.","severity":"info"}],"fetchedBytes":1572864}},"example":{"request":{"input":{"type":"http","method":"GET","queryParams":{"url":"https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/main/2.0/Box/glTF-Binary/Box.glb"}},"output":{"type":"object"}},"response":{"url":"https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/main/2.0/Box/glTF-Binary/Box.glb","model":{"counts":{"nodes":2,"skins":0,"meshes":1,"scenes":1,"textures":0,"materials":1,"animations":0,"totalVertices":24,"totalTriangles":12,"indexedPrimitives":1,"nonIndexedPrimitives":0},"version":"2.0","fileSize":1664,"textures":[],"container":"glb","copyright":null,"generator":"glTF-Transform v4.4.0","materials":[{"name":"Red","alphaMode":"OPAQUE","doubleSided":false,"hasNormalTexture":false,"hasEmissiveTexture":false,"hasBaseColorTexture":false,"hasOcclusionTexture":false,"hasMetallicRoughnessTexture":false}],"extensionsUsed":[],"primitiveModes":[4],"extensionsRequired":[]},"suggestions":[{"id":"ok","message":"Model looks well-optimized for web delivery — no suggestions flagged.","severity":"info"}],"fetchedBytes":1664}},"exampleRequest":{"url":"https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/main/2.0/Box/glTF-Binary/Box.glb"},"tags":["x402"],"displayCostAmount":"0.001","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"settled","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.001/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_lNqYm6vV_zgZjXDb5CHY9","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.001","costPer":"request","priority":0,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fetches a glTF/GLB 3D model from a public URL, inspects its structure, and returns stats plus prioritized optimization recommendations","exampleAgentPrompt":"Can you check this 3D model for me before I mint it — run a full inspection on https://example.com/assets/character.glb and tell me the vertex count, triangle count, materials, textures, any extensions used, and what optimizations I should make?","exampleUseCases":null,"resultDescription":"Returns the fetched file size in bytes, model structural stats (scenes, nodes, meshes, materials, textures, animations, total vertices, total triangles, indexed vs non-indexed primitives), container type (glb/gltf), glTF version, generator tool, extensions used and required, plus a prioritized list of optimization suggestions each with a severity level (info/warn/critical) and estimated impact.","failureModes":["URL is not publicly accessible — returns fetch error","File exceeds 16 MiB limit — returns size exceeded error","URL does not point to a valid glTF/GLB file — returns parse error","Payment not included or insufficient USDC — returns 402 Payment Required","Network timeout fetching the remote model URL"],"whenToPreferThis":"Use this endpoint when an AI agent needs to vet, validate, or audit a 3D glTF or GLB asset before any downstream action such as minting, embedding in a scene, or purchasing. It is the right choice when structural stats (geometry, materials, textures, animations) and actionable optimization advice are needed for a single model URL. Prefer it over general-purpose file analyzers because it uses the canonical glTF-Transform inspector and returns 3D-specific recommendations.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T04:46:16.373Z","isFirstParty":false}