{"schema_version":"1.0","service":"PrintRelay","version":"0.5.0","observed_at":"2026-11-08T17:35:49.101Z","endpoints":{"capabilities":"/api/capabilities","health":"/api/health","rest":"/api/v1","mcp_native":"https://printrelay.kva1.chatgpt.site/mcp","mcp_api_key":"/api/mcp","openapi":"/openapi.json","tool_catalog":"/tools.json","native_tool_catalog":"/tools-native.json","public_tool_catalog":"/tools-public.json","mcp_public_advice":"/api/advice/mcp","advice":"/api/advice","knowledge":"/learn","orders":"/api/v1/orders","key_bootstrap":"/skills/printrelay-hardware/scripts/bootstrap_key.py","docs":"/docs","skill":"/skills/printrelay-hardware/SKILL.md","example_preflight":"/examples/calibration-cube-20mm.preflight.json"},"authentication":{"public":["manufacturing_advice","public_advice_mcp","capabilities","health","openapi","tool_catalog","docs","skill","example_preflight"],"native_mcp":{"type":"platform_oauth","endpoint":"https://printrelay.kva1.chatgpt.site/mcp","connection":"Use the Site-created PrintRelay plugin in ChatGPT/Codex.","resource_metadata":"https://printrelay.kva1.chatgpt.site/.well-known/oauth-protected-resource/mcp"},"api_key":{"type":"http_bearer","endpoints":["/api/v1","/api/mcp"],"provisioning":"/docs#keys","shown_once":true,"revocable":true,"native_registration_returns_secret":false,"access_scope":"full_account","expires_at":null,"native_registration_tool":"register_agent_key","native_management_tools":["register_agent_key","list_agent_keys","revoke_agent_key"]},"reserved_headers":"oai-authenticated-* are trusted platform headers, never caller-supplied authentication."},"limits":{"rest_file_bytes":10485760,"mcp_file_bytes":2097152,"retained_requests_per_account":20,"retained_bytes_per_account":104857600,"active_api_keys_per_account":5,"quantity":{"minimum":1,"maximum":100},"specifications_per_request":20,"active_backlog_orders_per_account":20,"total_backlog_orders_per_account":100,"new_quote_jobs_per_account_per_utc_day":25,"quote_comparison_max_age_seconds":900,"file_formats":["stl","step","stp","3mf","obj"],"materials":["PLA","PETG","PA12"],"units":["mm","inch"]},"capabilities":[{"id":"free_manufacturing_advice","status":"available","reason":"Curated source-backed design guidance; public REST and advice-only MCP require no account."},{"id":"preliminary_dfm","status":"available","reason":"Hash-verified bounded geometry observations and curated rules; not an AI specialist report or printability certification."},{"id":"budgetary_estimation","status":"available","reason":"Free preview using explicit uncalibrated internal FDM assumptions. No live supplier price, shipping, tax or delivery is invented."},{"id":"order_backlog","status":"available","reason":"Nonbinding order requests for manufacturing, quotation or free specialist DFM advice. No charge, capacity reservation or supplier commitment."},{"id":"specialist_dfm_review","status":"queue_available","reason":"Asynchronous free review by an operator-supervised AI specialist; pending means no review has been performed. No turnaround guarantee."},{"id":"native_agent_key_registration","status":"available","reason":"Native Sites OAuth can register a locally saved key digest and list/revoke account keys. Full account access until revoked; API-key clients cannot manage credentials."},{"id":"public_example_preflight","status":"available","reason":"A real measured 20 mm calibration STL and its report are public; no account or upload required."},{"id":"cad_intake","status":"available","reason":"Requires authenticated account, storage, explicit units and upload consent."},{"id":"owned_cad_preflight","status":"available","reason":"STL geometry observations are bounded and hash-verified; not a printability certificate."},{"id":"immutable_specifications","status":"available","reason":"Original CAD hash, units, quantity and notes are immutable; manufacturing choices receive an exact fingerprint."},{"id":"quote_queue","status":"available","reason":"Requires explicit permission to share the exact CAD and specification with named providers."},{"id":"supplier_quote_collection","status":"requires_buyer_session","reason":"An operator needs authenticated persistent buyer accounts and browser access. No partner integration is implied."},{"id":"supplier_worker_readiness","status":"not_verified","reason":"This endpoint does not attest a live supplier browser worker or successful quote capture."},{"id":"quote_comparison","status":"available","reason":"Only latest evidenced complete landed prices for the same fingerprint and currency are ranked; a queue entry is not a quote."},{"id":"payment","status":"disabled","reason":"No public or operator action charges money, submits a supplier purchase or transmits a print job. Backlog requests are nonbinding."},{"id":"purchase","status":"disabled","reason":"No public or operator action charges money, submits a supplier purchase or transmits a print job. Backlog requests are nonbinding."},{"id":"print_transmission","status":"disabled","reason":"No public or operator action charges money, submits a supplier purchase or transmits a print job. Backlog requests are nonbinding."}],"services":{"free":["manufacturing_advice","knowledge","preliminary_dfm","specialist_dfm_review","budget_preview"],"paid_when_activated":["verified_quotations","scoped_estimation","printing"],"service_fees":"not_offered","payment_collection":"disabled"},"health":{"service":"PrintRelay","intake":"available","database":true,"storage":true,"backlog":"available","supplier_quotes":"buyer_account_comparison_beta","quote_collection":"requires_authenticated_buyer_session","guest_checkout":"disabled","mcp":"available","payments":"disabled","fulfillment":"disabled"},"next_actions":[{"action":"get_free_advice","reason":"Start with useful design guidance; no account or CAD upload is needed.","url":"/api/advice","tool":"get_manufacturing_advice"},{"action":"inspect_public_example","reason":"Read a real CAD geometry result before connecting an account.","url":"/examples/calibration-cube-20mm.preflight.json"},{"action":"choose_authentication","reason":"Connect the native Site plugin; register a locally saved key digest for external REST and /api/mcp, or use browser key management.","url":"/docs#keys"},{"action":"read_tool_schemas","reason":"Use exact required arguments; upload and provider-sharing consents are separate.","url":"/tools.json"}]}