프롬프트 실행 상태 조회
curl --request GET \
--url https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID} \
--header 'API-Key: <api-key>'import requests
url = "https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}"
headers = {"API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-Key': '<api-key>'}};
fetch('https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}', 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://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}")
.header("API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"answers": [
{
"model": "PERPLEXITY",
"promptID": "fTZ200JfbMwpQDXPnS8isw",
"query": "우리 서비스가 AI 검색에 노출되게 하려면 어떻게 해야 하나요?",
"region": "KR",
"status": "SUCCESS"
}
],
"failedCount": 12,
"finishedCount": 5000,
"id": "S8cqDSjSot67bCK6YtmvHw",
"runningCount": 0,
"status": "FINISHED",
"successCount": 4988,
"totalCount": 5000
}{
"code": "COMMON_BINDING",
"details": [
"PLATFORM_INVALID_ID: 유효하지 않은 ID 형식입니다."
],
"message": "요청 데이터를 처리할 수 없습니다"
}{
"code": "COMMON_UNAUTHORIZED",
"message": "인증되지 않은 사용자입니다"
}{
"code": "INSUFFICIENT_CREDITS",
"message": "크레딧이 부족합니다."
}{
"code": "TASK_GENERATION_RUN_NOT_FOUND",
"message": "태스크 생성 실행 기록을 찾을 수 없습니다"
}{
"code": "PLATFORM_RATE_LIMIT_EXCEEDED",
"message": "요청이 너무 많습니다. 잠시 후 다시 시도해주세요."
}{
"message": "Internal Server Error",
"requestID": "bkZqnHQepkgTOocTvyHWSlHcGzRqQbZk"
}API
실행 상태 조회
요청한 프롬프트 실행(runID)의 진행 상태와 전체/완료/성공/실패/진행중 건수, 항목별 세부 상태를 조회합니다.
오류
| HTTP | 코드 | 설명 |
|---|---|---|
| 400 | COMMON_BINDING | runID 형식 오류 (details 에 PLATFORM_INVALID_ID) |
| 401 | COMMON_UNAUTHORIZED | API 키 또는 액세스 토큰이 없거나 유효하지 않음 |
| 402 | INSUFFICIENT_CREDITS | 조직 크레딧 잔액이 이 요청의 단가보다 적음 |
| 404 | TASK_GENERATION_RUN_NOT_FOUND | 프롬프트 실행이 없거나 타 조직 소유 |
| 429 | PLATFORM_RATE_LIMIT_EXCEEDED | 요청 한도 초과. Retry-After 헤더의 초만큼 기다린 뒤 재시도 |
| 500 | — | 서버 내부 오류. code 없이 message 와 requestID 를 반환 |
GET
/
v1
/
platform
/
runs
/
{runID}
프롬프트 실행 상태 조회
curl --request GET \
--url https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID} \
--header 'API-Key: <api-key>'import requests
url = "https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}"
headers = {"API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'API-Key': '<api-key>'}};
fetch('https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}', 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://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}")
.header("API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform-api.trychainshift.ai/api/v1/platform/runs/{runID}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"answers": [
{
"model": "PERPLEXITY",
"promptID": "fTZ200JfbMwpQDXPnS8isw",
"query": "우리 서비스가 AI 검색에 노출되게 하려면 어떻게 해야 하나요?",
"region": "KR",
"status": "SUCCESS"
}
],
"failedCount": 12,
"finishedCount": 5000,
"id": "S8cqDSjSot67bCK6YtmvHw",
"runningCount": 0,
"status": "FINISHED",
"successCount": 4988,
"totalCount": 5000
}{
"code": "COMMON_BINDING",
"details": [
"PLATFORM_INVALID_ID: 유효하지 않은 ID 형식입니다."
],
"message": "요청 데이터를 처리할 수 없습니다"
}{
"code": "COMMON_UNAUTHORIZED",
"message": "인증되지 않은 사용자입니다"
}{
"code": "INSUFFICIENT_CREDITS",
"message": "크레딧이 부족합니다."
}{
"code": "TASK_GENERATION_RUN_NOT_FOUND",
"message": "태스크 생성 실행 기록을 찾을 수 없습니다"
}{
"code": "PLATFORM_RATE_LIMIT_EXCEEDED",
"message": "요청이 너무 많습니다. 잠시 후 다시 시도해주세요."
}{
"message": "Internal Server Error",
"requestID": "bkZqnHQepkgTOocTvyHWSlHcGzRqQbZk"
}status가 FINISHED가 될 때까지 30초 정도 간격의 폴링을 권장합니다.
자주 묻는 질문
답변 본문은 왜 없나요? 이 응답의answers는 실행별 진행 상태만 담습니다. 본문·인용 출처는 답변 목록을 runID 필터로 조회하세요.
FINISHED인데 failedCount가 있습니다.
개별 실행이 실패해도 실행 요청은 FINISHED로 종료됩니다. 실패한 실행은 답변이 생성되지 않고 크레딧도 차감되지 않습니다.인증
"조직 API 키를 입력하세요. 예: 'cs_live_xxxx'"
경로 매개변수
조회할 프롬프트 실행 ID — 프롬프트 실행 요청 응답의 id 를 그대로 넣습니다
응답
OK
항목별 세부 진행 상태 (프롬프트 × 모델 × 반복 1회당 1건)
Show child attributes
Show child attributes
실패했거나 건너뛴 항목 수
예시:
12
종료된 항목 수 (성공 + 실패)
예시:
5000
조회한 프롬프트 실행 ID. 제출 응답의 id 이자 요청 경로의 runID 와 같은 값입니다
예시:
"S8cqDSjSot67bCK6YtmvHw"
아직 종료되지 않은 항목 수
예시:
0
프롬프트 실행 전체의 진행 상태. RUNNING: 아직 종료되지 않은 항목이 남음(runningCount > 0), FINISHED: 모든 항목이 종료됨(finishedCount == totalCount). RUNNING 에서 FINISHED 로 한 번만 전이하며 되돌아가지 않습니다. 제출 직후 실행 항목이 아직 준비되지 않아 totalCount 가 0 인 동안에도 RUNNING 입니다. 실패한 항목이 있어도 전부 종료되면 FINISHED 이므로, 성공 여부는 successCount·failedCount 로 판단합니다
사용 가능한 옵션:
RUNNING, FINISHED 예시:
"FINISHED"
답변 분류까지 완료된 항목 수
예시:
4988
전체 실행 항목 수 (프롬프트 수 × 모델 수 × 반복 횟수)
예시:
5000