Skip to content

Backend API endpoints ​

This inventory lists active server-side route declarations in routes/api.php, enabled module API route files, and the related web and tenant route files. Route paths below include the source prefix such as /api; the host and deployment base path are not established by this source review. These are backend declarations, not proof that a particular deployed client calls each route. The separate frontend interface map records client-to-endpoint references. See backend request flow for the authentication, tenant, and side-effect details.

Middleware groups ​

The application RouteServiceProvider adds the /api prefix and api middleware to every route in routes/api.php. That middleware group applies throttle:api and route-model binding. POST /api/login is in the API group only. Every other route from routes/api.php is inside the declared auth:sanctum then TenantMiddleware group.

Each enabled module route provider uses the /api prefix and api middleware. Its API route file adds auth:api. The checked module endpoints return the authenticated user; however, config/auth.php declares only a web guard. Runtime resolution of the module routes' api guard is unverified, so treat those entries as registered source paths whose callable behavior needs runtime confirmation.

Controllers also push jobs to named queues such as processing, export, and export-product-files. The default connection in config/queue.php is sync, but QUEUE_CONNECTION may override it; the effective runtime value was not inspected. A push may therefore run inline before the response or return after deferring work to a worker. A queue name or controller message alone does not prove asynchronous execution or completion.

Application API routes ​

The declarations in this section come from routes/api.php. All rows except login use the protected API group described above. Purposes summarize the mapped controller actions; comments and commented-out route examples are excluded.

Authentication and translation ​

MethodEffective pathHandlerPurpose
POST/api/loginLoginController::loginValidate credentials and issue a Sanctum token.
POST/api/translateRoute closureTranslate supplied text for requested stores; caught exceptions return a failure payload without an explicit error status.

Catalog attributes and families ​

MethodEffective pathHandlerPurpose
GET/api/list-all-catalog-attributesCatalogAttributeController::listAllCatalogAttributesList product attributes with translation, filters, and optional pagination.
POST/api/list-all-catalog-attributesCatalogAttributeController::listAllCatalogAttributesSame listing action using a POST request body.
GET/api/get-attribute-optionsCatalogAttributeController::getAttributeOptionsList an attribute's localized options.
POST/api/getCodeAttrCatalogAttributeController::getCodeAttrResolve attribute code data.
POST/api/dataNameDescriptionProductCatalogProductController::dataNameDescriptionProductRead product name/description attribute data.
GET/api/list-all-catalog-attribute-groupsCatalogAttributeGroupController::listAllCatalogAttributesGroupList catalog attribute groups.
GET/api/get-option-Translate/{id}CatalogAttributeController::getOptionTranslateByIdRead an option translation by ID.
POST/api/edit-option-labelCatalogAttributeController::editOptionLabelChange an option label.
GET/api/all-type-attributesCatalogAttributeController::getAllTypeAttrList supported attribute types.
POST/api/list-AttributesCatalogAttributeController::listAttributesReturn the paginated/filterable attribute list used by the grid.
POST/api/save-attributeCatalogAttributeController::saveAttributesCreate/update an attribute and its translations, options, and family links; may push catalog sync work to the named export queue.
GET/api/get-attributes/{id}CatalogAttributeController::getAttributeByIdRead one attribute by ID.
GET/api/allAttributesCatalogAttributeController::listsAllAttributesList all attributes through the controller's all-attributes action.
POST/api/to-remove-attributeCatalogAttributeController::removeAttributeRemove an attribute through the controller's remove action.
GET/api/getAllFamilyForAttrCatalogFamilyController::getAllFamilyList families for attribute selection.
POST/api/familiesCatalogFamilyController::indexSearch/page through families and their grid-filter attributes.
GET/api/family/{id}CatalogFamilyController::showRead a family and its attributes, translations, and variants.
POST/api/family/{id}CatalogFamilyController::showSame family detail action using a POST request.
POST/api/save-familyCatalogFamilyController::saveFamilyCreate or update a family and related attribute/translation data.
POST/api/save-product-familiesCatalogFamilyController::saveProductFamiliesUpdate product-to-family associations.

Products, associations, and job status ​

MethodEffective pathHandlerPurpose
POST/api/list-all-productsCatalogProductController::listAllProductsRead the filtered product catalog through ProductQueryService.
GET/api/products/{product}/images/download-zipProductImageDownloadController::downloadZipAuthorize, collect existing product images, and stream a ZIP archive.
GET/api/products/{sku}/infoCatalogProductController::getProductInfoBySkuReturn selected raw product fields; the handler has explicit 403 and 404 branches.
POST/api/get-products-info-excelCatalogProductController::getProductsInfoExcelBuild a product information export.
POST/api/vimeo-stories/productsVimeoStoriesController::indexList product story records.
POST/api/vimeo-stories/syncVimeoStoriesController::syncRun the story synchronization action.
GET/api/vimeo-stories/products/{product}VimeoStoriesController::showRead story data for one product.
POST/api/vimeo-stories/products/{product}/videosVimeoStoriesController::saveVideoSave a video entry for one product.
GET/api/list-type-associationCatalogProductController::listTypeAssociationProductList active product-association types.
POST/api/bulk-update-productsCatalogProductController::bulkUpdateProductsPush a product attribute update to the named processing queue and notify the user; effective connection controls inline versus deferred execution.
POST/api/bulk-update-products-excelCatalogProductController::bulkUpdateProductsExcelPush a spreadsheet product update to the named processing queue and notify the user; effective connection controls inline versus deferred execution.
POST/api/bulk-update-products-namesCatalogProductController::bulkUpdateProductsNamesPush product name/description updates to the named processing queue and notify the user; effective connection controls inline versus deferred execution.
POST/api/check-for-locked-productsCatalogProductController::checkForLockedProductsCheck product lock state.
POST/api/lock-productsCatalogProductController::lockProductsApply product locks.
POST/api/unlock-productsCatalogProductController::unLockProductsRelease product locks.
POST/api/list-jobs-trackedJobsTrackedController::listAllTrackedJobsSearch/page through tracked jobs.
GET/api/job-tracked/{id}JobsTrackedController::getTrackedJobByIdRead a tracked job and its output.
GET/api/has-jobJobsTrackedController::hasJobCheck whether a tracked Excel product update is active.
POST/api/getListProductVersionCatalogProductController::listVersionByProductRead product version history.
POST/api/get-related-productCatalogProductController::getRelatedProductRead related products by association type.
POST/api/get-product-by-skuCatalogProductController::getProductBySkuRead a product by SKU.
POST/api/post-product-associationCatalogProductController::postProductAssociationCreate a product association.
POST/api/remove-product-associationCatalogProductController::removeProductAssociationByTypeRemove a product association by type.

Categories, locales, and channels ​

MethodEffective pathHandlerPurpose
GET/api/get-categoriesCatalogCategoryController::getCategoriesList categories with localized labels.
GET/api/get-categories-to-administrateCatalogCategoryController::getCategoriesToAdministrateBuild the category administration tree.
POST/api/update-categories-to-use-parent-categoryCatalogCategoryController::updateCategoriesToUseParentCategorySet the menu rows' parent-category flag.
POST/api/update-categories-to-stop-using-parent-categoryCatalogCategoryController::updateCategoriesToStopUsingParentCategoryClear the menu rows' parent-category flag.
POST/api/get-categories-menuCatalogCategoryController::getCategoriesMenuRead menu categories using the submitted level/store filters.
POST/api/add-new-categoryCatalogCategoryController::addNewCategoryDelegate category creation to the Shopify service under the mosaikasa tenant when present.
GET/api/update-shopify-menuCatalogCategoryController::updateShopifyMenuPush UpdateShopifyMenu to the named export queue; effective connection determines inline versus deferred execution.
GET/api/update-make-up-menuMakeUpCatalogCategoryController::updateMakeUpMenuRun makeup:update-menu inline with Artisan::call and return captured output without checking its exit code.
POST/api/update-parent-categoryCatalogCategoryController::updateParentCategoryDelegate parent-category changes to the Shopify service.
POST/api/update-category-nameCatalogCategoryController::updateCategoryNameDelegate category-name changes to the Shopify service.
GET/api/list-localesCatalogLocaleController::listAllLocalesList catalog locales.
GET/api/list-channels/{id}CatalogChannelController::listAllCatalogChannelsList localized channels for an ID.
GET/api/list-channels-staticCatalogChannelController::listAllCatalogChannelsStaticList channels from the controller's static listing action.

Users, notifications, and currencies ​

MethodEffective pathHandlerPurpose
GET/api/meUserController::meReturn the authenticated user.
POST/api/notificationsNotificationController::listNotificationsList notifications for the authenticated user and return an unread count.
POST/api/read-notificationNotificationController::readNotificationMark one of the authenticated user's notifications as read.
POST/api/list-all-usersUserController::listUsersSearch/page through users.
PUT/api/update-userUserController::updateUserUpdate a user.
POST/api/create-userUserController::creatNewUserCreate a user.
GET/api/get-user/{id}UserController::getUserBuyIdRead a user by ID.
PUT/api/change-passwordUserController::changePasswordUserChange a user's password.
POST/api/users/assign-attributesUserController::assignDefaultAttributesToUserAssign default attributes and positions to a user.
GET/api/users/assigned-attributesUserController::getDefaultAttributesAssignedToUserRead the current user's assigned default attributes.
POST/api/users/assign-attributes-without-positionUserController::assignDefaultAttributesToUserWithoutPositionAssign default attributes without positions.
GET/api/currenciesCatalogCurrencyController::indexList activated currencies.
POST/api/currenciesCatalogCurrencyController::storeRegistered by apiResource; no store method is present in this controller.
GET/api/currencies/{currency}CatalogCurrencyController::showRegistered by apiResource; no show method is present in this controller.
PUT, PATCH/api/currencies/{currency}CatalogCurrencyController::updateRegistered by apiResource; no update method is present in this controller.
DELETE/api/currencies/{currency}CatalogCurrencyController::destroyRegistered by apiResource; no destroy method is present in this controller.

The currency paths are generated by the active Route::apiResource declaration. The controller implements index() only; the other registered paths are not supported contracts in this source snapshot.

MethodEffective pathHandlerPurpose
GET/api/categories/{categoryId}/{storeId}/hierarchyMenuController::getCategoryHierarchyStoreRead a category hierarchy for a store.
GET/api/menu-treeMenuController::getFormattedMenuForTreeSelectReturn the formatted menu tree.
POST/api/menu/save-menu-itemMenuController::saveMenuItemSave menu-item details and optional image data.
GET/api/menu/get-attributesMenuController::getAttributeIdsRead attribute IDs used by menu configuration.
GET/api/menu/get-default-attribute-ids-to-showMenuController::getDefaultAttributeIdsToShowRead default category attributes.
GET/api/menu/export-menu-csvMenuController::exportMenuToCSVExport menu configuration as CSV.
POST/api/menu/save-menuMenuController::saveMenuPersist menu hierarchy/order, category attributes, metadata, and staged images.
POST/api/menu/upload-category-imageMenuController::uploadCategoryImageStage category images and return temporary paths.
POST/api/upload-imagesUploadProductImagesController::saveTmpImagesStage product images and return temporary paths.
POST/api/save-imagesUploadProductImagesController::saveImagesMove new staged images and update raw_values; removals clear references without deleting stored files. Caught failures return HTTP 200 JSON with success: false.
GET/api/menu/export-menu-jsonMenuController::exportMenuToJsonExport menu configuration as JSON.
POST/api/upload-fileUploadProductFileController::saveTmpFileStage product files and return temporary paths.
POST/api/save-filesUploadProductFileController::saveFilesMove new staged GIF/PDF files and update raw_values; removals clear references without deleting stored files, then push a CSV/FTP export job to the named queue.

Asir product-attribute mapping ​

These routes use AsirGroupProductAttributeController and share the protected API middleware group.

MethodEffective pathHandlerPurpose
GET/api/asir-product-attributesAsirGroupProductAttributeController::getAllAttributesList mapped attributes.
GET/api/asir-product-attributes/sync-progressAsirGroupProductAttributeController::getSyncProgressRead synchronization progress.
GET/api/asir-product-attributes/{attributeId}/attribute-familiesAsirGroupProductAttributeController::getAttributeFamiliesRead families linked to an attribute.
GET/api/asir-product-attributes/custom-asir-categoryAsirGroupProductAttributeController::getCustomAsirCategoryRead the custom Asir category.
GET/api/asir-product-attributes/{status}AsirGroupProductAttributeController::getAttributesByStatusFilter mapped attributes by status.
GET/api/asir-product-attributes/{attributeId}/sample-productAsirGroupProductAttributeController::getSampleProductDataByAttributeIdRead sample product data for an attribute.
GET/api/asir-product-attributes/{attributeId}/optionsAsirGroupProductAttributeController::getOptionsByAttributeRead options for an attribute.
POST/api/asir-product-attributesAsirGroupProductAttributeController::saveAttributeCreate a mapped attribute.
POST/api/asir-product-attribute-optionsAsirGroupProductAttributeController::saveAttributeOptionCreate an attribute option.
PUT/api/asir-product-attributesAsirGroupProductAttributeController::updateAttributesUpdate mapped attributes.
PUT/api/asir-product-attribute-optionsAsirGroupProductAttributeController::updateAttributeOptionsUpdate mapped attribute options.
PUT/api/asir-product-attribute-familiesAsirGroupProductAttributeController::updateAttributeFamiliesUpdate attribute-family links.
POST/api/asir-product-attributes/synchronizeAsirGroupProductAttributeController::synchronizeAsirAttributesStart the synchronization action.

Module API identity routes ​

The enabled module route providers prefix these routes with /api. Each source handler returns $request->user() and declares auth:api; the missing api guard configuration described above remains an unresolved runtime dependency.

MethodEffective pathModule sourcePurpose
GET/api/menzzoMenzzo routeReturn authenticated user.
GET/api/logidavLogidav routeReturn authenticated user.
GET/api/bigbuyBigbuy routeReturn authenticated user.
GET/api/vidaxlVidaxl routeReturn authenticated user.
GET/api/meublepromoMeublePromo routeReturn authenticated user.
GET/api/newshopifywebsiteMosaikasa routeReturn authenticated user.
GET/api/makeupMakeUp routeReturn authenticated user.
GET/api/merchantcenterMerchantCenter routeReturn authenticated user.

The two additional Vidaxl product/category route lines in that route file are comments and are excluded from this inventory. No active API routes were found in the enabled Ameubleo module because it has no module HTTP route provider.

Web and tenant routes ​

These declarations are outside the JSON API group. The application and module pages use the web middleware group; tenant / adds the domain-initialization and central-domain middleware. Source paths and handler scope are provided so callers do not mistake these pages for /api routes.

MethodEffective pathHandlerMiddleware and purpose
GET/routes/web.php closureweb; return the welcome view.
GET/img/{path}ImageController::showweb; serve or transform a stored image, falling back to the default image.
GET/google-oauth/get-responseGoogleAccessController::handleGoogleResponseweb; handle the Merchant Center OAuth response.
GET/menzzoMenzzoController::indexweb; Menzzo module landing page.
GET/logidavLogidavController::indexweb; Logidav module landing page.
GET/bigbuyBigbuyController::indexweb; Bigbuy module landing page.
GET/meublepromoMeublePromoController::indexweb; MeublePromo module landing page.
GET/makeupMakeUpController::indexweb; MakeUp module landing page.
GET/MosaikasaNewShopifyWebsiteController::indexweb; Mosaikasa module landing page.
GET/merchantcenterMerchantCenterController::indexweb; Merchant Center module landing page.
GET/routes/tenant.php closureweb, InitializeTenancyByDomain, PreventAccessFromCentralDomains; return a placeholder string containing the current tenant ID.

Both the app web file and tenant route file declare GET /. The source review does not resolve which registration wins in the running route collection. Module prefixes and their web middleware are declared in the respective module route providers.

Evidence limits ​

This inventory was checked against axelites/menzzo-meduse commit 5d3de6cb63b976aaeef739a8a7f288c4b46509ad. It is a static source inventory: no application boot, Artisan route listing, HTTP call, database, host, credential, or production access was performed. Middleware resolution, route ordering, deployed prefixes, client use, and endpoint responses remain unverified at runtime.

Internal developer documentation for Menzzo systems.