SOLARI 데이터를 코드에서 바로.

크리에이터·브랜드 데이터를 API로 불러오세요. CLI·MCP에서 쓰는 도구를 HTTP 요청으로 쓸 수 있습니다. TypeScript·Python SDK로는 함수 호출 한 번이면 됩니다.

LIVE · v1https://solari.sh/mcp/api/v1

토큰은 두 가지 방법으로 받을 수 있습니다.

코드·CI·서버에서 쓸 때는 My page에서 API key를 만들어 시크릿 저장소에 보관하세요. 이미 로그인한 컴퓨터라면 solari CLI로 잠깐 쓰는 토큰을 받을 수도 있습니다.

solari_sk_…
오래 쓰는 API key입니다. SOLARI 앱의 My page → API keys에서 만듭니다. 만들 때 한 번만 보여 주니 바로 복사해 두세요. 직접 폐기하기 전까지 계속 쓸 수 있고, 이 key로 보낸 호출은 사용량 페이지의 API 항목에 집계됩니다.
solari auth token
로그인한 계정의 액세스 토큰을 출력합니다. 만료됐으면 새로 받아서 출력합니다. 토큰은 8시간 동안 쓸 수 있고, CLI만 갱신할 수 있습니다. 사람이 지켜보지 않는 자동 작업에는 API key를 쓰세요.
SOLARI_TOKEN
SDK와 CLI가 이 환경변수를 읽습니다. API key와 CLI가 발급한 토큰 모두 넣을 수 있습니다. SDK에는 token 인자로 바로 넘겨도 됩니다.

모든 요청의 Authorization 헤더에 Bearer <token> 형태로 넣으세요.

API key 만들기 →

엔드포인트는 네 개뿐입니다.

도구 이름·인자·결과는 solari help all --json과 MCP 서버의 설명과 똑같습니다.

GET/tools
이 계정이 쓸 수 있는 도구 전체와 각 도구의 JSON 입력 스키마.
GET/tools/{name}
도구 하나의 스키마와 설명.
POST/tools/{name}
도구를 실행합니다. 요청 본문(JSON)이 인자, 응답이 결과입니다.
GET/me
이 토큰의 계정 정보.

호출 한 번으로 브랜드 찾기.

응답은 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 대신 SDK를 써도 됩니다.

두 SDK 모두 이 엔드포인트를 감싼 가벼운 라이브러리이고, 따로 설치할 의존성이 없습니다. 점으로 이은 경로가 곧 도구 이름입니다. 예를 들어 catalog.instagram.account.search는 solari_catalog_instagram_account_search를 호출합니다.

TypeScript · Node, Bun, Deno, Workers, 브라우저

npm install @brandazine/solari-sdk
import { 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-sdk
from solari_sdk import Solari

solari = Solari()  # reads SOLARI_TOKEN
hits = solari.tools.catalog.instagram.account.search(query="nike", limit=3)

메서드는 여섯 개이고, 두 언어에서 똑같이 씁니다.

메서드 하나가 위 엔드포인트 하나에 대응합니다. 결과는 도구가 돌려준 JSON 그대로이고, SDK가 따로 캐시하지 않습니다.

TSnew 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를 직접 넘기면 네트워크 없이 테스트할 수 있습니다.
TSawait solari.listTools()
PYsolari.list_tools()
GET /tools — 이 계정이 쓸 수 있는 도구 전체와 각 도구의 JSON 입력 스키마.
TSawait solari.getTool(name)
PYsolari.get_tool(name)
GET /tools/{name} — 도구 하나의 스키마와 설명.
TSawait solari.call<T>(name, args)
PYsolari.call(name, arguments=None, **kwargs)
POST /tools/{name} — 도구의 전체 이름으로 실행합니다. TypeScript에서는 결과 타입을 지정할 수 있습니다.
TSawait solari.tools.catalog.instagram.account.search(args)
PYsolari.tools.catalog.instagram.account.search(**kwargs)
같은 호출을 점 경로로 씁니다. 도구 목록에서 자동으로 만들어져서 경로·인자 이름·enum 값을 TypeScript와 Python(pyright/mypy)에서 타입 검사할 수 있습니다.
TSawait solari.me()
PYsolari.me()
GET /me — 이 토큰의 계정 정보.

오류는 SolariError 하나로 받습니다.

응답이 2xx가 아니면 SolariError가 발생하고, 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로 연결하기 →