---
updatedAt: 2026-03-01T18:30:33.000Z
agentTools:
  siteIndex: https://techdocs.akamai.com/llms.txt
  projectIndex: https://techdocs.akamai.com/edge-hostnames/llms.txt
---

# List change requests

```curl cURL
status="PENDING"

egcurl --eg-section default --request GET \
  --url "https://$hostname/hapi/v1/change-requests?status=$status" \
  --header "Accept: application/json" 
```

```node Node
const EdgeGrid = require("akamai-edgegrid");
const os = require("os");
const edgercPath = os.homedir + "/.edgerc.txt";
const edgercSection = "default";  
const eg = new EdgeGrid({
  path: edgercPath,
  section: edgercSection
});   


eg.auth({
  path: `/hapi/v1/change-requests`,
  method: "GET",
  headers: {
    
    "Accept": "application/json"},
  qs: {
    "status": "PENDING"
}                    
});
eg.send(function(error, response, body) {
  console.log(body);    
});
```

```python Python
import requests
from akamai.edgegrid import EdgeGridAuth, EdgeRc
from urllib.parse import urljoin

edgerc = EdgeRc('~/.edgerc.txt')
section = 'default'
baseurl = 'https://%s' % edgerc.get(section, 'host')

session = requests.Session()
session.auth = EdgeGridAuth.from_edgerc(edgerc, section)
 

path= '/hapi/v1/change-requests'
headers = {
  
  "Accept": "application/json"} 
querystring = {
  "status": "PENDING"
}  

result = session.get(urljoin(baseurl, path), headers=headers, params=querystring)
print(result.status_code)
print(result.json())  
```

```json Response Example
{
    "changeRequests": [
        {
            "action": "EDIT",
            "changeId": 2,
            "comments": "Editing CNAME",
            "status": "PENDING",
            "statusMessage": "File uploaded and awaiting validation",
            "statusUpdateDate": "2018-10-17T20:21:17.0Z",
            "statusUpdateEmail": "asmith@akamai.com",
            "submitDate": "2018-10-17T20:21:12.0Z",
            "submitter": "asmith",
            "submitterEmail": "asmith@akamai.com",
            "edgeHostnames": [
                {
                    "edgeHostnameId": 2,
                    "recordName": "www.examples.com",
                    "dnsZone": "edgesuite.net",
                    "securityType": "STANDARD-TLS",
                    "useDefaultTtl": true,
                    "useDefaultMap": true,
                    "ipVersionBehavior": "IPV4",
                    "productId": "DSA",
                    "ttl": 21600,
                    "map": "a;g.akamai.net",
                    "serialNumber": 140,
                    "comments": "Created for site"
                }
            ]
        },
        {
            "action": "CREATE",
            "changeId": 1,
            "comments": "Created for example.com",
            "status": "PENDING",
            "statusMessage": "File uploaded and awaiting validation",
            "statusUpdateDate": "2018-10-17T20:21:17.0Z",
            "statusUpdateEmail": "asmith@akamai.com",
            "submitDate": "2018-10-17T20:21:12.0Z",
            "submitter": "asmith",
            "submitterEmail": "asmith@akamai.com",
            "edgeHostnames": [
                {
                    "edgeHostnameId": 1,
                    "recordName": "www.example.com",
                    "dnsZone": "edgekey.net",
                    "securityType": "ENHANCED-TLS",
                    "useDefaultTtl": false,
                    "useDefaultMap": false,
                    "ttl": 21600,
                    "map": "e;b.akamaiedge.net",
                    "slotNumber": 11838,
                    "ipVersionBehavior": "IPV4",
                    "comments": "Edited for Super Bowl"
                }
            ]
        }
    ]
}
```

# Set up authorization

<!-- curl@0-100 -->
<!-- node@0-100 -->
<!-- python@0-100 -->

Before you can use this API, you need to [Create authentication credentials](https://techdocs.akamai.com/developer/docs/set-up-authentication-credentials). 

Then, you can use these code samples to apply the token values to your requests.

# Filter for PENDING change requests

<!-- curl@1 -->
<!-- node@18 -->
<!-- python@18 -->

Optionally, set the `status` query parameter to `PENDING` to include only edge hostnames with pending change requests.

# Form the URL

<!-- curl@4 -->
<!-- node@12,18 -->
<!-- python@13,18 -->

Form the URL to get edge hostnames with change requests that are `PENDING`, `SUCCEEDED`, `FAILED`, or `IGNORED`.
Optionally, set the `status` query parameter to `PENDING`.

# Call the API

<!-- curl@1-100 -->
<!-- node@1-100 -->
<!-- python@1-100 -->

Call GET on the request URL.

# Review the response

<!-- curl@101 -->
<!-- node@101 -->
<!-- python@101 -->

The response returns the details such as the `changeId`  and type of change requests made to the edge hostnames. The `status` indicates if the change has happened.