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

> Every apinoa docs page as markdown: https://apinoa.com/llms.txt (all in one file: https://apinoa.com/llms-full.txt)

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

## TypeScript

```bash
npm install @apinoa/sdk
```

```ts
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](https://github.com/apinoahq/apinoa-typescript).

## Python

```bash
pip install apinoa
```

```python
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](https://github.com/apinoahq/apinoa-python).

## MCP 서버

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

### 호스팅: 설치 없이

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

```bash
# 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**

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

**Codex**

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

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

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

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

```text
/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` 등)에 추가합니다.

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

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

## OpenAPI

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

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

## AI 코딩 에이전트용

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

```markdown
## 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`](https://apinoa.com/llms.txt)는 모든 문서 페이지를 마크다운 링크로 나열하고,
  [`/llms-full.txt`](https://apinoa.com/llms-full.txt)는 그 전부를 한 파일에 담습니다.
- 각 문서 페이지는 `/en/docs-raw/<page>`에서 마크다운으로도 제공됩니다. 예:
  [`/en/docs-raw/getting-started`](https://apinoa.com/en/docs-raw/getting-started).
