# Fusion API – Implemented Routes (from uploaded zip)

This list is generated by static inspection of `routes.php` plus controller/service code. Some endpoints pass arbitrary payloads to services; those may have incomplete parameter inference.

Total routes (non-OPTIONS): **140**


## AddonsController

- **GET** `/addons` → `[new AddonsController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## AnalyticsController

- **GET** `/analytics` → `[new AnalyticsController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/analytics/metrics` → `[new AnalyticsController(), 'getAnalyticsMetrics']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## ApprovalsController

- **PUT** `/approvals/{id}` → `[new ApprovalsController(), 'update']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/projects/{id}/approvals` → `[new ApprovalsController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/projects/{id}/approvals` → `[new ApprovalsController(), 'create']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## AuthController

- **POST** `/auth/login` → `[new AuthController(), 'login']`  
  Params: body: `email`, `password`  
  Response keys: _(varies / unknown)_
- **POST** `/auth/logout` → `[new AuthController(), 'logout']`  
  Params: _(no obvious params found)_  
  Response keys: `message`, `success`

## CMSController

- **GET** `/cms/menus` → `[new CMSController(), 'menus']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/cms/pages` → `[new CMSController(), 'pages']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/cms/pages/{slug}` → `[new CMSController(), 'page']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/v1/cms/portfolio` → `[new CMSController(), 'portfolio']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/v1/cms/posts` → `[new CMSController(), 'posts']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## CRMController

- **GET** `/crm/dashboard` → `[new CRMController(), 'dashboard']`  
  Params: _(no obvious params found)_  
  Response keys: `data`, `success`

## CampaignController

- **POST** `/campaigns` → `[new CampaignController(), 'createCampaign']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/campaigns/metrics` → `[new CampaignController(), 'getCampaignMetrics']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **DELETE** `/campaigns/{id}` → `[new CampaignController(), 'deleteCampaign']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/campaigns/{id}` → `[new CampaignController(), 'getCampaign']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **PUT** `/campaigns/{id}` → `[new CampaignController(), 'updateCampaign']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## CheckoutController

- **POST** `/v1/checkout/start` → `[new CheckoutController(), 'start']`  
  Params: body: `basket`  
  Response keys: _(varies / unknown)_

## ClientController

- **GET** `/client/profile/{id}` → `[new ClientController(), 'getClientProfile']`  
  Params: _(no obvious params found)_  
  Response keys: `profile`, `success`
- **GET** `/clients` → `[new ClientController(), 'getClients']`  
  Params: _(no obvious params found)_  
  Response keys: `clients`, `success`
- **POST** `/clients` → `[new ClientController(), 'createClient']`  
  Params: body: `email`, `name`, `phone`  
  Response keys: `success`
- **PUT** `/clients/archive/{id}` → `[new ClientController(), 'archiveClient']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **GET** `/clients/projects/{id}` → `[new ClientController(), 'getClientProjects']`  
  Params: _(no obvious params found)_  
  Response keys: `projects`, `success`
- **DELETE** `/clients/{id}` → `[new ClientController(), 'deleteClient']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **GET** `/clients/{id}` → `[new ClientController(), 'getClient']`  
  Params: _(no obvious params found)_  
  Response keys: `client`, `success`
- **PUT** `/clients/{id}` → `[new ClientController(), 'updateClient']`  
  Params: _(no obvious params found)_  
  Response keys: `success`

## DashboardController

- **GET** `/dashboard` → `[new DashboardController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## DomainsController

- **GET** `/domains` → `[new DomainsController(), 'getAll']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/domains/check` → `[new DomainsController(), 'check']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/domains/register` → `[new DomainsController(), 'register']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/domains/renew` → `[new DomainsController(), 'renew']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/domains/{id}/contacts` → `[new DomainsController(), 'updateContacts']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/domains/{id}/dns` → `[new DomainsController(), 'updateDNS']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## HostingController

- **GET** `/hosting/accounts` → `[new HostingController(), 'getAccounts']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/hosting/create` → `[new HostingController(), 'create']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/hosting/{id}` → `[new HostingController(), 'getAccount']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/hosting/{id}/mailbox` → `[new HostingController(), 'addMailbox']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **DELETE** `/hosting/{id}/mailbox/{mail_id}` → `[new HostingController(), 'deleteMailbox']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## InvoiceController

- **GET** `/invoices` → `[new InvoiceController(), 'getInvoices']`  
  Params: _(no obvious params found)_  
  Response keys: `invoices`, `success`
- **POST** `/invoices` → `[new InvoiceController(), 'createInvoice']`  
  Params: body: `amount`, `client_id`, `status`  
  Response keys: `success`
- **DELETE** `/invoices/{id}` → `[new InvoiceController(), 'deleteInvoice']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **GET** `/invoices/{id}` → `[new InvoiceController(), 'getInvoice']`  
  Params: _(no obvious params found)_  
  Response keys: `invoice`, `success`
- **PUT** `/invoices/{id}` → `[new InvoiceController(), 'updateInvoice']`  
  Params: _(no obvious params found)_  
  Response keys: `success`

## LeadController

- **GET** `/crm/leads` → `[new LeadController(), 'getLeads']`  
  Params: _(no obvious params found)_  
  Response keys: `leads`, `success`
- **POST** `/crm/leads` → `[new LeadController(), 'createLead']`  
  Params: body: `email`, `name`, `phone`, `status`  
  Response keys: `success`
- **DELETE** `/crm/leads/{id}` → `[new LeadController(), 'deleteLead']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **GET** `/crm/leads/{id}` → `[new LeadController(), 'getLead']`  
  Params: _(no obvious params found)_  
  Response keys: `lead`, `success`
- **PUT** `/crm/leads/{id}` → `[new LeadController(), 'updateLead']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **POST** `/leads/convert/{id}` → `[new LeadController(), 'convertLead']`  
  Params: _(no obvious params found)_  
  Response keys: `success`

## MessagesController

- **GET** `/projects/{id}/messages` → `[new MessagesController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/projects/{id}/messages` → `[new MessagesController(), 'create']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## OrdersController

- **GET** `/orders` → `[new OrdersController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/orders` → `[new OrdersController(),   'create']`  
  Params: body: `items`, `user_id`  
  Response keys: _(varies / unknown)_
- **POST** `/orders` → `[new OrdersController(), 'create']`  
  Params: body: `items`, `user_id`  
  Response keys: _(varies / unknown)_
- **DELETE** `/orders/{id}` → `[new OrdersController(), 'delete']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/orders/{id}` → `[new OrdersController(), 'get']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **PUT** `/orders/{id}` → `[new OrdersController(), 'update']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## PackageController

- **GET** `/v1/catalog/bundles` → `[new PackageController(), 'getPackages']`  
  Params: _(no obvious params found)_  
  Response keys: `packages`, `success`
- **GET** `/v1/catalog/bundles/{id}` → `[new PackageController(), 'getPackage']`  
  Params: _(no obvious params found)_  
  Response keys: `package`, `success`

## PaymentController

- **GET** `/payments` → `[new PaymentController(), 'getPayments']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/payments` → `[new PaymentController(), 'createPayment']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/payments/initiate` → `[new PaymentController(), 'initiate']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/payments/provider/{quote_id:[A-Za-z0-9_-]+}` → `[new PaymentController(), 'suggestProvider']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/payments/quote/{quote_id:[A-Za-z0-9_-]+}` → `[new PaymentController(), 'getQuote']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/payments/status` → `[new PaymentController(), 'statusQuery']`  
  Params: body: `quote_id`  
  Response keys: _(varies / unknown)_
- **GET** `/payments/status/{quote_id:[A-Za-z0-9_-]+}` → `[new PaymentController(), 'status']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/payments/webhook` → `[new PaymentController(), 'webhook']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **DELETE** `/payments/{id:[A-Za-z0-9_-]+}` → `[new PaymentController(), 'deletePayment']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/payments/{id:[A-Za-z0-9_-]+}` → `[new PaymentController(), 'getPayment']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **PUT** `/payments/{id:[A-Za-z0-9_-]+}` → `[new PaymentController(), 'updatePayment']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/quotes/status/{quote_id:[A-Za-z0-9_-]+}` → `[new PaymentController(), 'status']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/status/quote/{quote_id:[A-Za-z0-9_-]+}` → `[new PaymentController(), 'status']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## PortalUsersController

- **GET** `/portal-users` → `[new PortalUsersController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/portal-users` → `[new PortalUsersController(), 'create']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **DELETE** `/portal-users/{id}` → `[new PortalUsersController(), 'delete']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## ProductsController

- **GET** `/products` → `[new ProductsController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/products` → `[new ProductsController(), 'create']`  
  Params: body: `items`, `user_id`  
  Response keys: _(varies / unknown)_
- **DELETE** `/products/{id}` → `[new ProductsController(), 'delete']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/products/{id}` → `[new ProductsController(), 'get']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **PUT** `/products/{id}` → `[new ProductsController(), 'update']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/v1/catalog/products` → `[new ProductsController(), 'getProducts']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/v1/catalog/products` → `[new ProductsController(), 'getProducts']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/v1/catalog/products/{id}` → `[new ProductsController(), 'getProduct']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/v1/catalog/products/{id}` → `[new ProductsController(), 'getProduct']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## ProjectController

- **GET** `/projects` → `[new ProjectController(), 'getProjects']`  
  Params: _(no obvious params found)_  
  Response keys: `projects`, `success`
- **POST** `/projects` → `[new ProjectController(), 'createProject']`  
  Params: body: `client_id`, `name`, `status`  
  Response keys: `success`
- **GET** `/projects/tasks/{projectid}` → `[new ProjectController(), 'getTasksByProject']`  
  Params: _(no obvious params found)_  
  Response keys: `success`, `tasks`
- **DELETE** `/projects/{id}` → `[new ProjectController(), 'deleteProject']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **GET** `/projects/{id}` → `[new ProjectController(), 'getProject']`  
  Params: _(no obvious params found)_  
  Response keys: `project`, `success`
- **PUT** `/projects/{id}` → `[new ProjectController(), 'updateProject']`  
  Params: _(no obvious params found)_  
  Response keys: `success`

## RequirementsController

- **GET** `/projects/{id}/requirements` → `[new RequirementsController(), 'getByProject']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/projects/{id}/requirements` → `[new RequirementsController(), 'submit']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## SearchController

- **GET** `/search` → `[new SearchController(), 'search']`  
  Params: query: `query`  
  Response keys: `results`, `success`

## SocialMediaController

- **POST** `/social_media/add_page` → `[new SocialMediaController(), 'addPage']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **GET** `/social_media/analytics` → `[new SocialMediaController(), 'analytics']`  
  Params: query: `client_id`  
  Response keys: `data`, `success`
- **GET** `/social_media/best_posts` → `[new SocialMediaController(), 'getBestPosts']`  
  Params: query: `client_id`  
  Response keys: `data`, `success`
- **GET** `/social_media/calendar` → `[new SocialMediaController(), 'calendar']`  
  Params: query: `client_id`  
  Response keys: `data`, `success`
- **POST** `/social_media/campaigns` → `[new SocialMediaController(), 'createCampaign']`  
  Params: body: `client_id`, `details`, `name`  
  Response keys: `success`
- **GET** `/social_media/comments` → `[new SocialMediaController(), 'getComments']`  
  Params: query: `client_id`  
  Response keys: `data`, `success`
- **GET** `/social_media/dashboard` → `[new SocialMediaController(), 'dashboard']`  
  Params: query: `client_id`  
  Response keys: `data`, `success`
- **PUT** `/social_media/edit_page/{id}` → `[new SocialMediaController(), 'editPage']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **GET** `/social_media/library` → `[new SocialMediaController(), 'library']`  
  Params: query: `client_id`  
  Response keys: `data`, `success`
- **POST** `/social_media/posts` → `[new SocialMediaController(), 'schedulePost']`  
  Params: body: `client_id`, `content`, `platform`, `scheduled_time`, `user_id`  
  Response keys: `success`

## SubscriptionsController

- **GET** `/subscriptions` → `[new SubscriptionsController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/subscriptions` → `[new SubscriptionsController(), 'create']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **DELETE** `/subscriptions/{id}` → `[new SubscriptionsController(), 'delete']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **PUT** `/subscriptions/{id}` → `[new SubscriptionsController(), 'update']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## SupplierController

- **GET** `/suppliers` → `[new SupplierController(), 'getSuppliers']`  
  Params: _(no obvious params found)_  
  Response keys: `success`, `suppliers`
- **POST** `/suppliers` → `[new SupplierController(), 'createSupplier']`  
  Params: body: `address`, `company_name`, `email`, `name`, `phone`  
  Response keys: `message`, `success`
- **DELETE** `/suppliers/{id}` → `[new SupplierController(), 'deleteSupplier']`  
  Params: _(no obvious params found)_  
  Response keys: `message`, `success`
- **GET** `/suppliers/{id}` → `[new SupplierController(), 'getSupplier']`  
  Params: _(no obvious params found)_  
  Response keys: `message`, `success`, `supplier`
- **PUT** `/suppliers/{id}` → `[new SupplierController(), 'updateSupplier']`  
  Params: body: `address`, `company_name`, `email`, `name`, `phone`  
  Response keys: `message`, `success`

## SupportController

- **GET** `/support/tickets` → `[new SupportController(), 'index']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/support/tickets` → `[new SupportController(), 'create']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/support/tickets/{id}/reply` → `[new SupportController(), 'reply']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## TaskController

- **GET** `/tasks` → `[new TaskController(), 'getTasks']`  
  Params: _(no obvious params found)_  
  Response keys: `success`, `tasks`
- **POST** `/tasks` → `[new TaskController(), 'createTask']`  
  Params: body: `name`, `project_id`, `status`  
  Response keys: `success`
- **PUT** `/tasks/assign/{id}` → `[new TaskController(), 'assignTask']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **DELETE** `/tasks/{id}` → `[new TaskController(), 'deleteTask']`  
  Params: _(no obvious params found)_  
  Response keys: `success`
- **GET** `/tasks/{id}` → `[new TaskController(), 'getTask']`  
  Params: _(no obvious params found)_  
  Response keys: `success`, `task`
- **PUT** `/tasks/{id}` → `[new TaskController(), 'updateTask']`  
  Params: _(no obvious params found)_  
  Response keys: `success`

## TimelineController

- **GET** `/projects/{id}/timeline` → `[new TimelineController(), 'get']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## UserController

- **GET** `/users` → `[new UserController(), 'getUsers']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## VoipController

- **POST** `/voip/buy` → `[new VoipController(), 'buy']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/voip/numbers` → `[new VoipController(), 'getNumbers']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/voip/{id}/logs` → `[new VoipController(), 'getCallLogs']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/voip/{id}/routing` → `[new VoipController(), 'updateRouting']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/voip/{id}/voicemail` → `[new VoipController(), 'setVoicemail']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## WebsiteController

- **POST** `/website/checkout/pay` → `[new WebsiteController(), 'createPayment']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/website/checkout/start` → `[new WebsiteController(), 'startCheckout']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_

## misc

- **POST** `/contracts/sign` → `[new \Fusion\Controllers\ContractsController(), 'signContract']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/contracts/status/{id}` → `[new \Fusion\Controllers\ContractsController(), 'getStatus']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/contracts/{id}` → `[new \Fusion\Controllers\ContractsController(), 'getContract']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/duoservers/domain/check` → `[$duoController, 'checkDomain']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/duoservers/domain/check` → `[$duoController, 'checkDomain']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **PUT** `/duoservers/domain/details` → `[$duoController, 'getDomainDetails']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **GET** `/duoservers/domain/list` → `[$duoController, 'listDomains']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_
- **POST** `/duoservers/domain/register` → `[$duoController, 'registerDomain']`  
  Params: _(no obvious params found)_  
  Response keys: _(varies / unknown)_