API 사용량 조회
curl --request GET \
--url https://sajuapi.dev/v1/reports/usage \
--header 'X-API-Key: <api-key>'import requests
url = "https://sajuapi.dev/v1/reports/usage"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://sajuapi.dev/v1/reports/usage', 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://sajuapi.dev/v1/reports/usage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-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://sajuapi.dev/v1/reports/usage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-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://sajuapi.dev/v1/reports/usage")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sajuapi.dev/v1/reports/usage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body리포트
API 사용량 조회
GET
/
v1
/
reports
/
usage
API 사용량 조회
curl --request GET \
--url https://sajuapi.dev/v1/reports/usage \
--header 'X-API-Key: <api-key>'import requests
url = "https://sajuapi.dev/v1/reports/usage"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://sajuapi.dev/v1/reports/usage', 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://sajuapi.dev/v1/reports/usage",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-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://sajuapi.dev/v1/reports/usage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-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://sajuapi.dev/v1/reports/usage")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sajuapi.dev/v1/reports/usage")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyv1 Enterprise API (Coming Soon)이 엔드포인트는 Enterprise 버전에서 제공될 예정입니다.
현재는 v0 API를 사용하세요.
Query 파라미터
string
default:"day"
집계 기간입니다.
hour, day, week, month 중 하나입니다.string
조회 시작 날짜입니다. ISO 8601 형식(YYYY-MM-DD)입니다. 기본값은 7일 전입니다.
string
조회 종료 날짜입니다. ISO 8601 형식(YYYY-MM-DD)입니다. 기본값은 오늘입니다.
string
default:"endpoint"
그룹화 기준입니다.
endpoint, method, status_code 중 하나입니다.Response
성공
API 사용량 조회에 성공하면 UsageReport 객체가 반환됩니다.실패
| 상태 코드 | 에러 타입 | 설명 |
|---|---|---|
| 400 | validation_error | 쿼리 파라미터가 유효하지 않음 |
| 401 | authentication_error | API 키가 유효하지 않음 |
| 429 | rate_limited | 요청 한도 초과 |
요청 예시
curl -X GET "https://api.sajuapi.dev/v1/reports/usage?period=day&start_date=2025-01-10&end_date=2025-01-16" \
-H "X-API-Key: bs_live_xxx"
const params = new URLSearchParams({
period: 'day',
start_date: '2025-01-10',
end_date: '2025-01-16'
});
const response = await fetch(
`https://api.sajuapi.dev/v1/reports/usage?${params}`,
{
headers: {
'X-API-Key': 'bs_live_xxx'
}
}
);
const usage = await response.json();
import requests
response = requests.get(
'https://api.sajuapi.dev/v1/reports/usage',
headers={'X-API-Key': 'bs_live_xxx'},
params={
'period': 'day',
'start_date': '2025-01-10',
'end_date': '2025-01-16'
}
)
usage = response.json()
응답 예시
{
"period": "day",
"start_date": "2025-01-10",
"end_date": "2025-01-16",
"summary": {
"total_requests": 15420,
"successful_requests": 15180,
"failed_requests": 240,
"success_rate": 98.44,
"total_cost_usd": 12.45,
"average_latency_ms": 245
},
"by_endpoint": [
{
"endpoint": "POST /v1/fortunes",
"requests": 5230,
"success_rate": 99.2,
"average_latency_ms": 2340,
"cost_usd": 8.50
},
{
"endpoint": "GET /v1/fortunes/daily/{profile_id}",
"requests": 4890,
"success_rate": 99.8,
"average_latency_ms": 45,
"cost_usd": 0
},
{
"endpoint": "POST /v1/profiles",
"requests": 2100,
"success_rate": 98.5,
"average_latency_ms": 120,
"cost_usd": 0
},
{
"endpoint": "GET /v1/profiles",
"requests": 1850,
"success_rate": 99.9,
"average_latency_ms": 85,
"cost_usd": 0
}
],
"daily_breakdown": [
{
"date": "2025-01-10",
"requests": 2100,
"cost_usd": 1.75
},
{
"date": "2025-01-11",
"requests": 2250,
"cost_usd": 1.82
},
{
"date": "2025-01-12",
"requests": 2180,
"cost_usd": 1.78
},
{
"date": "2025-01-13",
"requests": 2050,
"cost_usd": 1.65
},
{
"date": "2025-01-14",
"requests": 2340,
"cost_usd": 1.90
},
{
"date": "2025-01-15",
"requests": 2200,
"cost_usd": 1.80
},
{
"date": "2025-01-16",
"requests": 2300,
"cost_usd": 1.75
}
],
"rate_limit_status": {
"limit": 100000,
"used": 15420,
"remaining": 84580,
"resets_at": "2025-02-01T00:00:00Z"
}
}
UsageReport 객체
| 필드 | 타입 | 설명 |
|---|---|---|
period | string | 집계 기간입니다. |
start_date | string | 조회 시작 날짜입니다. |
end_date | string | 조회 종료 날짜입니다. |
summary | object | 전체 요약 통계입니다. |
by_endpoint | array | 엔드포인트별 통계입니다. |
daily_breakdown | array | 일별 분석입니다. |
rate_limit_status | object | 요청 한도 상태입니다. |
비용 계산
API 호출 비용은 주로 AI 모델 사용에서 발생합니다.| 모델 | 비용 (대략) |
|---|---|
| haiku | $0.001/요청 |
| sonnet | $0.002/요청 |
| gpt4o | $0.003/요청 |
캐시된 응답(
cached: true)은 비용이 발생하지 않습니다. 캐시 히트율을 높여 비용을 절감하세요.⌘I