Model features

Web search and grounding

Request current information and require grounded answers when sources are essential.

Text aliases expose web_search in the model catalog when the capability is available. Kendr supports provider-native web search on compatible routes and a managed cross-provider web-search gateway when configured.

curl -N https://api.kendr.org/v1/responses \
  -H "Authorization: Bearer $KENDR_API_KEY" \
  -H "Idempotency-Key: web-search-001" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kendr-intelligent",
    "input": "What changed in the web search provider landscape today?",
    "web_search": true,
    "stream": true
  }'
  • Use web_search: true to request current web grounding.
  • Use web_search: false for private/offline prompts that must not use web search.
  • Use metadata.require_web_search: true only when the request should fail rather than answer without web search.
  • When an answer uses web results, show source URLs returned in the model output or cited context.
import os
from uuid import uuid4
from openai import OpenAI

client = OpenAI(api_key=os.environ["KENDR_API_KEY"],
                base_url="https://api.kendr.org/v1", max_retries=0)
response = client.responses.create(
    model="kendr-intelligent",
    input="Find the latest Python release notes and include source URLs.",
    extra_body={"web_search": True, "metadata": {"require_web_search": True}},
    extra_headers={"Idempotency-Key": str(uuid4())},
)
print(response.output_text)

Kendr-specific options go in extra_body. Display returned source links, check publication dates, and let readers open them. Requiring search does not prove every generated claim is accurate.

Handle unavailable search

Check the model catalog for the web_search capability. If required search is unavailable, surface the error. If an ungrounded answer is acceptable, make a clearly labeled new request without the requirement and with a new idempotency key.