跳至主要內容
技術

Claude API 入門:帳號、費用與第一個 API 呼叫

Claude API 入門:帳號、費用與第一個 API 呼叫
Claude API & Agent SDK 完全指南 第 1 / 15 篇

本篇是「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 是分開的系統(雖然可以用同一個帳號登入)。

註冊後你需要:

  1. 驗證你的 email(如果用 email 註冊的話)
  2. 新增付款方式:沒有信用卡就沒有辦法使用 API,這是必要步驟
  3. 設定使用量上限(建議設定,避免意外高額帳單)

Anthropic 不提供「永久免費層」的 API 使用量。你第一次加入信用卡後,帳號通常會有一些試用額度(金額不定,可能幾美金到十幾美金),但用完就要開始付費。

產生 API Key

進入 Console 後,在左側選單找到 API Keys

點擊「+ Create Key」,給它一個有意義的名字(例如:my-chatbot-prodlocal-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 目前有三個主要的模型家族:

模型InputOutput適用場景
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 使用有兩種限制:

  1. RPM(Requests Per Minute):每分鐘可以發出的請求數
  2. 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 回應太慢怎麼辦?

有幾個方向:

  1. 用更小的模型(Haiku 比 Sonnet 快很多)
  2. 用 Streaming(下一章會介紹),讓使用者更快看到第一個字
  3. 減少 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)的實際用法。

留言討論

esc
輸入關鍵字搜尋文章...
查看收藏 →