{"openapi":"3.1.0","info":{"title":"Complete Print & Design Agent API","version":"2.1.0","description":"Agent-native print partner API from Nerang serving Gold Coast, Tweed, SEQ, Wide Bay and national accounts. Delivery is quoted per job; installation is subject to review. Discover products, submit quotes, and poll status."},"servers":[{"url":"https://www.completeprint.design"}],"paths":{"/api/catalog":{"get":{"operationId":"getCatalog","summary":"List products with specs, business facts, and action URLs","responses":{"200":{"description":"Catalog payload"}}}},"/api/agent/quote":{"post":{"operationId":"submitQuote","summary":"Submit a print quote request","description":"Creates a prioritized quote inquiry in CPD's pipeline, emails staff, and auto-replies to the customer.","parameters":[{"name":"X-Agent-Id","in":"header","schema":{"type":"string"},"description":"Optional agent or agency identifier for attribution"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentQuoteRequest"}}}},"responses":{"200":{"description":"Quote accepted with reference ID and statusUrl"},"400":{"description":"Validation error"},"401":{"description":"Invalid agent API key"}},"security":[{"AgentApiKey":[]}]},"get":{"operationId":"quoteApiInfo","summary":"Quote API metadata","responses":{"200":{"description":"Endpoint metadata"}}}},"/api/agent/quote/{referenceId}":{"get":{"operationId":"getQuoteStatus","summary":"Poll quote status by reference ID","parameters":[{"name":"referenceId","in":"path","required":true,"schema":{"type":"string","pattern":"^CPD-"}}],"responses":{"200":{"description":"Quote status payload"},"401":{"description":"Invalid agent API key"}},"security":[{"AgentApiKey":[]}]}},"/api/mcp":{"get":{"operationId":"mcpDiscovery","summary":"MCP server discovery document","responses":{"200":{"description":"MCP discovery JSON"}}},"post":{"operationId":"mcpJsonRpc","summary":"MCP JSON-RPC tool server","description":"Supports initialize, tools/list, and tools/call.","responses":{"200":{"description":"JSON-RPC response"}}}},"/api/assistant":{"post":{"operationId":"assistantChat","summary":"Conversational assistant for product search and quote guidance","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"session":{"type":"object"}},"required":["message"]}}}},"responses":{"200":{"description":"Assistant reply"}}}}},"components":{"securitySchemes":{"AgentApiKey":{"type":"apiKey","in":"header","name":"X-Agent-Api-Key","description":"Optional in dev. Set AGENT_API_KEY in production."}},"schemas":{"AgentQuoteRequest":{"type":"object","required":["contact"],"properties":{"productSlug":{"type":"string","description":"Slug from /api/catalog e.g. pull-up-banners, custom-enquiry"},"product":{"type":"string","description":"Natural language product search if slug unknown"},"quantity":{"type":"string"},"size":{"type":"string"},"material":{"type":"string"},"deadline":{"type":"string"},"notes":{"type":"string"},"productSpecs":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"description":"Canonical qualification answers keyed by /api/catalog product.qualification[].key"},"intent":{"type":"string","enum":["print-review","quote"]},"artworkStatus":{"type":"string","enum":["have-files","need-design","not-sure"]},"contact":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"customerType":{"type":"string","enum":["business","personal"],"description":"Required for new integrations; legacy company-only infers business"},"company":{"type":"string","description":"Organisation name — required when customerType is business"}}},"marketingAuthorised":{"type":"boolean","description":"Optional marketing opt-in for print tips and offers (defaults false)"},"accountOpportunity":{"type":"object","description":"Optional business account-opportunity profile (business customers only)","properties":{"customerType":{"type":"string","enum":["business","personal"]},"organisationName":{"type":"string"},"relationshipIntent":{"type":"string","enum":["one-off","repeat-likely","existing-reorder","account-discussion"]},"siteModel":{"type":"string","enum":["single-site","multi-site","campaign-rollout","unknown"]},"estimatedSites":{"type":"integer","minimum":1},"needs":{"type":"object","properties":{"brandConsistency":{"type":"boolean"},"artworkManagement":{"type":"boolean"},"repeatOrdering":{"type":"boolean"},"deliveryCoordination":{"type":"boolean"},"installationReview":{"type":"boolean"}}}}},"fulfilment":{"type":"object","description":"Quote-led pickup, delivery quote and installation review request","required":["delivery","installation"],"properties":{"delivery":{"type":"object","required":["mode"],"properties":{"mode":{"type":"string","enum":["pickup-nerang","delivery-quote"]},"primaryDestination":{"type":"object","properties":{"suburb":{"type":"string"},"postcode":{"type":"string","pattern":"^[0-9]{4}$"},"addressType":{"type":"string","enum":["commercial","residential","unknown"]}}},"multiSitePlanningRequired":{"type":"boolean"},"notes":{"type":"string"}}},"installation":{"type":"object","required":["requested","status"],"properties":{"requested":{"type":"boolean"},"status":{"type":"string","enum":["not-requested","review-required"]},"notes":{"type":"string"}}}}}}}}}}