API · MCP

API and MCP

Pull the AI model change feed straight into your agent or service.

What you get

A change feed normalized from vendor release notes, Hugging Face uploads, the OpenRouter catalog and GitHub. Duplicates for the same model are merged, and each item says whether the source is official or pending review. Pricing and context come from the public OpenRouter catalog. If that is all you need, call the original directly.

Machine-readable

Tools and agents read schemas, not prose. Start with these two.

Get a key

Sign in and create one from your alerts page. The key is shown once; we store only its hash.

Create a key

REST endpoints

# 마지막으로 받은 뒤 바뀐 것만
curl -H "Authorization: Bearer $AIWAVE_KEY" \
  "https://aiwave.elopstudio.com/api/v1/changes?since=1789023600"

# 조건에 맞는 모델
curl -H "Authorization: Bearer $AIWAVE_KEY" \
  "https://aiwave.elopstudio.com/api/v1/models?maxInputPrice=1&minContext=200000"

Cost estimate

Works out what your usage costs on each model. You could do the multiplication yourself from the price table, but counting tokens is the part that does not travel: tokenizers differ by vendor, and Korean lands far from what an English-based calculator says. Pass tokens and we multiply by them; pass text and we estimate against o200k (7.6% token-weighted error on paragraph-length text). Pass both and tokens wins.

curl -X POST -H "Authorization: Bearer $AIWAVE_KEY" \
  -H "Content-Type: application/json" \
  "https://aiwave.elopstudio.com/api/v1/estimate" -d '{
    "input":  { "text": "이 문서를 세 문장으로 요약해 주세요." },
    "output": { "tokens": 500 },
    "calls":  1000,
    "models": ["openai/gpt-5.2", "anthropic/claude-opus-4.6"]
  }'

Text you send is not stored. It is counted and dropped. If you would rather not send it at all, pass tokens instead — and if you need the input count to be exact, a package like gpt-tokenizer will do it offline, more accurately than our approximation and without the round trip. Each result carries costSplit, showing whether the cost comes from input or output. When output dominates, the uncertainty in the total is not in counting tokens but in how long the answer turns out: output is text that does not exist yet, so nobody can count it. Cache and batch discounts and volume tiers are not applied, so your real bill may be lower.

Polling

Pass the `latest` you received as `since` next time and you get only what changed after it, oldest first, with nothing skipped.

{
  "items": [ { "type": "deprecation", "title": "...", "detectedAt": "..." } ],
  "latest": 1789023600
}

MCP (remote)

No install: just a URL. It works without a key up to 100 calls a day per IP; add a key header for more. Add this to your MCP client config.

{
  "mcpServers": {
    "ai-wave": {
      "type": "http",
      "url": "https://aiwave.elopstudio.com/api/mcp",
      "headers": { "Authorization": "Bearer aiw_live_..." }
    }
  }
}

MCP (local)

For environments that cannot reach the remote endpoint, run it locally with npx.

{
  "mcpServers": {
    "ai-wave": {
      "command": "npx",
      "args": ["-y", "@elopstudio/ai-wave-mcp"],
      "env": { "AIWAVE_API_KEY": "aiw_live_..." }
    }
  }
}

Tools

list_model_changes(since?, type?, model?, limit?)
  새 모델·가격 변경·API 변경·지원 종료. since 로 폴링한다.

get_model(id)
  OpenRouter ID 나 Hugging Face ID 로 가격·컨텍스트·카탈로그 상태.

search_models(vendor?, maxInputPrice?, minContext?, limit?)
  조건에 맞는 모델을 주목도 순으로.

Limits

The free tier allows 1,000 calls per day. Response headers tell you what is left. Need more? Get in touch. We raise it manually for now.

x-ratelimit-limit: 1000
x-ratelimit-remaining: 991
x-aiwave-tier: free