ตรวจสอบเมื่อ 2026-11-12

เรียก Claude API ผ่าน Base URL เดียว

เรียก Claude API ผ่าน RelaySwitch โดยเปลี่ยนเพียงสองค่าในโค้ด: Base URL เป็น https://api.relayswitch.io/v1 และ key เป็น key ที่ขึ้นต้นด้วย sk-relay- ส่วน Anthropic SDK และ OpenAI SDK ใช้ได้ตามเดิม

01สิ่งที่เปลี่ยนในโค้ดมีสองค่า

การใช้ Claude API โดยตรงต้องเปิดบัญชีใน Console ของ Anthropic เติมเงินที่นั่น แล้วใช้ key ของ Anthropic เมื่อเรียกผ่าน RelaySwitch ส่วนนี้เปลี่ยนไป: เติมเงินและรับ key ที่ RelaySwitch แล้วส่ง request มาที่ gateway ซึ่งส่งต่อไปยังโมเดล สำหรับโค้ดมีเพียง Base URL และ key ที่ต่างไป ส่วน request body, model id, streaming และ tool call ยังเหมือนเดิม

gateway รับสอง format ด้วย key เดียวกันและยอดเงินเดียวกัน: /messages ซึ่งเป็น format ของ Claude เอง และ /chat/completions สำหรับโค้ดที่เขียนด้วย OpenAI SDK อยู่แล้ว ราคาเท่ากันทั้งสองทาง

02ทดสอบด้วย curl ก่อน

เริ่มจาก curl เพื่อยืนยันว่า key และที่อยู่ถูกต้อง ก่อนย้ายไปใส่ใน SDK ตัวเลือก -i พิมพ์ header ออกมาด้วย ซึ่งมี request id ของการเรียกครั้งนั้น

key ใส่ได้ทั้งใน header x-api-key และ Authorization: Bearer แต่หนึ่ง request ต้องมี key เพียงค่าเดียว

bash
1curl -i https://api.relayswitch.io/v1/messages \
2 -H "Authorization: Bearer sk-relay-..." \
3 -H "anthropic-version: 2023-06-01" \
4 -H "content-type: application/json" \
5 -d '{"model": "claude-fable-5.1", "max_tokens": 16, "messages": [{"role": "user", "content": "Reply with ok"}]}'

03Anthropic SDK สำหรับ Python

ส่ง base_url และ api_key ตอนสร้าง client ส่วนที่เหลือของโค้ดไม่ต้องแก้ Anthropic SDK ต่อ /v1/messages ท้าย Base URL เอง และ gateway รองรับกรณี /v1 ซ้ำ ตัวอย่างจึงใช้ https://api.relayswitch.io/v1 เหมือนกันทุกที่ SDK สำหรับ Node ใช้หลักเดียวกัน โดยส่ง baseURL และ apiKey

ค่า usage ใน response ระบุ input token และ output token ซึ่งตรงกับใบเสร็จของ request นั้น

python
1import anthropic
2
3client = anthropic.Anthropic(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")
4reply = client.messages.create(
5 model="claude-fable-5.1",
6 max_tokens=300,
7 messages=[{"role": "user", "content": "Reply with ok"}],
8)
9print(reply.content[0].text)
10print(reply.usage)

04OpenAI SDK กับโมเดล Claude

โค้ดที่เขียนตาม OpenAI format อยู่แล้ว หรือโค้ดชุดเดียวที่ต้องเรียกโมเดลของหลายค่าย ให้ใช้ /chat/completions แล้วเปลี่ยนค่า model เป็น id ของ Claude โครงสร้างโค้ดไม่ต้องเปลี่ยน

python
1from openai import OpenAI
2
3client = OpenAI(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")
4reply = client.chat.completions.create(
5 model="claude-fable-5.1",
6 messages=[{"role": "user", "content": "Reply with ok"}],
7)
8print(reply.choices[0].message.content)

05ควรใช้ format ไหน

การเปิด streaming ทำเหมือนกันทั้งสอง format คือตั้ง stream เป็น true แล้ว response จะมาเป็น server-sent events

โปรแกรมใหม่ หรือต้องใช้ความสามารถเฉพาะของ ClaudeAnthropic SDK ผ่าน /messages: field system โครงสร้าง tool call แบบ native และเครื่องหมาย prompt cache
โค้ดเดิมเป็น OpenAI format หรือเรียกหลายค่ายในโค้ดชุดเดียวOpenAI SDK ผ่าน /chat/completions เปลี่ยนเฉพาะค่า model
Claude Code และเครื่องมือเขียนโค้ดอื่นแต่ละเครื่องมือใช้ format ตายตัว ดูหน้า Claude Code หรือคู่มือรายเครื่องมือ (ภาษาอังกฤษ)

06รหัส error ที่เจอบ่อย

เนื้อหาของ error ใช้โครงสร้างเดียวกับ format ที่ผู้เรียกใช้ รหัส 401 ถึง 404 ตอบกลับก่อนที่ request จะไปถึงโมเดล ส่วน 429, 502 และ 503 ไม่มีเนื้อหาจากโมเดลตอบกลับ ทั้งหมดนี้จึงไม่คิดเงิน

401 invalid_api_keyไม่ได้ส่ง key มา key ไม่ถูกต้อง หรือถูกเพิกถอนแล้ว
402 insufficient_balanceยอดเงินไม่พอ ส่วนกรณีที่งบหรือเพดานของ key หมด จะเป็นรหัสอื่นในกลุ่ม 402
403 scope_deniedid นี้ไม่อยู่ใน allow-list ของ key
404 model_not_foundmodel id ไม่อยู่ในแคตตาล็อก ส่วนใหญ่เกิดจากการสะกดผิด
429 rate_limitedkey ถึงขีดจำกัดอัตราการเรียก header retry-after บอกจำนวนวินาทีที่ต้องรอ
502 upstream_error และ 503 upstream_unavailableroute มีปัญหา หรือยังไม่มี route ใดตอบในขณะนั้น

07ราคา Claude ทุกรุ่นต่อหนึ่งล้าน token

ตารางนี้คือราคาที่ถูกหักจริง อ่านจากแคตตาล็อกตอนสร้างหน้า โมเดลที่รองรับ cache มีราคา cached input แยกอีกหนึ่งค่า ใช้กับ token ที่ตรงกับ prompt cache เช่น system prompt ยาว เอกสารที่ส่งซ้ำ และประวัติของบทสนทนาหลาย turn ใบเสร็จของแต่ละ request แยก input, cached input และ output ให้ตรวจได้ทีละรายการ

โมเดลผู้พัฒนาInputOutputContext
Claude Fable 5.1claude-fable-5.1Anthropic$6.00$30.001,000,000
Claude Fable 5.2claude-fable-5.2Anthropic$4.00$20.001,000,000
Claude Fable 5claude-fable-5Anthropic$3.00$15.001,000,000
Claude Opus 5.5claude-opus-5-5Anthropic$2.716$9.701,000,000
Claude Sonnet 4.6claude-sonnet-4-6Anthropic$1.80$9.001,000,000
Claude Opus 4.6claude-opus-4-6Anthropic$1.80$7.501,000,000
Claude Opus 4.7claude-opus-4-7Anthropic$1.80$7.501,000,000
Claude Opus 4.8claude-opus-4-8Anthropic$1.80$7.501,000,000
Claude Opus 5claude-opus-5Anthropic$1.80$7.501,000,000
Claude Haiku 4.5claude-haiku-4-5Anthropic$0.60$3.00200,000
Claude Sonnet 5claude-sonnet-5Anthropic$1.20$3.001,000,000
Claude Sonnet 5.5claude-sonnet-5-5Anthropic$1.20$3.001,000,000
Claude Haiku 5.5claude-haiku-5-5Anthropic$0.0582$0.14551,000,000

USD ต่อหนึ่งล้าน token

08ก่อนขึ้น production

เอกสาร API ฉบับเต็มอยู่ที่ relayswitch.io/docs เป็นภาษาอังกฤษ

  • สร้าง key แยกสำหรับ production แล้วตั้งงบ เพดานรายวัน allow-list ของโมเดล และ allow-list ของ IP ตามที่ต้องใช้
  • เมื่อ request ล้มเหลว ให้อ่าน header retry-after เพื่อกำหนดเวลารอก่อนลองใหม่
  • บันทึก request id ที่มากับ error ไว้ใน log เพราะใช้ค้นการเรียกครั้งนั้นได้ตอนตรวจปัญหา
  • หนึ่ง id มีหลาย route เมื่อ route หนึ่งตอบ 5xx หรือ 429 request จะย้ายไป route ถัดไปของโมเดลเดียวกันในราคาเดิม ส่วนโมเดลที่มี route เดียวจะตอบ 503

คำถามที่พบบ่อย

วิธีใช้ Claude API ต้องเริ่มจากอะไร
เปิดบัญชีด้วยอีเมลในคอนโซล เติมเงินขั้นต่ำ $10 ด้วยบัตรหรือคริปโต สร้าง key แล้วรัน curl ตัวอย่างในหน้านี้ ถ้าได้ 200 ก็ย้าย Base URL และ key ไปใส่ใน SDK ได้
Base URL ของ Claude API ต้องมี /v1 ไหม
ต้องมี ให้ใส่ https://api.relayswitch.io/v1 แล้ว SDK จะต่อ /messages หรือ /chat/completions ให้เอง
รองรับ streaming ไหม
รองรับ ตั้ง stream เป็น true ใน request แล้ว response จะเป็น server-sent events ทุกโมเดลรองรับ streaming
ยืนยันได้อย่างไรว่าที่ตอบคือ Claude จริง ไม่ใช่โมเดลอื่น
มีสองทางที่ไม่ต้องเชื่อคำในหน้านี้ ทางแรก ทุกโมเดลได้รับ prompt ทดสอบชุดเดียวกันทุกวัน คำตอบถูกเทียบกับรอบก่อนหน้า และผลเปิดเผยที่ https://api.relayswitch.io/v1/proof ทางที่สอง ทุก request มีใบเสร็จลงลายเซ็น Ed25519 ที่ GET https://api.relayswitch.io/v1/requests/:id/receipt ระบุ model id, token ที่คิดเงิน และค่าใช้จ่าย ตรวจด้วย public key แบบ offline ได้
ใช้ key เดียวกันกับทั้ง Anthropic SDK และ OpenAI SDK ได้ไหม
ได้ key เดียวและ Base URL เดียวคือ https://api.relayswitch.io/v1 Anthropic SDK เรียก /messages ส่วน OpenAI SDK เรียก /chat/completions และเขียน id ของ Claude แบบเดียวกันทั้งสองทาง
request ที่ล้มเหลวถูกคิดเงินไหม
request ที่ล้มเหลวก่อนถึงโมเดล หรือที่โมเดลไม่ตอบ จะไม่ถูกคิดเงิน รหัส 401 ถึง 404 รวมถึง 429, 502 และ 503 จึงไม่มีค่าใช้จ่าย
หน้าที่เกี่ยวข้อง

เปลี่ยน base_url บรรทัดเดียว

Base URL คือ https://api.relayswitch.io/v1 Claude ทุกรุ่นคิดตามราคาสดในแคตตาล็อก และมีการตรวจโมเดลแบบเปิดเผยทุกวัน