PowerStore: How to use PowerStore Rest API

Résumé: This article provides an introduction to the PowerStore REST API, including practical usage examples and common errors.

Cet article concerne Cet article ne concerne pas Cet article n’est associé à aucun produit spécifique. Toutes les versions du produit ne sont pas identifiées dans cet article.

Instructions

Several tools can be used to test REST APIs, including Postman, HTTPie, and cURL. In this article, cURL is used for all examples because it is readily available on most operating systems by default.

Common Rest API usage:

  • Node Health:
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/hardware?select=id,name,type,lifecycle_state?type=eq.Node

Output examples:

{"id":"00b941ceea9243f0a36e85abe9504214","name":"BaseEnclosure-NodeB","type":"Node","lifecycle_state":"Healthy"}, 
{"id":"2877d096fd2a4cc4b3b8af97f21c1c24","name":"BaseEnclosure-NodeA","type":"Node","lifecycle_state":"Healthy"}
  • Replication State: 
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/replication_session?select=id,role,state,last_sync_timestamp,local_resource_id

Output examples:

{"id":"047e38ee-9aeb-4761-8ca5-393204fe6584","role":"Metro_Preferred","state":"OK","last_sync_timestamp":"2026-07-16T15:48:05.628263+00:00","local_resource_id":"d34bd80e-1d43-4692-ab37-e307bc92eb73"}, 
{"id":"26dd4105-a24f-4d82-b40b-20dcefbfe5df","role":"Source","state":"OK","last_sync_timestamp":"2026-07-16T15:31:54.64127+00:00","local_resource_id":"82c40277-dee4-46de-8559-920fe5f942cc"}, 
{"id":"414dba20-08b1-4d5e-a521-517a3b37473a","role":"Metro_Preferred","state":"OK","last_sync_timestamp":"2026-07-16T15:51:05.525764+00:00","local_resource_id":"eb970724-cc3e-4661-8d71-bec7f44baf10"}
  • System Alert:
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/alert?select=id,event_code,severity,resource_type,generated_timestamp,state,description_l10n

Output examples:

{"id":"008abb47-e72d-4608-b915-b8c01328b64e","event_code":"0x01700304","severity":"Major","resource_type":"remote_system","generated_timestamp":"2026-05-11T01:51:01.280627+00:00","state":"ACTIVE","description_l10n":"All data connections from the remote system Ghost are disconnected."}, 
{"id":"01114811-82a9-484e-8cf9-3da50c0e3d7b","event_code":"0x01701801","severity":"Info","resource_type":"volume","generated_timestamp":"2026-07-14T02:15:34.764524+00:00","state":"CLEARED","description_l10n":"Metro witness configured for resource HyperV-Node1 is engaged."}
  • Audit Events:
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/audit_event?select=id,type,timestamp,username,resource_type,resource_action,message_l10n,client_address

The output can be huge and need filtering. For example, to view events related to user admin. Try:

curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/audit_event?select=id,type,timestamp,username,resource_type,resource_action,message_l10n,client_address?username=eq.admin

Output examples:

{"id":"111540","type":"Config","timestamp":"2026-03-11T20:25:57.267124+00:00","username":"admin","resource_type":"host","resource_action":"delete","message_l10n":"Successfully deleted host with name: Thors 183.24 (iSCSI) and ID: c698f28b-49ac-4268-a9c7-c6da66bdfbc8.","client_address":"10.158.49.47"}, 
{"id":"111541","type":"Config","timestamp":"2026-03-11T20:25:57.337655+00:00","username":"admin","resource_type":"host","resource_action":"delete","message_l10n":"Successfully deleted metadata with keys: [] associated with the resource with type: host and ID: c698f28b-49ac-4268-a9c7-c6da66bdfbc8.","client_address":"10.158.49.47"}
  • Snapshot List:
curl -H "Accept: application/json"  -u "admin:********" -X GET -k https://xx.xx.xx.xx/api/rest/volume_snap_list_cma_view?select=id,name,source_timestamp,description,creation_timestamp

Output examples:

{"id":"24d7856d-d389-4f05-9752-ebb1de61a6d6","name":"Walid Snaps.PowerTriage-RHEL (Walid DO NOT DELETE).2026-07-15T00:00:00Z 189403910","source_timestamp":"2026-07-15T00:03:16.096762+00:00","description":"","creation_timestamp":"2026-07-15T00:03:16.096762+00:00"},
{"id":"2cfd727f-b09c-4895-8fd5-93850fd63698","name":"Daily-File.7DSL0M2-1-001.2026-07-14T00:08:08Z 281536767","source_timestamp":"2026-07-14T00:08:08.618343+00:00","description":null,"creation_timestamp":"2026-07-14T00:08:08.618343+00:00"}
  • Performance Metrics:
curl -H "Accept: application/json" -H "Content-Type: application/json" -u "admin:********" -X POST -k https://xx.xx.xx.xx/api/rest/metrics/generate  -d '{ "entity": "performance_metrics_by_appliance", "entity_id": "A1","interval": "One_Day" }'|jq '.'

Output examples:

{
  "appliance_id": "A1",
  "timestamp": "2026-07-15T00:00:00Z",
  "avg_read_latency": 172.76094,
  "avg_write_latency": 404.14536,
  "avg_mirror_write_latency": 924.59375,
  "avg_mirror_overhead_latency": 364.82297,
  "avg_latency": 273.2135,
  "avg_read_size": 91601.2,
  "avg_write_size": 6204.5635,
  "avg_io_size": 54527.355,
  "avg_read_iops": 9.996701,
  "avg_write_iops": 7.669595,
  "avg_mirror_write_iops": 0.024386574,
  "avg_total_iops": 17.666296,
  "avg_read_bandwidth": 915709.9,
  "avg_write_bandwidth": 47586.49,
  "avg_mirror_write_bandwidth": 190.67259,
  "avg_total_bandwidth": 963296.4,
  "avg_io_workload_cpu_utilization": 0.00399437453597784,
  "max_avg_read_latency": 401.14688,
  "max_avg_write_latency": 1679.9584,
  "max_avg_latency": 652.1067,
  "max_avg_mirror_write_latency": 3842,
  "max_avg_mirror_overhead_latency": 3319,
  "max_avg_read_size": 99656.45,
  "max_avg_write_size": 30189.037,
  "max_avg_io_size": 85726.97,
  "max_read_iops": 161.2,
  "max_write_iops": 680.6,
  "max_mirror_write_iops": 3.8,
  "max_total_iops": 834,
  "max_read_bandwidth": 8509440,
  "max_write_bandwidth": 8792986,
  "max_mirror_write_bandwidth": 22732.8,
  "max_total_bandwidth": 17252044,
  "max_io_workload_cpu_utilization": 0.2170485556125641,
  "repeat_count": 1,
  ...
  "response_definition": "performance_metrics_by_appliance_rollup",
  "entity": "performance_metrics_by_appliance"
}

Common errors with Rest API:

Adding "-v" to your curl command to show the error. 

 

  • Example 1: Wrong credential
curl -H "Accept: application/json"  -u "admin:wrong_password" -k https://10.241.219.160/api/rest/hardware?select=id,name,type,lifecycle_state?type=eq.Node
* Request completely sent off
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
< HTTP/1.1 401 Unauthorized
< WWW-Authenticate: SSOCustom realm="Cyclone Realm"
< content-type: application/json
< content-length:
  • Example 2: Httpd is not running
curl -v -H "Accept: application/json"  -u "admin:********" -k https://xx.xx.xx.xx/api/rest/hardware?select=id,name,type,lifecycle_state?type=eq.Node
*   Trying xx.xx.xx.xx:443...
* connect to xx.xx.xx.xx port 443 from xx.xx.xx.xx port 59124 failed: Connection timed out
* Failed to connect to xx.xx.xx.xx port 443 after 31939 ms: Could not connect to server
* closing connection #0
curl: (28) Failed to connect to xx.xx.xx.xx port 443 after 31939 ms: Could not connect to server
  • Example 3: Wrong syntax without content type
curl -v -H "Accept: application/json" -u "admin:********" -X POST -k https://xx.xx.xx.xx/api/rest/metrics/generate  -d '{ "entity": "performance_metrics_by_appliance", "entity_id": "A1","interval": "One_Day" }'
{"messages":[{"severity":"Error","code":"0xE04040030001","message_l10n":"Validation failed: Request Content-Type header '[application/x-www-form-urlencoded]' does not match any allowed types. Must be one of: [application/json]., A request body is required but none found..","arguments":[{"delimiter":", ","messages":[{"severity":"Error","code":"validation.request.contentType.notAllowed","message_l10n":"Request Content-Type header '[application/x-www-form-urlencoded]' does not match any allowed types. Must be one of: [application/json].","arguments":["[application/x-www-form-urlencoded]","[application/json]"]},{"severity":"Error","code":"validation.request.body.missing","message_l10n":"A request body is required but none found."}]}]}]}

Useful Links:

Produits concernés

PowerStore, PowerStoreOS
Propriétés de l’article
Numéro d’article: 000490125
Type d’article: How To
Dernière modification: 31 juil. 2026
Version:  2
Trouvez des réponses à vos questions auprès d’autres utilisateurs Dell
Services de support
Vérifiez si votre appareil est couvert par les services de support.