API Reference
GET /operator/{did}/machines
List all machines registered under an operator DID, with paginated MCR scores.
GET
GET /operator/{did}/machines
Endpoint
machines DID attribute and paginates over the full list. Pagination works past 100 machines using offset and limit; the underlying DID-attribute storage is bounded by the peaq DID (~2560 bytes), so very large fleets should iterate offset rather than expect an unbounded single response.
Path parameters
Operator DID (
did:peaq:0x...) or raw EVM address (0x...)Query parameters
Number of machines to skip before the returned page. Must be
>= 0.Maximum number of machines to return per page. Range
1-20.Response
200 OK| Field | Type | Description |
|---|---|---|
operator_did | string | The operator DID as supplied in the request path |
machines | array | List of machines registered to this operator (for the current page) |
machines[].did | string | Machine DID derived from the machine wallet address (did:peaq:<machine_wallet>) |
machines[].machine_id | integer | On-chain machine ID |
machines[].mcr_score | integer | MCR score 0-100 |
machines[].mcr | string | Letter rating: AAA, AA, A, BBB, BB, B, NR, or Provisioned |
machines[].negative_flag | boolean | true when the AdminFlags contract has a negative-flag timestamp set for this machine. Stays true regardless of whether the 180-day MCR scoring penalty is still active. |
pagination | object | Pagination metadata |
pagination.offset | integer | The offset used for this page |
pagination.limit | integer | The limit used for this page |
pagination.total | integer | Number of valid machine IDs in the operator’s machines DID attribute, after integer validation but before registration filtering. Page slices may be smaller than limit because unregistered machines are dropped silently. |
200 with an empty machines array and pagination.total of 0.
Error responses
| Status | detail | Condition |
|---|---|---|
| 400 | "Empty DID" | Path parameter resolves to an empty string |
| 400 | "Invalid Ethereum address format" | DID or address does not match the expected hex format |
| 422 | (FastAPI validation error) | offset or limit fails validation constraints |
| 503 | "Service not initialised" | Server started without contract addresses |
| 503 | "Chain unavailable" | Any chain or DID call failed |
Example
Related endpoints
- GET /mcr/ returns detailed MCR data for a single machine, including revenue trend and summary.
- GET /machine/ returns the full machine profile with data visibility-dependent fields.
Previous
GET /metadata/{token_id}Return NFT metadata for a MachineNFT token, intended as an ERC-721 tokenURI target.
Next
GET /operator/{did}/machines

