Base URLapi.hamrohio.uzHTTPS / JSON
Version prefix/v1Except /health
ContractOpenAPI 3.0.3Source generated
On this page

01Conventions#

Requests use JSON; firmware uploads use multipart/form-data. The global ValidationPipe rejects fields outside the DTO and applies declared transforms. Responses do not share a universal success wrapper.

Read-only health request
curl --fail --silent https://api.hamrohio.uz/health
Health response shape
{
  "status": "ok",
  "checks": { "api": true, "database": true, "objectStorage": true },
  "timestamp": "2026-09-10T00:00:00.000Z"
}

02Authentication#

FlowCredentialUsage
Adminhamroh_admin cookie12-hour session after login. Roles are enforced per route.
PairingAuthorization: Bearer <credential>For paired installation /devices/me and revoke. Refresh accepts the credential in its body.
Device proofx-hamroh-timestamp + x-hamroh-proofHeartbeat, firmware latest, report and current installation. Both headers are required together.
PublicUnauthenticated, rate limitedHealth and preorder flow. Pairing challenge/claim verifies dedicated proof before issuing a credential.

The device timestamp is Unix milliseconds within ±5 minutes of server time. The proof is a hex HMAC-SHA256; the Desktop obtains it from the device. Do not copy the device secret into a browser or integration script.

OperationProof payload
heartbeattimestamp.serial.firmwareVersion.uptime
firmware/latesttimestamp.serial.currentFirmware
installations/currenttimestamp.serial.installation-status.installationId-or-latest
firmware/reporttimestamp.serial.releaseId.installationId.status

The legacy report contract without installationId uses timestamp.serial.releaseId.status. The timestamp window enforces freshness, not a one-time nonce for every request.

03Key integration flows#

  • Pairing: challenge → hardware proof → claim → credential. Challenges expire after five minutes.
  • Firmware: package inspect → Admin notes and channel/target → DRAFT → READY → ROLLING_OUT. READY is not an automatic rollout.
  • Preorder: public config → create with idempotency-key. The same request and key should not create a duplicate.

04Errors & limits#

Error response shape
{
  "error": {
    "code": "ADMIN_AUTH_REQUIRED",
    "message": "Admin authentication is required.",
    "requestId": "example-request-id"
  }
}
StatusMeaningClient action
400DTO or business-rule rejectionCorrect the request
401 / 403Credential or role rejectedCheck session/proof and authorization
409Duplicate or lifecycle conflictRead the current state
429Rate limitBack off; do not retry indefinitely
5xxService failureRetain requestId and check service state

The default throttler is configured for 120 requests per 60 seconds. Overrides include login 5/min, pairing challenge 10/min, claim 5/min, package inspect 10/min and package create 5/min. The current configuration does not demonstrate shared distributed rate-limit storage.

05Endpoint catalog#

The catalog includes methods, paths, access roles and DTO fields. Response schemas are included only where separately reviewed against code; full response shapes are not invented for other operations.

80 endpoints

GET/v1/admin/teamadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/admin-users/admin-users.controller.ts:12

POST/v1/admin/teamadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
namestringRequiredminLength: 2; maxLength: 120
emailstringRequiredformat: email; minLength: 3; maxLength: 160
rolestringRequiredSUPER_ADMIN · ADMIN · OPERATIONS · SALES · SUPPORT · FIRMWARE_MANAGER · VIEWER

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/admin-users/admin-users.controller.ts:20

GET/v1/admin/team/optionsadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/admin-users/admin-users.controller.ts:16

PATCH/v1/admin/team/{id}/roleadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
rolestringRequiredSUPER_ADMIN · ADMIN · OPERATIONS · SALES · SUPPORT · FIRMWARE_MANAGER · VIEWER

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/admin-users/admin-users.controller.ts:24

PATCH/v1/admin/team/{id}/statusadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
statusstringRequiredACTIVE · SUSPENDED · DISABLED

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/admin-users/admin-users.controller.ts:30

POST/v1/admin/team/{id}/reset-passwordadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/admin-users/admin-users.controller.ts:36

POST/v1/admin/team/{id}/revoke-sessionsadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/admin-users/admin-users.controller.ts:42

GET/v1/admin/analytics/salesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
rangequerystringtoday · 7d · 30d · 90d · year · custom; default: 30d
fromquerystring
toquerystring
currencyquerystringdefault: UZS

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/analytics/analytics.controller.ts:12

GET/v1/admin/analytics/operationsadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/analytics/analytics.controller.ts:13

GET/v1/admin/auditadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
skipquerystring
takequerystring
actionquerystring

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/audit/audit.controller.ts:11

POST/v1/admin/auth/loginPublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
5 / 60s

Request application/json

FieldType / requirementConstraints
emailstringRequiredformat: email
passwordstringRequiredformat: password; minLength: 8

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/auth/auth.controller.ts:12

POST/v1/admin/auth/logoutPublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
120 / 60s

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/auth/auth.controller.ts:19

GET/v1/admin/auth/meadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/auth/auth.controller.ts:26

PUT/v1/admin/auth/passwordadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
currentPasswordstringRequiredformat: password; minLength: 8; maxLength: 128
newPasswordstringRequiredformat: password; minLength: 12; maxLength: 128; pattern: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).+$

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/auth/auth.controller.ts:32

GET/v1/admin/auth/sessionsadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/auth/auth.controller.ts:37

DELETE/v1/admin/auth/sessions/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/auth/auth.controller.ts:40

GET/v1/admin/customersadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
searchquerystring
preorderStatusquerystringNEW · CONTACTED · CONFIRMED · PAYMENT_PENDING · DEPOSIT_PAID · READY_TO_SHIP · FULFILLED · CANCELLED
sourcequerystring
languagequerystringuz · en · ru
assignedAdminIdquerystring
dateFromquerystringformat: date-time
dateToquerystringformat: date-time
skipqueryintegerminimum: 0; default: 0
takequeryintegerminimum: 1; maximum: 100; default: 25

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/customers/customers.controller.ts:12

POST/v1/admin/customersadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
fullNamestringRequiredminLength: 2; maxLength: 120
emailstringOptionalformat: email
phonestringOptionalminLength: 5; maxLength: 32
companystringOptionalminLength: 2; maxLength: 120
countrystringOptionalminLength: 2; maxLength: 80
citystringOptionalminLength: 2; maxLength: 80
regionstringOptionalminLength: 2; maxLength: 80
telegramUsernamestringOptionalminLength: 5; maxLength: 32
preferredLanguagestringOptionaluz · en · ru
notesstringOptionalminLength: 0; maxLength: 1000

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/customers/customers.controller.ts:23

GET/v1/admin/customers/export.csvadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES
Rate limit
120 / 60s

Parameters

NameInTypeRequired
searchquerystring
preorderStatusquerystringNEW · CONTACTED · CONFIRMED · PAYMENT_PENDING · DEPOSIT_PAID · READY_TO_SHIP · FULFILLED · CANCELLED
sourcequerystring
languagequerystringuz · en · ru
assignedAdminIdquerystring
dateFromquerystringformat: date-time
dateToquerystringformat: date-time
skipqueryintegerminimum: 0; default: 0
takequeryintegerminimum: 1; maximum: 100; default: 25

Response

HTTP 200 · text/csv

apps/api/src/customers/customers.controller.ts:14

GET/v1/admin/customers/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/customers/customers.controller.ts:21

PATCH/v1/admin/customers/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
fullNamestringOptionalminLength: 2; maxLength: 120
emailstringOptionalformat: email
phonestringOptionalminLength: 5; maxLength: 32
companystringOptionalminLength: 2; maxLength: 120
countrystringOptionalminLength: 2; maxLength: 80
citystringOptionalminLength: 2; maxLength: 80
regionstringOptionalminLength: 2; maxLength: 80
telegramUsernamestringOptionalminLength: 5; maxLength: 32
preferredLanguagestringOptionaluz · en · ru
notesstringOptionalminLength: 0; maxLength: 1000

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/customers/customers.controller.ts:25

GET/v1/admin/devicesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
searchquerystring
statusquerystringINVENTORY · READY · SOLD · CLAIMED · ACTIVE · RETURNED · SUSPENDED · REVOKED · REPAIR · RETIRED
hardwareRevisionquerystring
firmwarequerystring
batchquerystring
skipqueryintegerminimum: 0; default: 0
takequeryintegerminimum: 1; maximum: 100; default: 50

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:12

GET/v1/admin/devices/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:15

GET/v1/admin/claim-codesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
skipquerystring
takequerystring
statusquerystring

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:18

POST/v1/admin/devices/batchesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
batchCodestringRequiredminLength: 3; maxLength: 64
modelstringRequiredminLength: 2; maxLength: 32
hardwareRevisionstringRequiredminLength: 1; maxLength: 64
quantityintegerRequiredminimum: 1; maximum: 500
expiresAtstringOptional

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:23

GET/v1/admin/inventory/batchesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
searchquerystring
statusquerystringDRAFT · READY · PROVISIONING · COMPLETED · ARCHIVED · CANCELLED
skipqueryintegerminimum: 0; default: 0
takequeryintegerminimum: 1; maximum: 100; default: 50

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:26

POST/v1/admin/inventory/batchesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
codestringRequiredminLength: 3; maxLength: 64
modelstringRequiredminLength: 2; maxLength: 32
hardwareRevisionstringRequiredminLength: 1; maxLength: 64
quantityintegerRequiredminimum: 1; maximum: 500
notesstringOptionalminLength: 0; maxLength: 1000
sourcestringOptionalminLength: 1; maxLength: 64

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:29

GET/v1/admin/inventory/batches/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:32

PATCH/v1/admin/inventory/batches/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
codestringOptionalminLength: 3; maxLength: 64
modelstringOptionalminLength: 2; maxLength: 32
hardwareRevisionstringOptionalminLength: 1; maxLength: 64
quantityintegerOptionalminimum: 1; maximum: 500
notesstringOptionalminLength: 0; maxLength: 1000
sourcestringOptionalminLength: 1; maxLength: 64
statusstringOptionalDRAFT · READY · PROVISIONING · COMPLETED · ARCHIVED · CANCELLED

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:35

DELETE/v1/admin/inventory/batches/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN
Rate limit
10 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:44

POST/v1/admin/inventory/batches/{id}/provisionadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS
Rate limit
10 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
expiresAtstringOptional

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:38

POST/v1/admin/inventory/batches/{id}/archiveadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:41

PATCH/v1/admin/devices/{id}/statusadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SUPPORT
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
statusstringRequiredINVENTORY · READY · SOLD · CLAIMED · ACTIVE · RETURNED · SUSPENDED · REVOKED · REPAIR · RETIRED
reasonstringRequiredminLength: 3

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:47

POST/v1/admin/devices/{id}/claim/resetadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SUPPORT
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
reasonstringRequiredminLength: 3
expiresAtstringOptional

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:50

POST/v1/admin/devices/{id}/transferadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SUPPORT
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
customerEmailstringRequiredformat: email
customerNamestringOptional
reasonstringRequiredminLength: 3

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:53

POST/v1/admin/devices/{id}/provisioning-envelopeadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, OPERATIONS
Rate limit
3 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
serialNumberstringRequiredminLength: 16; maxLength: 40
expectedHardwareRevisionstringRequiredminLength: 1; maxLength: 64
provisionerPublicKeystringRequiredminLength: 256; maxLength: 8192

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:56

POST/v1/devices/heartbeatdeviceProof + deviceTimestamp

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
deviceProof + deviceTimestamp
Roles
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
serialstringRequired
firmwareVersionstringRequired
firmwareBuildNumberintegerOptionalminimum: 0
hardwareRevisionstringOptionalminLength: 1; maxLength: 64
otaSlotstringOptionalota_0 · ota_1
appVersionstringRequired
uptimeintegerRequiredminimum: 0
wifiRSSIintegerOptionalminimum: -120; maximum: 0
freeHeapintegerOptionalminimum: 0
temperaturenumberOptionalminimum: -40; maximum: 125
statusstringOptionaldefault: healthy

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/devices/devices.controller.ts:61

GET/v1/admin/firmwareadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, FIRMWARE_MANAGER, VIEWER
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:15

POST/v1/admin/firmwareLegacyadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation. Legacy binary upload. Prefer the signed package route.

Auth
adminCookie
Roles
SUPER_ADMIN
Rate limit
120 / 60s

Request multipart/form-data

FieldType / requirementConstraints
versionstringRequiredpattern: ^\d{1,4}\.\d{1,4}\.\d{1,4}$
buildNumberintegerRequiredminimum: 1; maximum: 2147483647
hardwareRevisionstringRequiredpattern: ^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$
channelstringRequiredINTERNAL · BETA · STABLE
securityVersionintegerOptionalminimum: 0; default: 0
releaseNotesstring[]Required
mandatorybooleanOptionaldefault: false
mandatoryAfterstringOptionalformat: date-time
rolloutPercentageintegerOptionalminimum: 0; maximum: 100; default: 0
signaturestringOptional
targetDeviceIdstringOptional
filefileRequiredformat: binary

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:32

GET/v1/admin/firmware/package-devicesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, FIRMWARE_MANAGER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
hardwareRevisionquerystringmaxLength: 64Yes
searchquerystringmaxLength: 64

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:18

POST/v1/admin/firmware/packages/inspectadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, FIRMWARE_MANAGER
Rate limit
10 / 60s

Request multipart/form-data

FieldType / requirementConstraints
filefileRequiredformat: binary

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:21

POST/v1/admin/firmware/packagesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation. Signed .hrelease only; administrator-authored releaseNotes required. INTERNAL requires a compatible targetDeviceId. Creates DRAFT only.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, FIRMWARE_MANAGER
Rate limit
5 / 60s

Request multipart/form-data

FieldType / requirementConstraints
channelstringRequiredINTERNAL · BETA · STABLE
targetDeviceIdstringOptionalminLength: 1; maxLength: 64
mandatorybooleanOptionaldefault: false
releaseNotesstringRequiredminLength: 1; maxLength: 8000
filefileRequiredformat: binary

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:25

GET/v1/admin/firmware/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, FIRMWARE_MANAGER, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:29

PATCH/v1/admin/firmware/{id}/lifecycleadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, FIRMWARE_MANAGER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
statusstringRequiredDRAFT · READY · ROLLING_OUT · PAUSED · COMPLETED · REVOKED
rolloutPercentageintegerOptionalminimum: 0; maximum: 100

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:35

POST/v1/admin/firmware/{id}/maintenance-grantadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, FIRMWARE_MANAGER
Rate limit
3 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
expectedMacstringRequiredpattern: ^[0-9a-fA-F]{2}(?::[0-9a-fA-F]{2}){5}$
targetSerialstringRequiredminLength: 1
expectedVersionstringRequiredminLength: 1
expectedBuildintegerRequiredminimum: 1
expectedHardwareRevisionstringRequiredminLength: 1
maintenancePurposestringRequiredONE_TIME_IDENTITY_PROVISIONING

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:38

POST/v1/admin/firmware/installations/{installationId}/reconcileadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, FIRMWARE_MANAGER
Rate limit
3 / 60s

Parameters

NameInTypeRequired
installationIdpathstringYes

Request application/json

FieldType / requirementConstraints
releaseIdstringRequiredminLength: 1
serialstringRequiredminLength: 1
expectedVersionstringRequiredminLength: 1
expectedBuildintegerRequiredminimum: 1
expectedSlotstringRequiredota_0 · ota_1
observedBootStatestringRequiredvalid
observedOtaSessionStatestringRequiredIDLE
reasonstringRequiredPOST_BOOT_FALSE_NEGATIVE_RECONCILIATION

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:43

GET/v1/firmware/latestdeviceProof + deviceTimestamp

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation. IMPORTANT: eligibility lookup can create an AVAILABLE installation record; this GET is not side-effect-free.

Auth
deviceProof + deviceTimestamp
Roles
Rate limit
120 / 60s

Parameters

NameInTypeRequired
serialquerystringYes
hardwareRevisionquerystringYes
currentFirmwarequerystringYes
appVersionquerystringYes
channelquerystringINTERNAL · BETA · STABLE; default: STABLE

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:48

POST/v1/admin/firmware/installations/{installationId}/interruptionadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, FIRMWARE_MANAGER
Rate limit
3 / 60s

Parameters

NameInTypeRequired
installationIdpathstringYes

Request application/json

FieldType / requirementConstraints
releaseIdstringRequiredminLength: 1; maxLength: 64
serialstringRequiredminLength: 1; maxLength: 64
expectedVersionstringRequiredminLength: 1; maxLength: 32
expectedBuildintegerRequiredminimum: 1
expectedFailureReasonstringRequiredminLength: 1; maxLength: 256
failureCodestringRequiredUSER_CANCELLED_BY_OPERATOR

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:51

GET/v1/firmware/installations/currentdeviceProof + deviceTimestamp

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation. Read-only recovery lookup: does not create an installation or sign a download URL.

Auth
deviceProof + deviceTimestamp
Roles
Rate limit
120 / 60s

Parameters

NameInTypeRequired
serialquerystringminLength: 1; maxLength: 64Yes
installationIdquerystringminLength: 1; maxLength: 64

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:57

POST/v1/firmware/reportdeviceProof + deviceTimestamp

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
deviceProof + deviceTimestamp
Roles
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
serialstringRequired
releaseIdstringRequired
installationIdstringOptional
statusstringRequiredAVAILABLE · QUEUED · DOWNLOADING · VERIFYING · TRANSFERRING · INSTALLING · REBOOTING · VALIDATING · SUCCESS · FAILED · ROLLED_BACK
fromVersionstringOptional
failureReasonstringOptional

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/firmware/firmware.controller.ts:62

GET/healthPublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
120 / 60s

Response

HTTP 200 · application/json

FieldType / requirementConstraints
statusstringRequiredok · degraded
checksobjectRequired
timestampstringRequiredformat: date-time

apps/api/src/health/health.controller.ts:9

POST/v1/devices/pair/challengePublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
10 / 60s

Request application/json

FieldType / requirementConstraints
serialstringRequiredminLength: 8
installationIdstringRequiredminLength: 16; maxLength: 128

Response

HTTP 201 · application/json

FieldType / requirementConstraints
challengeIdstringOptional
serialstringOptional
noncestringOptional
expiresAtstringOptionalformat: date-time
proofPayloadstringOptional

apps/api/src/pairing/pairing.controller.ts:10

POST/v1/devices/pair/claimPublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
5 / 60s

Request application/json

FieldType / requirementConstraints
serialstringRequiredminLength: 8
installationIdstringRequiredminLength: 16; maxLength: 128
challengeIdstringRequiredminLength: 16
noncestringRequiredminLength: 24
claimCodestringRequiredminLength: 16
hardwareProofstringRequiredminLength: 32
publicKeystringRequiredminLength: 8
deviceNamestringRequiredminLength: 1; maxLength: 128
appVersionstringRequiredminLength: 1; maxLength: 32
customerEmailstringOptionalformat: email
customerNamestringOptional

Response

HTTP 201 · application/json

FieldType / requirementConstraints
credentialstringOptional
expiresAtstringOptionalformat: date-time
deviceobjectOptional
offlineCapablebooleanOptional

apps/api/src/pairing/pairing.controller.ts:13

POST/v1/devices/pair/code-statusPublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
8 / 60s

Request application/json

FieldType / requirementConstraints
claimCodestringRequiredminLength: 16

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/pairing/pairing.controller.ts:16

POST/v1/devices/pair/refreshPublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
credentialstringRequiredminLength: 16

Response

HTTP 201 · application/json

FieldType / requirementConstraints
credentialstringOptional
expiresAtstringOptionalformat: date-time
deviceobjectOptional
offlineCapablebooleanOptional

apps/api/src/pairing/pairing.controller.ts:20

POST/v1/devices/pair/revokepairingBearer

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
pairingBearer
Roles
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
installationIdstringRequiredminLength: 16; maxLength: 128

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/pairing/pairing.controller.ts:23

GET/v1/devices/mepairingBearer

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
pairingBearer
Roles
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/pairing/pairing.controller.ts:26

GET/v1/public/preorder-configPublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
60 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:36

POST/v1/public/preordersPublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
5 / 60s

Parameters

NameInTypeRequired
idempotency-keyheaderstringYes

Request application/json

FieldType / requirementConstraints
fullNamestringRequiredminLength: 2; maxLength: 120
phonestringRequiredminLength: 8; maxLength: 32
regionstringRequiredminLength: 2; maxLength: 80
productColorstringOptionalBLACK · WHITE · LAVENDER
paymentMethodstringOptionalDEPOSIT · FULL
notestringOptionalminLength: 1; maxLength: 500
citystringOptionalminLength: 2; maxLength: 80
emailstringOptionalformat: email; minLength: 3; maxLength: 160
telegramUsernamestringOptionalpattern: ^@?[A-Za-z0-9_]{5,32}$
quantityintegerOptionalminimum: 1; maximum: 20; default: 1
localestringRequireduz · en · ru
websitestringOptionalminLength: 0; maxLength: 0
utmSourcestringOptionalminLength: 1; maxLength: 120
utmMediumstringOptionalminLength: 1; maxLength: 120
utmCampaignstringOptionalminLength: 1; maxLength: 160
utmContentstringOptionalminLength: 1; maxLength: 160
utmTermstringOptionalminLength: 1; maxLength: 160
referrerstringOptionalformat: uri; minLength: 1; maxLength: 500

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:40

POST/v1/public/preorder-events/viewPublic

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
Public
Roles
Rate limit
20 / 60s

Request application/json

FieldType / requirementConstraints
anonymousSessionIdstringRequiredpattern: ^[A-Za-z0-9_-]{16,96}$
localestringRequireduz · en · ru
utmSourcestringOptionalminLength: 1; maxLength: 120
utmMediumstringOptionalminLength: 1; maxLength: 120
utmCampaignstringOptionalminLength: 1; maxLength: 160
utmContentstringOptionalminLength: 1; maxLength: 160
utmTermstringOptionalminLength: 1; maxLength: 160
referrerstringOptionalformat: uri; minLength: 1; maxLength: 500

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:50

GET/v1/admin/preordersadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
searchquerystringminLength: 1; maxLength: 160
statusquerystringNEW · CONTACTED · CONFIRMED · PAYMENT_PENDING · DEPOSIT_PAID · READY_TO_SHIP · FULFILLED · CANCELLED
sourcequerystringminLength: 1; maxLength: 80
localequerystringuz · en · ru
assignedAdminIdquerystring
dateFromquerystringformat: date-time
dateToquerystringformat: date-time
skipqueryintegerminimum: 0; default: 0
takequeryintegerminimum: 1; maximum: 200; default: 50

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:60

GET/v1/admin/preorders/analyticsadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:64

GET/v1/admin/preorders/export.csvadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES
Rate limit
120 / 60s

Parameters

NameInTypeRequired
searchquerystringminLength: 1; maxLength: 160
statusquerystringNEW · CONTACTED · CONFIRMED · PAYMENT_PENDING · DEPOSIT_PAID · READY_TO_SHIP · FULFILLED · CANCELLED
sourcequerystringminLength: 1; maxLength: 80
localequerystringuz · en · ru
assignedAdminIdquerystring
dateFromquerystringformat: date-time
dateToquerystringformat: date-time
skipqueryintegerminimum: 0; default: 0
takequeryintegerminimum: 1; maximum: 200; default: 50

Response

HTTP 200 · text/csv

apps/api/src/preorders/preorders.controller.ts:68

GET/v1/admin/preorders/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:77

DELETE/v1/admin/preorders/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
preorderNumberstringRequiredminLength: 8; maxLength: 40
reasonstringRequiredminLength: 4; maxLength: 240

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:81

PATCH/v1/admin/preorders/{id}/statusadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES, SUPPORT
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
statusstringRequiredNEW · CONTACTED · CONFIRMED · PAYMENT_PENDING · DEPOSIT_PAID · READY_TO_SHIP · FULFILLED · CANCELLED
notestringOptionalminLength: 2; maxLength: 500

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:87

PATCH/v1/admin/preorders/{id}/assignmentadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
adminIdstringOptionalminLength: 1; maxLength: 80; Conditional validation: inspect the operation policy.

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:93

POST/v1/admin/preorders/customers/{customerId}/notesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES, SUPPORT
Rate limit
120 / 60s

Parameters

NameInTypeRequired
customerIdpathstringYes

Request application/json

FieldType / requirementConstraints
contentstringRequiredminLength: 2; maxLength: 2000

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:99

GET/v1/admin/preorder-settingsadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:115

PUT/v1/admin/preorder-settingsadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
preOrderEnabledbooleanRequired
productNamestringRequiredminLength: 2; maxLength: 120
currencystringRequiredpattern: ^[A-Z]{3}$
fullPriceintegerOptionalminimum: 0; maximum: 2000000000
depositAmountintegerOptionalminimum: 0; maximum: 2000000000
expectedDeliveryTextUzstringRequiredminLength: 2; maxLength: 240
expectedDeliveryTextEnstringRequiredminLength: 2; maxLength: 240
expectedDeliveryTextRustringRequiredminLength: 2; maxLength: 240
maxQuantityPerOrderintegerRequiredminimum: 1; maximum: 20
preorderCapacityintegerOptionalminimum: 1; maximum: 1000000
contactPhonestringOptionalminLength: 5; maxLength: 32
supportTelegramstringOptionalformat: uri; minLength: 8; maxLength: 300
allowManualDepositConfirmationbooleanRequired

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/preorders/preorders.controller.ts:119

GET/v1/admin/salesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
searchquerystring
statusquerystringDRAFT · PENDING · PAID · FULFILLED · CANCELLED · REFUNDED
paymentStatusquerystringUNPAID · PARTIAL · PAID · REFUNDED
channelquerystringDIRECT · INSTAGRAM · TELEGRAM · WEBSITE · RESELLER · OFFLINE · OTHER
fromquerystring
toquerystring
skipqueryintegerminimum: 0; default: 0
takequeryintegerminimum: 1; maximum: 100; default: 25

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/sales/sales.controller.ts:12

POST/v1/admin/salesadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
customerSaleCustomerDtoRequired
deviceIdstringRequired
unitPriceintegerRequiredminimum: 0; maximum: 2000000000
discountintegerOptionalminimum: 0; maximum: 2000000000; default: 0
currencystringOptionalminLength: 3; maxLength: 3; default: UZS
paymentStatusstringRequiredUNPAID · PARTIAL · PAID · REFUNDED
salesChannelstringRequiredDIRECT · INSTAGRAM · TELEGRAM · WEBSITE · RESELLER · OFFLINE · OTHER
soldAtstringOptionalformat: date-time
notesstringOptionalminLength: 0; maxLength: 1000

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/sales/sales.controller.ts:16

GET/v1/admin/sales/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES, SUPPORT, VIEWER
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/sales/sales.controller.ts:14

PATCH/v1/admin/sales/{id}adminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES
Rate limit
120 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
customerIdstringOptional
paymentStatusstringOptionalUNPAID · PARTIAL · PAID · REFUNDED
salesChannelstringOptionalDIRECT · INSTAGRAM · TELEGRAM · WEBSITE · RESELLER · OFFLINE · OTHER
notesstringOptionalminLength: 0; maxLength: 1000
unitPriceintegerOptionalminimum: 0; maximum: 2000000000
discountintegerOptionalminimum: 0; maximum: 2000000000

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/sales/sales.controller.ts:18

POST/v1/admin/sales/{id}/canceladminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES
Rate limit
20 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
reasonstringRequiredminLength: 3

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/sales/sales.controller.ts:20

POST/v1/admin/sales/{id}/refundadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, SALES
Rate limit
20 / 60s

Parameters

NameInTypeRequired
idpathstringYes

Request application/json

FieldType / requirementConstraints
reasonstringRequiredminLength: 3
amountintegerRequiredminimum: 1; maximum: 2000000000
deviceDispositionstringOptionalRETURNED · REVOKED

Response

HTTP 201 · An exhaustive response schema is not published in this snapshot.

apps/api/src/sales/sales.controller.ts:22

GET/v1/admin/overviewadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, OPERATIONS, SALES, SUPPORT, FIRMWARE_MANAGER, VIEWER
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/settings/settings.controller.ts:12

GET/v1/admin/settingsadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN, VIEWER
Rate limit
120 / 60s

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/settings/settings.controller.ts:15

PUT/v1/admin/settingsadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
maximumMacsPerDeviceintegerRequiredminimum: 1; maximum: 10
heartbeatTimeoutSecondsintegerRequiredminimum: 60; maximum: 86400
pairingCertificateDaysintegerRequiredminimum: 7; maximum: 730
defaultFirmwareChannelstringRequiredINTERNAL · BETA · STABLE
defaultRolloutPercentageintegerRequiredminimum: 0; maximum: 100

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/settings/settings.controller.ts:18

PUT/v1/admin/settings/businessadminCookie

Access policy

Request schema and access metadata extracted from controller and DTO source. Business rules may impose additional constraints. No live requests are sent by this documentation.

Auth
adminCookie
Roles
SUPER_ADMIN, ADMIN
Rate limit
120 / 60s

Request application/json

FieldType / requirementConstraints
onlineThresholdMinutesintegerRequiredminimum: 1; maximum: 1440
activeThresholdDaysintegerRequiredminimum: 1; maximum: 365
companyNamestringRequiredminLength: 2; maxLength: 120
defaultCurrencystringRequiredminLength: 3; maxLength: 3
defaultDevicePriceintegerRequiredminimum: 0; maximum: 2000000000
orderNumberPrefixstringRequiredminLength: 2; maxLength: 12

Response

HTTP 200 · An exhaustive response schema is not published in this snapshot.

apps/api/src/settings/settings.controller.ts:21

Sources & evidence

This reference is based on the current source snapshot and read-only infrastructure inspection. Hashes identify the reviewed files; this is not an independent audit opinion.

  • apps/api/src/main.ts
  • apps/api/src/auth/auth.controller.ts
  • apps/api/src/auth/auth.guard.ts
  • apps/api/src/auth/auth.service.ts
  • apps/api/src/pairing/pairing.controller.ts
  • apps/api/src/pairing/pairing.dto.ts
  • apps/api/src/firmware/firmware.controller.ts
  • apps/api/src/firmware/firmware.dto.ts
  • apps/api/src/firmware/firmware.service.ts
  • apps/api/src/common/api-exception.filter.ts
Download: evidence.json
Next documentDevOps & OTA
Hamroh IO · Technical documentation · 2026-09-10

Search documentation