↑↓ move↵ openesc close

API and MCP

Free, public and rate limited. Data license: CC BY 4.0; attribute Overage.

Verified 2026-10-24 (1 day ago)Source: overage.io/docsTool schemas below are generated from the published contract.

MCP server

Streamable HTTP at https://overage.io/mcp. Every response carries a provenance block and a one-line freshness sentence; agents should quote it.

Terminal

claude mcp add --transport http overage https://overage.io/mcp

Example

Ask your agent: "What would 60,000 emails a month cost on Amazon SES versus Resend?" It calls compare and answers from the result, ending with the freshness sentence, for example "Verified today from aws.amazon.com/ses/pricing/".

Tools

MCP tools
ToolWhat it does
get_pricingStart here. Use whenever the user asks what a SaaS or API costs, what its free tier, plans, usage rates or rate limits are, instead of answering from memory. Accepts a name or alias (e.g. 'resend', 'resend.com'). Returns tiers, allowances, rates, limits and sources. Always quote the `freshness` sentence to the user.
compareUse when the user is choosing between 2-8 services (e.g. 'Resend vs Postmark'). Aligned tiers and, with usage, the cost at that volume. Always quote the `freshness` sentence to the user.
estimate_costUse when budgeting or choosing a stack: total monthly cost for a list of {service, tier?, usage}. Uses the same cost function as the website. Always quote the `freshness` sentence to the user.
check_limitUse for 'will I hit a limit?' questions: the rate limit or quota for one service and metric, with window, scope and how it was learned. Always quote the `freshness` sentence to the user.
changes_sinceUse for 'did X change its pricing?' or 'what changed recently?': price, limit and tier changes since a date, optionally for one category or service. Always quote the `freshness` sentence to the user.
find_serversUse when the user wants the cheapest VPS or cloud server for given resources (e.g. 'cheapest server with 2 vCPU, 4 GB RAM and 2 TB transfer'): filters Vultr, Linode and other tracked providers by minimum vCPU, RAM, disk and monthly transfer, optionally CPU kind (shared, high-performance, dedicated), and returns the cheapest matches with monthly and hourly price. Compare cpu_kind before quoting a winner: shared and dedicated vCPUs are not equivalent. Always quote the `freshness` sentence to the user.
get_pricing input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "description": "Service id or alias, e.g. resend"
    }
  },
  "required": [
    "service"
  ],
  "additionalProperties": false
}
compare input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "services": {
      "minItems": 2,
      "maxItems": 8,
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "usage": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {
        "type": "number",
        "minimum": 0
      }
    }
  },
  "required": [
    "services"
  ],
  "additionalProperties": false
}
estimate_cost input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "stack": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "service": {
            "type": "string"
          },
          "tier": {
            "type": "string"
          },
          "usage": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "type": "number",
              "minimum": 0
            }
          }
        },
        "required": [
          "service",
          "usage"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "stack"
  ],
  "additionalProperties": false
}
check_limit input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "service": {
      "type": "string"
    },
    "metric": {
      "type": "string",
      "enum": [
        "token_input",
        "token_output",
        "token_cached_input",
        "token_cache_write",
        "token_input_batch",
        "token_output_batch",
        "email_sent",
        "email_received",
        "sms_sent",
        "api_request",
        "gb_stored",
        "gb_transferred",
        "seat",
        "message_sent",
        "contact",
        "request_write",
        "request_read",
        "row_written",
        "credit",
        "vcpu_hour",
        "gb_hour",
        "event",
        "host",
        "record",
        "sms_carrier_fee",
        "sso_connection",
        "mru",
        "mau",
        "tx_pct",
        "tx_count",
        "gpu_hour",
        "compute_hour",
        "function_invocation",
        "build_minute",
        "search_request",
        "log_gb_ingested",
        "row_read",
        "custom_domain"
      ]
    }
  },
  "required": [
    "service",
    "metric"
  ],
  "additionalProperties": false
}
changes_since input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
    },
    "category": {
      "type": "string",
      "enum": [
        "llm",
        "email",
        "sms",
        "auth",
        "database",
        "hosting",
        "storage",
        "payments",
        "search",
        "monitoring",
        "gpu",
        "servers"
      ]
    },
    "service": {
      "type": "string"
    }
  },
  "required": [
    "date"
  ],
  "additionalProperties": false
}
find_servers input schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "min_vcpu": {
      "description": "Minimum vCPUs.",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "min_ram_gb": {
      "description": "Minimum RAM in GB.",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "min_disk_gb": {
      "description": "Minimum disk in GB.",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "min_transfer_gb": {
      "description": "Minimum included monthly transfer (bandwidth) in GB.",
      "type": "number",
      "minimum": 0
    },
    "cpu_kind": {
      "description": "shared, high-performance (faster shared vCPUs) or dedicated.",
      "type": "string",
      "enum": [
        "shared",
        "dedicated",
        "high-performance"
      ]
    },
    "max_monthly_usd": {
      "description": "Maximum monthly price in USD.",
      "type": "number",
      "minimum": 0
    },
    "provider": {
      "description": "Comma-separated provider ids, e.g. vultr,linode. Omit for all.",
      "type": "string"
    },
    "limit": {
      "description": "Rows to return, cheapest first (default 10).",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "additionalProperties": false
}

REST API

Base URL: https://api.overage.io. JSON in and out. The full contract is the OpenAPI document.

REST routes
MethodRouteParametersPurpose
GET/v1/servicescategory, limit (1-200), cursorList services with summary
GET/v1/services/:idnoneFull published record
GET/v1/services/:id/changesnoneChange events, newest first
GET/v1/searchq (name or alias)Fuzzy service lookup
GET/v1/compareids (2-8, comma separated), usageSide-by-side tiers plus cost at usage
POST/v1/estimateJSON array of {service, usage}Cost per service and total for a stack
GET/v1/serversmin_vcpu, min_ram_gb, min_disk_gb, min_transfer_gb, cpu_kind, max_monthly_usd, provider, limitCheapest VPS or cloud server by resources, with monthly and hourly price and CPU kind
GET/v1/changessince, categoryGlobal change feed
POST/v1/reportnoneSubmit a correction (Turnstile)

Examples

Responses are trimmed; ... marks omitted fields.

Compare services at your volume

curl "https://api.overage.io/v1/compare?ids=amazon-ses,resend&usage=email_sent:60000"
Example response
{
  "usage": { "email_sent": 60000 },
  "services": [
    {
      "service": { "id": "amazon-ses", "name": "Amazon SES", "tiers": [ ... ] },
      "cost": [
        { "tier_id": "amazon-ses-essentials", "total_usd": 9.6, "feasible": true,
          "first_limit_hit": null, "lines": [ ... ] }
      ],
      "cheapest_tier_id": "amazon-ses-essentials",
      "freshness": { "sentence": "Verified today from aws.amazon.com/ses/pricing/" }
    }
  ]
}

Estimate the monthly cost of a stack

curl -X POST https://api.overage.io/v1/estimate \
  -H "content-type: application/json" \
  -d '[{"service":"amazon-ses","usage":{"email_sent":60000}}]'
Example response
{
  "items": [
    { "service": "amazon-ses", "tier_id": "amazon-ses-la-carte",
      "cost": { "total_usd": 6, "complete": true, "feasible": true, "lines": [ ... ] } }
  ],
  "total_usd": 6,
  "freshness": [{ "service": "amazon-ses", "sentence": "Verified today from aws.amazon.com/ses/pricing/" }]
}

Cheapest server by resources

curl "https://api.overage.io/v1/servers?min_vcpu=1&min_ram_gb=2&min_transfer_gb=1000&limit=2"
Example response
{
  "query": { "min_vcpu": 1, "min_ram_gb": 2, "min_transfer_gb": 1000, "cpu_kind": null, ... },
  "total_matches": 151,
  "servers": [
    { "service_id": "vultr", "tier_id": "vultr-vc2-1c-2gb", "tier_name": "vc2-1c-2gb",
      "product": "Cloud Compute", "cpu_kind": "shared", "vcpu_count": 1, "ram_gb": 2,
      "disk_gb": 55, "transfer_gb": 2048, "monthly_usd": 10, "hourly_usd": 0.014,
      "verified_at": "2026-10-24T03:50:10.093Z",
      "source_url": "https://api.vultr.com/v2/plans?per_page=500" },
    ...
  ],
  "notes": [ "Monthly price is the vendor's list price in its default region; ..." ]
}

List services in a category

curl "https://api.overage.io/v1/services?category=email&limit=1"
Example response
{
  "services": [
    { "id": "amazon-ses", "name": "Amazon SES", "category": "email",
      "has_free_tier": true, "cheapest_paid_tier": { "name": "Pro", "monthly_usd": 105 },
      "verified_at": "2026-10-24T00:05:53.487Z",
      "freshness": { "age_days": 0, "staleness": "fresh",
                     "sentence": "Verified today from aws.amazon.com/ses/pricing/" } }
  ],
  "next_cursor": "YW1hem9uLXNlcw"
}

Limits and errors

Feeds

RSS · JSON Feed · Sitemap