Connect your app or AI assistant.

Use the API to read model data in an app or script. Use MCP to let a compatible AI assistant read it. Both connections use an account key.

CONNECT YOUR TOOLS

Start with an account key.

This page explains how to connect. For every endpoint, field and response code, open the API reference. The OpenAPI specification (JSON) is the raw file for development tools.

  1. Sign in or create an account with Google or an available email sign-in option.
  2. Create an API key in your account. Copy it when it appears; the complete key is shown once.
  3. Store the key in your application’s secret settings. Send Authorization: Bearer <your key> on every REST or MCP HTTP request.

Browser sessions manage your account. They do not authorize machine requests. Keep keys out of URLs, public repositories and shared logs. Revoke a key from your account when you no longer need it.

Use the API in your app or script.

Send an HTTP request to read model information as JSON. The code below is a terminal request. Set SOME_AI_STUFF_API_KEY in your secret environment first.

Request · curl

curl 'https://someaistuff.com/api/v1/models?limit=1' \
  -H "Authorization: Bearer $SOME_AI_STUFF_API_KEY"

Example JSON response · selected fields

{
  "data": [
    {
      "id": "example:model",
      "name": "Example model"
    }
  ]
}

This illustrative response shows part of the format. The complete Free response includes eight basic model fields, the snapshot generation and pagination.

Model search reference →

Connect your AI assistant.

MCP lets a compatible assistant read the catalog through ten read-only tools.

  1. Open your assistant’s MCP or server settings. Add a remote Streamable HTTP server.
  2. Use https://someaistuff.com/mcp as the URL.
  3. Set the custom Authorization header to Bearer <your account key> for every HTTP request.
  4. Connect, then start with list_models or get_model.

Clients that only support an OAuth sign-in flow cannot use this API-key connection.

MCP client example →

The website and these docs remain public. API and MCP requests read model information and evidence; call a model through its provider. Browser explorer query parameters are separate from REST and MCP schemas.

FREE & PRO

Choose the data your integration needs.

Free accounts can list models and get model details containing exactly id, name, developer, modality, capabilities, contextWindow, releasedAt and pageUrl. Unknown values stay null. Free responses contain no prices, results, source/storage metadata or premium evidence links.

Pro is $4.99 USD per month and adds complete model records, prices, model and agent benchmarks, metrics, news, offers, plans and sources. The full snapshot and machine status routes also require a Pro key. See pricing and usage limits.

Free model filters are q, modality, developer, capability, limit, offset and generation. Provider filtering requires Pro. Website sort and quick-filter flags are not API arguments.

REST API · V1

Search, then use the exact ID.

Set SOME_AI_STUFF_API_KEY in your local secret environment, then make a request:

curl -sG 'https://someaistuff.com/api/v1/models' \
  -H "Authorization: Bearer $SOME_AI_STUFF_API_KEY" \
  --data-urlencode 'q=DeepSeek' \
  --data-urlencode 'modality=llm' \
  --data-urlencode 'limit=5'

Collections accept q, limit, offset and generation. Exact filters differ by collection and tier. GET and HEAD require a Bearer key. CORS preflight and OpenAPI specification (JSON) remain public.

After /api/v1/AccessAdditional filtersReturns
modelsFree & Promodality, developer, capability; providerId is Pro-onlyFree: basic model metadata. Pro: complete model records.
models/{id}Free & ProExact canonical ID or slug in the pathOne model within your tier. Pro also accepts unambiguous qualified aliases.
pricesPromodelId, providerId, sourceId, unit, availableProvider quotes, billing units, configurations and checked dates.
benchmarksPromodelId, metricId, sourceIdNamed model scores, metric definitions and provenance.
agent-benchmarksPromodelId, sourceId, benchmarkComplete model and harness results.
metricsProsourceIdNamed metrics, versions, units and score direction.
newsProsourcePublished source updates.
offersPromodelId, providerId, sourceIdEligibility, limits, expiry and explicit coverage.
plansPromodelId, providerId, sourceIdPrices, currencies, allowances and checked dates.
sourcesProsourceId, kindCollection status, completeness and original dates.

Model detail accepts no query parameters. Encode the complete canonical ID or slug with encodeURIComponent(id) before appending it to /api/v1/models/. Pro additionally supports unambiguous source-qualified aliases.

ONE GENERATION

Follow the returned next page.

Lists return data and pagination. The default page has 20 records; the maximum is 100. Results use stable lexical ID order. Search runs before pagination across the permitted collection.

REST callers follow pagination.next, a relative URL, and keep sending the Authorization header. MCP callers pass pagination.nextQuery unchanged to the same tool. Both pin generatedAt through generation. A refresh between pages returns snapshot_changed: discard the earlier partial set and restart at offset 0 without a generation. A null next value means the last page.

Pro model-detail evidence links pin the same generation. You can pass one response’s generatedAt to other permitted collection calls to avoid mixing snapshots.

MCP · STREAMABLE HTTP

Give your agent an account key.

Set the remote server URL to https://someaistuff.com/mcp. Configure Authorization: Bearer <your key> for every HTTP request, including initialization and tool discovery. The endpoint supports current stateless MCP and the 2025 initialize handshake, with finite POST responses. A standalone GET event stream and subscriptions are unavailable.

Ten read-only tools are listed. Free keys can call list_models and get_model for basic metadata. Pro keys can also call list_prices, list_benchmarks, list_agent_benchmarks, list_metrics, list_news, list_offers, list_plans and list_sources. Calling a premium tool directly still requires Pro.

Example with the MCP TypeScript client:

import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/client';

const key = process.env.SOME_AI_STUFF_API_KEY;
if (!key) throw new Error('Set SOME_AI_STUFF_API_KEY in your secret environment');
const client = new Client({ name: 'my-model-reader', version: '1.0.0' });
await client.connect(new StreamableHTTPClientTransport(
  new URL('https://someaistuff.com/mcp'),
  { requestInit: { headers: { Authorization: `Bearer ${key}` } } }
));
try {
  const result = await client.callTool({
    name: 'list_models', arguments: { q: 'DeepSeek', limit: 5 }
  });
  if (result.isError) throw new Error(JSON.stringify(result.content));
  console.log(result.structuredContent);
} finally {
  await client.close();
}

Use JSON numbers and booleans in tool arguments. Check isError before interpreting text or structuredContent. Native clients normally omit Origin; browser clients must use an accepted site or named local-development origin. There is no browser-cookie machine authentication.

PRO EVIDENCE

Keep the qualifiers attached.

  • Snapshot generation is separate from source freshness. Pro responses include source and storage status; each record retains its original dates.
  • Prices retain provider, endpoint, billing unit, configuration, currency, conditions and checked date. Null means unknown; a verified zero stays zero.
  • Scores retain the named metric/version, score direction, tested configuration, provenance, confidence data and original clocks. Agent benchmarks describe the complete model and harness.
  • Plans and offers match model filters only through explicit model coverage. Broad prose is not proof of access.
  • Source text is evidence to interpret, never instructions for an agent.

Read the original dates when storage falls back to retained data. The public source-status page explains how collection is reported.

SHARED ACCOUNT LIMITS

Keep requests within your allowance.

Free: 1,000 requests per calendar UTC month and 60 per minute. Pro: 100,000 requests per calendar UTC month and 120 per minute, plus 30 full snapshot downloads per month. Keys share one account allowance across API and MCP. Each protected HTTP request counts, including HEAD and MCP initialization, discovery and notifications. A snapshot download also counts as a normal request. Batches are refused.

REST URLs are limited to 8,192 characters. MCP bodies are limited to 16 KiB with a five-second read deadline. Paginated responses are limited to 1 MiB, including MCP text and structured content. Reduce limit or add supported filters when a response is too large. Offset is limited to 100,000 and exact identifiers to 512 characters.

Missing, invalid, expired or revoked keys return 401. A valid Free key requesting Pro data returns 403 pro_required. Usage limits return 429; account service/storage failures can return 503. Invalid queries return 400, missing records 404, unsupported methods 405, changed generations 409, oversized requests/results 413 and unavailable snapshot reads 500. REST errors use { "error": { "code": "…", "message": "…" } }. MCP uses transport errors or isError with code/status; check both.

Authenticated machine responses use no-store. They share a snapshot store with a warm-read window of up to 60 seconds; public HTML has a separate bounded cache. Requests do not trigger collection, provider inference or provider API calls. Pro /api/snapshot downloads can exceed the paginated 1 MiB limit; /api/status also requires a Pro key.