Skip to main content

Authentication Overview

Mimeeq provides authentication so that end users on your website can sign in and access personalized features — company-specific pricing, saved configurations, restricted products, and more. This page explains the two authentication systems, what authenticated sessions unlock, and which approach fits your integration.

Two Authentication Systems

Mimeeq has two independent authentication mechanisms. They serve different purposes and operate separately — having a user signed in via one does not affect the other.

┌─────────────────────────────────────────────────────────────────┐
│ Your Website │
│ │
│ ┌──────────────────────┐ ┌────────────────────────────┐ │
│ │ Browser (client) │ │ Your Server │ │
│ │ │ │ │ │
│ │ <mmq-auth> │ │ fetch(mimeeqapi.com/...) │ │
│ │ mimeeqAuth API │ │ X-API-KEY: your_key │ │
│ │ │ │ │ │
│ │ ► End-user identity │ │ ► Account-level access │ │
│ │ ► Per-user features │ │ ► Product data & pricing │ │
│ │ ► Session tokens │ │ ► No user context │ │
│ └──────────┬───────────┘ └─────────────┬──────────────┘ │
│ │ │ │
│ Embed Auth REST API Auth │
│ (user ↔ configurator) (server ↔ Mimeeq API) │
└─────────────────────────────────────────────────────────────────┘

Embed Authentication

The mmq-auth web component and the mimeeqAuth JavaScript API handle browser-based user sessions. When a user signs in through this system, the configurator automatically adjusts what it shows — pricing, product access, and available features all respond to the authenticated user's identity.

Use embed auth when end users on your website need personalized configurator experiences.

REST API Authentication

The REST API uses API key authentication via the X-API-KEY header. The key is tied to your Mimeeq customer account, not to individual users. It provides server-side access to product data, pricing, and configuration management.

Use REST API auth when your server needs to fetch product data, verify prices, or integrate with back-end systems. See the Authorization Guide for setup and usage.

What Authenticated Sessions Unlock

An unauthenticated visitor sees public products at public pricing. When a user signs in through embed auth, the configurator unlocks additional capabilities based on the user type and company assignment.

Pricing and Currency

Authenticated users can access company-specific price lists, which may use a different currency, different price levels, or different VAT display rules compared to public pricing. Admin users can switch between companies and price types using the built-in price selector. Partner users see the pricing assigned to their company.

For a full explanation of how pricing resolves based on authentication state, see Pricing Overview.

Restricted Products

Products with Restricted privacy are invisible to unauthenticated visitors. Once signed in, a Partner user whose company belongs to an authorized Company Group can see and configure these products. Admin users always have access to restricted products regardless of group membership.

Products with Private privacy are only accessible to customer admin users.

For the full interaction between status, privacy, and visibility, see Product Visibility.

Favourites and Saved Scenes

Authenticated users can save product configurations to favourites collections (standard products) and save complete modular scenes (modular products). These persist across sessions and can be organized into private or public collections. The Favourites embed type provides a dedicated UI for browsing saved items.

Mimeeq Basket

The Mimeeq basket can be configured to require authentication — when basketForLoggedInOnly is enabled on the embed template, the basket UI and add-to-cart functionality are only available to signed-in users. When an authenticated user adds items to the basket, their profile data (name, email, company) can pre-populate submission forms.

File Downloads

The Files tab in the configurator can contain downloadable resources (technical documents, specification sheets, CAD files). Access to these files can be restricted to authenticated users only, configured per product in the admin panel.

3D Model Export

The "Export 3D" button (GLB/OBJ/STL download) is controlled by three independent checks, all of which must pass:

  1. Product level — export must be enabled on the individual product.
  2. Account level (Settings → Account → Show Export 3D Button) — sets the visibility mode: Public (everyone), Private (admin users), or Restricted (controlled by Company Groups + admin users).
  3. Company Group level (only when account setting is Restricted) — each Company Group has a "Can export 3D" toggle under Settings → Data → Company Groups. A partner user's company must belong to a group with this toggle enabled.

All three layers must allow export for the button to appear. If any layer blocks it, the button is hidden.

  Is export enabled on the product?

┌─ No ──► Button hidden

Yes


Account setting (Settings → Account)?

┌────┼────────────┐
│ │ │
Public Private Restricted
│ │ │
│ │ ▼
│ │ User is Partner?
│ │ │
│ │ ┌─ No ──► Button shown
│ │ │
│ │ Yes
│ │ │
│ │ ▼
│ │ User's company in a
│ │ group with "Can export
│ │ 3D" enabled?
│ │ │
│ │ ┌─ Yes ──► Button shown
│ │ │
│ │ No ──► Button hidden
│ │
│ ▼
│ User is Partner?
│ │
│ ┌─ No ──► Button shown
│ │
│ Yes ──► Button hidden


Button shown (everyone)

User Tiers

All Mimeeq users belong to one of two tiers. The tier determines what the user can do inside the configurator and whether they have access to the admin panel.

CapabilityTier 1 (Customer admin)Tier 2 (Customer partner)
Access admin panelYesNo — redirected to embed URL if configured
Switch active company (price selector)YesNo — sees own company pricing only
Load inactive productsYesNo
Access Private productsYesNo
Access Restricted productsAlwaysOnly if company is in an authorized group
Change price typeAll available typesOnly types enabled for their company
Favourites, basket, file downloadsYesYes
note

Users can be assigned to multiple customers with different roles — for example, admin for one customer and partner for another. The tier applies per customer context, not globally.

Registration

Users can only be registered through the Mimeeq admin panel. Registration is invitation-based — customer admin user must send an invitation. There is no self-registration flow.

This applies to all user types: customer admins and partners.

Choosing Your Approach

ScenarioWhat to useHow it works
Public visitors, no login neededNothingVisitors see public products at public pricing. No auth code required.
B2B with Mimeeq-managed usersmmq-auth componentUsers sign in → configurator automatically loads company pricing, restricted products, favourites. No custom code needed beyond embedding mmq-auth.
B2B with your own user systemREST API + custom pricingYour server fetches pricing via /get-product-price-info using the companyId tied to the user in your system. Call setPrice() to display the result. Enable use-custom-pricing on the template. This replicates the built-in Mimeeq auth pricing behavior through your own identity provider.
Server-side data accessREST API key (X-API-KEY)Your server reads product data, verifies prices, or processes orders. No end-user identity involved.
Mixed — users sign in + server verifiesBothmmq-auth on the frontend for the full authenticated experience. REST API on the backend for order verification and price re-fetching. Managed independently.
                    Do your end users need
to sign in?

┌──── No ──┴── Yes ────┐
│ │
▼ ▼
Public pricing Are users managed
No auth needed in Mimeeq?

┌── Yes ───┴─── No ───┐
│ │
▼ ▼
mmq-auth REST API +
component setPrice()
(built-in) (custom pricing)
│ │
└──────────┬──────────┘


Need server-side
price verification?

┌─ Yes ┴─ No ─┐
│ │
▼ ▼
Add REST Done
API key

Using companyId with the REST API

If you manage users in your own system but want to replicate Mimeeq's built-in company pricing, pass the companyId parameter when fetching prices from the REST API. This returns the same pricing an authenticated Mimeeq user assigned to that company would see in the configurator.

// Server-side: fetch company-specific pricing for your authenticated user
const companyId = getUserMimeeqCompanyId(currentUser); // From your user record

const params = new URLSearchParams({
shortCode: configShortCode,
quantity: String(quantity),
companyId,
priceType: 'RRP',
});

const response = await fetch(`https://mimeeqapi.com/get-product-price-info?${params}`, {
headers: { 'X-API-KEY': process.env.MIMEEQ_API_KEY },
});

const priceData = await response.json();

Then pass the result to the configurator using setPrice(). See Custom Pricing Integration for the full implementation pattern.

Next Steps

TopicLink
How sessions work — tokens, expiry, pricing fallbackSession Lifecycle
Sign-in, sign-out, and programmatic auth methodsAuthentication Methods
User profile managementUser Profile
Password recovery flowPassword Recovery
REST API key setup and usageAuthorization Guide
How pricing resolves for different user typesPricing Overview
Product visibility and restricted accessProduct Visibility

For generating the auth embed code in the admin panel, see Mimeeq Authentication User Guide.

For how authentication fits into the broader Mimeeq integration model, see the Architecture Overview.