SDKs and MCP
The TypeScript and Python SDKs, the MCP server for Claude Code, Codex and Cursor, and the OpenAPI document: every API, one key.
Everything in these docs is plain HTTP, so any language can call it. These are the ready-made ways in. Each one reaches every API: marketplaces, social platforms, search engines, AI answer engines and image translation, with the same key and the same prices as a direct call.
TypeScript
npm install @apinoa/sdkimport { ApinoaClient } from "@apinoa/sdk";
const apinoa = new ApinoaClient(); // reads 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" });Every call is apinoa.<platform>.<operation>(params), spelled the way the URL is: /v1/google-aio/answer
is apinoa.googleAio.answer(...). Node.js 20 or later, Bun, Deno and Cloudflare Workers. Source and
reference: apinoahq/apinoa-typescript.
Python
pip install apinoafrom apinoa import Apinoa
client = Apinoa() # reads 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")The same calls in snake_case: /v1/amazon/image-search is client.amazon.image_search(...) and priceMax
is price_max. An async client is included. Python 3.9 or later. Source and reference:
apinoahq/apinoa-python.
MCP Server
apinoa-mcp gives an AI assistant the whole API as tools: ask "compare the cheapest Stanley 40 oz on
Amazon and Walmart" or "does ChatGPT mention our brand for the best running shoes" and it makes the calls.
Hosted: Nothing to Install
https://api.apinoa.com/mcp is the same server, hosted. There is no key to copy: the first time a client
connects, it opens apinoa in your browser, you sign in and approve, and the client gets a key of its own. That
key expires after 90 days and is listed in Dashboard → API keys, where you can revoke it.
# Claude Code (then run /mcp and choose apinoa to sign in)
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 apinoaClaude.ai and Claude Desktop: Settings → Connectors → Add custom connector, with the URL above.
Cursor and other clients: { "mcpServers": { "apinoa": { "url": "https://api.apinoa.com/mcp" } } }.
To use a key you already have instead of signing in, send it as a header:
claude mcp add --transport http apinoa https://api.apinoa.com/mcp -H "Authorization: Bearer your_key".
The hosted server has one tool per kind of read (search_products, get_product, list_social_posts,
call_apinoa, …); the local server below can also run code the model writes.
Local: npx
Claude Code
claude mcp add apinoa -e APINOA_API_KEY=your_key -- npx -y apinoa-mcpCodex
codex mcp add apinoa --env APINOA_API_KEY=your_key -- npx -y apinoa-mcpGemini CLI: it asks for your key on install.
gemini extensions install https://github.com/apinoahq/apinoa-mcpClaude Code plugin: the MCP server plus a skill for each API, which tells the agent when to use it and how.
/plugin marketplace add apinoahq/apinoa-skills
/plugin install apinoa@apinoaThe same skills install into Codex, Cursor and other agents with npx skills add apinoahq/apinoa-skills.
Cursor, Claude Desktop, Windsurf and other clients: add it to the client's MCP configuration
(.cursor/mcp.json, claude_desktop_config.json, …):
{
"mcpServers": {
"apinoa": {
"command": "npx",
"args": ["-y", "apinoa-mcp"],
"env": { "APINOA_API_KEY": "your_key" }
}
}
}It needs Node.js 20 or later. Calls are billed to the key at the normal rates, and a call that fails is not billed. Source, tools and options: apinoahq/apinoa-mcp.
OpenAPI
https://apinoa.com/openapi.json is the OpenAPI 3.1 document of the
whole API: every operation, its parameters and its response types. Generate a client in another language
from it, or import it into Postman or an API gateway. The SDKs above are generated from it.
GET https://gateway.apinoa.com/v1/marketplaces is the live
catalog: every platform, its operations, what each costs and the parameters each accepts, as JSON. It needs
no key.
For AI Coding Agents
Paste this into your project's AGENTS.md or CLAUDE.md so your coding agent reaches for the API instead of
writing a scraper:
## 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.txtlists every docs page as markdown, and/llms-full.txtis all of them in one file.- Each docs page is also served as markdown at
/en/docs-raw/<page>, for example/en/docs-raw/getting-started.