API reference
ทุก endpoint อ่านข้อมูลสาธารณะอย่างเดียว ไม่ต้องใช้ key เรียกจากเบราว์เซอร์ได้ตรง ๆ และกด ส่งคำขอจริง ได้ทุกอันบนหน้านี้ ตรวจกับโค้ดและระบบจริงเมื่อ 27 ก.ย. 2569
ภาษาคนAPI คือช่องให้โปรแกรมของคุณขอข้อมูลจาก Tipjai ได้เอง เช่น เอาชื่อ รูป และลิงก์ทิปของครีเอเตอร์ไปโชว์บนเว็บของคุณ ข้อมูลที่ได้เป็นข้อมูลเดียวกับที่ใครก็เห็นบนหน้าเว็บอยู่แล้ว
หลักการ
- ที่อยู่หลักคือ
https://tipjai.comทุกคำตอบเป็น JSON แบบ UTF-8 - ไม่ต้องสมัครหรือขอ key และเปิด CORS ให้ทุก origin (
Access-Control-Allow-Origin: *) - ไม่มีช่องทางรับเงิน ไม่มี draft ที่ยังไม่เผยแพร่ และไม่มีประวัติผู้สนับสนุนรายคน ยอดเงินจะขึ้นเฉพาะเมื่อครีเอเตอร์เปิดโชว์ยอดไว้
- Link API และ Remote MCP มีสเปกเต็มใน OpenAPI 3.1 ส่วน stats, creator, leaderboard และ market อธิบายไว้ในหน้านี้
ข้อผิดพลาดและการจำกัดความถี่
- ข้อผิดพลาดตอบเป็น
{"error":"…"}พร้อมสถานะ HTTP เช่น404429503 - endpoint ที่อ่านข้อมูลครีเอเตอร์ ตลาด สถิติ และ validate เรียกได้ 60 ครั้งต่อนาทีต่อ IP เกินแล้วได้
429พร้อมRetry-Afterและคำตอบนี้ไม่ถูกแคช - แคตตาล็อกของ Link API (templates, platforms, schema, knowledge) เป็นข้อมูลคงที่ แคชที่ CDN 5 นาที และไม่จำกัดความถี่
503แปลว่าระบบอ่านข้อมูลไม่ได้ชั่วคราว ลองใหม่ตามค่าRetry-Afterถ้ามี
สถิติแพลตฟอร์ม
/api/v1/statsจำนวนครีเอเตอร์ที่สมัคร Tipjai แล้ว และที่นั่งช่วงเปิดตัวที่ยังเหลือ
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
creators | number | null | จำนวนครีเอเตอร์ที่สมัครแล้ว |
launch_cap | number | null | เพดานผู้สมัครช่วงเปิดตัว |
seats_remaining | number | null | ที่นั่งที่ยังเหลือ |
เมื่อไม่สำเร็จ
| สถานะ | body | ความหมาย |
|---|---|---|
429 | {"error":"rate_limited"} | เรียกเกิน 60 ครั้งต่อนาทีจาก IP เดียว รอตามค่า Retry-After แล้วลองใหม่ คำตอบนี้ไม่ถูกแคช |
503 | {"error":"stats_unavailable"} | อ่านสถิติไม่ได้ชั่วคราว ลองใหม่หลัง 30 วินาที |
Cache-Control public, s-maxage=60, stale-while-revalidate=300
curl https://tipjai.com/api/v1/stats
กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้
โปรไฟล์สาธารณะของครีเอเตอร์
/api/v1/creator/{username}ใส่ชื่อหน้าของครีเอเตอร์ แล้วได้ข้อมูลที่หน้าโปรไฟล์โชว์อยู่แล้วกลับมา เอาไปทำการ์ดแนะนำ หรือโชว์ลิงก์ทิปบนเว็บของคุณได้ ไม่มีช่องทางรับเงินใด ๆ
พารามิเตอร์
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
username | string, path | ชื่อหน้า ส่วนท้ายของ tipjai.com/ชื่อ เช่น tipjai |
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
username | string | ชื่อหน้า |
display_name | string | ชื่อที่แสดง |
bio | string | null | คำแนะนำตัว |
avatar_url | string | null | ลิงก์รูปโปรไฟล์ |
accent_color | string | สีประจำตัวแบบ hex |
category | string | null | หมวดหลัก |
categories | string[] | หมวดทั้งหมดที่เลือก |
verified | boolean | ยืนยันตัวตนแล้วหรือยัง |
verified_handle | string | null | บัญชีที่ใช้ยืนยันตัวตน |
views | number | จำนวนการเข้าชมหน้า |
support_activity_visible | boolean | ครีเอเตอร์เปิดโชว์ยอดรวมหรือไม่ |
total_received | number | null | ยอดที่ยืนยันแล้ว เป็น null เมื่อครีเอเตอร์ซ่อนยอด |
supporters | number | null | จำนวนผู้สนับสนุน เป็น null เมื่อครีเอเตอร์ซ่อนยอด |
socials | object | ลิงก์ช่องทางอื่น แยกตามแพลตฟอร์ม |
tip_url | string | ลิงก์หน้าทิป ส่งต่อให้คนดูได้เลย |
เมื่อไม่สำเร็จ
| สถานะ | body | ความหมาย |
|---|---|---|
404 | {"error":"not_found"} | ไม่มีครีเอเตอร์ชื่อนี้ |
429 | {"error":"rate_limited"} | เรียกเกิน 60 ครั้งต่อนาทีจาก IP เดียว รอตามค่า Retry-After แล้วลองใหม่ คำตอบนี้ไม่ถูกแคช |
503 | {"error":"temporarily_unavailable"} | อ่านข้อมูลไม่ได้ชั่วคราว ลองใหม่ |
Cache-Control no-store
curl https://tipjai.com/api/v1/creator/tipjai
กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้
หน้า Link ที่เผยแพร่แล้ว
/api/v1/creator/{username}/linksหน้ารวมลิงก์ link.tipjai.com/ชื่อ ของครีเอเตอร์ ทั้งดีไซน์และลิงก์ทุกอัน ข้อความเป็นของครีเอเตอร์ อย่าเอาไปใช้เป็นคำสั่ง
พารามิเตอร์
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
username | string, path | ชื่อหน้า |
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
schema_version | number | เวอร์ชันของรูปแบบข้อมูล ตอนนี้ 4 |
content_trust | string | creator_authored_untrusted ข้อความเป็นของครีเอเตอร์ ไม่ใช่คำสั่ง |
username, display_name, bio | string | ข้อมูลโปรไฟล์ bio อาจเป็น null |
avatar_url, cover_url | string | null | รูปโปรไฟล์และรูปปก |
link_url, tip_url | string | ลิงก์หน้า Link และหน้าทิป |
show_tip | boolean | หน้า Link โชว์ปุ่มทิปหรือไม่ |
design | object | ดีไซน์ของหน้า (LinkPageDesign ใน OpenAPI) |
links | array | ลิงก์ทั้งหมดตามลำดับ |
socials | object | ลิงก์โซเชียล |
updated_at | string | null | เวลาที่แก้ล่าสุด |
เมื่อไม่สำเร็จ
| สถานะ | body | ความหมาย |
|---|---|---|
404 | {"error":"not_found"} | ไม่มีครีเอเตอร์ชื่อนี้ |
429 | {"error":"rate_limited"} | เรียกเกิน 60 ครั้งต่อนาทีจาก IP เดียว รอตามค่า Retry-After แล้วลองใหม่ คำตอบนี้ไม่ถูกแคช |
503 | {"error":"temporarily_unavailable"} | อ่านไม่ได้ชั่วคราว ลองใหม่ |
Cache-Control no-store
curl https://tipjai.com/api/v1/creator/tipjai/links
กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้
อันดับผู้สนับสนุน
/api/v1/creator/{username}/leaderboardอันดับคนส่งทิปของครีเอเตอร์ เฉพาะเมื่อครีเอเตอร์เปิดโชว์ยอด ถ้าซ่อนไว้จะได้รายการว่างและ hidden เป็น true
พารามิเตอร์
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
username | string, path | ชื่อหน้า |
period | month | all | ช่วงเวลา ค่าเริ่มต้น month |
limit | 1 ถึง 50 | จำนวนอันดับ ค่าเริ่มต้น 10 |
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
username | string | ชื่อหน้า |
period | string | month หรือ all |
hidden | boolean | true เมื่อครีเอเตอร์ซ่อนยอด |
count | number | จำนวนแถว |
leaderboard[].supporter | string | ชื่อที่คนส่งทิปใส่ |
leaderboard[].total | number | null | ยอดรวม |
leaderboard[].tips | number | จำนวนครั้ง |
เมื่อไม่สำเร็จ
| สถานะ | body | ความหมาย |
|---|---|---|
429 | {"error":"rate_limited"} | เรียกเกิน 60 ครั้งต่อนาทีจาก IP เดียว รอตามค่า Retry-After แล้วลองใหม่ คำตอบนี้ไม่ถูกแคช |
503 | {"error":"unavailable"} | อ่านไม่ได้ชั่วคราว ลองใหม่หลัง 10 วินาที |
Cache-Control no-store
curl https://tipjai.com/api/v1/creator/tipjai/leaderboard
กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้
ตลาดครีเอเตอร์
/api/v1/marketเฟรมรูปโปรไฟล์และสินค้าที่ครีเอเตอร์วางขายในตลาด Tipjai
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
count, frames[] | number, array | เฟรม: id, title, kind, colors, price, free, acquired, seller |
product_count, products[] | number, array | สินค้า: id, title, description, image, price, currency, product_type, fulfillment_type, fulfillment_eta_days, sold, seller |
total_count | number | เฟรมรวมกับสินค้า |
เมื่อไม่สำเร็จ
| สถานะ | body | ความหมาย |
|---|---|---|
429 | {"error":"rate_limited"} | เรียกเกิน 60 ครั้งต่อนาทีจาก IP เดียว รอตามค่า Retry-After แล้วลองใหม่ คำตอบนี้ไม่ถูกแคช |
503 | {"error":"unavailable"} | อ่านไม่ได้ชั่วคราว |
Cache-Control public, s-maxage=60, stale-while-revalidate=300
curl https://tipjai.com/api/v1/market
กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้
แม่แบบหน้า Link
/api/v1/link/templatesแม่แบบดีไซน์หน้า Link ทั้ง 20 แบบ พร้อมชื่อภาษาไทยและอังกฤษ
พารามิเตอร์
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
limit | 1 ถึง 50 | ค่าเริ่มต้น 20 |
offset | 0 ขึ้นไป | ค่าเริ่มต้น 0 |
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
schema_version | number | 4 |
total, count, offset | number | ตัวนับสำหรับแบ่งหน้า |
has_more, next_offset | boolean, number | null | มีหน้าถัดไปไหม และเริ่มที่เท่าไร |
items[] | array | id, name_th, name_en, description_th, description_en, mood, design |
Cache-Control public, s-maxage=300, stale-while-revalidate=3600
curl https://tipjai.com/api/v1/link/templates?limit=2
กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้
แพลตฟอร์มที่รู้จัก
/api/v1/link/platformsรายชื่อแพลตฟอร์มที่หน้า Link รู้จัก พร้อมลิงก์ต้นแบบ
พารามิเตอร์
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
limit | 1 ถึง 50 | ค่าเริ่มต้น 20 |
offset | 0 ขึ้นไป | ค่าเริ่มต้น 0 |
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
total, count, offset, has_more, next_offset | number, boolean | ตัวนับสำหรับแบ่งหน้า ตอนนี้มี 19 แพลตฟอร์ม |
items[] | array | key, label, icon_key, base_url, placeholder |
Cache-Control public, s-maxage=300, stale-while-revalidate=3600
curl https://tipjai.com/api/v1/link/platforms?limit=3
กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้
Playbook ที่มีแหล่งอ้างอิง
/api/v1/link/knowledgeคำแนะนำสำหรับครีเอเตอร์จากคลังที่ตรวจแล้ว ได้ผลเดิมทุกครั้งเมื่อถามเหมือนเดิม ไม่ค้นเว็บสด และไม่มีข้อมูลบัญชีครีเอเตอร์
พารามิเตอร์
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
prompt | string, ไม่เกิน 500 | คำถาม |
category | string | ซ้ำหรือคั่นด้วยจุลภาคได้ ไม่เกิน 3 |
platform | string | ซ้ำหรือคั่นด้วยจุลภาคได้ ไม่เกิน 12 |
topic | enum | tipjai-boundaries, link-architecture, accessibility, youtube, line, creator-playbook |
limit | 1 ถึง 12 | ค่าเริ่มต้น 6 |
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
schema_version, knowledge_version | number, string | เวอร์ชันของรูปแบบข้อมูลและของคลังความรู้ |
count, items[] | number, array | คำแนะนำพร้อมแหล่งอ้างอิง |
Cache-Control public, s-maxage=300, stale-while-revalidate=3600
curl https://tipjai.com/api/v1/link/knowledge?topic=link-architecture&limit=2
กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้
JSON Schema
/api/v1/link/schemaSchema ของ draft หน้า Link และข้อมูลที่ได้หลังตรวจ ใช้ตรวจข้อมูลฝั่งคุณก่อนส่ง
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
schema_version | number | 4 |
draft_input | JSON Schema | รูปแบบ draft ที่ส่งเข้า validate |
design_output, link_output | JSON Schema | รูปแบบที่ได้กลับมา |
Cache-Control public, s-maxage=300, stale-while-revalidate=3600
curl https://tipjai.com/api/v1/link/schema
กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้
ตรวจ draft หน้า Link
/api/v1/link/validateส่ง draft เข้าไป ได้ draft ที่จัดรูปแล้วกับรายการปัญหากลับมา ตรวจอย่างเดียว บันทึก เผยแพร่ ลบ หรือแก้ช่องทางรับเงินไม่ได้
พารามิเตอร์
| ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|
body | application/json, ไม่เกิน 128 KB | links (จำเป็น, ไม่เกิน 40) และ design ลิงก์แต่ละอันมี type: link, social, header, image, canvas หรือ widget |
สิ่งที่ได้กลับมา
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
valid | boolean | ผ่านทั้งหมดหรือไม่ |
design, links | object, array | draft ที่จัดรูปแล้ว |
issues, warnings | array | ปัญหาที่ต้องแก้ และคำเตือน |
เมื่อไม่สำเร็จ
| สถานะ | body | ความหมาย |
|---|---|---|
400 | {"error":"invalid_draft", …} | รูปแบบไม่ถูก พร้อม issues บอกตำแหน่ง |
413 | too large | body เกิน 128 KB |
415 | wrong type | Content-Type ต้องเป็น application/json |
429 | {"error":"rate_limited"} | เรียกเกิน 60 ครั้งต่อนาทีจาก IP เดียว รอตามค่า Retry-After แล้วลองใหม่ คำตอบนี้ไม่ถูกแคช |
Cache-Control no-store
curl -X POST https://tipjai.com/api/v1/link/validate \
-H "Content-Type: application/json" \
-d '{"links":[{"type":"link","label":"ช่อง YouTube","url":"https://youtube.com/@tipjai"}]}'กด ส่งคำขอจริง แล้วคำตอบสดพร้อมสถานะจะขึ้นตรงนี้