ai-model-registry

Real-time AI model registry with pricing, capabilities, and comparison. Aggregates data from OpenRouter for 400+ models across providers.

  • 6 Entrypoints
  • v1.0.0 Version
  • Enabled Payments
ai-model-registry-production.up.railway.app

Entrypoints

Explore the capabilities exposed by this agent. Invoke with JSON, stream responses when available, and inspect pricing where monetization applies.

overview

Invoke

Free overview of the AI model registry - total models, providers, categories

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/overview/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://ai-model-registry-production.up.railway.app/entrypoints/overview/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {}
    }
  '

lookup

Invoke

Look up a specific AI model by ID (e.g., "openai/gpt-4o", "anthropic/claude-3.5-sonnet")

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/lookup/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "modelId": {
      "type": "string",
      "description": "Model ID like \"openai/gpt-4o\" or partial name like \"gpt-4o\""
    }
  },
  "required": [
    "modelId"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://ai-model-registry-production.up.railway.app/entrypoints/lookup/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "modelId": "<Model ID like \"openai/gpt-4o\" or partial name like \"gpt-4o\">"
      }
    }
  '

search

Invoke

Search AI models by query, filter by modality, context length, or price range

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/search/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "query": {
      "description": "Search term for model name/description",
      "type": "string"
    },
    "modality": {
      "default": "all",
      "type": "string",
      "enum": [
        "text",
        "image",
        "multimodal",
        "all"
      ]
    },
    "minContext": {
      "description": "Minimum context length in tokens",
      "type": "number"
    },
    "maxPrice": {
      "description": "Maximum price per 1M tokens (prompt + completion)",
      "type": "number"
    },
    "freeOnly": {
      "default": false,
      "type": "boolean"
    },
    "limit": {
      "default": 20,
      "type": "number"
    }
  },
  "required": [
    "modality",
    "freeOnly",
    "limit"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://ai-model-registry-production.up.railway.app/entrypoints/search/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "modality": "text",
        "freeOnly": true,
        "limit": 0
      }
    }
  '

top

Invoke

Get top AI models by metric: cheapest, longest context, newest, or most capable

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/top/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "metric": {
      "type": "string",
      "enum": [
        "cheapest",
        "longest-context",
        "newest",
        "free"
      ],
      "description": "Ranking metric"
    },
    "modality": {
      "default": "all",
      "type": "string",
      "enum": [
        "text",
        "multimodal",
        "all"
      ]
    },
    "limit": {
      "default": 10,
      "type": "number"
    }
  },
  "required": [
    "metric",
    "modality",
    "limit"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://ai-model-registry-production.up.railway.app/entrypoints/top/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "metric": "cheapest",
        "modality": "text",
        "limit": 0
      }
    }
  '

compare

Invoke

Compare multiple AI models side-by-side on pricing, context, and capabilities

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/compare/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "modelIds": {
      "minItems": 2,
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Array of model IDs to compare"
    }
  },
  "required": [
    "modelIds"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://ai-model-registry-production.up.railway.app/entrypoints/compare/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "modelIds": [
          "string"
        ]
      }
    }
  '

report

Invoke

Comprehensive report on a model including pricing analysis and similar alternatives

Pricing Free
Network base
Invoke Endpoint POST /entrypoints/report/invoke
Input Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "modelId": {
      "type": "string",
      "description": "Model ID to analyze"
    }
  },
  "required": [
    "modelId"
  ],
  "additionalProperties": false
}
Invoke with curl
curl -s -X POST \
  'https://ai-model-registry-production.up.railway.app/entrypoints/report/invoke' \
  -H 'Content-Type: application/json' \
  -d '
    {
      "input": {
        "modelId": "<Model ID to analyze>"
      }
    }
  '

Client Example: x402-fetch

Use the x402-fetch helpers to wrap a standard fetch call and automatically attach payments. This script loads configuration from .env, pays the facilitator, and logs both the response body and the decoded payment receipt.

import { config } from "dotenv";
import {
  decodeXPaymentResponse,
  wrapFetchWithPayment,
  createSigner,
  type Hex,
} from "x402-fetch";

config();

const privateKey = process.env.AGENT_WALLET_PRIVATE_KEY as Hex | string;
const agentUrl = process.env.AGENT_URL as string; // e.g. https://agent.example.com
const endpointPath = process.env.ENDPOINT_PATH as string; // e.g. /entrypoints/echo/invoke
const url = `${agentUrl}${endpointPath}`;

if (!agentUrl || !privateKey || !endpointPath) {
  console.error("Missing required environment variables");
  console.error("Required: AGENT_WALLET_PRIVATE_KEY, AGENT_URL, ENDPOINT_PATH");
  process.exit(1);
}

/**
 * Demonstrates paying for a protected resource using x402-fetch.
 *
 * Required environment variables:
 * - AGENT_WALLET_PRIVATE_KEY    Wallet private key for signing payments
 * - AGENT_URL                   Base URL of the agent server
 * - ENDPOINT_PATH               Endpoint path (e.g. /entrypoints/echo/invoke)
 */
async function main(): Promise<void> {
  // const signer = await createSigner("solana-devnet", privateKey); // uncomment for Solana
  const signer = await createSigner("base-sepolia", privateKey);
  const fetchWithPayment = wrapFetchWithPayment(fetch, signer);

  const response = await fetchWithPayment(url, { method: "GET" });
  const body = await response.json();
  console.log(body);

  const paymentResponse = decodeXPaymentResponse(
    response.headers.get("x-payment-response")!
  );
  console.log(paymentResponse);
}

main().catch((error) => {
  console.error(error?.response?.data?.error ?? error);
  process.exit(1);
});

Manifest

Loading…
Fetching agent card…