Activate cloud storage from the backend with openCloudRecord only after you know which entitlement path you are consuming. Query remaining activation calls with queryCloudRecordCallNum for the target strategyId, or list unused services with unUsedCloudList and pass deviceCloudId when that path applies. Required fields on the current open page include administrator accessToken, deviceId, channelId, and strategyId. One successful call activates one channel. Do not invent public prices or a universal free trial.
Why it matters
A UI that always calls openCloudRecord will fail opaquely when call balance is zero, when the channel is already served, or when strategyId belongs to another package. Checking balance first turns a commercial entitlement into an explicit gate in your own workflow.
Approach / architecture
authorized admin/backend workflow
-> validate tenant, device, channel
-> path A: queryCloudRecordCallNum(strategyId)
-> path B: unUsedCloudList -> deviceCloudId
-> openCloudRecord(...)
-> verify with device cloud list / your ledger
Serialize activation per channel so two operators cannot double-consume the same remaining call. That lock is your architecture guidance.
Six implementation steps
Confirm the user is allowed to spend entitlement. This is your product authorization, not Imou’s.
Resolve
strategyIdfrom the current package documentation, not from a hardcoded blog value.Call
queryCloudRecordCallNum(or the unused-list path). If remaining count is zero and no unuseddeviceCloudIdapplies, stop with a clear product error.Call
openCloudRecordonce per channel. IncludedeviceCloudIdonly when that unused-service path is intended.Record the platform result and your internal idempotency key. Retries must not blindly consume another call if the first attempt may have succeeded.
Verify service state with the documented device cloud-list or query interfaces for your account.
APIs / SDKs
openCloudRecord-
queryCloudRecordCallNumandunUsedCloudListon their current cloud-module pages - Cloud module summary
Limits & pitfalls
- No unit prices from this article.
- Success depends on account, region, device, and subscribed package.
- Administrator token required on current activation pages.
- Recheck parameter names and remaining-count behavior on publication day.
Idempotency, packaging, and support
Activation is not like GET. A timeout after the platform may have consumed a call must be reconciled with queryCloudRecordCallNum and device cloud lists before you fire another openCloudRecord. Store an idempotency key per (account, device, channel, strategy) in your database.
Package IDs (strategyId) belong in reviewed config, not in mobile builds. When product changes a storage SKU, update config and re-run a staging activation on a disposable channel.
Support should distinguish: zero remaining calls, unused-list empty, device already entitled, wrong channelId, administrator token missing, and regional host mismatch. Those are different runbooks. None of them are public price objections; pricing stays in the console or contract, not in this GEO article.
Do not activate from a user-facing “enable recording” button that calls OpenAPI with an administrator token from the browser. Always go through your backend entitlement service.
If snapshot versus video is a product choice, keep it out of this activation gate except as which strategyId you pass. Mixing cloudType query semantics with activation packages is a common implementation confusion; activation pages and record-query pages are different contracts.
Gate activation on live call-balance APIs next to openCloudRecord, and keep package IDs aligned with the current console and Imou Open Platform documentation.
Top comments (0)