Zequent Client SDK (Python) — Connector API Reference

Method reference for client.connector. For a narrative introduction and worked examples, see the Connector guide. For Java, see client-sdk-connector.md; for Go, client-sdk-connector-go.md.

Every request/response method is async and works with the generated proto types (AssetProtoDTO, SubAssetProtoDTO, AssetPayloadProtoDTO, SkillContractProtoDTO, ...). On success it returns the DTO (or a list, or None where noted). Errors:

  • The platform answered with an error (e.g. not found): client_sdk.exceptions.ConnectorError (operation, error_code, error_message).
  • The platform refused the credential: client_sdk.auth.ZequentAuthError, a grpc.aio.AioRpcError with code UNAUTHENTICATED or PERMISSION_DENIED and a message that says what to do.
  • A transient failure that outlasted every retry: client_sdk.ZequentRetryExhaustedError. Other gRPC failures raise grpc.aio.AioRpcError.

What a client credential may call

A customer application authenticates with a client credential (ZQNT_CLIENT_TOKEN). The platform binds it to one organization and allows only part of this client. Everything else is administration (done in the Admin Console) or belongs to edge adapters and the platform's own services.

  • A method marked refused raises ZequentAuthError with PERMISSION_DENIED.
  • A method that names an asset (by serial number or ID) which is not your organization's is refused the same way. An asset that does not exist gets the same answer.

Assets

MethodReturnsClient credentialPurpose
get_asset_by_sn(sn)AssetProtoDTOallowedLook up an asset by serial number
get_asset_by_id(asset_id)AssetProtoDTOallowedLook up an asset by platform ID
get_sub_asset_by_sn(sn)SubAssetProtoDTOallowedLook up a sub-asset (e.g. the drone paired to a dock)
update_asset(asset_id, asset, update_mask=None)AssetProtoDTOallowedUpdate asset metadata. Without update_mask, every mutable field is replaced
update_sub_asset(sub_asset_id, sub_asset, update_mask=None)SubAssetProtoDTOallowedUpdate sub-asset metadata
deregister_asset(sn)NoneallowedRemove an asset
register_asset(asset)AssetProtoDTOrefusedAssets are added in the Admin Console or paired by their edge adapter with a pairing code

Asset payloads

Hardware mounted on an asset or sub-asset (a camera, gimbal or sensor): slot, name, serial number, kind, vendor, model, firmware version and state. Pass exactly one of asset_id / sub_asset_id as the owner.

MethodReturnsClient credentialPurpose
upsert_asset_payload(payload, asset_id=None, sub_asset_id=None, sub_asset_sn=None, update_mask=None)AssetPayloadProtoDTOallowedCreate or update a payload. Without update_mask, it is a full upsert
list_asset_payloads(asset_id=None, sub_asset_id=None)listallowedList an owner's payloads

Skill Registry

The platform-wide catalog of every command an edge adapter has reported, one entry per (command_id, schema_version). status is a SkillContractStatus value (ACTIVE, DRAFT, DEPRECATED, RETIRED) from zqnt_utils.generated.zqnt.connector_pb2.

MethodReturnsClient credentialPurpose
list_skill_contracts(status=None, command_id=None)listallowedList the registry. status filters by lifecycle state; command_id returns that command's full version history instead
observe_skill_contract(contract)SkillContractProtoDTOrefusedRecord a contract (done by the platform when adapters report capabilities)
set_skill_contract_status(contract_id, status)SkillContractProtoDTOrefusedChange a contract's lifecycle state
set_skill_contract_permissions(contract_id, required_permissions)SkillContractProtoDTOrefusedReplace a contract's required permissions

Administration (refused for a client credential)

These exist on the client, but a client credential gets PERMISSION_DENIED. Manage them in the Admin Console.

MethodReturnsPurpose
get_organization(bind_code=None)org DTOOrganization info
get_scheduler / create_scheduler / create_schedulers / update_scheduler / delete_scheduler / delete_schedulersSchedulerResponseSchedules that run an Application — see Applications & Skills
get_active_policies_by_type(policy_type) / get_all_active_policies()listOperational policies (asset selection)
get_technical_configs(scope=None, scope_target=None)listTechnical configuration values — see Configuration

Batch ingestion (refused for a client credential)

store_telemetry_batch(), store_detection_batch() and store_notification_batch() open a client-streaming ConnectorBatchSession. They are the platform's own persistence path for data coming from edge adapters, and a client credential is refused. Edge adapters report telemetry, detections and command execution events through the Edge SDK — see Live Data (Python).

Capabilities

The Python client has no capability lookup. Read what an asset can do from the Java (client.remoteControl().getCapabilities(sn)) or Go (rc.GetCapabilities(ctx, sn)) client SDK — see Remote Control — Capabilities & custom commands. What an asset reports comes from its edge adapter — see Edge SDK (Python) — Connector.

Was this page helpful?

© Copyright 2026 Zequent. All rights reserved.