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
| Middleware | Description | User Types |
|---|---|---|
auth:api | Requires valid API token | All authenticated users |
user-type:MANAGER,SUPER_ADMIN | Administrative functions | Manager, Super Admin |
user-type:CLIENT_ADMIN,MANAGER,SUPER_ADMIN | User management | Client Admin, Manager, Super Admin |
user-type:SENIOR,MANAGER,SUPER_ADMIN | Senior-level operations | Senior, Manager, Super Admin |
user-type:JUNIOR,SENIOR,MANAGER,SUPER_ADMIN | Standard operations | All logged-in users |
| (none) | Public routes | Unauthenticated |
3. Web Routes (Authentication)
These routes handle user authentication and session management.
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /login | LoginController@showLoginForm | Display login form |
| GET | /login/admin | LoginController@showLoginForm | Admin login form |
| POST | /login | LoginController@login | Process login |
| POST | /logout | LoginController@logout | End session |
| GET | /change-password | ChangePasswordController@index | Password change form |
| POST | /change-password | ChangePasswordController@confirm | Confirm password change |
| GET | /reset-password | ResetPasswordController@index | Password reset form |
| POST | /reset-password/confirm | ResetPasswordController@confirm | Confirm reset |
| POST | /reset-password/request | ResetPasswordController@request | Request reset email |
| GET | /mfa-setup | MfaController@show | MFA setup page |
| POST | /verify-software-token | MfaController@verifySoftwareToken | Verify TOTP token |
| POST | /verify-mfa | MfaController@verifyMfa | Verify MFA code |
| GET | /login/saml | SamlLoginController@redirect | SAML redirect |
| GET | /login/samlcallback | SamlLoginController@callback | SAML callback |
| POST | /login/samllogin | SamlLoginController@login | SAML login |
| GET | /login/samlerror | SamlLoginController@error | SAML error page |
| GET | /maintenance | MaintenanceViewController | Maintenance page |
| GET | /too-many-requests | TooManyRequestsViewController | Rate limit page |
| GET | /unauthorized | UnauthorizedViewContoller | Unauthorized page |
| GET | /files/download | FileDownloadController | File download |
| ANY | /{any} | SpaController | SPA catch-all (auth required) |
4. Public API Routes
These routes do not require authentication.
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/sentry/transfer | ClientAppSentryReplayTransferController@transfer | Transfer Sentry replay data |
| GET | /api/database/status | CheckDatabaseStatusController@show | Database health check |
| POST | /api/unset-modifying-user | RunModifyingUsersController@unsetModifyingUser | Clear modifying user lock |
5. Authenticated User Endpoints
5.1 Current User (Me)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/me | AuthUserController@show | Get current user profile |
| PUT | /api/me | AuthUserController@update | Update current user |
| GET | /api/me/visible-sites | VisibleSitesController@index | List visible sites |
| PATCH | /api/me/logged-in-site | ChangeLoggedInSiteController | Change active site (Manager+) |
5.2 Notifications
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/paginate-notifications | PaginateNotificationsController@index | List notifications (paginated) |
| GET | /api/unread-notifications | UnreadNotificationsCountController@index | Unread notification count |
| GET | /api/trend-report-alert-ids | GetTrendsReportAlertIdsController | Get trend alert IDs |
| PUT | /api/notifications | NotificationsController@update | Update notification settings |
| POST | /api/notifications/{id}/mark-as-read | ReadNotificationsController@store | Mark as read |
| POST | /api/notifications/{id}/mark-as-unread | ReadNotificationsController@destroy | Mark as unread |
6. Run Management
6.1 Runs (Core)
Auth Required: Junior+ for read, Manager+ for create/delete
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/runs | RunsController@index | List runs |
| GET | /api/runs/{run} | RunsController@show | Get run details |
| GET | /api/runs-for-print/{run} | RunsController@printPreview | Print preview data |
| PUT | /api/runs/{run} | RunsController@update | Update run |
| POST | /api/runs | RunsController@store | Create run (Manager+) |
| DELETE | /api/runs | RunsController@destroy | Delete runs (Manager+) |
6.2 Run Files
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/run-files | RunFilesController@store | Upload run file |
| DELETE | /api/run-files/{id} | RunFilesController@destroy | Delete run file |
| DELETE | /api/failed-run-files/{id} | FailedRunFilesController@destroy | Delete failed file |
| GET | /api/run-file-import-progresses | RunFileImportProgressesController@index | Import progress |
| DELETE | /api/imported-run-file-import-progresses | ImportedRunFileImportProgressesController@destroy | Clear imported |
6.3 Run Modifying Users (Locking)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/run/{run}/modifying-users | RunModifyingUsersController@show | Get lock holder |
| POST | /api/run/{run}/modifying-users | RunModifyingUsersController@store | Acquire lock |
| DELETE | /api/run/{run}/modifying-users | RunModifyingUsersController@destroy | Release lock |
6.4 Run Analysis Progress
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/runs/{runId}/analyse-progress | RunAnalyseProgresesController@index | Analysis progress |
6.5 Run Filter Options
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/runs/filters/mixes | RunFilterOptionMixesController@index | Filter by mix |
| GET | /api/runs/filters/tags | RunFilterOptionTagsController@index | Filter by tag |
| GET | /api/runs/filters/users | RunFilterOptionUsersController@index | Filter by user |
| GET | /api/runs/filters/combined-run-statuses | RunFilterOptionCombinedRunStatusesController@index | Filter by status |
| GET | /api/runs/filters/resolution-pending-statuses | RunFilterOptionResolutionPendingStatusesController@index | Resolution status filter |
| GET | /api/runs/filters/created-at | RunFilterOptionCreatedAtRangeController@index | Created date range |
| GET | /api/runs/filters/updated-at | RunFilterOptionUpdatedAtRangeController@index | Updated date range |
| GET | /api/runs/filters/sites | RunFilterOptionSitesController@index | Filter by site |
| GET | /api/runs/has-site-visibility | RunSitePermissionCheckController@check | Check site visibility |
6.6 Run Tags
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/run-tags | RunTagsController@store | Add tag to run |
6.7 Run Comments
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/runs/{run}/comments | RunCommentsController@store | Add comment |
| PUT | /api/runs/{run}/comments/{comment} | RunCommentsController@update | Update comment |
| DELETE | /api/runs/{run}/comments/{comment} | RunCommentsController@destroy | Delete comment |
7. Run Resolution
7.1 Resolution Actions
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/resolved-runs | ResolvedRunsController@store | Mark run resolved |
| POST | /api/run-resolution-proposals | RunResolutionProposalsController@store | Propose resolution |
| POST | /api/run-resolution-confirmations | RunResolutionConfirmationsController@store | Confirm resolution |
| POST | /api/run-resolution-rejections | RunResolutionRejectionsController@store | Reject resolution |
| POST | /api/runs/resolution/role-to-target-mappings | RunResolutionRoleToTargetMappingsController@index | Target mappings |
7.2 Resolution Configuration
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/run-resolution-statuses | RunResolutionStatusesController@index | List statuses |
| GET | /api/resolution-codes | ResolutionCodesController@index | List codes |
| POST | /api/resolution-codes | ResolutionCodesController@store | Create code |
| PUT | /api/resolution-codes | ResolutionCodesController@update | Update code |
| DELETE | /api/resolution-codes/{code} | ResolutionCodesController@destroy | Delete code |
| PUT | /api/resolution-codes/{code}/disable | ResolutionCodesDisableController | Disable code |
| PUT | /api/resolution-codes/{code}/enable | ResolutionCodesEnableController | Enable code |
| GET | /api/resolution-levels | ResolutionLevelsController@index | List levels |
| GET | /api/resolution-messages | ResolutionMessagesController@index | List messages |
8. Wells
8.1 Well Data
| Method | Path | Controller | Purpose |
|---|---|---|---|
| PUT | /api/wells/{well} | WellsController@update | Update well |
| GET | /api/wells/{well}/history | WellHistoryController@show | Well history |
| POST | /api/well-outcomes | WellOutcomesController@index | Patient outcomes |
8.2 Well Comments
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/wells/comments | WellCommentsController@store | Add comment |
| PUT | /api/wells/{well}/comments/{comment} | WellCommentsController@update | Update comment |
| DELETE | /api/wells/{well}/comments/{comment} | WellCommentsController@destroy | Delete comment |
8.3 Control Observations
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/control-observations/{id} | GetControlObservationsController@index | Get observations |
| GET | /api/observations | ObservationsController@index | List observations |
| GET | /api/observations/{observation} | ObservationsController@show | Get observation |
| POST | /api/get-observations | ObservationsController@index | Query observations |
9. Kit Configuration
9.1 Kits
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/kits | KitsController@index | List kits |
| PUT | /api/kits | KitsController@update | Update kit |
9.2 Rules
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/rules | RulesController@index | List rules |
| PUT | /api/rules | RulesController@update | Update rules |
9.3 Mixes
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/mixes | MixesController@index | List mixes |
| PUT | /api/mixes | MixesController@update | Update mix |
| GET | /api/mix-to-role-mappings | MixToRoleMappingsController@index | Mix-role mappings |
9.4 Targets
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/targets | TargetsController@index | List targets |
| PUT | /api/targets/{target} | TargetsController@update | Update target (Manager+) |
| GET | /api/run-target | RunTargetsController@show | Get run target |
9.5 Roles and Specimens
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/roles | RolesController@index | List roles |
| GET | /api/specimens | SpecimensController@index | List specimens |
| GET | /api/specimen-to-mix-mappings | SpecimenToMixMappingsController@index | Specimen mappings |
| POST | /api/specimen-to-mix-mappings | SpecimenToMixMappingsController@store | Create mapping |
| PUT | /api/specimen-to-mix-mappings | SpecimenToMixMappingsController@update | Update mapping |
| GET | /api/role-to-mix-mappings | RoleToMixMappingsController@index | Role-mix mappings |
| POST | /api/role-alias-to-role | RoleAliasToRoleController | Map role alias (Manager+) |
| GET | /api/role-types | RoleTypesController@index | List role types (Manager+) |
9.6 Configuration Export/Import
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/config-data | ConfigDataController@store | Import config (Manager+) |
| DELETE | /api/config-data | ConfigDataController@destroy | Clear config (Manager+) |
| GET | /api/kit-configurations/download | KitConfigurationsExportController@download | Export kit config |
| GET | /api/customer-friendly-kit-configurations/download | CustomerFriendlyKitConfigurationsExportController@download | Friendly export |
| GET | /api/mix-exports/download | MixExportController@download | Export mixes |
9.7 Mix Clone (v3.0.1)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/clone-mix | MixCloneController@__invoke | Clone mix configuration from enabled mix to unknown mix (Manager+) |
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
original_mix_id | UUID | Yes | Source (enabled) mix ID |
unknown_mix_id | UUID | Yes | Destination (unmapped) mix ID |
control_labels | Array | Yes | Per-role control label aliases |
mix_name | String | Yes | Name for the cloned mix |
is_clone_westgard_limits | Boolean | Yes | Clone Westgard/QC limits |
is_clone_combined_outcomes | Boolean | Yes | Clone combined outcome mappings |
Response: 200 OK on success (mix cloned). 422 on validation failure.
10. Error and Outcome Configuration
10.1 Error Codes
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/error-codes | ErrorCodesController@index | List error codes |
| POST | /api/error-codes | ErrorCodesController@store | Create code |
| PUT | /api/error-codes | ErrorCodesController@update | Update codes |
| GET | /api/error-types | ErrorTypesController@index | List types |
| GET | /api/error-levels | ErrorLevelsController@index | List levels |
| GET | /api/action-codes | ActionCodesController@index | List action codes |
10.2 LIMS Status Mapping
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/lims-statuses | LimsStatusesController@index | List LIMS statuses |
| POST | /api/lims-statuses | LimsStatusesController@store | Create status |
| PUT | /api/lims-statuses | LimsStatusesController@update | Update status |
| GET | /api/lims-status-types | LimsStatusTypesController@index | List types |
| GET | /api/outcome-to-lims-status-mapping | OutcomeToLimsStatusMappingsController@index | List mappings (Manager+) |
| POST | /api/outcome-to-lims-status-mapping | OutcomeToLimsStatusMappingsController@store | Create mapping (Manager+) |
| PUT | /api/outcome-to-lims-status-mapping | OutcomeToLimsStatusMappingsController@update | Update mapping (Manager+) |
| DELETE | /api/outcome-to-lims-status-mapping/{id} | OutcomeToLimsStatusMappingsController@destroy | Delete mapping (Manager+) |
10.3 Combined Outcomes Support
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/outcome-to-lims-status-mapping/specimens | CombinedOutcomesSpecimensController@index | List specimens (Manager+) |
| GET | /api/outcome-to-lims-status-mapping/supported-error-codes | CombinedOutcomesSupportedErrorCodesController@index | Supported codes (Manager+) |
| GET | /api/outcome-to-lims-status-mapping/supported-lims-statuses | CombinedOutcomesSupportedLimsStatusesController@index | Supported statuses (Manager+) |
| GET | /api/outcome-to-lims-status-mapping/kits | CombinedOutcomesKitsController@index | Kits for mapping (Manager+) |
11. QC Configuration
11.1 Westgard Settings
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/westgard-settings | WestgardSettingsController@index | List settings |
| PUT | /api/westgard-settings | WestgardSettingsController@update | Update settings |
| GET | /api/westgard-settings/is-used-in-wells | WestgardSettingIsUsedInWellsController | Check usage |
11.2 Westgard Limits (Senior+)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/westgard-limits | WestgardLimitsController@index | List limits |
| POST | /api/westgard-limits | WestgardLimitsController@store | Create limit |
| PUT | /api/westgard-limits | WestgardLimitsController@update | Update limit |
| POST | /api/bulk-westgard-limits | BulkWestgardLimitsController@store | Bulk create |
11.3 Control Labels
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/control-labels | ControlLabelsController@index | List labels |
| PUT | /api/control-labels | ControlLabelsController@update | Update labels |
| GET | /api/control-labels-exports/download | ControlLabelsExportController@download | Export labels |
11.4 Control Range Settings
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/control-range-settings | ControlRangeSettingsController@index | List settings |
| POST | /api/control-range-settings | ControlRangeSettingsController@store | Create setting |
| PUT | /api/control-range-settings | ControlRangeSettingsController@update | Update setting |
| GET | /api/min-controls | GetMinControlsController | Get minimum controls |
11.5 Known Quantities (Manager+)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/known-quantities | KnownQuantitiesController@index | List quantities |
| POST | /api/known-quantities | KnownQuantitiesController@store | Create quantity |
| PUT | /api/known-quantities | KnownQuantitiesController@update | Update quantity |
12. Instruments
12.1 Thermocyclers
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/thermocyclers | ThermocyclersController@index | List thermocyclers |
| GET | /api/thermocycler-models | ThermocyclerModelsController@index | List models |
| POST | /api/thermocycler-models | ThermocyclerModelsController@store | Create model |
| PUT | /api/thermocycler-models | ThermocyclerModelsController@update | Update model |
| GET | /api/thermocycler-model-exports/download | ThermocyclerModelExportsController@download | Export models |
12.2 Extraction Instruments
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/extraction-instruments | ExtractionInstrumentsController@index | List instruments |
| GET | /api/extraction-models | ExtractionModelsController@index | List models |
| POST | /api/extraction-models | ExtractionModelsController@store | Create model |
| PUT | /api/extraction-models | ExtractionModelsController@update | Update model |
| GET | /api/extraction-model-exports/download | ExtractionModelExportsController@download | Export models |
13. Assay Calibration (Manager+)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/calibrateable-runs | AssayCalibrateableRunsController@index | List calibrateable runs |
| POST | /api/calibrateable-runs | AssayCalibrateableRunsController@store | Start calibration |
| GET | /api/calibrated-runs | AssayCalibratedRunsController@index | List calibrated runs |
| GET | /api/calibration-target/{id} | CalibrationTargetsController@show | Get target calibration |
| GET | /api/assay-calibration-processes | AssayCalibrationProcessesController@index | List processes |
| POST | /api/targets/{target}/calibration-files | TargetCalibrationFilesController@store | Upload calibration file |
| DELETE | /api/targets/{target}/calibration-files | TargetCalibrationFilesController@destroy | Delete file |
| PUT | /api/targets/{target}/prepend-fake-cycles-count | TargetCalibrationFilesController@updatePrependFakeCyclesCount | Update cycles |
14. Reports
14.1 Run Result Export
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/run-result-exports/{run}/download | RunResultExportsController@download | Download results |
| POST | /api/run-result-exports/{run} | RunResultExportsController@store | Generate export |
14.2 Outcomes Report
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/outcomes-report | OutcomesReportController@index | Generate report |
| POST | /api/outcomes-report-print | OutcomesReportPrintRequestDataController@store | Request print |
| GET | /api/outcomes-report-print/{id} | OutcomesReportPrintController@index | Get print data |
| POST | /api/outcomes-report/download | OutcomesReportExportController@download | Download report |
14.3 LJ Report (Levey-Jennings)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/run-lj-reports/{run} | RunLJReportsController@index | Run LJ data |
| GET | /api/lj-report | LJReportController@show | LJ report data |
| GET | /api/lj-report/download | LJReportDownloadController | Download LJ report |
| GET | /api/lj-report-lots | LJReportLotsController@index | LJ report lots |
| GET | /api/lj-report/extraction-models | LJReportExtractionModelsController@index | LJ extraction models |
| GET | /api/lj-report/extraction-instruments | LJReportExtractionInstrumentsController@index | LJ instruments |
| POST | /api/extraction-instruments/load-last-extraction-date | LoadLastExtractionDateController@index | Load last date |
14.4 Report Filters
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/reports/filters/mixes | ReportFiltersMixesController@index | Mix filter options |
| GET | /api/reports/filters/targets | ReportFiltersTargetsController@index | Target filter options |
| GET | /api/reports/filters/thermocyclers | ReportFiltersThermocyclersController@index | Thermocycler options |
| GET | /api/reports/filters/role-to-mix-mappings | ReportFiltersRoleToMixMappingsController@index | Role-mix mappings |
14.5 Reportings Configuration
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/reportings | ReportingsController@index | List reportings |
| PUT | /api/reportings | ReportingsController@update | Update reporting |
| GET | /api/reporting-groups | ReportingGroupsController@index | List groups |
15. Trends Report
15.1 Trends Data
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/trends-report/outcomes | TrendsReportOutcomesController@index | Outcomes data |
| GET | /api/trends-report/thermocyclers | TrendsReportThermocyclersController@index | Thermocycler data |
| GET | /api/trends-report/mixes | TrendsReportMixesController@index | Mix data |
| GET | /api/trends-report/date-range | TrendsReportDateRangeController@index | Date range |
| GET | /api/trends-report/control-sample-names | TrendsReportControlSampleNamesController@index | Sample names |
| POST | /api/trends-report/trends-series | TrendsReportTrendsController@index | Trends series |
| POST | /api/trends-report/alerts-series | TrendsReportTrendsAlertController@index | Alert series |
| GET | /api/trends-report/first-site-lab-timezone | TrendsReportFirstSiteLabTimezoneController@index | Site timezone |
15.2 Trends Alert Tables
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/trends-report/alert-table-all-mixes | AlertTableMixController@index | All mixes |
| GET | /api/trends-report/alert-table-all-control-sample-names | AlertTableControlSampleNamesController@index | Sample names |
| GET | /api/trends-report/alert-table-all-outcomes | AlertTableOutcomesController@index | All outcomes |
| GET | /api/trends-report/alert-table-all-thermocyclers | AlertTableThermocyclersController@index | All thermocyclers |
15.3 Trends Alerts Management
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/trends-report-alerts | TrendsReportAlertsController@index | List alerts |
| POST | /api/get-trends-report-alerts | TrendsReportAlertsController@index | Query alerts |
| POST | /api/trends-report-alerts | TrendsReportAlertsController@store | Create alert |
| PUT | /api/trends-report-alerts/{alert} | TrendsReportAlertsController@update | Update alert |
| DELETE | /api/trends-report-alerts/{alert} | TrendsReportAlertsController@destroy | Delete alert |
| POST | /api/trends-report-alerts/{alert}/disable | TrendsReportAlertDisableController@disable | Disable alert |
| POST | /api/trends-report-alerts/{alert}/enable | TrendsReportAlertEnableController@enable | Enable alert |
| GET | /api/trends-report-alerts-availability | TrendsReportAlertsAvailabilityController@index | Alert availability |
15.4 Trends Alert Options
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/trends-report-frequency-interval-options | TrendsReportFrequencyIntervalOptionsController@index | Frequency options |
| GET | /api/trends-report-alert-notifiers-options | TrendsReportAlertNotifiersOptionsController@index | Notifier options |
| GET | /api/trends-report-alert-threshold-type-options | TrendsReportAlertThresholdTypeOptionsController@index | Threshold types |
15.5 Trends Export/Print
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/trends-report-export/download | TrendsReportExportController@download | Export trends |
| POST | /api/trends-report-print | TrendsReportPrintRequestDataController@store | Request print |
| GET | /api/trends-report-print/{id} | TrendsReportPrintController@index | Get print data |
16. Quantification
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/run-quantification-widgets/{runId}/run-targets | QuantificationWidgetRunTargetsController@index | Widget targets |
| GET | /api/default-ct-inhibition-delta | DefaultCtInhibitionDeltaController | Default inhibition delta |
| GET | /api/calculated-quantification-settings | CalculatedQuantificationSettingsController@index | Calc settings |
| POST | /api/calculated-quantification-settings | CalculatedQuantificationSettingsController@store | Create setting |
| PUT | /api/calculated-quantification-settings | CalculatedQuantificationSettingsController@update | Update setting |
| GET | /api/delta-ct-target-combinations | DeltaCtTargetCombinationController@index | Delta Ct combos |
| PUT | /api/delta-ct-target-combinations | DeltaCtTargetCombinationController@update | Update combos |
17. User Management
17.1 Users
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/users | UsersController@index | List users (site-filtered) |
| GET | /api/all-users | AllUsersController@index | List all users |
| PUT | /api/users/{user} | UsersController@update | Update user |
| POST | /api/users | UsersController@store | Create user (Client Admin+) |
| DELETE | /api/users/{user} | UsersController@destroy | Delete user (Client Admin+) |
| GET | /api/all-user-display-names | AllUserDisplayNamesController@index | Display names |
| GET | /api/user-types | UserTypesController@index | List user types |
| PATCH | /api/users/{user}/visible-sites | UserVisibleSitesUpdateController | Update visible sites |
| PATCH | /api/users/{user}/user-type | UserTypeUpdateController | Update user type |
17.2 User Blocking (Client Admin+)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/blocked-users | BlockedUsersController@store | Block user |
| DELETE | /api/blocked-users/{user} | BlockedUsersController@destroy | Unblock user |
17.3 Email Verification (Client Admin+)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/email-verification-required-users | EmailVerificationRequiredUsersController@store | Require verification |
| DELETE | /api/email-verification-required-users/{user} | EmailVerificationRequiredUsersController@destroy | Remove requirement |
| POST | /api/user-verification-emails | UserVerificationEmailsController@store | Send verification |
17.4 Password Management (Client Admin+)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| PUT | /api/users/{user}/change-passwords | UserPasswordsController@change | Change password |
18. Sites
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/sites | SitesController@index | List sites |
| GET | /api/default-site | GetDefaultSiteController | Get default site |
| POST | /api/sites | SitesController@store | Create site (Manager+) |
| PUT | /api/sites/{site} | SitesController@update | Update site (Manager+) |
| POST | /api/sites/{site}/disable | SitesDisableController | Disable site (Manager+) |
| POST | /api/sites/{site}/enable | SitesEnableController | Enable site (Manager+) |
| PUT | /api/use-multiple-sites-feature | UseMultipleSitesFeatureController@update | Toggle multi-site (Manager+) |
| GET | /api/use-multiple-sites-feature | UseMultipleSitesFeatureController@show | Get multi-site status |
| PUT | /api/preserve-s3-structure-for-first-site-feature | PreserveS3StructureForFirstSiteController@update | Toggle S3 preserve (Manager+) |
| GET | /api/preserve-s3-structure-for-first-site-feature | PreserveS3StructureForFirstSiteController@show | Get S3 preserve status |
19. Tags
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/tags | TagController@index | List tags (site-filtered) |
| POST | /api/tags | TagController@store | Create tag |
| PUT | /api/tags | TagController@update | Update tag |
| DELETE | /api/tags/{tag} | TagController@destroy | Delete tag |
| GET | /api/all-tags | AllTagsController@index | List all tags |
20. Comments
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/comments/{comment} | CommentsController@show | Get comment |
| POST | /api/comments | CommentsController@store | Create comment |
21. Audit
21.1 Audit Log
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/audits | AuditsController@index | List audit entries |
| POST | /api/audit-exports | AuditExportsController@store | Export audit log |
21.2 Audit Filter Options
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/audit-usernames | AuditUsernamesController@index | Username filter |
| GET | /api/audit-actions | AuditActionsController@index | Action filter |
| GET | /api/audit-areas | AuditAreasController@index | Area filter |
| GET | /api/audit-change-types | AuditChangeTypesController@index | Change type filter |
| GET | /api/audit-created-at | AuditCreatedAtRangeController@index | Date range filter |
| GET | /api/audit-site-names | AuditSiteNamesController@index | Site filter |
22. System Configuration
22.1 Features (Manager+)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/features | FeaturesController@index | List features |
| PUT | /api/features/{feature} | FeaturesController@update | Update feature |
| GET | /api/features-list | FeaturesListController@index | Features summary |
22.2 Client Configuration
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/client-configurations | ClientConfigurationsController@index | List configs |
| PUT | /api/client-configurations/{config} | ClientConfigurationsController@update | Update config |
| GET | /api/client-configuration-settings | ClientConfigurationSettingsController@index | Config settings |
22.3 Adjacents (Contamination)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/adjacents | AdjacentsController@index | List adjacents |
| POST | /api/adjacents | AdjacentsController@store | Create adjacent |
| PUT | /api/adjacents | AdjacentsController@update | Update adjacent |
22.4 Lots
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/lots | LotsController@index | List lots |
22.5 Result Providers
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/result-providers | ResultProvidersController@index | List providers |
23. Help System (Manager+)
| Method | Path | Controller | Purpose |
|---|---|---|---|
| GET | /api/help-items | HelpItemsController@index | List help items |
| POST | /api/help-items | HelpItemsController@store | Create help item |
| PUT | /api/help-items | HelpItemsController@update | Update help item |
| GET | /api/help-videos | HelpVideosController@index | List help videos |
| POST | /api/help-videos | HelpVideosController@store | Create help video |
| GET | /api/pages-list | PagesListController@index | List pages |
| GET | /api/page-help-items | PageHelpItemsController@index | Help for page |
24. AI Integration
| Method | Path | Controller | Purpose |
|---|---|---|---|
| POST | /api/call-ai | AiController@index | AI 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]."
}
26. Related Documents
| Document | Location | Purpose |
|---|---|---|
| Database Reference | sds-ref-database.md | Entity schemas |
| Configuration Reference | sds-ref-config.md | Config settings |
| Security Architecture | ../sds-05-security-architecture.md | Auth/authz design |