Skip to main content
Version: 3.0.1

API Reference

Document Type: Reference (Tier 3) Status: Draft Last Updated: 2026-01-25


1. Overview

This document catalogs all HTTP endpoints exposed by the PCR Analysis System. Endpoints are organized by functional area to support quick lookup during development and debugging.

Base URL: /api (for API routes) or / (for web routes)

Authentication: Most API routes require Bearer token authentication (auth:api middleware). Some routes have additional user-type restrictions.


2. Authentication Requirements

MiddlewareDescriptionUser Types
auth:apiRequires valid API tokenAll authenticated users
user-type:MANAGER,SUPER_ADMINAdministrative functionsManager, Super Admin
user-type:CLIENT_ADMIN,MANAGER,SUPER_ADMINUser managementClient Admin, Manager, Super Admin
user-type:SENIOR,MANAGER,SUPER_ADMINSenior-level operationsSenior, Manager, Super Admin
user-type:JUNIOR,SENIOR,MANAGER,SUPER_ADMINStandard operationsAll logged-in users
(none)Public routesUnauthenticated

3. Web Routes (Authentication)

These routes handle user authentication and session management.

MethodPathControllerPurpose
GET/loginLoginController@showLoginFormDisplay login form
GET/login/adminLoginController@showLoginFormAdmin login form
POST/loginLoginController@loginProcess login
POST/logoutLoginController@logoutEnd session
GET/change-passwordChangePasswordController@indexPassword change form
POST/change-passwordChangePasswordController@confirmConfirm password change
GET/reset-passwordResetPasswordController@indexPassword reset form
POST/reset-password/confirmResetPasswordController@confirmConfirm reset
POST/reset-password/requestResetPasswordController@requestRequest reset email
GET/mfa-setupMfaController@showMFA setup page
POST/verify-software-tokenMfaController@verifySoftwareTokenVerify TOTP token
POST/verify-mfaMfaController@verifyMfaVerify MFA code
GET/login/samlSamlLoginController@redirectSAML redirect
GET/login/samlcallbackSamlLoginController@callbackSAML callback
POST/login/samlloginSamlLoginController@loginSAML login
GET/login/samlerrorSamlLoginController@errorSAML error page
GET/maintenanceMaintenanceViewControllerMaintenance page
GET/too-many-requestsTooManyRequestsViewControllerRate limit page
GET/unauthorizedUnauthorizedViewContollerUnauthorized page
GET/files/downloadFileDownloadControllerFile download
ANY/{any}SpaControllerSPA catch-all (auth required)

4. Public API Routes

These routes do not require authentication.

MethodPathControllerPurpose
POST/api/sentry/transferClientAppSentryReplayTransferController@transferTransfer Sentry replay data
GET/api/database/statusCheckDatabaseStatusController@showDatabase health check
POST/api/unset-modifying-userRunModifyingUsersController@unsetModifyingUserClear modifying user lock

5. Authenticated User Endpoints

5.1 Current User (Me)

MethodPathControllerPurpose
GET/api/meAuthUserController@showGet current user profile
PUT/api/meAuthUserController@updateUpdate current user
GET/api/me/visible-sitesVisibleSitesController@indexList visible sites
PATCH/api/me/logged-in-siteChangeLoggedInSiteControllerChange active site (Manager+)

5.2 Notifications

MethodPathControllerPurpose
GET/api/paginate-notificationsPaginateNotificationsController@indexList notifications (paginated)
GET/api/unread-notificationsUnreadNotificationsCountController@indexUnread notification count
GET/api/trend-report-alert-idsGetTrendsReportAlertIdsControllerGet trend alert IDs
PUT/api/notificationsNotificationsController@updateUpdate notification settings
POST/api/notifications/{id}/mark-as-readReadNotificationsController@storeMark as read
POST/api/notifications/{id}/mark-as-unreadReadNotificationsController@destroyMark as unread

6. Run Management

6.1 Runs (Core)

Auth Required: Junior+ for read, Manager+ for create/delete

MethodPathControllerPurpose
GET/api/runsRunsController@indexList runs
GET/api/runs/{run}RunsController@showGet run details
GET/api/runs-for-print/{run}RunsController@printPreviewPrint preview data
PUT/api/runs/{run}RunsController@updateUpdate run
POST/api/runsRunsController@storeCreate run (Manager+)
DELETE/api/runsRunsController@destroyDelete runs (Manager+)

6.2 Run Files

MethodPathControllerPurpose
POST/api/run-filesRunFilesController@storeUpload run file
DELETE/api/run-files/{id}RunFilesController@destroyDelete run file
DELETE/api/failed-run-files/{id}FailedRunFilesController@destroyDelete failed file
GET/api/run-file-import-progressesRunFileImportProgressesController@indexImport progress
DELETE/api/imported-run-file-import-progressesImportedRunFileImportProgressesController@destroyClear imported

6.3 Run Modifying Users (Locking)

MethodPathControllerPurpose
GET/api/run/{run}/modifying-usersRunModifyingUsersController@showGet lock holder
POST/api/run/{run}/modifying-usersRunModifyingUsersController@storeAcquire lock
DELETE/api/run/{run}/modifying-usersRunModifyingUsersController@destroyRelease lock

6.4 Run Analysis Progress

MethodPathControllerPurpose
GET/api/runs/{runId}/analyse-progressRunAnalyseProgresesController@indexAnalysis progress

6.5 Run Filter Options

MethodPathControllerPurpose
GET/api/runs/filters/mixesRunFilterOptionMixesController@indexFilter by mix
GET/api/runs/filters/tagsRunFilterOptionTagsController@indexFilter by tag
GET/api/runs/filters/usersRunFilterOptionUsersController@indexFilter by user
GET/api/runs/filters/combined-run-statusesRunFilterOptionCombinedRunStatusesController@indexFilter by status
GET/api/runs/filters/resolution-pending-statusesRunFilterOptionResolutionPendingStatusesController@indexResolution status filter
GET/api/runs/filters/created-atRunFilterOptionCreatedAtRangeController@indexCreated date range
GET/api/runs/filters/updated-atRunFilterOptionUpdatedAtRangeController@indexUpdated date range
GET/api/runs/filters/sitesRunFilterOptionSitesController@indexFilter by site
GET/api/runs/has-site-visibilityRunSitePermissionCheckController@checkCheck site visibility

6.6 Run Tags

MethodPathControllerPurpose
POST/api/run-tagsRunTagsController@storeAdd tag to run

6.7 Run Comments

MethodPathControllerPurpose
POST/api/runs/{run}/commentsRunCommentsController@storeAdd comment
PUT/api/runs/{run}/comments/{comment}RunCommentsController@updateUpdate comment
DELETE/api/runs/{run}/comments/{comment}RunCommentsController@destroyDelete comment

7. Run Resolution

7.1 Resolution Actions

MethodPathControllerPurpose
POST/api/resolved-runsResolvedRunsController@storeMark run resolved
POST/api/run-resolution-proposalsRunResolutionProposalsController@storePropose resolution
POST/api/run-resolution-confirmationsRunResolutionConfirmationsController@storeConfirm resolution
POST/api/run-resolution-rejectionsRunResolutionRejectionsController@storeReject resolution
POST/api/runs/resolution/role-to-target-mappingsRunResolutionRoleToTargetMappingsController@indexTarget mappings

7.2 Resolution Configuration

MethodPathControllerPurpose
GET/api/run-resolution-statusesRunResolutionStatusesController@indexList statuses
GET/api/resolution-codesResolutionCodesController@indexList codes
POST/api/resolution-codesResolutionCodesController@storeCreate code
PUT/api/resolution-codesResolutionCodesController@updateUpdate code
DELETE/api/resolution-codes/{code}ResolutionCodesController@destroyDelete code
PUT/api/resolution-codes/{code}/disableResolutionCodesDisableControllerDisable code
PUT/api/resolution-codes/{code}/enableResolutionCodesEnableControllerEnable code
GET/api/resolution-levelsResolutionLevelsController@indexList levels
GET/api/resolution-messagesResolutionMessagesController@indexList messages

8. Wells

8.1 Well Data

MethodPathControllerPurpose
PUT/api/wells/{well}WellsController@updateUpdate well
GET/api/wells/{well}/historyWellHistoryController@showWell history
POST/api/well-outcomesWellOutcomesController@indexPatient outcomes

8.2 Well Comments

MethodPathControllerPurpose
POST/api/wells/commentsWellCommentsController@storeAdd comment
PUT/api/wells/{well}/comments/{comment}WellCommentsController@updateUpdate comment
DELETE/api/wells/{well}/comments/{comment}WellCommentsController@destroyDelete comment

8.3 Control Observations

MethodPathControllerPurpose
GET/api/control-observations/{id}GetControlObservationsController@indexGet observations
GET/api/observationsObservationsController@indexList observations
GET/api/observations/{observation}ObservationsController@showGet observation
POST/api/get-observationsObservationsController@indexQuery observations

9. Kit Configuration

9.1 Kits

MethodPathControllerPurpose
GET/api/kitsKitsController@indexList kits
PUT/api/kitsKitsController@updateUpdate kit

9.2 Rules

MethodPathControllerPurpose
GET/api/rulesRulesController@indexList rules
PUT/api/rulesRulesController@updateUpdate rules

9.3 Mixes

MethodPathControllerPurpose
GET/api/mixesMixesController@indexList mixes
PUT/api/mixesMixesController@updateUpdate mix
GET/api/mix-to-role-mappingsMixToRoleMappingsController@indexMix-role mappings

9.4 Targets

MethodPathControllerPurpose
GET/api/targetsTargetsController@indexList targets
PUT/api/targets/{target}TargetsController@updateUpdate target (Manager+)
GET/api/run-targetRunTargetsController@showGet run target

9.5 Roles and Specimens

MethodPathControllerPurpose
GET/api/rolesRolesController@indexList roles
GET/api/specimensSpecimensController@indexList specimens
GET/api/specimen-to-mix-mappingsSpecimenToMixMappingsController@indexSpecimen mappings
POST/api/specimen-to-mix-mappingsSpecimenToMixMappingsController@storeCreate mapping
PUT/api/specimen-to-mix-mappingsSpecimenToMixMappingsController@updateUpdate mapping
GET/api/role-to-mix-mappingsRoleToMixMappingsController@indexRole-mix mappings
POST/api/role-alias-to-roleRoleAliasToRoleControllerMap role alias (Manager+)
GET/api/role-typesRoleTypesController@indexList role types (Manager+)

9.6 Configuration Export/Import

MethodPathControllerPurpose
POST/api/config-dataConfigDataController@storeImport config (Manager+)
DELETE/api/config-dataConfigDataController@destroyClear config (Manager+)
GET/api/kit-configurations/downloadKitConfigurationsExportController@downloadExport kit config
GET/api/customer-friendly-kit-configurations/downloadCustomerFriendlyKitConfigurationsExportController@downloadFriendly export
GET/api/mix-exports/downloadMixExportController@downloadExport mixes

9.7 Mix Clone (v3.0.1)

MethodPathControllerPurpose
POST/api/clone-mixMixCloneController@__invokeClone mix configuration from enabled mix to unknown mix (Manager+)

Request body:

FieldTypeRequiredDescription
original_mix_idUUIDYesSource (enabled) mix ID
unknown_mix_idUUIDYesDestination (unmapped) mix ID
control_labelsArrayYesPer-role control label aliases
mix_nameStringYesName for the cloned mix
is_clone_westgard_limitsBooleanYesClone Westgard/QC limits
is_clone_combined_outcomesBooleanYesClone combined outcome mappings

Response: 200 OK on success (mix cloned). 422 on validation failure.


10. Error and Outcome Configuration

10.1 Error Codes

MethodPathControllerPurpose
GET/api/error-codesErrorCodesController@indexList error codes
POST/api/error-codesErrorCodesController@storeCreate code
PUT/api/error-codesErrorCodesController@updateUpdate codes
GET/api/error-typesErrorTypesController@indexList types
GET/api/error-levelsErrorLevelsController@indexList levels
GET/api/action-codesActionCodesController@indexList action codes

10.2 LIMS Status Mapping

MethodPathControllerPurpose
GET/api/lims-statusesLimsStatusesController@indexList LIMS statuses
POST/api/lims-statusesLimsStatusesController@storeCreate status
PUT/api/lims-statusesLimsStatusesController@updateUpdate status
GET/api/lims-status-typesLimsStatusTypesController@indexList types
GET/api/outcome-to-lims-status-mappingOutcomeToLimsStatusMappingsController@indexList mappings (Manager+)
POST/api/outcome-to-lims-status-mappingOutcomeToLimsStatusMappingsController@storeCreate mapping (Manager+)
PUT/api/outcome-to-lims-status-mappingOutcomeToLimsStatusMappingsController@updateUpdate mapping (Manager+)
DELETE/api/outcome-to-lims-status-mapping/{id}OutcomeToLimsStatusMappingsController@destroyDelete mapping (Manager+)

10.3 Combined Outcomes Support

MethodPathControllerPurpose
GET/api/outcome-to-lims-status-mapping/specimensCombinedOutcomesSpecimensController@indexList specimens (Manager+)
GET/api/outcome-to-lims-status-mapping/supported-error-codesCombinedOutcomesSupportedErrorCodesController@indexSupported codes (Manager+)
GET/api/outcome-to-lims-status-mapping/supported-lims-statusesCombinedOutcomesSupportedLimsStatusesController@indexSupported statuses (Manager+)
GET/api/outcome-to-lims-status-mapping/kitsCombinedOutcomesKitsController@indexKits for mapping (Manager+)

11. QC Configuration

11.1 Westgard Settings

MethodPathControllerPurpose
GET/api/westgard-settingsWestgardSettingsController@indexList settings
PUT/api/westgard-settingsWestgardSettingsController@updateUpdate settings
GET/api/westgard-settings/is-used-in-wellsWestgardSettingIsUsedInWellsControllerCheck usage

11.2 Westgard Limits (Senior+)

MethodPathControllerPurpose
GET/api/westgard-limitsWestgardLimitsController@indexList limits
POST/api/westgard-limitsWestgardLimitsController@storeCreate limit
PUT/api/westgard-limitsWestgardLimitsController@updateUpdate limit
POST/api/bulk-westgard-limitsBulkWestgardLimitsController@storeBulk create

11.3 Control Labels

MethodPathControllerPurpose
GET/api/control-labelsControlLabelsController@indexList labels
PUT/api/control-labelsControlLabelsController@updateUpdate labels
GET/api/control-labels-exports/downloadControlLabelsExportController@downloadExport labels

11.4 Control Range Settings

MethodPathControllerPurpose
GET/api/control-range-settingsControlRangeSettingsController@indexList settings
POST/api/control-range-settingsControlRangeSettingsController@storeCreate setting
PUT/api/control-range-settingsControlRangeSettingsController@updateUpdate setting
GET/api/min-controlsGetMinControlsControllerGet minimum controls

11.5 Known Quantities (Manager+)

MethodPathControllerPurpose
GET/api/known-quantitiesKnownQuantitiesController@indexList quantities
POST/api/known-quantitiesKnownQuantitiesController@storeCreate quantity
PUT/api/known-quantitiesKnownQuantitiesController@updateUpdate quantity

12. Instruments

12.1 Thermocyclers

MethodPathControllerPurpose
GET/api/thermocyclersThermocyclersController@indexList thermocyclers
GET/api/thermocycler-modelsThermocyclerModelsController@indexList models
POST/api/thermocycler-modelsThermocyclerModelsController@storeCreate model
PUT/api/thermocycler-modelsThermocyclerModelsController@updateUpdate model
GET/api/thermocycler-model-exports/downloadThermocyclerModelExportsController@downloadExport models

12.2 Extraction Instruments

MethodPathControllerPurpose
GET/api/extraction-instrumentsExtractionInstrumentsController@indexList instruments
GET/api/extraction-modelsExtractionModelsController@indexList models
POST/api/extraction-modelsExtractionModelsController@storeCreate model
PUT/api/extraction-modelsExtractionModelsController@updateUpdate model
GET/api/extraction-model-exports/downloadExtractionModelExportsController@downloadExport models

13. Assay Calibration (Manager+)

MethodPathControllerPurpose
GET/api/calibrateable-runsAssayCalibrateableRunsController@indexList calibrateable runs
POST/api/calibrateable-runsAssayCalibrateableRunsController@storeStart calibration
GET/api/calibrated-runsAssayCalibratedRunsController@indexList calibrated runs
GET/api/calibration-target/{id}CalibrationTargetsController@showGet target calibration
GET/api/assay-calibration-processesAssayCalibrationProcessesController@indexList processes
POST/api/targets/{target}/calibration-filesTargetCalibrationFilesController@storeUpload calibration file
DELETE/api/targets/{target}/calibration-filesTargetCalibrationFilesController@destroyDelete file
PUT/api/targets/{target}/prepend-fake-cycles-countTargetCalibrationFilesController@updatePrependFakeCyclesCountUpdate cycles

14. Reports

14.1 Run Result Export

MethodPathControllerPurpose
GET/api/run-result-exports/{run}/downloadRunResultExportsController@downloadDownload results
POST/api/run-result-exports/{run}RunResultExportsController@storeGenerate export

14.2 Outcomes Report

MethodPathControllerPurpose
POST/api/outcomes-reportOutcomesReportController@indexGenerate report
POST/api/outcomes-report-printOutcomesReportPrintRequestDataController@storeRequest print
GET/api/outcomes-report-print/{id}OutcomesReportPrintController@indexGet print data
POST/api/outcomes-report/downloadOutcomesReportExportController@downloadDownload report

14.3 LJ Report (Levey-Jennings)

MethodPathControllerPurpose
GET/api/run-lj-reports/{run}RunLJReportsController@indexRun LJ data
GET/api/lj-reportLJReportController@showLJ report data
GET/api/lj-report/downloadLJReportDownloadControllerDownload LJ report
GET/api/lj-report-lotsLJReportLotsController@indexLJ report lots
GET/api/lj-report/extraction-modelsLJReportExtractionModelsController@indexLJ extraction models
GET/api/lj-report/extraction-instrumentsLJReportExtractionInstrumentsController@indexLJ instruments
POST/api/extraction-instruments/load-last-extraction-dateLoadLastExtractionDateController@indexLoad last date

14.4 Report Filters

MethodPathControllerPurpose
GET/api/reports/filters/mixesReportFiltersMixesController@indexMix filter options
GET/api/reports/filters/targetsReportFiltersTargetsController@indexTarget filter options
GET/api/reports/filters/thermocyclersReportFiltersThermocyclersController@indexThermocycler options
GET/api/reports/filters/role-to-mix-mappingsReportFiltersRoleToMixMappingsController@indexRole-mix mappings

14.5 Reportings Configuration

MethodPathControllerPurpose
GET/api/reportingsReportingsController@indexList reportings
PUT/api/reportingsReportingsController@updateUpdate reporting
GET/api/reporting-groupsReportingGroupsController@indexList groups

MethodPathControllerPurpose
POST/api/trends-report/outcomesTrendsReportOutcomesController@indexOutcomes data
GET/api/trends-report/thermocyclersTrendsReportThermocyclersController@indexThermocycler data
GET/api/trends-report/mixesTrendsReportMixesController@indexMix data
GET/api/trends-report/date-rangeTrendsReportDateRangeController@indexDate range
GET/api/trends-report/control-sample-namesTrendsReportControlSampleNamesController@indexSample names
POST/api/trends-report/trends-seriesTrendsReportTrendsController@indexTrends series
POST/api/trends-report/alerts-seriesTrendsReportTrendsAlertController@indexAlert series
GET/api/trends-report/first-site-lab-timezoneTrendsReportFirstSiteLabTimezoneController@indexSite timezone
MethodPathControllerPurpose
GET/api/trends-report/alert-table-all-mixesAlertTableMixController@indexAll mixes
GET/api/trends-report/alert-table-all-control-sample-namesAlertTableControlSampleNamesController@indexSample names
GET/api/trends-report/alert-table-all-outcomesAlertTableOutcomesController@indexAll outcomes
GET/api/trends-report/alert-table-all-thermocyclersAlertTableThermocyclersController@indexAll thermocyclers
MethodPathControllerPurpose
GET/api/trends-report-alertsTrendsReportAlertsController@indexList alerts
POST/api/get-trends-report-alertsTrendsReportAlertsController@indexQuery alerts
POST/api/trends-report-alertsTrendsReportAlertsController@storeCreate alert
PUT/api/trends-report-alerts/{alert}TrendsReportAlertsController@updateUpdate alert
DELETE/api/trends-report-alerts/{alert}TrendsReportAlertsController@destroyDelete alert
POST/api/trends-report-alerts/{alert}/disableTrendsReportAlertDisableController@disableDisable alert
POST/api/trends-report-alerts/{alert}/enableTrendsReportAlertEnableController@enableEnable alert
GET/api/trends-report-alerts-availabilityTrendsReportAlertsAvailabilityController@indexAlert availability
MethodPathControllerPurpose
GET/api/trends-report-frequency-interval-optionsTrendsReportFrequencyIntervalOptionsController@indexFrequency options
GET/api/trends-report-alert-notifiers-optionsTrendsReportAlertNotifiersOptionsController@indexNotifier options
GET/api/trends-report-alert-threshold-type-optionsTrendsReportAlertThresholdTypeOptionsController@indexThreshold types
MethodPathControllerPurpose
POST/api/trends-report-export/downloadTrendsReportExportController@downloadExport trends
POST/api/trends-report-printTrendsReportPrintRequestDataController@storeRequest print
GET/api/trends-report-print/{id}TrendsReportPrintController@indexGet print data

16. Quantification

MethodPathControllerPurpose
GET/api/run-quantification-widgets/{runId}/run-targetsQuantificationWidgetRunTargetsController@indexWidget targets
GET/api/default-ct-inhibition-deltaDefaultCtInhibitionDeltaControllerDefault inhibition delta
GET/api/calculated-quantification-settingsCalculatedQuantificationSettingsController@indexCalc settings
POST/api/calculated-quantification-settingsCalculatedQuantificationSettingsController@storeCreate setting
PUT/api/calculated-quantification-settingsCalculatedQuantificationSettingsController@updateUpdate setting
GET/api/delta-ct-target-combinationsDeltaCtTargetCombinationController@indexDelta Ct combos
PUT/api/delta-ct-target-combinationsDeltaCtTargetCombinationController@updateUpdate combos

17. User Management

17.1 Users

MethodPathControllerPurpose
GET/api/usersUsersController@indexList users (site-filtered)
GET/api/all-usersAllUsersController@indexList all users
PUT/api/users/{user}UsersController@updateUpdate user
POST/api/usersUsersController@storeCreate user (Client Admin+)
DELETE/api/users/{user}UsersController@destroyDelete user (Client Admin+)
GET/api/all-user-display-namesAllUserDisplayNamesController@indexDisplay names
GET/api/user-typesUserTypesController@indexList user types
PATCH/api/users/{user}/visible-sitesUserVisibleSitesUpdateControllerUpdate visible sites
PATCH/api/users/{user}/user-typeUserTypeUpdateControllerUpdate user type

17.2 User Blocking (Client Admin+)

MethodPathControllerPurpose
POST/api/blocked-usersBlockedUsersController@storeBlock user
DELETE/api/blocked-users/{user}BlockedUsersController@destroyUnblock user

17.3 Email Verification (Client Admin+)

MethodPathControllerPurpose
POST/api/email-verification-required-usersEmailVerificationRequiredUsersController@storeRequire verification
DELETE/api/email-verification-required-users/{user}EmailVerificationRequiredUsersController@destroyRemove requirement
POST/api/user-verification-emailsUserVerificationEmailsController@storeSend verification

17.4 Password Management (Client Admin+)

MethodPathControllerPurpose
PUT/api/users/{user}/change-passwordsUserPasswordsController@changeChange password

18. Sites

MethodPathControllerPurpose
GET/api/sitesSitesController@indexList sites
GET/api/default-siteGetDefaultSiteControllerGet default site
POST/api/sitesSitesController@storeCreate site (Manager+)
PUT/api/sites/{site}SitesController@updateUpdate site (Manager+)
POST/api/sites/{site}/disableSitesDisableControllerDisable site (Manager+)
POST/api/sites/{site}/enableSitesEnableControllerEnable site (Manager+)
PUT/api/use-multiple-sites-featureUseMultipleSitesFeatureController@updateToggle multi-site (Manager+)
GET/api/use-multiple-sites-featureUseMultipleSitesFeatureController@showGet multi-site status
PUT/api/preserve-s3-structure-for-first-site-featurePreserveS3StructureForFirstSiteController@updateToggle S3 preserve (Manager+)
GET/api/preserve-s3-structure-for-first-site-featurePreserveS3StructureForFirstSiteController@showGet S3 preserve status

19. Tags

MethodPathControllerPurpose
GET/api/tagsTagController@indexList tags (site-filtered)
POST/api/tagsTagController@storeCreate tag
PUT/api/tagsTagController@updateUpdate tag
DELETE/api/tags/{tag}TagController@destroyDelete tag
GET/api/all-tagsAllTagsController@indexList all tags

20. Comments

MethodPathControllerPurpose
GET/api/comments/{comment}CommentsController@showGet comment
POST/api/commentsCommentsController@storeCreate comment

21. Audit

21.1 Audit Log

MethodPathControllerPurpose
GET/api/auditsAuditsController@indexList audit entries
POST/api/audit-exportsAuditExportsController@storeExport audit log

21.2 Audit Filter Options

MethodPathControllerPurpose
GET/api/audit-usernamesAuditUsernamesController@indexUsername filter
GET/api/audit-actionsAuditActionsController@indexAction filter
GET/api/audit-areasAuditAreasController@indexArea filter
GET/api/audit-change-typesAuditChangeTypesController@indexChange type filter
GET/api/audit-created-atAuditCreatedAtRangeController@indexDate range filter
GET/api/audit-site-namesAuditSiteNamesController@indexSite filter

22. System Configuration

22.1 Features (Manager+)

MethodPathControllerPurpose
GET/api/featuresFeaturesController@indexList features
PUT/api/features/{feature}FeaturesController@updateUpdate feature
GET/api/features-listFeaturesListController@indexFeatures summary

22.2 Client Configuration

MethodPathControllerPurpose
GET/api/client-configurationsClientConfigurationsController@indexList configs
PUT/api/client-configurations/{config}ClientConfigurationsController@updateUpdate config
GET/api/client-configuration-settingsClientConfigurationSettingsController@indexConfig settings

22.3 Adjacents (Contamination)

MethodPathControllerPurpose
GET/api/adjacentsAdjacentsController@indexList adjacents
POST/api/adjacentsAdjacentsController@storeCreate adjacent
PUT/api/adjacentsAdjacentsController@updateUpdate adjacent

22.4 Lots

MethodPathControllerPurpose
GET/api/lotsLotsController@indexList lots

22.5 Result Providers

MethodPathControllerPurpose
GET/api/result-providersResultProvidersController@indexList providers

23. Help System (Manager+)

MethodPathControllerPurpose
GET/api/help-itemsHelpItemsController@indexList help items
POST/api/help-itemsHelpItemsController@storeCreate help item
PUT/api/help-itemsHelpItemsController@updateUpdate help item
GET/api/help-videosHelpVideosController@indexList help videos
POST/api/help-videosHelpVideosController@storeCreate help video
GET/api/pages-listPagesListController@indexList pages
GET/api/page-help-itemsPageHelpItemsController@indexHelp for page

24. AI Integration

MethodPathControllerPurpose
POST/api/call-aiAiController@indexAI request

25. Common Response Patterns

25.1 Success Responses

// Single resource
{
"data": { "id": 1, "name": "Example" }
}

// Collection
{
"data": [
{ "id": 1, "name": "Example 1" },
{ "id": 2, "name": "Example 2" }
]
}

// Paginated collection
{
"data": [...],
"links": { "first": "...", "last": "...", "prev": null, "next": "..." },
"meta": { "current_page": 1, "total": 100, "per_page": 15 }
}

25.2 Error Responses

// Validation error (422)
{
"message": "The given data was invalid.",
"errors": {
"field_name": ["Error message"]
}
}

// Authentication error (401)
{
"message": "Unauthenticated."
}

// Authorization error (403)
{
"message": "This action is unauthorized."
}

// Not found (404)
{
"message": "No query results for model [Model]."
}

DocumentLocationPurpose
Database Referencesds-ref-database.mdEntity schemas
Configuration Referencesds-ref-config.mdConfig settings
Security Architecture../sds-05-security-architecture.mdAuth/authz design