Claude API 入門:帳號、費用與第一個 API 呼叫
本篇是「Claude API & Agent SDK 完全指南」系列的第 1 / 15 篇。你可以從系列總覽開始閱讀,也可以直接接著看本文。
如果你用過 Claude.ai,你知道它有多好用。
但「好用」跟「能寫進你的產品」是兩回事。
Claude.ai 是給人用的介面。Claude API 是給程式用的介面。這本書講的是後者——如何把 Claude 的能力嵌入你正在建造的東西。
這一章是起點。我們會從最基礎的問題開始:Claude API 是什麼?跟 Claude.ai、Claude Code 有什麼差別?費用怎麼算?然後一步一步帶你發出第一個真正的 API 呼叫。
Claude API vs Claude.ai vs Claude Code:搞清楚你在用什麼
在開始之前,我想先解決一個常見的混淆。
Claude.ai 是 Anthropic 的消費者產品。你用瀏覽器開啟,跟 Claude 對話,有 Projects、Artifacts 等功能。費用是訂閱制(Free、Pro、Max)。你沒辦法「程式化」地呼叫它,也沒辦法把它整合進你的 app。
Claude Code 是給開發者用的 CLI 工具(@anthropic-ai/claude-code)。它運行在你的本機,可以讀取你的程式碼、執行指令、幫你寫程式。費用走的是你個人的 API Key,或者 Claude Pro/Max 訂閱(所謂的 Max 模式)。
Claude API 是 Anthropic 提供的 REST API,讓你用程式碼直接呼叫 Claude 的語言模型能力。你可以用它建立自己的聊天機器人、文件摘要工具、程式碼審查系統、客服 agent——任何需要 LLM 能力的應用。費用是 pay-per-use,按照你傳送和接收的 token 數量計費。
這本書講的是 Claude API,以及建立在它之上的 Agent SDK(後面章節會介紹)。
目標讀者是你:一個正在或準備建造 AI 應用的開發者。
建立帳號與取得 API Key
在 console.anthropic.com 建立帳號
前往 console.anthropic.com,用你的 Google 帳號或 email 註冊。這個「Console」是 Anthropic 的開發者平台,跟 Claude.ai 是分開的系統(雖然可以用同一個帳號登入)。
註冊後你需要:
- 驗證你的 email(如果用 email 註冊的話)
- 新增付款方式:沒有信用卡就沒有辦法使用 API,這是必要步驟
- 設定使用量上限(建議設定,避免意外高額帳單)
Anthropic 不提供「永久免費層」的 API 使用量。你第一次加入信用卡後,帳號通常會有一些試用額度(金額不定,可能幾美金到十幾美金),但用完就要開始付費。
產生 API Key
進入 Console 後,在左側選單找到 API Keys。
點擊「+ Create Key」,給它一個有意義的名字(例如:my-chatbot-prod、local-dev)。建議你為不同的應用和環境建立不同的 Key,這樣萬一哪個 Key 洩漏,你可以精確地 revoke 它,而不影響其他服務。
Key 只會顯示一次。請立刻複製並存到安全的地方(密碼管理器、環境變數,絕對不要 commit 到 git)。
API Key 的安全守則
這個很重要,我要單獨說:
永遠不要把 API Key 放進程式碼。不管是 hardcode 在程式裡,還是放在公開的 GitHub repo 裡。Anthropic 的安全系統會自動掃描公開的 GitHub,一旦偵測到洩漏的 Key,會自動 revoke 並通知你。但這個流程走完之前,任何人都可以用你的 Key 燒你的錢。
正確的做法是:
# 在你的開發環境
export ANTHROPIC_API_KEY="sk-ant-api03-..."
# 或者放在 .env 檔案(記得加到 .gitignore)
ANTHROPIC_API_KEY=sk-ant-api03-...
費用模型詳解:你真正需要知道的
Claude API 的費用計算方式是「token 計費」。你傳送給 API 的文字(input tokens)和 API 回傳給你的文字(output tokens)分開計費,單位是每百萬 token(per million tokens,縮寫 MTok)。
模型與定價(2026 年初)
Anthropic 目前有三個主要的模型家族:
| 模型 | Input | Output | 適用場景 |
|---|---|---|---|
claude-opus-4-5 | $15 / MTok | $75 / MTok | 複雜推理、高品質需求 |
claude-sonnet-4-6 | $3 / MTok | $15 / MTok | 日常應用、最佳 CP 值 |
claude-haiku-4-5 | $0.80 / MTok | $4 / MTok | 高頻低延遲場景 |
我自己的生產環境幾乎都用 claude-sonnet-4-6。它在品質和費用之間找到了很好的平衡。claude-haiku-4-5 我用在需要大量平行處理、或者對延遲非常敏感的場景(例如即時分析使用者輸入)。claude-opus-4-5 我保留給真的需要最高品質推理的任務,例如複雜的程式架構分析。
Token 是什麼、大概多少字?
一個 token 大約是 0.75 個英文單字,或者 0.5 個中文字符。所以:
- 1000 個英文字 ≈ 1,300 tokens
- 1000 個中文字 ≈ 2,000 tokens(中文每個字通常是 1-2 tokens)
以 claude-sonnet-4-6 為例,用繁體中文寫一篇 2000 字的文章大約是 4000 output tokens,費用約 $0.06(不到台幣 2 元)。很便宜,但如果你的應用有大量使用者,這些費用會累積。
Context Window 與費用的關係
每個模型都有 context window 的上限(目前 Claude 模型通常是 200K tokens)。
重要提醒:你傳送給 API 的每個請求,都要附上整段對話歷史。 也就是說,一個 10 輪的對話,第 10 輪請求的 input tokens 包含了前 9 輪的所有對話內容。這在費用計算上有重要影響:長對話會越來越貴。
Prompt Caching 是 Anthropic 提供的功能,可以讓你快取常用的 system prompt 或文件內容,重複使用時只收少量快取讀取費用而不是全額。後面章節會詳細介紹。
Rate Limits
除了費用,你還需要了解 Rate Limits(速率限制)。
Anthropic 對 API 使用有兩種限制:
- RPM(Requests Per Minute):每分鐘可以發出的請求數
- TPM(Tokens Per Minute):每分鐘可以消耗的 token 數
Rate limits 會隨著你的帳號使用量和消費金額自動提升(Anthropic 稱為 Usage Tiers)。新帳號通常從 Tier 1 開始,限制較低。如果你預計有大量使用,可以在 Console 申請提升。
遇到 Rate Limit 錯誤時,API 會回傳 429 Too Many Requests。正確的處理方式是使用指數退避(exponential backoff)重試,而不是立刻再試。
第一個 API 呼叫
理論說夠了,來動手。
用 curl 測試(最快)
這是最快驗證你的 API Key 是否有效的方法:
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "你好!請用繁體中文介紹你自己,不超過 50 字。"
}
]
}'
如果你的 Key 正確,你會看到類似這樣的回應:
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "你好!我是 Claude,由 Anthropic 開發的 AI 助理。我能協助回答問題、分析資料、撰寫文章,以及進行各種語言任務。很高興認識你!"
}
],
"model": "claude-sonnet-4-6-20251101",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 28,
"output_tokens": 42
}
}
注意 usage 欄位——這就是這次呼叫消耗的 token 數。
Python SDK
Anthropic 提供官方的 Python SDK,強烈建議使用它,而不是自己呼叫 REST API。
pip install anthropic
import anthropic
# 如果環境變數 ANTHROPIC_API_KEY 已設定,不需要傳入 api_key
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "你好!請用繁體中文介紹你自己,不超過 50 字。"
}
]
)
# 取出文字回應
print(message.content[0].text)
# 查看 token 使用量
print(f"Input tokens: {message.usage.input_tokens}")
print(f"Output tokens: {message.usage.output_tokens}")
SDK 會自動從環境變數 ANTHROPIC_API_KEY 讀取 Key,不需要你手動傳入(除非你想要明確指定)。
如果你想加上 system prompt:
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="你是一位熟悉台灣軟體業的 AI 助理,回答時請使用繁體中文,語氣專業但平易近人。",
messages=[
{
"role": "user",
"content": "2026 年台灣開發者最應該學習的技術是什麼?"
}
]
)
print(message.content[0].text)
TypeScript / Node.js SDK
npm install @anthropic-ai/sdk
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
// API Key 同樣從環境變數 ANTHROPIC_API_KEY 自動讀取
async function main() {
const message = await client.messages.create({
model: 'claude-sonnet-4-6',
max_tokens: 1024,
messages: [
{
role: 'user',
content: '你好!請用繁體中文介紹你自己,不超過 50 字。',
},
],
});
// TypeScript 版本有完整的型別支援
const textContent = message.content[0];
if (textContent.type === 'text') {
console.log(textContent.text);
}
console.log(`Input tokens: ${message.usage.input_tokens}`);
console.log(`Output tokens: ${message.usage.output_tokens}`);
}
main();
TypeScript SDK 的一個優點是有完整的型別定義,你的 IDE 會給你自動補全和型別檢查。message.content 是一個 array,每個元素可能是 text block 或 tool_use block(工具呼叫,後面章節會介紹),所以你需要用 type 欄位來判斷。
環境設定建議
在你開始正式開發之前,我推薦這樣設定你的開發環境:
使用 .env 檔案(搭配 python-dotenv 或 dotenv)
Python:
pip install python-dotenv
# .env 檔案內容
ANTHROPIC_API_KEY=sk-ant-api03-...
# 在你的 Python 程式開頭
from dotenv import load_dotenv
load_dotenv()
import anthropic
client = anthropic.Anthropic() # 自動從 .env 讀取
TypeScript / Node.js:
npm install dotenv
// .env 檔案內容
// ANTHROPIC_API_KEY=sk-ant-api03-...
import 'dotenv/config';
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
.gitignore 設定(非常重要!):
# .gitignore
.env
.env.local
.env.*.local
設定費用警示
在 Console 的 Billing 頁面,你可以設定:
- Monthly Spend Limit:每月消費上限,超過就自動停止 API 服務
- Email Alerts:當消費達到某個門檻時發 email 通知
我建議新手一定要設定 Monthly Spend Limit。我見過有人因為程式碼 bug(例如無限迴圈一直呼叫 API)而在幾個小時內燒掉幾十美金。有上限保護,最糟糕的情況就是 API 暫停服務,而不是無底洞的帳單。
常見入門問題
Q: 我要選哪個模型?
從 claude-sonnet-4-6 開始。它的品質夠好、速度夠快、費用合理,是目前大多數應用的最佳起點。等你的應用上線、了解自己的使用模式之後,再考慮是否要優化成 Haiku(降低成本)或升級成 Opus(提升品質)。
Q: API 回應太慢怎麼辦?
有幾個方向:
- 用更小的模型(Haiku 比 Sonnet 快很多)
- 用 Streaming(下一章會介紹),讓使用者更快看到第一個字
- 減少 context 長度(更短的 system prompt、更少的對話歷史)
Q: 為什麼 max_tokens 是必填的?
這是設計上的選擇。Anthropic 希望你明確指定你預期的最大回應長度,而不是讓模型無限制地回應。這有助於你控制成本,也避免你的應用等待過久。通常設 1024 到 4096 是合理的範圍,視你的應用需求而定。
Q: anthropic-version: 2023-06-01 這個 header 是什麼?
這是 API 版本 header,確保你的程式碼在 Anthropic 更新 API 時不會意外 breaking。使用 SDK 時,SDK 會自動幫你加上正確的版本,你不需要手動設定。
下一步
你現在已經完成了最基礎的部分:有一個能用的 API Key,理解費用的運作方式,也發出了第一個 API 呼叫。
但你可能注意到,我們的範例都是一來一往的單輪對話。實際的應用幾乎都需要多輪對話——使用者問問題,AI 回答,使用者追問,AI 再回答。
下一章,我們會深入了解 Messages API 的核心設計:什麼是 roles、如何管理多輪對話、system prompt 的最佳實踐,以及各種參數(temperature、top_p、stop_sequences)的實際用法。