no key · no human
HomeNews API for AI agentsConnect any model

Connect any model

The same news tool, wired into 30 model families. Our side needs no key, so the only credential in any example below is the one for the model itself.

Four formats cover everything. Most providers copied OpenAI's function calling, so one schema works across the majority of this table. Anthropic, Gemini and Cohere have their own shapes, and each has its own example.

Chinese models

Every one of these is OpenAI-compatible, so the integration is a base URL and a model name. The differences that matter are in the quirks on each page — and there is at least one per vendor that will cost you an afternoon if you do not know it.

ModelVendorFormatModel id
QwenAlibabaopenaiqwen-max
DeepSeekDeepSeekopenaideepseek-chat
MiniMaxMiniMaxopenaiMiniMax-Text-01
KimiMoonshot AIopenaimoonshot-v1-32k
GLMZhipu AIopenaiglm-4-plus
DoubaoByteDanceopenai
HunyuanTencentopenaihunyuan-turbos-latest
ERNIEBaiduopenaiernie-4.5-turbo-128k
Yi01.AIopenaiyi-large
StepStepFunopenaistep-2-16k

Everything else

ModelVendorFormatModel id
GPTOpenAIopenaigpt-4o
ClaudeAnthropicanthropicclaude-opus-5
GeminiGooglegeminigemini-2.5-flash
GrokxAIopenaigrok-4
MistralMistral AIopenaimistral-large-latest
LlamaMetaopenaillama-3.3-70b-versatile
CommandCoherecoherecommand-a-03-2025
NovaAmazonopenaiamazon.nova-pro-v1:0
PhiMicrosoftopenaiPhi-4
JambaAI21 Labsopenaijamba-large
SonarPerplexityopenaisonar-pro
OpenRouterOpenRouteropenaianthropic/claude-opus-5
Ollamalocalopenaiqwen3
vLLMself-hostedopenai
TogetherTogether AIopenaimeta-llama/Llama-3.3-70B-Instruct-Turbo
FireworksFireworks AIopenaiaccounts/fireworks/models/llama-v3p3-70b-instruct
NIMNVIDIAopenaimeta/llama-3.3-70b-instruct
GraniteIBMopenaiibm/granite-3-3-8b-instruct
DatabricksDatabricksopenaidatabricks-meta-llama-3-3-70b-instruct
LM Studiolocalopenai

The tool, once

This is the whole integration. Everything else on these pages is boilerplate around it:

search_news
{
  "type": "function",
  "function": {
    "name": "search_news",
    "description": "Search worldwide news published in the last 30 days. Free, no API key.",
    "parameters": {
      "type": "object",
      "properties": {
        "q":    {"type": "string",  "description": "2-5 keywords, not a question."},
        "date": {"type": "string",  "enum": ["today","yesterday","24h","48h","7d","30d"]},
        "lang": {"type": "string",  "description": "ISO 639-1, e.g. en"},
        "size": {"type": "integer", "description": "1-100, default 20"}
      },
      "required": ["q"]
    }
  }
}
bash
curl "https://freenewsapi.ai/v1/search?q=grain+exports&date=7d&size=10"

Three rules that apply to every model

  • Keywords, not questions. The search is AND across all terms, so a natural-language question matches nothing. Say so in the system prompt — every model defaults to conversational phrasing. Smaller models need it repeated.
  • Scan before reading. Never let a model set full_text=true with a large size. See token costs.
  • Cap the tool result. Truncate the JSON you feed back, in code. A 100-result response with bodies will overflow most context windows.

Models with their own search

Gemini, Grok, GLM and Perplexity ship built-in web search. When you add this tool on top, be explicit in the prompt about which source answers what — otherwise you cannot tell where a citation came from, and the point of grounding is lost.

Agent guide · Identify your agent · System prompts