> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://en.megaport.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://en.megaport.ferndocs.com/_mcp/server.

# Outage Events

GET https://api.megaport.com/ens/v1/status/outage

Returns details about outage events, filtered by the specified state value.

The following information is returned for outage events in the response, with some fields being optional and only included under certain conditions. For example, `resolution` is returned only if the outage is resolved.

- `eventId` - Ticket number against which a particular event is created.
    
- `state` - Current state of the event.
    
- `startTime` - Event start time in ISO 8601 UTC format (yyyy-MM-dd'T'HH:mm:ss.SSSX).
    
- `endTime` - Event end time in ISO 8601 UTC format (yyyy-MM-dd'T'HH:mm:ss.SSSX).
    
- `purpose` - Reason why this event is created.
    
- `services` - List of services affected by the event, containing the short UUIDs of the services.
    
- `rootCause` - Reason explaining why an outage happened. This field is present only when an outage is resolved.
    
- `resolution` - Field present in response when an outage is resolved. It explains the solution taken to resolve the outage.
    
- `mitigationActions` - Field present for resolved outages. It explains the steps taken to avoid such outages in the future.
    
- `createdBy` - User who created the outage.
    
- `createdDate` - Date and time when an outage event is created, in ISO 8601 UTC format (yyyy-MM-dd'T'HH:mm:ss.SSSX).
    
- `updatedDate` - Date and time when an outage event is updated, in ISO 8601 UTC format (yyyy-MM-dd'T'HH:mm:ss.SSSX).
    
- `notices` - List of notices sent as an update for an ongoing outage.
    
- `outageId` - A unique identifier for each outage event. This ID is used to uniquely identify and manage individual outage events within the system.

Reference: https://en.megaport.ferndocs.com/api-reference/maintenance-and-outage-events/outage-events

## Servers

- `https://api.megaport.com` (Production environment, default)
- `https://api-staging.megaport.com` (Staging environment (test only, reset every 24 hours))

## Request

### Query parameters

- `state` (string, optional) — Filter by the state of the outage event. The values for state are "Ongoing" and "Resolved". If you don't specify a value, the default is "Ongoing". Values are case-insensitive. (Optional).

## Response

### 200

Outage Events - Ongoing / Outage Events - Managed Account / Outage Events - Managed Account / Outage Events - Ongoing

- `list of EnsV1StatusOutageGetResponsesContentApplicationJsonSchemaItems`

## Types

### EnsV1StatusOutageGetResponsesContentApplicationJsonSchemaItems

- `createdBy` (string, optional)
- `createdDate` (string, optional)
- `eventId` (string, optional)
- `notices` (list of any, optional)
- `outageId` (string, optional)
- `purpose` (string, optional)
- `services` (list of any, optional)
- `startTime` (string, optional)
- `state` (string, optional)
- `updatedDate` (string, optional)

## Examples

### Outage Events - Managed Account

**Response**

```json
[
  {
    "createdBy": "john.cena@fibre.com",
    "createdDate": "2024-05-22T13:39:32.468Z",
    "eventId": "CSS-1234",
    "notices": [],
    "outageId": "c2037361-eb5b-48a3-9c73-fb4efbf2c886",
    "purpose": "Due to high CPU Usage, service outage occurred",
    "services": [],
    "startTime": "2024-05-22T09:08:00.000Z",
    "state": "Ongoing",
    "updatedDate": "2024-05-22T13:39:32.468Z"
  },
  {
    "createdBy": "john.cena@fibre.com",
    "createdDate": "2024-05-23T13:02:30.968Z",
    "eventId": "CSS-12345",
    "notices": [],
    "outageId": "ce0dd76b-655c-425f-923f-af5ae896756f",
    "purpose": "This happened because something broke",
    "services": [],
    "startTime": "2024-05-23T08:32:00.000Z",
    "state": "Ongoing",
    "updatedDate": "2024-05-23T13:02:30.968Z"
  }
]
```

**SDK Code**

```python Outage Events - Managed Account
import requests

url = "https://api.megaport.com/ens/v1/status/outage"

response = requests.get(url)

print(response.json())
```

```javascript Outage Events - Managed Account
const url = 'https://api.megaport.com/ens/v1/status/outage';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Outage Events - Managed Account
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/ens/v1/status/outage"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Outage Events - Managed Account
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/ens/v1/status/outage")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java Outage Events - Managed Account
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.megaport.com/ens/v1/status/outage")
  .asString();
```

```php Outage Events - Managed Account
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.megaport.com/ens/v1/status/outage');

echo $response->getBody();
```

```csharp Outage Events - Managed Account
using RestSharp;

var client = new RestClient("https://api.megaport.com/ens/v1/status/outage");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift Outage Events - Managed Account
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/ens/v1/status/outage")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Outage Events - Ongoing

**Response**

```json
[
  {
    "createdBy": "john.cena@fibre.com",
    "createdDate": "2024-05-22T13:39:32.468Z",
    "eventId": "CSS-1234",
    "notices": [],
    "outageId": "c2037361-eb5b-48a3-9c73-fb4efbf2c886",
    "purpose": "Due to high CPU Usage, service outage occurred",
    "services": [],
    "startTime": "2024-05-22T09:08:00.000Z",
    "state": "Ongoing",
    "updatedDate": "2024-05-22T13:39:32.468Z"
  },
  {
    "createdBy": "john.cena@fibre.com",
    "createdDate": "2024-05-23T13:02:30.968Z",
    "eventId": "CSS-12345",
    "notices": [],
    "outageId": "ce0dd76b-655c-425f-923f-af5ae896756f",
    "purpose": "This happened because something broke",
    "services": [],
    "startTime": "2024-05-23T08:32:00.000Z",
    "state": "Ongoing",
    "updatedDate": "2024-05-23T13:02:30.968Z"
  }
]
```

**SDK Code**

```python Outage Events - Ongoing
import requests

url = "https://api.megaport.com/ens/v1/status/outage"

response = requests.get(url)

print(response.json())
```

```javascript Outage Events - Ongoing
const url = 'https://api.megaport.com/ens/v1/status/outage';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Outage Events - Ongoing
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.megaport.com/ens/v1/status/outage"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Outage Events - Ongoing
require 'uri'
require 'net/http'

url = URI("https://api.megaport.com/ens/v1/status/outage")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java Outage Events - Ongoing
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.megaport.com/ens/v1/status/outage")
  .asString();
```

```php Outage Events - Ongoing
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.megaport.com/ens/v1/status/outage');

echo $response->getBody();
```

```csharp Outage Events - Ongoing
using RestSharp;

var client = new RestClient("https://api.megaport.com/ens/v1/status/outage");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift Outage Events - Ongoing
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://api.megaport.com/ens/v1/status/outage")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```