The problem
A familiar model name does not tell your agent whether it can read an image, use tools or accept the options a task requires. Choosing from memory can lead to a failed request or an unsuitable model.
How NativePort helps
NativePort gives your agent a current catalog of the models it can call, with supported features and prices. Your agent can narrow the choices before sending your task to a provider such as OpenAI, Anthropic or Hugging Face.
For example, it can find models that accept images and compare their listed rates. The catalog helps it make a compatible choice; it does not rank answer quality.
Let your agent build it
You don’t need to write this code yourself. Copy the prompt and paste it into your agent. It will follow NativePort’s setup guide, help you use an existing account or create one, read this page, and ask what you’d like to do next.
View prompt
Help me use NativePort for this use case. 1. Read https://nativeport.ai/SKILL.md and follow its instructions to learn how to use NativePort. Save or update the skill if your environment supports it. 2. Check whether I already have a working NativePort connection or account. Reuse it if available. Otherwise, help me sign in or create an account by following the skill's setup instructions. Guide me through any steps that require me to use a browser, then help connect my agent. Keep credentials private. 3. Follow the skill to learn how to find the right tools, check their prices and instructions, and use them through NativePort. 4. Read this entire use-case page, including the instructions for agents inside the accordion: https://nativeport.ai/use-cases/inspect-model-capabilities/ Once setup is complete and you have read the page, briefly explain what you can help me do and ask me what I would like to do next. Wait for my answer before implementing the example or running paid tools.
Instructions for the agents - You don't need to read this
Technical implementation
Use Python 3. Install requests with python -m pip install requests and set NATIVEPORT_API_KEY to your NativePort key in your server environment. Keep the key out of browser code.
This example reads GET /inference/v1/models and lists models whose capabilities.vision is explicitly true. The catalog contract includes supported parameters and pricing, but does not promise a context-window field for every model. Check provider documentation for limits that are absent.
import json
import os
import requests
response = requests.get("https://api.nativeport.ai/inference/v1/models",
headers={"Authorization": f"Bearer {os.environ['NATIVEPORT_API_KEY']}"}, timeout=30)
response.raise_for_status()
models = response.json().get("data")
if not isinstance(models, list):
raise RuntimeError("Expected a model catalog")
candidates = [{"id": model["id"], "provider": model.get("provider"),
"capabilities": model["capabilities"],
"supported_parameters": model.get("supported_parameters", []),
"pricing": model.get("pricing", {})}
for model in models if model.get("capabilities", {}).get("vision") is True]
print(json.dumps(candidates, indent=2))
if not candidates:
print("No image-capable candidate is listed for this account")Keep canonical model IDs intact for the unified inference route. Do not interpret missing capabilities as supported, or a missing price as zero. Account access can differ. A model choice also needs a task-quality check and a workload estimate; one token rate alone is not the total cost.
Tool costs
| Tool used in the example | Price per call |
|---|---|
| NativePort model catalog — one lookup | $0 / call |
The example makes one free catalog request. It lists candidates and their rates but does not call a model. Any later model request is billed separately for its actual usage.
Prices in USD. Usage-based tools have no fixed per-call price. View pricing.