Market catalog --- external read API
Market catalog --- external read API
Full API reference: https://api.mailoo.app/docs/v1
Use a Market integration to manage a minimal product catalog in the Mailoo dashboard and expose read-only JSON to your storefront or BFF. Every external route requires ``X-API-Key``; there is no anonymous access.
Overview
- Auth: Header ``X-API-Key`` on every request.
- Scope: RESTRICTED keys need ``market.external-read`` in
allowedOperations(FULL keys also work). - Routing:
GET {baseUrl}/api/v1/market/{projectUid}/integrations/{integrationId}/…--- same path shape as dashboard resources under/projects/{uid}/integrations/{id}/market/…, without theprojectsprefix. - Ownership: The API key must belong to the project owner;
projectUidandintegrationIdmust refer to an ACTIVE integration of type MARKET. - Visibility: Products do not have a separate "published" flag in the API --- external list/detail returns the same catalog the dashboard shows for that integration.
Tag icons: Tag objects may include iconMediaId. To fetch image bytes, use the Images integration with a key that allows ``image.external-read`` (see images{.interpreted-text role="doc"}).
BFF environment variables
Align with the Connection panel on the integration page (same names as below). Typical server-side variables:
MAILOO_MARKET_API--- API base URL (e.g.https://api.mailoo.appor your dev host), no trailing slash.MAILOO_MARKET_API_KEY--- API key with ``market.external-read`` (or FULL).MAILOO_MARKET_PROJECT_UID--- Project UID.MAILOO_MARKET_INTEGRATION_ID--- Market integration id (CUID).
Endpoints (all GET, all require X-API-Key)
Replace {baseUrl}, {projectUid}, {integrationId}, and path parameters as needed.
GET {baseUrl}/api/v1/market/{projectUid}/integrations/{integrationId}/types--- Product types and attributes.GET …/products--- All products (with variants and tag links).GET …/products/{productId}--- One product.GET …/products/{productId}/variants--- Variants for a product.GET …/tagsandGET …/tags/{tagId}--- Catalog tags.GET …/price-listsandGET …/price-lists/{priceListId}--- Internal price lists.GET …/effective-price?sku=…&at=…--- Resolve price for a SKU (atoptional ISO datetime).GET …/suppliers--- Suppliers.GET …/suppliers/{supplierId}/products--- Supplier products.GET …/suppliers/{supplierId}/price-listsandGET …/suppliers/{supplierId}/price-lists/{supplierPriceListId}--- Supplier price lists.GET …/units--- Measurement units.GET …/packagings--- Packagings.GET …/packaging-equivalences--- Packaging equivalences.
Responses use the same { success: true, data: … } shapes as the authenticated dashboard GET routes under /api/v1/projects/…/market/….
Further reading
- API keys and scopes:
../../../api/authentication{.interpreted-text role="doc"}