{
 "openapi": "3.1.0",
 "info": {
  "title": "AgentAPIList API",
  "version": "2026-10-17",
  "description": "Monthly cost estimates for AI decision, guardrail and LLM APIs from verified list prices (checked 2026-10-17). Free, no key, CORS *. Also available as a remote MCP server at https://agentapilist.com/mcp (tools: estimate_cost, compare_apis, get_api, list_apis, list_agent_tools, get_agent_tool, compare_agent_tools, search)."
 },
 "servers": [
  {
   "url": "https://agentapilist.com"
  }
 ],
 "paths": {
  "/api/cost": {
   "get": {
    "operationId": "estimateCost",
    "summary": "Monthly cost per API, cheapest first",
    "parameters": [
     {
      "name": "requests",
      "in": "query",
      "required": true,
      "description": "Requests per month",
      "schema": {
       "type": "integer",
       "minimum": 0
      },
      "example": 100000
     },
     {
      "name": "input_tokens",
      "in": "query",
      "required": false,
      "description": "Average input tokens per request",
      "schema": {
       "type": "integer",
       "minimum": 0
      },
      "example": 1000
     },
     {
      "name": "output_tokens",
      "in": "query",
      "required": false,
      "description": "Average output tokens per request",
      "schema": {
       "type": "integer",
       "minimum": 0
      },
      "example": 300
     },
     {
      "name": "text_units",
      "in": "query",
      "required": false,
      "description": "Text units (up to 1,000 characters) per request, for AWS/Azure guardrails. Default 1",
      "schema": {
       "type": "integer",
       "minimum": 0
      },
      "example": 1
     },
     {
      "name": "images",
      "in": "query",
      "required": false,
      "description": "Images per request, for per-image plans. Default 0",
      "schema": {
       "type": "integer",
       "minimum": 0
      },
      "example": 0
     },
     {
      "name": "apis",
      "in": "query",
      "description": "Comma-separated API slugs or price ids (see /data/pricing.json). Omit for all.",
      "schema": {
       "type": "string"
      },
      "example": "openai-decisions,jev-typesafe-ai"
     },
     {
      "name": "category",
      "in": "query",
      "description": "Category filter",
      "schema": {
       "type": "string",
       "enum": [
        "all",
        "decision",
        "structured",
        "guardrail",
        "classifier",
        "gateway",
        "search"
       ]
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Estimate",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "usage": {
           "type": "object"
          },
          "checked": {
           "type": "string"
          },
          "currency": {
           "type": "string"
          },
          "results": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "id": {
              "type": "string"
             },
             "slug": {
              "type": "string"
             },
             "name": {
              "type": "string"
             },
             "plan": {
              "type": "string"
             },
             "monthly_usd": {
              "type": "number"
             },
             "formula": {
              "type": "string"
             },
             "rate": {
              "type": "string"
             },
             "price_date": {
              "type": "string"
             },
             "source_url": {
              "type": "string"
             },
             "free_tier": {
              "type": [
               "string",
               "null"
              ]
             },
             "notes": {
              "type": [
               "string",
               "null"
              ]
             },
             "page": {
              "type": "string"
             }
            }
           }
          },
          "skipped": {
           "type": "array",
           "items": {
            "type": "object"
           }
          },
          "not_comparable": {
           "type": "array",
           "items": {
            "type": "object",
            "properties": {
             "slug": {
              "type": "string"
             },
             "name": {
              "type": "string"
             },
             "reason": {
              "type": "string"
             }
            }
           }
          }
         }
        }
       }
      }
     },
     "400": {
      "description": "Invalid input",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "error": {
           "type": "string"
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/api/tools": {
   "get": {
    "operationId": "listAgentToolsLive",
    "summary": "Agent tools with filters; ?slug= for one, ?compare=a,b for a feature grid",
    "parameters": [
     {
      "name": "free",
      "in": "query",
      "description": "true = has a free tier",
      "schema": {
       "type": "boolean"
      }
     },
     {
      "name": "key_required",
      "in": "query",
      "description": "false = works without an API key",
      "schema": {
       "type": "boolean"
      }
     },
     {
      "name": "mcp",
      "in": "query",
      "description": "true = has an official MCP server",
      "schema": {
       "type": "boolean"
      }
     },
     {
      "name": "commercial",
      "in": "query",
      "description": "true = commercial use explicitly allowed; false = not allowed or not published",
      "schema": {
       "type": "boolean"
      }
     },
     {
      "name": "category",
      "in": "query",
      "schema": {
       "type": "string",
       "enum": [
        "search",
        "docs",
        "reference",
        "media",
        "weather",
        "calendar",
        "finance",
        "api-data"
       ]
      }
     },
     {
      "name": "slug",
      "in": "query",
      "description": "Return one tool in full",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "compare",
      "in": "query",
      "description": "2–6 comma-separated tool slugs",
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Tools, one tool, or a comparison grid"
     },
     "400": {
      "description": "Invalid input"
     }
    }
   }
  },
  "/api/apis": {
   "get": {
    "operationId": "listApisLive",
    "summary": "Tracked APIs with filters; ?slug= for one",
    "parameters": [
     {
      "name": "category",
      "in": "query",
      "schema": {
       "type": "string",
       "enum": [
        "all",
        "guardrail",
        "decision",
        "gateway",
        "classifier",
        "structured",
        "search"
       ]
      }
     },
     {
      "name": "priced",
      "in": "query",
      "schema": {
       "type": "boolean"
      }
     },
     {
      "name": "q",
      "in": "query",
      "description": "Keyword filter, results ranked",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "slug",
      "in": "query",
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "APIs or one API"
     },
     "400": {
      "description": "Invalid input"
     }
    }
   }
  },
  "/api/search": {
   "get": {
    "operationId": "search",
    "summary": "Keyword search across APIs and agent tools",
    "parameters": [
     {
      "name": "q",
      "in": "query",
      "required": true,
      "schema": {
       "type": "string",
       "maxLength": 200
      }
     },
     {
      "name": "type",
      "in": "query",
      "schema": {
       "type": "string",
       "enum": [
        "all",
        "apis",
        "tools"
       ]
      }
     },
     {
      "name": "limit",
      "in": "query",
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 50
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Ranked results"
     },
     "400": {
      "description": "Invalid input"
     }
    }
   }
  },
  "/data/pricing.json": {
   "get": {
    "operationId": "getPricing",
    "summary": "Normalized price table with sources and verified dates",
    "responses": {
     "200": {
      "description": "Pricing data"
     }
    }
   }
  },
  "/data/apis.json": {
   "get": {
    "operationId": "listApis",
    "summary": "All tracked APIs with dated, sourced facts",
    "responses": {
     "200": {
      "description": "API list"
     }
    }
   }
  },
  "/data/agent-tools.json": {
   "get": {
    "operationId": "listAgentTools",
    "summary": "Free no-key APIs for agents",
    "responses": {
     "200": {
      "description": "Tool list"
     }
    }
   }
  },
  "/mcp": {
   "post": {
    "operationId": "mcp",
    "summary": "Remote MCP server (Streamable HTTP, JSON-RPC 2.0)",
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "JSON-RPC response"
     },
     "202": {
      "description": "Notification accepted"
     }
    }
   }
  }
 }
}
