API Tier1.shop
เชื่อมต่อบริการหรือ AI agent ของคุณ: การลงทะเบียน, อัตราค่าบริการ, คำสั่งซื้อ, ลิงก์ และสถานะการชำระเงินผ่าน API เดียว ข้อมูลลูกค้าจะเข้าถึงได้ผ่านคีย์ที่สามารถเพิกถอนได้เท่านั้น
https://tier1.shop/wp-json/tier1-api/v1เริ่มต้นใช้งาน
สร้างคีย์
เปิด «API และการเชื่อมต่อ» ในแดชบอร์ดของคุณ หรือขอลิงก์สร้างคีย์ผ่านอีเมลโดยใช้ POST /api-key-requests.
ยืนยันอีเมล
เอเย่นต์เรียกใช้ POST /registration-intents. คุณต้องคลิกลิงก์ในอีเมลเพื่อยืนยันที่อยู่ของคุณ หลังจากนั้นบัญชีและคีย์จึงจะถูกสร้างขึ้น สามารถเพิ่ม Telegram ได้ในภายหลัง
คำสั่งซื้อแรก — ห้าขั้นตอน
- เลือกแผน
GET /catalog/tariffsและGET /balancesจะแสดงราคาปัจจุบันและความพร้อมใช้งาน - ยืนยันรายละเอียดโปรดตกลงเรื่องจำนวน, URL, anchor text และสกุลเงินกับตัวแทนก่อนสร้างรายการชำระเงิน
- รับลิงก์การชำระเงิน
POST /checkout-intentsจะส่งคืน URL แบบใช้ครั้งเดียว การชำระเงินจะถูกดำเนินการบนเว็บไซต์เท่านั้น - ยืนยันการชำระเงิน
GET /checkout-intents/{id}จะแสดงสถานะและหมายเลขคำสั่งซื้อ WooCommerce - เปิดลิงก์
GET /orders/by-wc/{id}จะพบคำสั่งซื้อภายใน;placement_progressจะแสดงสถานะการดำเนินการ
/orders/by-wc/{id}, สำหรับ ID ภายใน ให้ใช้ /orders/{id}.การอนุญาตสิทธิ์
ส่งคีย์ใน HTTPS header ห้ามใส่คีย์ใน URL, พรอมต์สาธารณะ หรือบันทึก (logs) คีย์สามารถถูกเพิกถอนได้ในบัญชี โดยข้อความเต็มจะแสดงให้เห็นเฉพาะตอนสร้างเท่านั้น
Authorization: Bearer t1c_sk_YOUR_KEYการอนุญาตหลัก (scopes)8
profile:readสถานะโปรไฟล์และการเชื่อมต่อbalance:readยอดคงเหลือของบริการและวอลเล็ตorders:readดูคำสั่งซื้อlinks:readดูลิงก์catalog:readแคตตาล็อกและอัตราค่าบริการorders:writeเติมข้อมูลและส่งคำสั่งซื้อจำนวนมากlinks:writeURLs, Anchors, ข้อความรอบข้าง และการส่งข้อมูลcheckout:createสร้างลิงก์การชำระเงินที่ปลอดภัยคีย์นี้ไม่อนุญาตให้เอเจนต์หักเงินจากวอลเล็ตโดยตรง สำหรับคำขอที่มีการเปลี่ยนแปลง จะมีการสุ่ม Idempotency-Key จำนวน 8–128 ตัวอักษร หากการตอบกลับสูญหาย ให้ส่งคำขอเดิมซ้ำด้วยคีย์เดิม หากต้องการดำเนินการใหม่ ให้สร้างคีย์ใหม่
API Methods
วิธีการถูกจัดกลุ่มเป็น 10 กลุ่ม โปรดเปิดกลุ่มที่ต้องการเพื่อดูพารามิเตอร์และตัวอย่างการตอบกลับ โดยสัญญาเครื่องจักรฉบับเต็มอยู่ใน OpenAPI JSON.
Замены URL/анкора 3
GET/links/{id}/replacementУсловия платной замены размещённой ссылки: доступность, остаток замен, текущие данные и актуальные товары. Денежных списаний нет. При нехватке купите замены через checkout и дождитесь replacement_credits_fulfilled=true.
ตัวอย่างการตอบกลับ
{
"link_id": 456,
"eligible": true,
"credits_available": 1,
"pending_replacement": false,
"purchase_offers": []
}POST/links/{id}/replacementПосле согласия клиента сохранить новые URL/анкор. Резервирует одну замену, но ещё не отправляет её в работу. expected_* берутся точно из свежих current_*; кошелёк не списывается.
ขอ JSON
{
"confirmed": true,
"expected_url": "https://example.com/old",
"expected_anchor": "старый анкор",
"url": "https://example.com/new",
"anchor": "новый анкор"
}ตัวอย่างการตอบกลับ
{
"saved": true,
"link": {
"id": 456
},
"wallet_was_charged": false
}POST/links/{id}/replacement/submitОтправить только эту сохранённую замену. expected_* — уже новые данные. Проверяйте submission.submitted, submission.errors и статус; HTTP 200 сам по себе не означает принятия задачи. Это не замена донора.
ขอ JSON
{
"confirmed": true,
"expected_url": "https://example.com/new",
"expected_anchor": "новый анкор"
}ตัวอย่างการตอบกลับ
{
"submission": {
"submitted": 1,
"errors": []
},
"link": {
"id": 456,
"status": "revision"
}
}การค้นพบ 2
GET/capabilitiesความสามารถของ API และลิงก์การเชื่อมต่อปัจจุบัน
ตัวอย่างการตอบกลับ
{
"name": "Tier1.shop API",
"api_enabled": true,
"public_registration": true
}GET/openapi.jsonข้อกำหนด OpenAPI 3.1 ฉบับเต็ม
ตัวอย่างการตอบกลับ
{
"openapi": "3.1.0",
"info": {
"title": "Tier1.shop Client API"
}
}ลงทะเบียน 3
POST/registration-intentsเริ่มการลงทะเบียนสำหรับลูกค้าใหม่โดยต้องมีการยืนยันทางอีเมล
ขอ JSON
{
"email": "client@example.com",
"telegram_username": "@client",
"locale": "ru",
"issue_api_key": true
}ตัวอย่างการตอบกลับ
{
"accepted": true,
"request_id": "…",
"status_token": "…",
"status": "pending_email",
"expires_in": 86400
}GET/registration-intents/{id}?status_token={token}ตรวจสอบสถานะของการลงทะเบียนที่ระบุ
ตัวอย่างการตอบกลับ
{
"status": "pending_email|email_verified|expired",
"email_verified": false,
"telegram_status": "not_requested|pending_bot_message|verified"
}POST/api-key-requestsขอลิงก์สร้างคีย์แบบใช้ครั้งเดียวสำหรับบัญชีที่มีอยู่
ขอ JSON
{
"email": "client@example.com",
"name": "Мой агент"
}ตัวอย่างการตอบกลับ
{
"accepted": true,
"next_action": "…"
}บัญชี 2
GET/profileโปรไฟล์, การยืนยันอีเมล และช่องทาง Telegram ทั้งหมด
ตัวอย่างการตอบกลับ
{
"account": {
"email": "client@example.com",
"email_verified": true,
"telegram_username": "@client",
"telegram_usernames": [
"@client",
"@manager"
]
}
}GET/balances?geo=allวอลเล็ต RUB/$ และบริการ RU/intl ที่ไม่ได้ใช้งาน
ตัวอย่างการตอบกลับ
{
"wallets": {
"rub": {
"currency": "RUB",
"amount_minor": 0
},
"usd": {
"currency": "USD",
"amount_minor": 0
}
},
"service_balances": []
}คำสั่งซื้อ 3
GET/orders?geo=all&page=1&per_page=20รายการคำสั่งซื้อในบัญชีแบบแบ่งหน้า per_page จำกัดที่ 50: ดำเนินการต่อผ่าน next_page
ตัวอย่างการตอบกลับ
{
"orders": [
{
"cabinet_order_id": 123,
"wc_order_id": 456,
"placement_progress": {
"completed": 2,
"total": 3,
"fully_placed": false
}
}
],
"page": 1,
"per_page": 20,
"has_more": false,
"next_page": null
}GET/orders/{id}คำสั่งซื้อเดียวและลิงก์ตาม cabinet_order_id ไม่ใช่หมายเลข WooCommerce จากอีเมล
ตัวอย่างการตอบกลับ
{
"order": {
"cabinet_order_id": 123,
"wc_order_id": 456,
"geo": "ru"
},
"links": []
}GET/orders/by-wc/{id}คำสั่งซื้อภายในและลิงก์ทั้งหมดตามหมายเลข WooCommerce ของลูกค้า
ตัวอย่างการตอบกลับ
{
"wc_order_id": 456,
"count": 2,
"orders": [
{
"order": {
"cabinet_order_id": 123
},
"links": []
}
]
}ลิงก์ 1
GET/links?geo=all&page=1&per_page=20ลิงก์พร้อมตัวกรอง geo, สถานะ และ link_type; ดำเนินการต่อผ่าน next_page
ตัวอย่างการตอบกลับ
{
"links": [],
"page": 1,
"per_page": 20,
"total": 0,
"has_more": false,
"next_page": null
}แคตตาล็อก 2
GET/catalog/tariffs?geo=ruผลิตภัณฑ์ ราคา สกุลเงิน และองค์ประกอบสล็อตที่แน่นอนในปัจจุบัน
ตัวอย่างการตอบกลับ
{
"geo": "ru",
"currency": "RUB",
"tariffs": [
{
"product_id": 3708,
"name": "…",
"price": {
"amount_minor": 200000
}
}
]
}GET/catalog/burzh-igamingไซต์ผู้บริจาค iGaming แบบไม่ระบุตัวตน, เมทริกซ์, ราคา และสล็อตที่ว่าง
ตัวอย่างการตอบกลับ
{
"donors": [],
"count": 0,
"price": {
"currency": "USD",
"amount_minor": 9400
}
}ฉบับร่าง 3
PATCH/links/{id}เปลี่ยน URL, anchor text, ข้อความรอบข้าง หรือกำหนดเวลา โดยไม่ต้องส่งลิงก์เพื่อดำเนินการ
ขอ JSON
{
"url": "https://example.com/page",
"anchor": "пример",
"context_text": "Окружающий текст с анкором пример.",
"scheduled_at": "2026-09-01T09:00:00Z"
}ตัวอย่างการตอบกลับ
{
"link": {
"id": 456,
"status": "awaiting_confirmation"
}
}PUT/links/{id}PATCH alias สำหรับลูกค้าที่ส่งชุดฟิลด์ที่แก้ไขได้เพียงบางส่วน
ขอ JSON
{
"anchor": "новый анкор"
}ตัวอย่างการตอบกลับ
{
"link": {
"id": 456,
"status": "awaiting_confirmation"
}
}POST/orders/{id}/bulk-updateเติมข้อมูลแถวคำสั่งซื้อจำนวนมากโดยไม่ส่งไปยังระบบจริง
ขอ JSON
{
"links": [
{
"url": "https://example.com/a",
"anchor": "ключ"
},
{
"url": "https://example.com/b",
"anchor": "другой ключ"
}
]
}ตัวอย่างการตอบกลับ
{
"updated": 2,
"errors": []
}ส่ง 2
POST/links/{id}/submitส่งลิงก์ที่พร้อมหนึ่งลิงก์ไปยังการผลิตหลังจากได้รับการยืนยันจากลูกค้า
ขอ JSON
[]ตัวอย่างการตอบกลับ
{
"link": {
"id": 456,
"status": "in_progress"
}
}POST/orders/{id}/submit-allส่งแถวคำสั่งซื้อที่พร้อมทั้งหมดหลังจากได้รับการยืนยันจากลูกค้า
ขอ JSON
[]ตัวอย่างการตอบกลับ
{
"submitted": 2,
"skipped": 0
}การชำระเงิน 2
POST/checkout-intentsสร้างลิงก์แบบใช้ครั้งเดียวที่ปลอดภัยไปยังหน้าชำระเงินมาตรฐาน โดยจะไม่มีการเรียกเก็บเงิน
ขอ JSON
{
"geo": "ru",
"items": [
{
"product_id": 3708,
"quantity": 1
}
],
"links": [
{
"type": "yearly",
"url": "https://example.com/page",
"anchor": "пример"
}
]
}ตัวอย่างการตอบกลับ
{
"intent_id": "32-символьный ID",
"checkout_url": "https://tier1.shop/?t1c_agent_checkout=…",
"expires_at": "…",
"summary": {
"currency": "RUB",
"total_minor": 200000
},
"payment_preview": {
"wallet_available_minor": 0,
"nominal_wallet_gap_minor": 200000,
"final_amount_at_checkout": true
}
}GET/checkout-intents/{id}ตรวจสอบการชำระเงินและการปรากฏของคำสั่งซื้อในบัญชีผ่าน intent_id โดยไม่ต้องเปิด one-time link ซ้ำ
ตัวอย่างการตอบกลับ
{
"intent_id": "…",
"state": "paid",
"wc_order_id": 456,
"cabinet_order_ids": [
123
],
"fulfilment_pending": false
}หากคำขอล้มเหลว
รายการจะแสดงสูงสุด 50 แถวต่อหน้า หาก has_more=true, ไปที่ next_page. จำนวนเงินเบื้องต้นใน API ไม่สามารถแทนที่จำนวนเงินสุดท้ายและวิธีการชำระเงินที่มีให้ในขั้นตอนการชำระเงินได้
ต้องการ MCP แทน REST API หรือไม่?
คีย์ที่เพิกถอนได้แบบเดียวกันนี้สามารถใช้กับ MCP client พร้อม HTTP headers ได้ นอกจากนี้คุณยังสามารถเชื่อมต่อผ่าน OAuth ได้หากแอปพลิเคชันรองรับ
เปิดคำแนะนำ MCP



