# MGE Preview Discovery This site supports preview discovery, preview generation, and product-specific API integration guidance for custom DIY products made from uploaded images. Available now: - Machine-readable discovery: https://www.mgeveryday.sg/.well-known/mge-api.json - Agent API docs: https://www.mgeveryday.sg/api/agent/docs/ - Agent discovery endpoint: https://www.mgeveryday.sg/api/agent/creative-experiences/ - Platform preview docs: https://www.mgeveryday.sg/api/v1/docs/ - DBN API mental model: https://www.mgeveryday.sg/developers/products/dbn/ - DBN SKU format: https://www.mgeveryday.sg/api/v1/products/types/DBN/ - DBN available variants: https://www.mgeveryday.sg/api/v1/products/types/DBN/variants/ - DOT API mental model: https://www.mgeveryday.sg/developers/products/dot/ - DOT SKU format: https://www.mgeveryday.sg/api/v1/products/types/DOT/ - DOT available variants: https://www.mgeveryday.sg/api/v1/products/types/DOT/variants/ - Human-readable helper page: https://www.mgeveryday.sg/for-agents/ Preview access and billing: - POST /api/agent/explore-creations/ is retired (HTTP 410). Create new previews through POST /api/v1/preview/; agent discovery and historical result retrieval remain available. Do not resend the legacy interests payload to the replacement API; use product codes and its documented fields. - An active API token with mockup:create can create previews for accessible brand_id values. There is no second preview-access toggle on the token. - GET /api/v1/preview/options/ is the source of truth for provider-neutral product modes, request examples, active monthly allowance, price, discount, paid-consent state, and links to API settings and pricing. - One POST /api/v1/preview/ creates one preview_id. Every requested option has its own option_id, is generated and metered separately, and may be billed separately. Failed options release their reserved unit. - Monthly free allowance and pricing are resolved per brand, product, and mode. Confirmed usage appears separately from products and delivery on the monthly B2B invoice. - Paid-preview consent is account-level, off by default, timestamped, and managed in API settings. Current terms are shown under B2B Invoicing pricing. - allow_billable_preview=false rejects the whole request before generation if any option would be billable. Omitting it or sending true still requires active account-level paid-preview consent. - A 409 response can mean missing entitlement/price, missing paid consent, or billable usage rejected by the request. Read error, code, advice, and entitlement details; do not infer provider behavior. PBN preview model: - preview_options.PBN[] requires color_bucket: COL24, COL36, or COL48. - area_density is optional: 12 Simple, 16 Standard/default, or 20 Detailed. It represents the target number of paint areas per cm2 and is evaluated with canvas size. - PBN options are queued independently and typically take about 2-10 minutes each depending on image complexity, size, and available processing capacity. - Poll the single preview_id. Its response contains individual option states and provider-neutral preview/mockup and legend results. - Internal provider names, provider job identifiers, canonical SVG sources, and implementation details are not part of the B2B contract. - For ordering, fetch purchase-options and copy the exact returned order_line. Do not construct PBN color-bucket SKUs client-side. DBN integration model: - Keep two decisions separate: Flow A Order + image vs Flow B Preview-backed order, then Direct order vs Draft + submit. Test endpoints are dry-run tools during integration. - Direct image order: send a DBN SKU with one image source in line_items[], usually asset_url, or asset_token when using the draft asset upload flow. - Discover DBN SKU structure with GET /api/v1/products/types/DBN/ and available DBN variants with GET /api/v1/products/types/DBN/variants/. - Discover DBN preview option axes with GET /api/v1/preview/options/ before POST /api/v1/preview/. DBN preview_options.DBN[] includes diamond_type, max_colors, dither_mode, and variant. - Preview-backed order: create a preview, fetch purchase-options, then copy the selected order_line into line_items[] with preview_option_id. - Purchase options do not introduce a purchase_option_id for order submission. - Re-fetch purchase-options server-side before checkout or draft/order creation. DOT integration model: - Keep two decisions separate: Flow A Order + image vs Flow B Preview-backed order, then Direct order vs Draft + submit. Test endpoints are dry-run tools during integration. - Direct image order: send a DOT SKU with one image source in line_items[], usually asset_url, or asset_token when using the draft asset upload flow. - Discover DOT SKU structure with GET /api/v1/products/types/DOT/ and available DOT variants with GET /api/v1/products/types/DOT/variants/. - Preview-backed order: create a preview, fetch purchase-options, then copy the selected order_line into line_items[] with preview_option_id. - Purchase options do not introduce a purchase_option_id for order submission. - Re-fetch purchase-options server-side before checkout or draft/order creation. Important status: - Use live API responses and Swagger for current SKU availability, purchase options, pricing, and readiness. - Do not invent prices, shipping values, checkout behavior, or product promises.