ข้ามไปยังเนื้อหาหลัก

Core API — รายงานการใช้งานและยอดเครดิต

Core API ส่งข้อมูลการใช้งาน API และยอดเครดิตของบัญชีคุณกลับมาเป็น JSON ตัวเลขชุดเดียวกับบน Dashboard เพื่อนำไปทำรายงาน Dashboard หรือระบบแจ้งเตือนของคุณเอง ใช้ API key เดิมที่มีอยู่ ทุก Endpoint เป็น GET เรียกได้ฟรีและไม่ปรากฏในรายการใช้งาน และ Response ไม่มีข้อมูลส่วนบุคคล

  • Base URL: https://iapp.co.th/api/core/v1
  • Header: apikey: YOUR_API_KEY (ใช้ x-api-key ก็ได้) ดู key ของคุณได้ที่ API Key Management
curl "https://iapp.co.th/api/core/v1/credits" \
-H "apikey: YOUR_API_KEY"
{
"success": true,
"data": {
"balance": 1234.56,
"currency": "IC",
"validUntil": "2027-01-31T16:59:59.000Z"
}
}

เรียกจากเซิร์ฟเวอร์ cron job หรือเครื่องมือ BI เท่านั้น ห้ามเรียกจาก JavaScript ในเบราว์เซอร์ เพราะใครเปิด source ของหน้าเว็บก็จะเห็น key และการเรียกจากเบราว์เซอร์ถูกบล็อกด้วย CORS อยู่แล้ว

Endpoints​

Endpointข้อมูลที่ได้
/pingยืนยันว่า key ใช้งานได้
/creditsยอดเครดิตคงเหลือ (IC)
/usage/summaryตัวเลขภาพรวมของช่วงเวลา: จำนวนการเรียก เครดิต latency เฉลี่ย อัตราสำเร็จ และ Endpoint ที่ใช้มากที่สุด
/usage/timeseriesจำนวนการเรียกและเครดิต รายชั่วโมง วัน สัปดาห์ หรือเดือน
/usage/servicesหนึ่งแถวต่อหนึ่งบริการ: จำนวนการเรียก เครดิต latency อัตรา error
/usage/keysหนึ่งแถวต่อหนึ่ง API key พร้อมชื่อ key
/usage/recordsหนึ่งแถวต่อการเรียกหนึ่งครั้ง กรอง เรียงลำดับ และแบ่งหน้าได้

ทุก Endpoint ในกลุ่ม /usage/* รับ startDate และ endDate (YYYY-MM-DD หรือ ISO 8601 ถ้าไม่ระบุคือ 30 วันล่าสุด) และทุกตัวยกเว้น /usage/keys รับ apiKeyId เพื่อดูรายงานของ key เดียว

Parameters และ Response​

ไม่มี Parameter อื่นนอกจากชุดที่ใช้ร่วมกัน

curl "https://iapp.co.th/api/core/v1/usage/summary?startDate=2026-08-01&endDate=2026-08-05" \
-H "apikey: YOUR_API_KEY"
{
"success": true,
"data": {
"period": { "startDate": "2026-08-01T00:00:00.000Z", "endDate": "2026-08-05T00:00:00.000Z" },
"totalRequests": 18342,
"totalCredits": 2311.75,
"avgLatencyMs": 412,
"successRate": 99.12,
"topEndpoints": [
{ "endpoint": "/thai-ocr/v3.5/ocr-document", "requests": 9120, "credits": 1824.0 },
{ "endpoint": "/v3/store/data/thai-legal/search", "requests": 4210, "credits": 421.0 }
]
}
}

รายงานแยกตาม API key​

สร้าง API key หนึ่งอันต่อหนึ่งแอปพลิเคชันหรือหนึ่งลูกค้าใน API Key Management แล้ว /usage/keys จะคืนหนึ่งแถวต่อหนึ่ง key พร้อม keyId ซึ่งเป็น id ของ key ไม่ใช่ตัว key นำค่านี้ไปใส่เป็น apiKeyId ใน Endpoint อื่นของ /usage/* เพื่อดูรายงานเฉพาะ key นั้น key ที่ถูกลบแล้วยังแสดงอยู่ โดย keyId, keyName และ keyPrefix เป็น null เพื่อให้ยอดรวมของบัญชีตรงกัน

ตัวอย่าง​

import requests

BASE = "https://iapp.co.th/api/core/v1"
HEADERS = {"apikey": "YOUR_API_KEY"}

credits = requests.get(f"{BASE}/credits", headers=HEADERS).json()["data"]
series = requests.get(
f"{BASE}/usage/timeseries",
headers=HEADERS,
params={"startDate": "2026-08-01", "groupBy": "day"},
).json()["data"]

print(f"ยอดคงเหลือ: {credits['balance']:.2f} IC")
for point in series["points"]:
print(f"{point['date'][:10]} {point['requests']:>6} ครั้ง {point['credits']:>8.2f} IC")

ใช้ Postman ได้โดยนำเข้า collection และ environment สำหรับ Production แล้วตั้งค่าตัวแปร apikey

ข้อจำกัด​

  • เรียกได้ 120 ครั้งต่อนาทีต่อ API key เกินกว่านั้นจะได้ HTTP 429 สำหรับ Dashboard ดึงข้อมูลทุก 30–60 วินาทีก็เพียงพอ
  • การเรียก API แต่ละครั้งจะปรากฏใน usage records ภายในไม่กี่วินาที ส่วนยอดเครดิตเป็นแบบ real-time
  • ข้อมูลย้อนหลังเก็บไว้นานเท่ากับที่ Dashboard บนเว็บแสดง หากต้องการเก็บถาวร ให้ดึง /usage/records ตามรอบเวลาแล้วเก็บไว้ฝั่งคุณ

การจัดการข้อมูล​

API นี้อ่านได้อย่างเดียว สร้าง key ใช้เครดิต แก้การตั้งค่า หรือลบข้อมูลไม่ได้ Response ไม่มีชื่อ อีเมล user ID ที่อยู่ IP ของผู้เรียก request header หรือเนื้อหาของ Request และ Response โดย path ของ Endpoint จะถูกตัด query string ออก และ API key แสดงเพียงส่วนต้น ไม่เคยแสดงเต็ม แต่ละ key เข้าถึงได้เฉพาะบัญชีของตัวเอง apiKeyId ที่ไม่ใช่ key ของบัญชีนั้นจะได้ 404 และหาก key หลุด ให้เพิกถอนที่ API Key Management โดยประวัติการใช้งานยังอยู่ครบ

Errors​

HTTPCodeความหมาย
400VALIDATION_ERRORParameter ไม่ถูกต้อง ดูรายละเอียดทีละข้อใน error.details.errors
401UNAUTHORIZEDไม่ได้ส่ง API key หรือ key ไม่ถูกต้อง
403FORBIDDENบัญชียังไม่ active
404NOT_FOUNDapiKeyId ไม่ใช่ key ของบัญชีนี้
429TOO_MANY_REQUESTSเรียกเกิน 120 ครั้งต่อนาทีสำหรับ key นี้
503SERVICE_UNAVAILABLEระบบขัดข้องชั่วคราว ให้ retry แบบ backoff

ทุก error มีรูปแบบเดียวกัน:

{
"success": false,
"error": { "code": "UNAUTHORIZED", "message": "Invalid API key." }
}

© 2026 iApp Technology Co., Ltd.ข้อกำหนดการใช้งานนโยบายความเป็นส่วนตัวสถานะระบบsale@iapp.co.th