
API Documentation
This website is driven by a set of public APIs. You have the option to utilize these APIs to create your own PodUptime dashboard or develop entirely different applications. The APIs are documented below, providing you with the information needed to leverage their capabilities.
General API Information
API Response Structure
All the API responses adhere to a consistent JSON format. Each response comprises a timestamp and a data object. The data object contains the actual information. The timestamp is always included in ISO 8601 format, providing visibility into when the data was last refreshed. This standardized structure ensures clarity and consistency across all API responses.
{
"timestamp": "2023-10-31T12:46:33Z",
"data": []
}
Available Regions
PodUptime operates as a global monitoring system with monitoring servers located in various regions around the world. Each region is assigned a unique identifier. You can specify the desired region in the API URIs to access the data from the specific region of your choice. This regional approach allows you to retrieve data relevant to your location or preferences.
Region | Identifier |
Global (aggregated) | global |
Ohio (us-east-2) | us-east-2 |
N. California (us-west-1) | us-west-1 |
Milan (eu-south-1) | eu-south-1 |
Monitored Endpoints
A monitored endpoint is a service that PodUptime actively monitors. Each monitored endpoint is assigned a unique identifier. You can use the endpoint identifier in the API URIs to specify which endpoint's data you wish to access. This approach allows you to retrieve information specific to the monitored service of interest.
Endpoint | Identifier |
Static (this website) | origin |
Spreaker | spreaker |
Omny Studio | omny |
Buzzsprout | buzzsprout |
RSS.com | rsscom |
Spotify for Podcasters | anchor |
Acast | acast |
Libsyn | libsyn |
RedCircle | redcircle |
Alitu | alitu |
Audioboom | audioboom |
iVoox | ivoox |
Podbean | podbean |
Podtrac | podtrac |
OP3.dev | op3 |
Chartable | chartable |
Blubrry (Stats) | blubrry-stats |
Podcorn | podcorn |
Podder | podderapp |
Podscribe | podscribe |
Overall Instant API
The Instant API is a straightforward API that provides a list of availability percentages for all the monitored endpoints within the last 30 minutes. This information offers a snapshot of the recent availability of the monitored services.
URI structure
https://poduptime.com/api/instant-region
.json
Example URIs
- https://poduptime.com/api/instant-global.json
- https://poduptime.com/api/instant-us-east-2.json
- https://poduptime.com/api/instant-us-west-1.json
- https://poduptime.com/api/instant-eu-south-1.json
Data
Field | Type | Nullable | Description |
endpoint | String | No | The name of the monitored endpoint. |
available | Number | Yes | When the value is null, it signifies that the availability is unknown. Otherwise, the value is a number between 0 and 1, representing the availability percentage |
Example Response
{
"timestamp": "2023-10-31T12:46:33Z",
"data": [
{
"endpoint": "acast",
"available": 1
},
{
"endpoint": "alitu",
"available": 1
},
"..."
]
}
Endpoint Instant API
The Endpoint Instance API is a straightforward API that provides a list of availability percentages for all the monitored URLs associated with a specific monitored endpoint within the last 30 minutes. This information offers insights into the recent availability of the individual URLs within the selected endpoint.
URI structure
https://poduptime.com/api/instant-endpoint
-region
.json
Example URIs
- https://poduptime.com/api/instant-origin-global.json
- https://poduptime.com/api/instant-origin-us-east-2.json
- https://poduptime.com/api/instant-origin-us-west-1.json
- https://poduptime.com/api/instant-origin-eu-south-1.json
Data
Field | Type | Nullable | Description |
type | String | No | The type of the monitored url. We now support those types:
|
available | Number | Yes | When the value is null, it signifies that the availability is unknown. Otherwise, the value is a number between 0 and 1, representing the availability percentage |
Example Response
{
"timestamp": "2023-10-31T14:56:33Z",
"data": [
{
"type": "enclosure",
"available": 1
},
{
"type": "feed",
"available": 1
}
]
}
Endpoint Detailed API
The Endpoint Detailed API is a straightforward API that offers a list of 1440 data points, each representing one minute of the availability history for a specified monitored endpoint within the last 24 hours. The data is consistently ordered from the oldest to the most recent, with any gaps or missing data filled with null values. This API provides a comprehensive view of the endpoint's availability over a 24-hour period.
URI structure
https://poduptime.com/api/detailed-endpoint
-region
.json
Example URIs
- https://poduptime.com/api/detailed-origin-global.json
- https://poduptime.com/api/detailed-origin-us-east-2.json
- https://poduptime.com/api/detailed-origin-us-west-1.json
- https://poduptime.com/api/detailed-origin-eu-south-1.json
Data
Field | Type | Nullable | Description |
timestamp | String | No | The timestamp of the data point. The timestamp is in ISO 8601 format. |
available | Number | Yes | When the value is null, it signifies that the availability is unknown. Otherwise, the value is a number between 0 and 1, representing the availability percentage |
Example Response
{
"timestamp": "2023-10-31T15:35:35Z",
"data": [
{
"timestamp": "2023-10-30T15:35:00Z",
"available": 1
},
{
"timestamp": "2023-10-30T15:36:00Z",
"available": 1
},
{
"timestamp": "2023-10-30T15:37:00Z",
"available": null
},
{
"timestamp": "2023-10-30T15:38:00Z",
"available": 1
},
"..."
]
}
Endpoint Daily API
The Endpoint Daily API is a straightforward API that provides a list of 30 data points, each representing one day's availability for a specified monitored endpoint within the last 30 days. The data is consistently ordered from the oldest to the most recent, with any gaps or missing data filled with null values. This API offers a condensed overview of the endpoint's daily availability over the past 30 days.
URI structure
https://poduptime.com/api/daily-endpoint
-region
.json
Example URIs
- https://poduptime.com/api/daily-origin-global.json
- https://poduptime.com/api/daily-origin-us-east-2.json
- https://poduptime.com/api/daily-origin-us-west-1.json
- https://poduptime.com/api/daily-origin-eu-south-1.json
Data
Field | Type | Nullable | Description |
timestamp | String | No | The timestamp of the data point. The timestamp is in ISO 8601 format. |
available | Number | Yes | When the value is null, it signifies that the availability is unknown. Otherwise, the value is a number between 0 and 1, representing the availability percentage |
Example Response
{
"timestamp": "2023-10-31T10:05:46Z",
"data": [
{
"timestamp": "2023-10-28T00:00:00Z",
"available": 1
},
{
"timestamp": "2023-10-29T00:00:00Z",
"available": null
},
{
"timestamp": "2023-10-30T00:00:00Z",
"available": 1
},
"..."
]
}
Recent Issues API
The Recent Issues API is a straightforward API that offers a list of the full events for the last 10 issues recorded by the monitoring system. This API provides access to detailed information about the most recent 10 incidents or problems detected by the monitoring system.
URI structure
https://poduptime.com/api/recent-issues-endpoint
-region
.json
Example URIs
- https://poduptime.com/api/recent-issues-origin-global.json
- https://poduptime.com/api/recent-issues-origin-us-east-2.json
- https://poduptime.com/api/recent-issues-origin-us-west-1.json
- https://poduptime.com/api/recent-issues-origin-eu-south-1.json
Data
Field | Type | Nullable | Description | ||||||||||||||||
id | String | No | A guid that uniquely identifies the request that caused the issue. The User-Agent being
used to perform the request by our monitoring service is: Mozilla/5.0 (compatible; PodUptimeBot/1.0; +https://poduptime.com; rid:XXX) . The rid parameter in the User-Agent matches the id of the issue.
| ||||||||||||||||
timestamp | String | No | The timestamp of the data point. The timestamp is in ISO 8601 format. | ||||||||||||||||
region | String | No | The region where the issue was detected. The region is one of those:
| ||||||||||||||||
endpoint | String | No | The name of the monitored endpoint where the issue was detected. | ||||||||||||||||
url | String | No | The url where the issue was detected. | ||||||||||||||||
type | String | No |
The type of the monitored url. We now support those types:
| ||||||||||||||||
status | Number | No | The HTTP status code returned by the url. | ||||||||||||||||
headers | Object | No | The HTTP headers returned by the url. The object is a key-value pair where the key is the header name and the value is the header value. | ||||||||||||||||
traversal | Array | No | The list of urls that were traversed to reach the final url. The list is ordered from the first url to the last url. | ||||||||||||||||
error | Object | No |
The error object contains the error details. The object has the following structure:
| ||||||||||||||||
available | Number | Yes | In the context of issues, the availability value is consistently set to 0. |
Example Response
{
"timestamp": "2023-10-31T16:20:18Z",
"data": [
{
"id": "32f924d2-94e3-4816-9b9d-629213e48267",
"timestamp": "2023-10-31T15:23:16Z",
"region": "eu-south-1",
"endpoint": "dummy-hosting",
"url": "https://httpbin.org/status/200",
"type": "enclosure",
"status": 502,
"headers": {
"server": "awselb/2.0",
"date": "Tue, 31 Oct 2023 15:23:16 GMT",
"content-type": "text/html",
"content-length": "122",
"connection": "close"
},
"error": {
"name": "UnexpectedHttpStatusError",
"code": "ERROR_UNEXPECTED_HTTP_STATUS",
"message": "Unexpected HTTP Status: 502"
},
"traversal": [
"https://httpbin.org/status/200"
],
"duration": 588.921607,
"available": 0
},
"..."
]
}