Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
APINOA_API_KEYYesRequired for every data call. Create a key under Dashboard > API keys at apinoa.com.
APINOA_BASE_URLNoBase URL for the apinoa API gateway.https://gateway.apinoa.com

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_docsA

Find how to do a task with apinoa: the matching operations as you call them in execute (e.g. apinoa.tiktok.posts({ hashtag })), every parameter, the cost per call, and the fields of what they return. Free: it calls nothing. Use it before writing code. Pass words ('tiktok hashtag videos', 'instagram reels of an account', 'amazon product reviews'), a platform, or a type name ('Post'); with neither you get the list of every operation.

Platforms: aliexpress, amazon, app-store, baidu, bing, chatgpt, daum, duckduckgo, gemini, google, google-ai-mode, google-aio, google-play, google-shopping, google-trends, instagram, linkedin, naver, naver-ai-brief, naver-ai-tab, reddit, seznam, shopify, sogou, threads, tiktok, tiktokshop, tripadvisor, walmart, x, yahoo, yahoo-japan, yandex, youtube.

executeA

Run TypeScript that calls the apinoa API, and get back only what it prints or returns. Use it for every data task, from one call to thousands: fan out over accounts or posts, follow pages, then filter, count, rank and average in the code, so raw API answers never fill the conversation.

The code is the body of an async function: use await, and return a small result (aggregate, slice, pick the fields you need). In scope:

  • apinoa..(params): one API call, returns the answer's data; throws ApinoaError (code, status) on a refusal. search_docs lists the parameters and the fields returned.

  • pages(op, params, { maxPages }): every item of a paged operation, following cursors (default 5 pages).

  • many(items, fn, { concurrency }): fn over every item, 8 at a time by default; a failed item comes back undefined.

  • store.save(name, value) / store.load(name) / store.list() / store.saveFile(name, base64): data kept on this machine between runs.

  • usage: { calls, units, budget } of this run. The code is type-checked before it runs: an operation, parameter or field that does not exist fails there, before anything is billed. Each call costs units (1 unit = $0.001, per search_docs); the run stops once budget_units are spent. Answers are cached for 10 minutes, so re-running after a fix costs nothing for calls already made. Only the API is reachable from the code.

Example: const page = await apinoa.tiktok.posts({ hashtag: "glassskin", limit: 50 }); const authors = [...new Set(page.items.map((p) => p.author.handle))].slice(0, 10); const recent = await many(authors, (u) => apinoa.tiktok.posts({ username: u, limit: 30 })); return authors.map((u, i) => { const views = (recent[i]?.items ?? []).map((p) => p.metrics?.views ?? 0).sort((a, b) => a - b); return { author: u, median: views[Math.floor(views.length / 2)] ?? null }; });

Operations (call search_docs with words or a platform for parameters, costs and the fields returned):

  • apinoa.aliexpress: search, browse, categories, imageSearch, product, shipping

  • apinoa.amazon: search, imageSearch, browse, categories, product

  • apinoa.app-store: search, app, reviews

  • apinoa.baidu: search, suggestions

  • apinoa.bing: search, suggestions

  • apinoa.chatgpt: answer

  • apinoa.daum: search, suggestions

  • apinoa.duckduckgo: search, suggestions

  • apinoa.gemini: answer

  • apinoa.google: search, suggestions, places, place

  • apinoa.google-ai-mode: answer

  • apinoa.google-aio: answer

  • apinoa.google-play: search, app, reviews

  • apinoa.google-shopping: search, product, reviews

  • apinoa.google-trends: explore, trending

  • apinoa.instagram: profile, post, posts, comments, group, groups

  • apinoa.linkedin: profile, post, posts, comments, group, job, jobs

  • apinoa.naver: search, suggestions, places, place, reviews

  • apinoa.naver-ai-brief: answer

  • apinoa.naver-ai-tab: answer

  • apinoa.reddit: profile, profiles, post, posts, comments, group, groups

  • apinoa.seznam: search, suggestions

  • apinoa.shopify: search, imageSearch, catalog, product, reviews

  • apinoa.sogou: search, suggestions

  • apinoa.threads: profile, post, posts, comments

  • apinoa.tiktok: profile, profiles, post, posts, comments, group, groups, media

  • apinoa.tiktokshop: search, browse, categories, catalog, product, reviews

  • apinoa.tripadvisor: places, place, reviews

  • apinoa.walmart: search, browse, categories, product, reviews

  • apinoa.x: profile, post, posts, group

  • apinoa.yahoo: search, suggestions

  • apinoa.yahoo-japan: search, suggestions

  • apinoa.yandex: search, suggestions, places, place, reviews

  • apinoa.youtube: profile, profiles, post, posts, comments, groups

translate_imageA

Replace the text inside a product image with a translation, keeping fonts, colours and layout. Give the image as a URL. Returns the translated image.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

The three tools occupy completely separate roles: search_docs is free documentation discovery, execute is the paid code runner for all API work, and translate_image is a single-purpose image transformation. The descriptions explicitly reinforce the boundary ('Free: it calls nothing', 'Use it before writing code'), so an agent cannot mistake one for another.

Naming Consistency4/5

search_docs and translate_image use a consistent snake_case verb_noun pattern, while execute is a bare verb with no noun. That deviation is minor and idiomatic for a runner tool, so the set still reads predictably.

Tool Count4/5

Three tools is thin in raw count, but the design deliberately collapses 35+ platforms and hundreds of operations behind a single typed executor plus a discovery tool, so each tool earns its place. The only slightly odd member is translate_image, which is a niche add-on unrelated to the discovery/execute core.

Completeness4/5

The discover-then-execute loop covers the full domain: search_docs lists every operation, parameter, cost and return field, and execute handles calls, pagination, fan-out, persistence and usage inspection. Minor gaps exist around pre-run budget/account checks and error diagnostics outside of code, but agents can work around these inside execute.

Maintenance

ActivityMaintained
ResponsivenessNo issues