curl --request POST \
--url 'https://api.flashcat.cloud/schedule/by-person?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"person_id": 2476444212131
}
'import requests
url = "https://api.flashcat.cloud/schedule/by-person?app_key="
payload = { "person_id": 2476444212131 }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({person_id: 2476444212131})
};
fetch('https://api.flashcat.cloud/schedule/by-person?app_key=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.flashcat.cloud/schedule/by-person?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'person_id' => 2476444212131
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.flashcat.cloud/schedule/by-person?app_key="
payload := strings.NewReader("{\n \"person_id\": 2476444212131\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.flashcat.cloud/schedule/by-person?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"person_id\": 2476444212131\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/schedule/by-person?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"person_id\": 2476444212131\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"current": {
"schedule_id": 2539108069860,
"schedule_name": "Open Source Q&A",
"start_at": 1773446400,
"end_at": 1773532799
},
"next": {
"schedule_id": 2539108069860,
"schedule_name": "Open Source Q&A",
"start_at": 1773532800
},
"schedules": [
{
"schedule_id": 2539108069860,
"schedule_name": "Open Source Q&A"
}
]
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "AccessDenied",
"message": "Access Denied."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}Get member on-call status
Get a member’s current and next on-call shifts and every enabled schedule they participate in.
curl --request POST \
--url 'https://api.flashcat.cloud/schedule/by-person?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"person_id": 2476444212131
}
'import requests
url = "https://api.flashcat.cloud/schedule/by-person?app_key="
payload = { "person_id": 2476444212131 }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({person_id: 2476444212131})
};
fetch('https://api.flashcat.cloud/schedule/by-person?app_key=', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.flashcat.cloud/schedule/by-person?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'person_id' => 2476444212131
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.flashcat.cloud/schedule/by-person?app_key="
payload := strings.NewReader("{\n \"person_id\": 2476444212131\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.flashcat.cloud/schedule/by-person?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"person_id\": 2476444212131\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/schedule/by-person?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"person_id\": 2476444212131\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"current": {
"schedule_id": 2539108069860,
"schedule_name": "Open Source Q&A",
"start_at": 1773446400,
"end_at": 1773532799
},
"next": {
"schedule_id": 2539108069860,
"schedule_name": "Open Source Q&A",
"start_at": 1773532800
},
"schedules": [
{
"schedule_id": 2539108069860,
"schedule_name": "Open Source Q&A"
}
]
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "AccessDenied",
"message": "Access Denied."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}Restrictions
| Aspect | Value |
|---|---|
| Rate limits | 1,000 requests/minute; 50 requests/second per account |
| Permissions | None — any valid app_key can call this operation |
Usage
currentis the shift in progress with its real start time; when the member is on call in several schedules at once, the one ending last is returned.nextis the earliest upcoming shift. Each isnullwhen nothing is found within 45 days of now.scheduleslists the enabled schedules where the member is in at least one layer that has not ended. Disabled schedules are not listed and do not count towardcurrent/next.- Any member of the account can be queried;
person_idcomes from the member list.
Authorizations
APP Key created in the Flashduty console under My → APP Key. Send it as the app_key query parameter or in the Fd-App-Key request header. Its effective access is the intersection of the key's permission scope and the creator's current role permissions. Keep it secret.
Body
Member on-call status request
Member ID whose on-call status is returned.
Response
Success
Success response envelope. On every 2xx response, request_id identifies the call (also mirrored in the Flashcat-Request-Id header) and data holds the endpoint-specific payload. Failure responses use a different shape — see ErrorResponse.
Unique ID for this request. Mirrored in the Flashcat-Request-Id response header. Include it when reporting issues.
"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
The member's on-call status: the shift in progress, the next one, and every enabled schedule they participate in.
Show child attributes
Show child attributes
Was this page helpful?