universal
Query minute-level data of edge status codes. Users can specify the start time, end time, and domain name to query the request count data corresponding to the status codes. The data granularity can be selected as either 1 minute or 5 minutes in the request. The return result includes the number of requests per minute for each status code.
Single user trigger frequency: 300/5min
| Name | Description |
|---|---|
*dateFromString | Start time:
1. The time format is yyyy-MM-ddTHH:mm:ss±HH:mm. Please note: ±HH:mm is the time zone offset, which can be adjusted according to your data needs, for example, +00:00 represents UTC time, +08:00 represents East 8th District, and -05:00 represents West 5th District. 2024-01-15T10:30:45+00:00 means UTC time January 15, 2024 10:30:45 AM;
2. Not greater than the current time
3. The most recent half-year (183 days) data can be obtained |
*dateToString | End time:
1. The time format is yyyy-MM-ddTHH:mm:ss±HH:mm. Please note: ±HH:mm is the time zone offset, which can be adjusted according to your data needs, for example, +00:00 represents UTC time, +08:00 represents East 8th District, and -05:00 represents West 5th District. 2024-01-15T10:30:45+00:00 means UTC time January 15, 2024 10:30:45 AM
2. End time should be greater than start time. If the end time is greater than current time, current time will be used.
3. If both fields of dataFrom and dateTo are left empty, then data in the last 1 hours will be queried by default; if one field is filled and one is left empty, then exception will occur.
4. Maximum time range allowable for query: 1 hour, means the period between dateFrom to dateTo should not exceed 1 hour |
*domainList | Domain:
1. The default upper limit of domains that can be entered is 20 (if you want to adjust, please, contact technical support);
2. Automatically filter out illegal domain names (pass illegal domain names, will be filtered out, the query results only return the data of legitimate domain names)
3. Domain name exceeding limit, misstatement |
*dataIntervalString | Data granularity:
1. default 1m
2. 1m (1 minute), 5m (5 minutes) |
| Name | Description |
|---|---|
resultList | result |
statusCodeDataList | statusCodeData |
statusCodeString | Status code |
requestDataList | requestData |
timestampString | DateTime, the format is yyyy-MM-dd HH:mm; the data value of every time slice represents the data value within the previous time granularity range. |
valueString | Number of requests for status codes |
| Error code(code) | Description(message) | HTTP status | Semantic |
|---|---|---|---|
| MissingBody | The request body was not delivered | 400 | The request body was not delivered |
| NotAcceptable | The Accept request header does not support it. The API only supports json and xml formats. The default format is json | 400 | The Accept request header does not support it. The API only supports json and xml formats. The default format is json |
| InvalidHTTPRequest | Request body format error | 400 | Request body format error |
| InvalidDatePeriod | The dateFrom or dateTo does not conform to the specification | 400 | The dateFrom or dateTo does not conform to the specification |
| DateSpanError | More than 60 minutes (1 hour) between dateFrom and dateTo | 400 | More than 60 minutes (1 hour) between dateFrom and dateTo |
| PARAM_INVALID | Parameter domain does not conform to specification | 400 | Parameter domain does not conform to specification |
| NumberLimitExceeded | Number of domains passed exceeds account limit | 400 | Number of domains passed exceeds account limit |
| PARAM_INVALID | Parameter dataInterval does not conform to specification | 400 | Parameter dataInterval does not conform to specification |
| InternalError | We encountered an internal error. Please try again. | 500 | We encountered an internal error. Please try again. |
#!/bin/bash
# Please remember to change the param (-H "X-Time-Zone") in this demo to the TimeZone you want in response
username='example_username'
apiKey='example_apiKey'
date=`env LANG="en_US.UTF-8" date -u "+%a, %d %b %Y %H:%M:%S GMT"`
password=`echo -en "$date" | openssl dgst -sha1 -hmac $apiKey -binary | openssl enc -base64`
curl -i --url "https://api.atomile.com/api/report/status-code/real-time/edge" \
-X "POST" \
-H "X-Time-Zone:GMT+00:00" \
-u "$username:$password" \
-H "Date: $date" \
-H "Accept: application/json" \
-d '{"dateFrom": "2019-01-01T10:00:00+00:00","dateTo": "2019-01-01T11:00:00+00:00","domain": ["www.baidu1.com","www.baidu2.com"],"dataInterval": "5m"
}'{
"result": [
{
"statusCodeData": [
{
"statusCode": "100",
"requestData": [
{
"timestamp": "2019-02-21 00:00",
"value": "10000"
},
{
"timestamp": "2019-02-21 00:05",
"value": "10000"
}
]
},
{
"statusCode": "200",
"requestData": [
{
"timestamp": "2019-02-21 00:05",
"value": "30000"
},
{
"timestamp": "2019-02-21 00:15",
"value": "10000"
}
]
},
{
"statusCode": "300",
"requestData": [
{
"timestamp": "2019-02-21 00:15",
"value": "10000"
}
]
},
{
"statusCode": "400",
"requestData": [
{
"timestamp": "2019-02-21 00:10",
"value": "30000"
}
]
},
{
"statusCode": "500",
"requestData": [
{
"timestamp": "2019-02-21 00:05",
"value": "10000"
},
{
"timestamp": "2019-02-21 00:10",
"value": "10000"
}
]
}
]
}
]
}