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:
- Product level — export must be enabled on the individual product.
- 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).
- 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.
| Capability | Tier 1 (Customer admin) | Tier 2 (Customer partner) |
|---|---|---|
| Access admin panel | Yes | No — redirected to embed URL if configured |
| Switch active company (price selector) | Yes | No — sees own company pricing only |
| Load inactive products | Yes | No |
| Access Private products | Yes | No |
| Access Restricted products | Always | Only if company is in an authorized group |
| Change price type | All available types | Only types enabled for their company |
| Favourites, basket, file downloads | Yes | Yes |
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
| Scenario | What to use | How it works |
|---|---|---|
| Public visitors, no login needed | Nothing | Visitors see public products at public pricing. No auth code required. |
| B2B with Mimeeq-managed users | mmq-auth component | Users sign in → configurator automatically loads company pricing, restricted products, favourites. No custom code needed beyond embedding mmq-auth. |
| B2B with your own user system | REST API + custom pricing | Your 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 access | REST 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 verifies | Both | mmq-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
| Topic | Link |
|---|---|
| How sessions work — tokens, expiry, pricing fallback | Session Lifecycle |
| Sign-in, sign-out, and programmatic auth methods | Authentication Methods |
| User profile management | User Profile |
| Password recovery flow | Password Recovery |
| REST API key setup and usage | Authorization Guide |
| How pricing resolves for different user types | Pricing Overview |
| Product visibility and restricted access | Product 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.