Perplexity AI API の使い方 (2026年版)
Perplexity の検索拡張型 AI をアプリケーションに統合するための開発者ガイド
Hyperealで構築を始めよう
Kling、Flux、Sora、Veoなどに単一のAPIでアクセス。無料クレジットで開始、数百万規模まで拡張可能。
クレジットカード不要 • 10万人以上の開発者 • エンタープライズ対応
Perplexity AI API の使い方 (2026年版)
Perplexity AI は、大規模言語モデルとリアルタイムのウェブ検索を組み合わせた API を提供しています。静的な学習データに依存する標準的な LLM API とは異なり、Perplexity の API はウェブから最新情報を取得し、引用元を明示した正確な回答として合成します。そのため、リサーチツール、ニュースアグリゲーター、競合分析、カスタマーサポートボットなど、情報の鮮度が重要となるあらゆるプロダクトに最適です。
このガイドでは、API のセットアップ、利用可能なすべてのモデル、複数言語によるコード例、および実践的なインテグレーションパターンについて解説します。
なぜ Perplexity API を使うのか?
| 機能 | Perplexity API | 標準的な LLM API |
|---|---|---|
| リアルタイムウェブ検索 | はい(標準搭載) | いいえ(静的な学習データ) |
| 出典の引用 | はい(URL付き) | いいえ |
| 知識のカットオフ | なし(ライブ検索) | 数ヶ月〜数年前 |
| ハルシネーション率 | 低い(検索に基づいた根拠) | 高い |
| 構造化出力 | JSON モード対応 | プロバイダーによる |
| OpenAI 互換性 | あり | プロバイダーによる |
前提条件
- API アクセス権のある Perplexity アカウント。
- Perplexity デベロッパーダッシュボードから取得した API キー。
- Python 3.9 以上 または Node.js 18 以上(以下の例で使用)。
ステップ 1: API キーを取得する
- perplexity.ai/settings/api にアクセスします。
- Generate API Key をクリックします。
- キーをコピーし、安全に保管してください。
- アカウントにクレジットを追加します(API は後払いではなくプリペイド方式です)。
環境変数を設定します:
export PERPLEXITY_API_KEY="pplx-your-api-key-here"
ステップ 2: 最初のリクエストを作成する
Perplexity API は OpenAI 互換であるため、OpenAI SDK を使用できます。
pip install openai
from openai import OpenAI
client = OpenAI(
api_key="pplx-your-api-key-here",
base_url="https://api.perplexity.ai"
)
response = client.chat.completions.create(
model="sonar-pro",
messages=[
{
"role": "system",
"content": "You are a helpful research assistant. Provide accurate, well-cited answers."
},
{
"role": "user",
"content": "2026年における核融合エネルギーの最新動向は何ですか?"
}
]
)
print(response.choices[0].message.content)
# 引用(citations)へのアクセス
if hasattr(response, 'citations'):
print("\nSources:")
for citation in response.citations:
print(f" - {citation}")
利用可能なモデル
Perplexity は、さまざまなユースケースに合わせて最適化された複数のモデルを提供しています。
| モデル名 | 最適な用途 | コンテキストウィンドウ | 検索機能 | 価格 (Input) | 価格 (Output) |
|---|---|---|---|---|---|
sonar-pro |
複雑なリサーチ、詳細な回答 | 200K | あり | $3/M tokens | $15/M tokens |
sonar |
一般的な質問、迅速な回答 | 128K | あり | $1/M tokens | $1/M tokens |
sonar-reasoning-pro |
複数ステップの分析、比較 | 128K | あり | $2/M tokens | $8/M tokens |
sonar-reasoning |
検索を伴う簡易的な推論 | 128K | あり | $1/M tokens | $5/M tokens |
sonar-deep-research |
包括的なレポート、長文作成 | 128K | あり (深層) | $2/M tokens | $8/M tokens |
モデル選択ガイド:
- 迅速な事実確認や軽量なクエリには
sonarを使用してください。 - 詳細な調査や複雑な質問には
sonar-proを使用してください。 - 分析と比較が必要なタスクには
sonar-reasoning-proを使用してください。 - 複数の検索イテレーションを必要とする包括的なレポートには
sonar-deep-researchを使用してください。
ステップ 3: cURL を使用する
curl -X POST https://api.perplexity.ai/chat/completions \
-H "Authorization: Bearer pplx-your-api-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "sonar-pro",
"messages": [
{
"role": "user",
"content": "2026年におけるJavaScriptフレームワーク上位3つを人気とパフォーマンスで比較してください"
}
],
"temperature": 0.2,
"max_tokens": 2000
}'
ステップ 4: Node.js / TypeScript
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.PERPLEXITY_API_KEY,
baseURL: 'https://api.perplexity.ai',
});
async function search(query: string): Promise<string> {
const response = await client.chat.completions.create({
model: 'sonar-pro',
messages: [
{
role: 'system',
content: '提供されたクエリに対し、出典を明記して簡潔かつ事実に基づいた回答を行ってください。',
},
{
role: 'user',
content: query,
},
],
temperature: 0.2,
max_tokens: 1500,
});
return response.choices[0].message.content ?? '';
}
// 使用例
const result = await search('現在のビットコインの価格はいくらですか?');
console.log(result);
ステップ 5: レスポンスのストリーミング
リアルタイムにレスポンスを表示する場合:
from openai import OpenAI
client = OpenAI(
api_key="pplx-your-api-key-here",
base_url="https://api.perplexity.ai"
)
stream = client.chat.completions.create(
model="sonar",
messages=[
{
"role": "user",
"content": "今日のテックニュースを教えてください。"
}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print() # 最後に改行
ステップ 6: 検索コンテキストの制御
Perplexity がウェブを検索する方法を制御できます。
response = client.chat.completions.create(
model="sonar-pro",
messages=[
{
"role": "user",
"content": "Python 3.14 の最新機能とリリース日について"
}
],
# 検索動作の制御
search_domain_filter=["python.org", "docs.python.org", "peps.python.org"],
search_recency_filter="week", # オプション: "hour", "day", "week", "month"
return_citations=True,
return_related_questions=True
)
print(response.choices[0].message.content)
# ユーザーが次に尋ねたい可能性のある関連質問
if hasattr(response, 'related_questions'):
print("\nRelated questions:")
for q in response.related_questions:
print(f" - {q}")
実践的なユースケース
1. リサーチアシスタント
def research_topic(topic: str, depth: str = "standard") -> dict:
model = "sonar-deep-research" if depth == "deep" else "sonar-pro"
response = client.chat.completions.create(
model=model,
messages=[
{
"role": "system",
"content": """あなたはリサーチアナリストです。以下を提供してください:
1. 主要な結果(箇条書き)
2. 最近の動向(過去30日以内)
3. 専門家の意見
4. データと統計
すべての主張に引用を含めてください。"""
},
{
"role": "user",
"content": f"リサーチ対象: {topic}"
}
],
return_citations=True,
max_tokens=3000
)
return {
"content": response.choices[0].message.content,
"citations": getattr(response, 'citations', []),
"model": model
}
result = research_topic("2026年における欧州のAI規制の状況", depth="deep")
print(result["content"])
2. 競合インテリジェンス
def analyze_competitor(company: str) -> str:
response = client.chat.completions.create(
model="sonar-reasoning-pro",
messages=[
{
"role": "user",
"content": f"""{company}を競合他社として分析してください:
- 最近の製品発表
- 価格変更
- 主要な提携
- 市場でのポジション
- 強みと弱み
入手可能な最新の情報に基づいて分析してください。"""
}
],
search_recency_filter="month",
return_citations=True,
max_tokens=2500
)
return response.choices[0].message.content
print(analyze_competitor("Vercel"))
3. ニュースアグリゲーション
def get_news_summary(topic: str) -> str:
response = client.chat.completions.create(
model="sonar",
messages=[
{
"role": "user",
"content": f"{topic}に関する今日のトップ5ニュースを要約してください。情報源も含めてください。"
}
],
search_recency_filter="day",
return_citations=True,
max_tokens=1500
)
return response.choices[0].message.content
print(get_news_summary("人工知能"))
4. ファクトチェック API
def fact_check(claim: str) -> str:
response = client.chat.completions.create(
model="sonar-reasoning-pro",
messages=[
{
"role": "system",
"content": """あなたはファクトチェッカーです。各主張に対し:
1. 正しい(TRUE)、間違い(FALSE)、一部正しい(PARTIALLY TRUE)、または検証不能(UNVERIFIABLE)かを述べてください。
2. 信頼できる情報源からの証拠を提供してください。
3. 出典を引用してください。
客観的かつ徹底的に行ってください。"""
},
{
"role": "user",
"content": f"この主張をファクトチェックしてください: {claim}"
}
],
return_citations=True,
max_tokens=2000
)
return response.choices[0].message.content
print(fact_check("2025年の世界平均気温は観測史上最高だった"))
レート制限と価格設定
| ティア | リクエスト数/分 | トークン数/分 | 月間支出額 |
|---|---|---|---|
| 無料トライアル | 5 | 20,000 | $0 (制限あり) |
| スタンダード | 50 | 100,000 | 従量課金 |
| プロ | 500 | 1,000,000 | $50+ |
| エンタープライズ | カスタム | カスタム | お問い合わせ |
コスト例:
| ユースケース | モデル | リクエスト数/日 | 推定月額コスト |
|---|---|---|---|
| 個人のリサーチ | sonar | 50 | 約 $5 |
| ニュースアグリゲーション | sonar | 500 | 約 $30 |
| 競合分析 | sonar-pro | 100 | 約 $50 |
| 本番用検索アプリ | sonar-pro | 5,000 | 約 $500 |
エラーハンドリング
from openai import OpenAI, APIError, RateLimitError, APIConnectionError
import time
client = OpenAI(
api_key="pplx-your-api-key-here",
base_url="https://api.perplexity.ai"
)
def query_with_retry(query: str, max_retries: int = 3) -> str:
for attempt in range(max_retries):
try:
response = client.chat.completions.create(
model="sonar",
messages=[{"role": "user", "content": query}],
max_tokens=1500
)
return response.choices[0].message.content
except RateLimitError:
wait_time = 2 ** attempt
print(f"レート制限に達しました。{wait_time}秒待機します...")
time.sleep(wait_time)
except APIConnectionError:
print("接続エラーです。再試行します...")
time.sleep(1)
except APIError as e:
print(f"APIエラー: {e}")
raise
raise Exception("最大再試行回数を超えました")
トラブルシューティング
| 問題 | 解決策 |
|---|---|
| 401 Unauthorized | API キーが正しいか、クレジットが残っているか確認してください |
| 429 Rate Limited | バックオフ機能を実装するか、ティアをアップグレードしてください |
| 引用(citations)が空 | すべての回答に引用が含まれるわけではありません。return_citations=True を使用してください |
| 情報が古い | search_recency_filter を使用して、最近の結果に限定してください |
| レスポンスが遅い | 高速な結果が必要な場合は、sonar-pro の代わりに sonar を使用してください |
| モデルが見つからない | モデル名を確認してください。Perplexity は定期的にモデル名を更新します |
まとめ
Perplexity AI API は、リアルタイムのウェブデータに基づいた LLM レスポンスを必要とするアプリケーションを構築するための最良の選択肢です。OpenAI 互換のインターフェースにより統合が容易であり、組み込みの検索および引用機能により、ウェブコンテンツ専用の個別の RAG パイプラインを構築する必要がなくなります。
画像、動画、トーキングアバター、音声合成などの AI 生成メディアも必要なアプリケーションを構築している場合は、Hypereal AI を確認してください。Hypereal は、生成メディア向けの従量課金制の統一 REST API を提供しており、Perplexity の検索インテリジェンスと Hypereal のメディア生成を単一のアプリケーション内で簡単に組み合わせることができます。
