Build with the MGE Platform API

Upload images, generate product previews, and place orders for custom DIY products — paint-by-numbers, diamond art, dot painting, pixel beads, and more.

Sign In for API Key → Explore API →
Quick Start: choose product, then source mode
# Exact endpoint schemas live in Swagger curl https://mgeveryday.sg/api/v1/docs/ # With authentication curl -H "Authorization: Bearer mge_sk_..." \ https://mgeveryday.sg/api/v1/account/brands/ # DOT SKU format and orderable variants curl https://mgeveryday.sg/api/v1/products/types/DOT/ curl https://mgeveryday.sg/api/v1/products/types/DOT/variants/ # DBN SKU format and orderable variants curl https://mgeveryday.sg/api/v1/products/types/DBN/ curl https://mgeveryday.sg/api/v1/products/types/DBN/variants/ # Discover provider-neutral preview modes, billing terms, and option examples curl -H "Authorization: Bearer mge_sk_..." \ https://mgeveryday.sg/api/v1/preview/options/ # Product guides explain when to use asset_url, asset_token, or preview_option_id /developers/products/dot/ /developers/products/dbn/

Preview access, usage, and billing

Access

Access follows the API token

An active token with mockup:create can create previews for brands that token can access. Preview access is not enabled by a second token switch.

Use GET /api/v1/account/brands/ for accessible brand_id values and GET /api/v1/preview/options/ for the exact modes currently available to a brand.

Metering

Every option is one usage unit

One request creates one preview_id, while every requested option receives its own option_id. Each successfully generated option is metered separately and may be billed separately; failed options release their reservation.

Monthly free allowances and prices are resolved per brand, product, and mode. Account discounts apply to billable units, including a visible zero-value row for a 100% discount.

Paid usage

Paid previews require consent

Account-level paid-preview consent is off by default and is managed in API settings. Current terms are shown under Invoicing pricing.

Send allow_billable_preview=false when a request must stop before generation rather than consume any billable units. Omitting it or sending true never bypasses account-level consent.

Invoices

Usage stays auditable

Confirmed usage appears on the monthly B2B invoice as a separate preview-usage bucket, apart from products and delivery. Free and discounted usage remains visible, and sent or paid invoices stay frozen.

B2B preview portal

Create, review history, and track monthly usage

The signed-in preview portal uses the selected brand's permissions, allowance, consent and pricing. Choose a photo, review its visual crop and select one or more options. Each option uses a separate preview unit. Canvas choices reflect sizes with pricing for that brand.

Preview history is brand-wide and includes API and Portal requests, with search, filters, pagination and saved settings. Retained thumbnails are history only: they do not restore an expired full preview or extend its orderability.

Monthly summary groups requests by their creation month and shows the current outcome of their versions. Recorded costs use saved billing prices, not today's prices, and follow the billing period; amounts are kept separate by currency. Awaiting invoice is recorded usage, not an estimate.

Portal Add to order/Add to draft actions are a separate planned feature. Existing API purchase-options and preview-backed order contracts remain unchanged.

PBN preview contract

Color bucket

Choose COL24, COL36, or COL48

PBN requires an explicit color_bucket. The selected bucket is carried into the orderable SKU and production artwork; integrators should copy the returned purchase-option order_line rather than construct a SKU.

Density

Optional detail level

area_density accepts 12 (Simple), 16 (Standard), or 20 (Detailed) and defaults to 16. It represents the target number of paint areas per cm² and is evaluated with the selected canvas size.

Queue

Options process independently

Authenticated PBN, DBN, DOT, DCL, and PIX options are queued independently. Poll one preview_id; its response contains each stable option_id and its QUEUED, PROCESSING, COMPLETED, or FAILED state. The preview becomes terminal only after every requested option is terminal, and PARTIAL preserves successful options when another fails.

PBN options typically take about 2–10 minutes each depending on image complexity, size, and available processing capacity. Keep polling the original preview instead of resubmitting a slow option.

Result

Provider-neutral output

The public result contains the customer preview/mockup and legend needed for selection. Internal provider names, provider job identifiers, canonical SVG sources, and production implementation details are not part of the B2B contract.

PIX preview contract

Source / Drama

Select one or two variants

Use products=["PIX"] and preview_options={"PIX":[{"variant":"source"}]}, or choose drama. Both may be requested together. Each variant targets 30 colors and each successful option uses one unit from the same PIX standard allowance.

Omitting preview_options.PIX preserves existing behavior: PIX alone defaults to Source and Drama; comparison_count=1 requests Source only.

Brand pricing

Check availability before generation

Call GET /api/v1/preview/options/?product=PIX&brand_id=... for your brand's active allowance and prices. Available variant parameters do not grant commercial access: generation returns 409 until an active PIX policy exists in the brand's invoice currency.

Paid-preview consent and allow_billable_preview follow the shared rules above. The public Pixel Beads showcase has separate request limits.

Preview errors

409

Configuration or commercial decision required

A 409 can mean that the requested brand/product/mode has no active entitlement or price, paid-preview consent is missing, or allow_billable_preview=false rejected billable usage. Inspect the response error, code, and advice fields.

Processing

No provider-specific recovery

Queue and processing failures use provider-neutral states and messages. Retry only according to the returned state; do not build integrations around an underlying processing provider.

Product mental models

Public

DBN — Diamond by Numbers

Agent-friendly guide for DBN decisions: image-only order or preview-backed order, DBN preview option axes, then direct order or draft + submit.

Open DBN guide →
Public

DOT — Dot Painting

Agent-friendly guide for DOT decisions: Flow A image-first or Flow B preview-backed, then direct order or draft + submit.

Open DOT guide →

API Documentation

Public

Platform API

Exact endpoint and schema reference for platform integrations, including preview, purchase options, order drafts, validation, and order submission.

Open Docs →
Public

Agent API

Discover creative experiences and retrieve historical previews. New generation uses the Platform Preview & B2B API; the old agent generation endpoint returns HTTP 410.

Open Docs →

Authentication

  1. Sign in or request access to the platform
  2. Go to Settings → API settings → Create API token
  3. Copy your mge_sk_... key
  4. Add header: Authorization: Bearer mge_sk_...

Products we manufacture

PBN — Paint by Numbers DBN — Diamond Art DOT — Dot Painting PIX — Pixel Beads DCL — Colorful Dotting