curl --request POST \
--url 'https://api.flashcat.cloud/safari/artifact/gallery/list?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"scope": "all",
"page": 1,
"limit": 20
}
'import requests
url = "https://api.flashcat.cloud/safari/artifact/gallery/list?app_key="
payload = {
"scope": "all",
"page": 1,
"limit": 20
}
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({scope: 'all', page: 1, limit: 20})
};
fetch('https://api.flashcat.cloud/safari/artifact/gallery/list?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/safari/artifact/gallery/list?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([
'scope' => 'all',
'page' => 1,
'limit' => 20
]),
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/safari/artifact/gallery/list?app_key="
payload := strings.NewReader("{\n \"scope\": \"all\",\n \"page\": 1,\n \"limit\": 20\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/safari/artifact/gallery/list?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"scope\": \"all\",\n \"page\": 1,\n \"limit\": 20\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/artifact/gallery/list?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 \"scope\": \"all\",\n \"page\": 1,\n \"limit\": 20\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"items": [
{
"artifact_id": "art_VnfrWic8UbB9q3EfYR4Gmg",
"title": "SK 海力士 2026 Q2 财报深度分析",
"team_id": 2477033058131,
"team_name": "研发团队",
"person_id": 2476444212131,
"creator_name": "yushuangyu",
"is_mine": true,
"can_edit": true,
"session_id": "sess_VCbVPZrq9YoyBu8sNCmqUy",
"session_title": "分析海力士财报并发布报告",
"file_id": "pf_SdhEA5fbZJGnHzwrNJMMSB",
"name": "sk-hynix-q2-2026-report.html",
"size": 18996,
"content_type": "text/html",
"created_at": 1785293373899,
"updated_at": 1785747910219,
"share_enabled": true,
"public_url": "https://console.flashcat.cloud/share/artifact/art_VnfrWic8UbB9q3EfYR4Gmg",
"shared_by": 3790925372131,
"shared_at": 1785747928665,
"share_file_id": "pf_SdhEA5fbZJGnHzwrNJMMSB"
},
{
"artifact_id": "art_CWQzDU2PXSRJvKDhQbuMKu",
"title": "rum_recommendation",
"team_id": 2477033058131,
"team_name": "研发团队",
"person_id": 3790925372131,
"creator_name": "牛伟利",
"is_mine": false,
"can_edit": true,
"session_id": "sess_QXUC9C2PYWP5EE7vETR3UD",
"session_title": "生成 RUM 文档多格式",
"file_id": "pf_Jnc4E5YBcWLGzunB4ntP9s",
"name": "rum_recommendation.pdf",
"size": 137107,
"content_type": "application/pdf",
"created_at": 1785229432881,
"updated_at": 1785741344822
}
],
"total": 17
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter skill_id is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"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."
}
}List artifacts
List published artifacts visible to the caller, with pagination and title search.
curl --request POST \
--url 'https://api.flashcat.cloud/safari/artifact/gallery/list?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"scope": "all",
"page": 1,
"limit": 20
}
'import requests
url = "https://api.flashcat.cloud/safari/artifact/gallery/list?app_key="
payload = {
"scope": "all",
"page": 1,
"limit": 20
}
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({scope: 'all', page: 1, limit: 20})
};
fetch('https://api.flashcat.cloud/safari/artifact/gallery/list?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/safari/artifact/gallery/list?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([
'scope' => 'all',
'page' => 1,
'limit' => 20
]),
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/safari/artifact/gallery/list?app_key="
payload := strings.NewReader("{\n \"scope\": \"all\",\n \"page\": 1,\n \"limit\": 20\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/safari/artifact/gallery/list?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"scope\": \"all\",\n \"page\": 1,\n \"limit\": 20\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/safari/artifact/gallery/list?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 \"scope\": \"all\",\n \"page\": 1,\n \"limit\": 20\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"items": [
{
"artifact_id": "art_VnfrWic8UbB9q3EfYR4Gmg",
"title": "SK 海力士 2026 Q2 财报深度分析",
"team_id": 2477033058131,
"team_name": "研发团队",
"person_id": 2476444212131,
"creator_name": "yushuangyu",
"is_mine": true,
"can_edit": true,
"session_id": "sess_VCbVPZrq9YoyBu8sNCmqUy",
"session_title": "分析海力士财报并发布报告",
"file_id": "pf_SdhEA5fbZJGnHzwrNJMMSB",
"name": "sk-hynix-q2-2026-report.html",
"size": 18996,
"content_type": "text/html",
"created_at": 1785293373899,
"updated_at": 1785747910219,
"share_enabled": true,
"public_url": "https://console.flashcat.cloud/share/artifact/art_VnfrWic8UbB9q3EfYR4Gmg",
"shared_by": 3790925372131,
"shared_at": 1785747928665,
"share_file_id": "pf_SdhEA5fbZJGnHzwrNJMMSB"
},
{
"artifact_id": "art_CWQzDU2PXSRJvKDhQbuMKu",
"title": "rum_recommendation",
"team_id": 2477033058131,
"team_name": "研发团队",
"person_id": 3790925372131,
"creator_name": "牛伟利",
"is_mine": false,
"can_edit": true,
"session_id": "sess_QXUC9C2PYWP5EE7vETR3UD",
"session_title": "生成 RUM 文档多格式",
"file_id": "pf_Jnc4E5YBcWLGzunB4ntP9s",
"name": "rum_recommendation.pdf",
"size": 137107,
"content_type": "application/pdf",
"created_at": 1785229432881,
"updated_at": 1785741344822
}
],
"total": 17
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter skill_id is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"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."
}
}Authorizations
App key issued from the Flashduty console. Required on every public API call. Keep it secret — it grants the same access as the owning account.
Body
Filter and paginate the artifact gallery.
Visibility scope. all (default) lists the caller's own personal artifacts plus artifacts of every team the caller belongs to; personal lists only the caller's own; team lists only team-owned artifacts of the caller's teams.
all, personal, team Restrict to artifacts owned by these team IDs, intersected with the caller's visibility — teams the caller does not belong to silently return nothing.
Case-insensitive substring match on the artifact title.
Page number, 1-based.
x >= 1Page size. Defaults to 20; capped at 100.
x <= 100Sort field: created_at or updated_at. Empty means updated_at descending.
created_at, updated_at Sort ascending when true, descending when false. Applies only when orderby is set.
Response
Success
Standard response envelope used by every Flashduty public API. On success data contains the endpoint-specific payload and error is absent. On failure error is present and data is absent. request_id is always present and is also mirrored in the Flashcat-Request-Id response header.
Unique ID for this request. Mirrored in the Flashcat-Request-Id header. Include it when reporting issues.
"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"
Error payload inside the response envelope. Present only on non-2xx responses.
Show child attributes
Show child attributes
A page of gallery artifacts.
Show child attributes
Show child attributes
Was this page helpful?