SOLARI のデータを、 コードからすぐに。
クリエイター・ブランドのデータを API で呼び出せます。 CLI・MCP と同じツールを HTTP リクエストで使えます。 TypeScript・Python SDK なら関数を 1 回呼ぶだけです。
https://solari.sh/mcp/api/v1bearer トークンの取得方法は 2 つあります。
コード・CI・サーバーでは、My page で API key を作成し、シークレットストアに保管してください。すでにログイン済みのパソコンでは、solari CLI で有効期間の短いトークンを発行することもできます。
- solari_sk_…
- 長期間使える API key です。SOLARI アプリの My page → API keys で作成します。作成時に一度しか表示されないので、すぐにコピーしてください。失効させるまで使え、この key による呼び出しは usage ページの API チャネルに集計されます。
- solari auth token
- ログイン中のアカウントのアクセストークンを出力します。期限切れの場合は先に更新します。有効期間は 8 時間で、更新できるのは CLI だけです。無人で動かす処理には API key を使ってください。
- SOLARI_TOKEN
- SDK と CLI がこの変数を読みます。API key でも CLI が発行したトークンでも構いません。SDK には token 引数で直接渡すこともできます。
すべてのリクエストに Authorization: Bearer <token> を付けて送ります。
API key を作る →エンドポイントは 4 つです。
ツール名・引数・結果は、solari help all --json と MCP サーバーの説明と同じです。
- GET/tools
- このアカウントが呼べるすべてのツールと JSON 入力スキーマ。
- GET/tools/{name}
- ツール 1 つのスキーマと説明。
- POST/tools/{name}
- ツールを実行します。JSON ボディが引数、レスポンスが結果です。
- GET/me
- トークンが属するアカウント。
1 回の呼び出しでブランドを探す。
レスポンスは CLI で --json を付けたときの出力と同じです。found と、一致度の高い順に並んだ items が含まれます。
curl -sS https://solari.sh/mcp/api/v1/tools/solari_catalog_instagram_account_search \
-H "Authorization: Bearer $SOLARI_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query":"nike","limit":3}'HTTP の代わりにクライアントも使えます。
どちらもこのエンドポイントをラップした軽量なライブラリで、依存パッケージはありません。ドット区切りのパスはツール名に対応します。たとえば catalog.instagram.account.search は solari_catalog_instagram_account_search を呼び出します。
TypeScript · Node、Bun、Deno、Workers、ブラウザ
npm install @brandazine/solari-sdkimport { Solari } from "@brandazine/solari-sdk";
const solari = new Solari({ token: process.env.SOLARI_TOKEN });
const hits = await solari.tools.catalog.instagram.account.search({ query: "nike", limit: 3 });Python 3.9+ · 標準ライブラリのみ
pip install solari-sdkfrom solari_sdk import Solari
solari = Solari() # reads SOLARI_TOKEN
hits = solari.tools.catalog.instagram.account.search(query="nike", limit=3)メソッドは 6 つで、両言語とも同じです。
メソッド 1 つが上のエンドポイント 1 つに対応します。結果はツールの JSON そのままで、クライアント側ではキャッシュしません。
- TS
new Solari({ token?, baseUrl?, fetch?, timeoutMs?, userAgent? })PYSolari(token=None, base_url=…, timeout=150, user_agent=None, transport=None) - クライアントを作成します。token を指定しなければ SOLARI_TOKEN を読みます。baseUrl の既定値は solari.sh です。fetch や transport を渡せば、ネットワークなしでテストできます。
- TS
await solari.listTools()PYsolari.list_tools() - GET /tools — このアカウントが呼べるすべてのツールと JSON 入力スキーマ。
- TS
await solari.getTool(name)PYsolari.get_tool(name) - GET /tools/{name} — ツール 1 つのスキーマと説明。
- TS
await solari.call<T>(name, args)PYsolari.call(name, arguments=None, **kwargs) - POST /tools/{name} — ツールを正式名で実行します。TypeScript では結果の型を指定できます。
- TS
await solari.tools.catalog.instagram.account.search(args)PYsolari.tools.catalog.instagram.account.search(**kwargs) - 同じ呼び出しをドット区切りのパスで書きます。ツールレジストリから生成されるため、パス・引数名・enum 値は TypeScript と Python(pyright/mypy)で型チェックされます。
- TS
await solari.me()PYsolari.me() - GET /me — トークンが属するアカウント。
エラー型は 1 つです。
レスポンスが 2xx 以外のときは SolariError が送出され、API の status・code・message・tool が入ります。429・502・503・504 では retryable が true になり、サーバーが Retry-After を返した場合はその秒数も入ります。ネットワークエラーも同じ型で、status は 0 です。
import { Solari, SolariError } from "@brandazine/solari-sdk";
try {
await solari.call("solari_insight_instagram_brand_overview", { username: "nike" });
} catch (error) {
if (error instanceof SolariError && error.retryable) {
// error.status, error.code, error.tool, error.retryAfterSeconds
}
}from solari_sdk import Solari, SolariError
try:
solari.call("solari_insight_instagram_brand_overview", username="nike")
except SolariError as error:
if error.retryable:
... # error.status, error.code, error.tool, error.retry_after_secondsエラーはすべて JSON で返ります。
2xx 以外のレスポンスには error.code と error.message が入ります。ツールの呼び出しで起きたエラーなら error.tool も入ります。レート制限にかかったときやアプリの起動中は Retry-After ヘッダーが付きます。
{
"error": {
"code": "invalid_arguments",
"message": "limit: expected number, received string",
"tool": "solari_catalog_instagram_account_search"
}
}- 400invalid_arguments
- ボディがツールの入力スキーマと一致しません。メッセージに問題のフィールドが書かれています。
- 400invalid_json
- ボディが JSON オブジェクトではありません。
- 400tool_error
- ツールが呼び出しを拒否しました。アカウントが指定されていない場合などです。
- 401unauthorized
- トークンがないか、期限切れか、失効しています。API key を作り直すか、CLI トークンを再発行してください。
- 402credit_exhausted
- この SOLARI アカウントにクレジットが残っていないか、メール確認またはカード登録が完了していないためトライアルが始まっていません。課金はされていません。再試行しても結果は変わりません。solari_usage_get で残高を確認してください。次に何をすればよいかはメッセージに書かれています。
- 402account_blocked
- この SOLARI アカウントのツール呼び出しは停止されています。課金はされていません。問い合わせ先はメッセージに書かれています。
- 403forbidden
- この SOLARI アカウントでは使えないツールです。
- 404tool_not_found
- このアカウントにその名前のツールはありません。まず一覧を確認してください。
- 429rate_limited
- 呼び出しが多すぎます。Retry-After に示された秒数だけ待ってください。
- 502upstream_error
- SOLARI が呼び出しを完了できませんでした。しばらくして再試行してください。
- 503app_warming_up
- ツールを準備しています。Retry-After に示された秒数が経ってから再試行してください。
- 504upstream_timeout
- 呼び出しが制限時間を超えました。範囲を狭めるか再試行してください。
同じツールを MCP でも使えます。
エージェントと MCP ホストは、同じトークンで MCP サーバーに接続します。使う環境に合う方を選んでください。
https://solari.sh/mcpMCP で接続する →