Apinoa Docs

SDK와 MCP

TypeScript·Python SDK, Claude Code·Codex·Cursor용 MCP 서버, OpenAPI 문서. 모든 API를 키 하나로.

원본 .mdx 보기

이 문서의 모든 API는 일반 HTTP라서 어떤 언어로든 호출할 수 있습니다. 아래는 바로 쓸 수 있는 방법들입니다. 어느 것이든 마켓플레이스, 소셜 플랫폼, 검색엔진, AI 답변 엔진, 이미지 번역까지 모든 API에 닿으며, 키와 가격은 직접 호출할 때와 같습니다.

TypeScript

npm install @apinoa/sdk
import { ApinoaClient } from "@apinoa/sdk";

const apinoa = new ApinoaClient(); // APINOA_API_KEY를 읽습니다

const { data } = await apinoa.amazon.search({ query: "wool socks", priceMax: 30 });
const posts = await apinoa.tiktok.posts({ username: "khaby.lame" });
const serp = await apinoa.google.search({ q: "trail running shoes", country: "US" });
const answer = await apinoa.chatgpt.answer({ prompt: "Best running shoes for beginners?", country: "US" });

모든 호출은 apinoa.<platform>.<operation>(params)이며 URL과 같은 이름입니다. /v1/google-aio/answer는 apinoa.googleAio.answer(...)입니다. Node.js 20 이상, Bun, Deno, Cloudflare Workers에서 동작합니다. 소스와 레퍼런스: apinoahq/apinoa-typescript.

Python

pip install apinoa
from apinoa import Apinoa

client = Apinoa()  # APINOA_API_KEY를 읽습니다

res = client.amazon.search(query="wool socks", price_max=30)
posts = client.tiktok.posts(username="khaby.lame")
serp = client.google.search(q="trail running shoes", country="US")
answer = client.chatgpt.answer(prompt="Best running shoes for beginners?", country="US")

같은 호출을 snake_case로 씁니다. /v1/amazon/image-search는 client.amazon.image_search(...), priceMax는 price_max입니다. 비동기 클라이언트도 들어 있습니다. Python 3.9 이상. 소스와 레퍼런스: apinoahq/apinoa-python.

MCP 서버

apinoa-mcp는 AI 어시스턴트에게 API 전체를 도구로 줍니다. "Amazon과 Walmart에서 가장 싼 Stanley 40 oz를 비교해줘", *"러닝화 추천을 물으면 ChatGPT가 우리 브랜드를 말해?"*처럼 물으면 어시스턴트가 호출을 대신합니다.

호스팅: 설치 없이

https://api.apinoa.com/mcp는 같은 서버를 저희가 호스팅한 것입니다. 키를 복사할 필요가 없습니다. 클라이언트가 처음 연결하면 브라우저에 apinoa가 열리고, 로그인해 승인하면 그 클라이언트 전용 키가 발급됩니다. 이 키는 90일 뒤 만료되며 대시보드 → API 키에 표시되어 언제든 폐기할 수 있습니다.

# Claude Code (추가한 뒤 /mcp에서 apinoa를 골라 로그인)
claude mcp add --transport http apinoa https://api.apinoa.com/mcp

# Codex
codex mcp add apinoa --url https://api.apinoa.com/mcp
codex mcp login apinoa

Claude.ai, Claude Desktop: 설정 → 커넥터 → 맞춤 커넥터 추가에 위 URL을 넣습니다. Cursor 등 다른 클라이언트: { "mcpServers": { "apinoa": { "url": "https://api.apinoa.com/mcp" } } }.

로그인 대신 이미 있는 키를 쓰려면 헤더로 보냅니다: claude mcp add --transport http apinoa https://api.apinoa.com/mcp -H "Authorization: Bearer your_key". 호스팅 서버는 읽기 종류마다 도구가 하나씩 있습니다(search_products, get_product, list_social_posts, call_apinoa 등). 아래의 로컬 서버는 모델이 작성한 코드도 실행할 수 있습니다.

로컬: npx

Claude Code

claude mcp add apinoa -e APINOA_API_KEY=your_key -- npx -y apinoa-mcp

Codex

codex mcp add apinoa --env APINOA_API_KEY=your_key -- npx -y apinoa-mcp

Gemini CLI: 설치할 때 키를 묻습니다.

gemini extensions install https://github.com/apinoahq/apinoa-mcp

Claude Code 플러그인: MCP 서버와 API마다 하나씩, 언제 어떻게 쓰는지 에이전트에게 알려 주는 스킬이 함께 들어 있습니다.

/plugin marketplace add apinoahq/apinoa-skills
/plugin install apinoa@apinoa

같은 스킬은 npx skills add apinoahq/apinoa-skills로 Codex, Cursor 등 다른 에이전트에도 설치됩니다.

Cursor, Claude Desktop, Windsurf 등: 클라이언트의 MCP 설정(.cursor/mcp.json, claude_desktop_config.json 등)에 추가합니다.

{
  "mcpServers": {
    "apinoa": {
      "command": "npx",
      "args": ["-y", "apinoa-mcp"],
      "env": { "APINOA_API_KEY": "your_key" }
    }
  }
}

Node.js 20 이상이 필요합니다. 호출은 그 키에 일반 요금으로 과금되며, 실패한 호출은 과금되지 않습니다. 소스, 도구, 옵션: apinoahq/apinoa-mcp.

OpenAPI

https://apinoa.com/openapi.json은 API 전체의 OpenAPI 3.1 문서입니다. 모든 오퍼레이션과 파라미터, 응답 타입이 들어 있습니다. 다른 언어의 클라이언트를 생성하거나 Postman, API 게이트웨이에 가져올 수 있습니다. 위 SDK도 이 문서에서 생성됩니다.

GET https://gateway.apinoa.com/v1/marketplaces는 실시간 카탈로그입니다. 모든 플랫폼과 오퍼레이션, 각각의 비용과 받는 파라미터를 JSON으로 돌려주며, 키가 필요 없습니다.

AI 코딩 에이전트용

프로젝트의 AGENTS.md나 CLAUDE.md에 붙여 넣으면, 코딩 에이전트가 스크레이퍼를 직접 만드는 대신 API를 씁니다. 에이전트가 읽는 글이라 영어 그대로 둡니다.

## Web data: apinoa
Use the apinoa API instead of writing a scraper for marketplace, social, search-engine or AI-answer data.
- Call: `GET https://gateway.apinoa.com/v1/{platform}/{operation}` with header `x-api-key: $APINOA_API_KEY`
  (AI answers and image search are `POST` with a JSON body). Responses are `{ success, data }`; on failure
  `{ success: false, error: { code, message } }`. Branch on `error.code`. Failed calls are not billed.
- SDKs: TypeScript `@apinoa/sdk` (`new ApinoaClient()`, `apinoa.<platform>.<operation>(params)`),
  Python `apinoa` (`Apinoa()`, snake_case). MCP server: `npx -y apinoa-mcp`, or hosted at
  `https://api.apinoa.com/mcp` (OAuth sign-in, or `Authorization: Bearer <key>`).
- Which platform for what:
  - Products, prices, reviews: `amazon`, `walmart`, `shopify` (any store), `aliexpress`, `tiktokshop`
    (`search`, `product`, `reviews`, `categories`, `browse`)
  - Social profiles, posts, comments: `tiktok`, `instagram`, `youtube`, `reddit`, `x`, `threads`, `linkedin`
    (`profile`, `posts`, `post`, `comments`)
  - Search results: `google`, `bing`, `naver`, `baidu`, `yandex`, `yahoo`, `duckduckgo`, `google-shopping`,
    `google-trends`, `app-store`, `google-play`, `tripadvisor` (`search`, `places`, `reviews`)
  - What AI engines answer: `chatgpt`, `gemini`, `google-aio`, `google-ai-mode`, `naver-ai-brief`, `naver-ai-tab`
    (`answer`)
  - Text inside images: `POST /v1/image-translate/translate`
- Every platform, operation, parameter and cost: `GET https://gateway.apinoa.com/v1/marketplaces` (no key).
  Docs as markdown: https://apinoa.com/llms.txt
  • /llms.txt는 모든 문서 페이지를 마크다운 링크로 나열하고, /llms-full.txt는 그 전부를 한 파일에 담습니다.
  • 각 문서 페이지는 /en/docs-raw/<page>에서 마크다운으로도 제공됩니다. 예: /en/docs-raw/getting-started.

이 페이지 내용