Compact model decisions for automated workflows

Agent Access

Give coding, procurement, and migration agents source-backed model safety, pricing, replacement, provider-offering, and media-selection decisions without replacing the developer API.

REST First

Developer API stays first.

Developers and teams keep normal API keys, quotas, docs, and demos; agent access is a compact discovery layer over the same trusted data.

Agent tools
10
Auth
X-API-Key
Catalog
Production

For Teams

Developers and teams keep Swagger, normal API keys, quotas, release readiness, and the full developer demo. Agent access is an additional compact layer over the same production data.

For Agents

Agents should start at the manifest, inspect /v1/agent/tools, choose one small decision tool, call with X-API-Key, and read the listed decision fields first.

Agent Discovery Manifest

  • /.well-known/agent.json
  • /agents
  • /openapi.json
  • /v1/agent/tools
  • /v1/demo/examples

Plan catalog: /v1/demo/examples#available_plans

Agent Tool Catalog

Focused tool catalog for high-value model decisions. Use Swagger or OpenAPI when you need the broader REST API.

GET

check_model

Check one model before production use

Decide whether a model is safe to keep, monitor, or replace using lifecycle, risk, and source evidence.

http://api.meteredapis.net/v1/models/migration-brief?catalog=imported&model=openai%3Agpt-5.5&use_case=production-stable&limit=3

Pricing tier: lookup

Response highlights: model_key, recommendation, risk, evidence

Response highlights: recommendation.action, recommendation.recommended_model_key, risk.score, evidence

  • Use catalog=imported for production decisions.
  • Do not accept retired or deprecated models without an explicit migration decision.
curl "https://YOUR_HOST/v1/models/migration-brief?catalog=imported&model=openai%3Agpt-5.5&use_case=production-stable&limit=3" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY"
POST

resolve_model

Resolve raw model strings

Map raw model names from code, logs, configs, or provider lists to canonical provider:model_id keys before lookup or migration checks.

http://api.meteredapis.net/v1/models/resolve

Pricing tier: lookup

Response highlights: results[].input, results[].resolved_key, results[].confidence, results[].candidates[].model.key, results[].warnings

Response highlights: results[].input, results[].resolved_key, results[].confidence, results[].warnings

  • Use this before check_model, lookup_model_pricing, or find_replacement when the input is not already provider:model_id.
  • Treat low-confidence or unresolved results as a warning, not as permission to invent a model key.
{
  "catalog": "imported",
  "include_candidates": true,
  "inputs": [
    "gpt-5.5",
    "claude-sonnet-4"
  ],
  "limit_per_input": 5,
  "source_scope": "official_or_mixed"
}
curl -X POST "https://YOUR_HOST/v1/models/resolve" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY" -H "Content-Type: application/json" -d "{\"catalog\":\"imported\",\"source_scope\":\"official_or_mixed\",\"inputs\":[\"gpt-5.5\",\"claude-sonnet-4\"],\"limit_per_input\":5,\"include_candidates\":true}"
POST

review_model_strings

Review repo model strings

Batch triage model strings from repos, PRs, logs, or provider announcements; exact known models get migration briefs, near-miss strings stay in review, and unknown strings stay unresolved with warnings.

http://api.meteredapis.net/v1/models/migration-briefs

Pricing tier: decision

Response highlights: summary.resolved_count, summary.needs_review_count, summary.unresolved_count, items[].input, items[].status, items[].resolved_key, items[].warnings

Response highlights: summary.needs_review_count, summary.unresolved_count, items[].input, items[].status, items[].resolved_key, items[].warnings

  • Treat needs_review items as candidate matches only; do not use their resolver candidate as availability or pricing proof.
  • Unknown or newly announced models should remain unresolved until a source/import refresh proves availability.
  • Do not invent pricing, context, capabilities, or provider support from a name alone.
{
  "as_of": "2025-01-01",
  "catalog": "imported",
  "limit": 3,
  "models": [
    "anthropic:claude-sonnet-4-20250514",
    "gpt-5.4-mini",
    "claude-sonnet",
    "definitely-not-a-model"
  ],
  "source_scope": "official_or_mixed",
  "use_case": "production-stable"
}
curl -X POST "https://YOUR_HOST/v1/models/migration-briefs" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY" -H "Content-Type: application/json" -d "{\"catalog\":\"imported\",\"source_scope\":\"official_or_mixed\",\"models\":[\"anthropic:claude-sonnet-4-20250514\",\"gpt-5.4-mini\",\"claude-sonnet\",\"definitely-not-a-model\"],\"use_case\":\"production-stable\",\"limit\":3,\"as_of\":\"2025-01-01\"}"
GET

discover_active_models

Discover active models with price and context

List active production catalog models with pricing, context window, capabilities, lifecycle, and source confidence for agent planning.

http://api.meteredapis.net/v1/models/search?catalog=imported&status=active&sort=provider_model&include_sources=false&limit=20

Pricing tier: lookup

Response highlights: items[].key, items[].pricing.input_per_million_usd, items[].pricing.output_per_million_usd, items[].context_window_tokens, items[].capabilities, items[].source_confidence

Response highlights: items[].key, items[].pricing, items[].context_window_tokens, items[].capabilities, total_count

  • Use status=active by default so agents do not start with retired or deprecated models.
  • Set include_sources=false for fast planning; call sources endpoints only when evidence is needed.
curl "https://YOUR_HOST/v1/models/search?catalog=imported&status=active&sort=provider_model&include_sources=false&limit=20" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY"
GET

lookup_model_pricing

Lookup one model's price, tokens, and capabilities

Fetch the base data an agent needs before deciding whether a specific model can be used.

http://api.meteredapis.net/v1/models/openai/gpt-5.5?catalog=imported&source_scope=official_or_mixed&include_sources=false

Pricing tier: lookup

Response highlights: key, status, pricing, context_window_tokens, max_output_tokens, capabilities, source_confidence

Response highlights: key, pricing, context_window_tokens, capabilities, source_confidence

  • Prefer official_or_mixed source scope for production choices.
  • If the model is not found, resolve raw strings with /v1/models/resolve before retrying.
curl "https://YOUR_HOST/v1/models/openai/gpt-5.5?catalog=imported&source_scope=official_or_mixed&include_sources=false" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY"
GET

find_replacement

Find a safer replacement

Return ranked replacement candidates for a deprecated, risky, expensive, or policy-blocked model.

http://api.meteredapis.net/v1/models/replacements?catalog=imported&model=anthropic%3Aclaude-sonnet-4-20250514&use_case=production-stable&limit=3

Pricing tier: decision

Response highlights: baseline.model.key, replacements[].model.key, replacements[].replacement_score

Response highlights: baseline.model.key, replacements[0].model.key, replacements[0].decision.reasons

  • Hide preview, legacy, deprecated, and retired candidates unless a caller explicitly asks for unstable options.
curl "https://YOUR_HOST/v1/models/replacements?catalog=imported&model=anthropic%3Aclaude-sonnet-4-20250514&use_case=production-stable&limit=3" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY"
POST

estimate_token_cost

Estimate token request cost

Compute a dollar cost estimate for an LLM request from stored provider pricing.

http://api.meteredapis.net/v1/cost/estimate

Pricing tier: lookup

Response highlights: estimated_cost_usd, line_items[].estimated_cost_usd, assumptions

Response highlights: estimated_cost_usd, line_items, assumptions

  • Return assumptions with estimates so agents do not overstate provider-specific tier behavior.
{
  "cached_input_tokens": 50000,
  "catalog": "imported",
  "input_tokens": 100000,
  "model": "openai:gpt-5.4-mini",
  "output_tokens": 5000
}
curl -X POST "https://YOUR_HOST/v1/cost/estimate" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY" -H "Content-Type: application/json" -d "{\"model\":\"openai:gpt-5.4-mini\",\"catalog\":\"imported\",\"input_tokens\":100000,\"cached_input_tokens\":50000,\"output_tokens\":5000}"
POST

select_media_model

Select a media-capable model

Rank image, video, audio, speech, or realtime voice models by capability fit, unit cost, lifecycle, and trust.

http://api.meteredapis.net/v1/media/select

Pricing tier: decision

Response highlights: best_model, models[].profile.model.key, models[].estimated_cost_usd, ranking_basis

Response highlights: best_model, models[0].profile.model.key, models[0].decision.reasons

  • ModelWatch compares media decisions but does not proxy generation calls or store generated assets.
{
  "catalog": "imported",
  "image_count": 4,
  "limit": 5,
  "min_trust_score": 50,
  "providers": [
    "openai",
    "google",
    "qwen"
  ],
  "source_scope": "official_or_mixed",
  "workflow": "image_generation"
}
curl -X POST "https://YOUR_HOST/v1/media/select" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY" -H "Content-Type: application/json" -d "{\"workflow\":\"image_generation\",\"catalog\":\"imported\",\"source_scope\":\"official_or_mixed\",\"providers\":[\"openai\",\"google\",\"qwen\"],\"image_count\":4,\"min_trust_score\":50,\"limit\":5}"
GET

explain_provider_offerings

Explain provider offerings

Show which providers have source-backed models, source coverage, pricing coverage, and verification metadata.

http://api.meteredapis.net/v1/coverage?catalog=imported&provider=openai

Pricing tier: lookup

Response highlights: provider_id, model_count, official_model_count, has_pricing_source, latest_model_verified_at

Response highlights: provider_id, model_count, has_pricing_source, latest_model_verified_at

  • Require provider_breadth readiness before presenting provider coverage as production-complete.
curl "https://YOUR_HOST/v1/coverage?catalog=imported&provider=openai" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY"
GET

check_catalog_health

Check production catalog health

Confirm the production catalog is fresh, priced, and safe to use before an agent relies on decisions.

http://api.meteredapis.net/v1/monitoring/summary?catalog=imported

Pricing tier: lookup

Response highlights: provider_count, model_count, pricing_gap_count, scheduler.enabled

Response highlights: model_count, pricing_gap_count, providers, notes

  • Pair this with /v1/release/readiness before public production demos.
curl "https://YOUR_HOST/v1/monitoring/summary?catalog=imported" -H "X-API-Key: $MODELWATCH_CUSTOMER_API_KEY"

Operating Rules

Agents get explicit rules for production data, unresolved models, metering, and source boundaries before they rely on a decision.

Production Data Gate

Use the production catalog only after the first-demo quality check, provider breadth, import history, and scheduled refresh pass in release readiness.

Required for: production_demos, provider_claims, agent_decisions

Failure action: Do not present the catalog as production-complete; run imports or show the readiness blocker.

  • /v1/release/readiness
  • /v1/monitoring/summary

Missing Or New Model

When a model is missing, unresolved, or newly announced, resolve it first and inspect source audit/import history before making availability or price claims.

Required for: model_resolution, new_model_handling, migration_checks

Failure action: Do not invent availability, pricing, context, or capabilities; return unresolved and request source refresh or admin import.

  • /v1/models/resolve
  • /v1/sources/audit
  • /v1/import-runs

Pricing And Quota Metering

pricing_tier is the ModelWatch lookup/decision metering tier; provider spend comes from model pricing fields and cost estimate responses, while customer usage comes from account quota.

Required for: paid_access, cost_estimates, quota_checks

Failure action: Show usage/quota state and avoid claiming provider spend without a pricing or cost-estimate response.

  • /v1/account/usage
  • /v1/demo/examples#available_plans
  • /v1/cost/estimate

Source Boundary Policy

Distinguish official, mixed, and aggregator-backed data before recommending provider offerings.

Required for: provider_offerings, procurement, source_trust

Failure action: Label aggregator-only evidence and do not treat it as official provider truth.

  • /v1/providers/{provider_id}/data-boundary
  • /v1/coverage

Future MCP

Planned after REST validation: Add a remote MCP server after the REST agent tools prove demand.

Notes

  • OpenAPI and /v1/agent/tools are the current discovery paths.
  • Keep the agent tool surface focused; use OpenAPI for broader REST access.