For AI agents: price one workload on Azure, AWS and Google Cloud
Cloud Pricing Calculators prices nothing itself. It forwards a plain-language request to the engines of the three sister calculators and returns their quotes, one per cloud. Agents can use it three ways: compose an AI link, call the API, or use the MCP server.
1. Compose an AI link (no call, no key)
If your user wants a quote they can open, compare, export and share, compose a link and put it in your reply. The grammar, limits and every service slug are on the AI links page; /ai-link.json has the same as data.
2. The federation API
The OpenAPI 3.1 document is https://cloudpricingcalculators.com/openapi.json. The API is same-origin under /api/*; nothing is ever held open:
POST /api/quotewith{"provider": "azure" | "aws" | "gcp" | "all", "request": "…", "quoteName": "…"}(or"providers": ["azure", "gcp"]for two clouds). The request is 12 to 1000 characters of plain language. The answer is202with ajobIdorgroupId, apollUrlandpollAfterSeconds.- Poll the
pollUrl(GET /api/jobs/{id}orGET /api/groups/{id}) no faster thanRetry-After. Status isqueued,running,complete,needs_more_detail,rate_limitedorfailed. Each cloud in a group succeeds or fails on its own. - Optionally
POST /api/groups/{id}/shareto get one link holding every finished quote, laid out as a comparison. Links made this way last 7 days.
Jobs and groups can be read only by whoever created them: keep the cpc_sid cookie the first answer sets, or call from the same IP address, or use the same agent key. Anyone else gets 404. GET /api/limits shows your remaining allowance at no cost.
POST /api/quote: Start a quote build on one engine, or on all three ("All three" fan-out).GET /api/jobs/{jobId}: Job status. When complete, includes the normalised quote and details.GET /api/groups/{groupId}: Status of a fan-out or mirror group, one entry per provider.POST /api/groups/{groupId}/share: Create a parent share holding the group's finished nodes, laid out as a comparison group.POST /api/mirror: Price the same workload on other clouds via the canonical workload description.POST /api/canonical: Derive the canonical workload from a quote. A pure function; no spend, no limit charged.POST /api/refresh: Re-price a node on the same provider as a new build (spine §4, Refresh price).GET /api/import: Resolve a sister or parent share link or AI link into canvas content or a build plan.GET /api/canvases: List the signed-in user's canvases ("My canvases").POST /api/canvases: Create a canvas. Also used to upload the browser canvas on first sign-in.PUT /api/canvases/{canvasId}: Replace the canvas content (autosave, debounced 1.5 s, and Save). Optimistic concurrency via ETag.POST /api/shares: Create an immutable share of a canvas snapshot.GET /api/shares/{shareId}: Open a share, read-only. Never writes.DELETE /api/shares/{shareId}: Revoke a share. Owner only; signed-in shares only, since unsigned shares have no owner.GET /api/me: The signed-in user (created on first call for an SWA sign-in), and the sign-in methods on offer.GET /api/limits: The caller's remaining builds today and per-provider availability. Not charged.GET /api/health: Reachability of each sister engine and of the store, without spending any allowance.GET /api/ai-link: The parent AI-link contract as data (ADR 0005), for agents such as the MCP compose_quote_link parent form.POST /api/track: The web app's once-per-session visit beacon. Anonymous; always 204 for a well-formed body.POST /api/converse: One turn of Guided mode's clarifying conversation (ADR 0011). Asks; never prices, never starts a build.POST /api/auth/signup: Start email sign-up. Mails a single-use set-password link (24 h). Always the same 202.POST /api/auth/forgot: "Forgot password". Mails a 1-hour reset link to an account's address. Always the same 202.POST /api/auth/password: Set a password with an emailed token (first set or reset), and sign in.POST /api/auth/login: Sign in with email and password. Every failure is the same 401.POST /api/auth/logout: Sign out of an email session. The session is deleted server-side and the cookie cleared.POST /api/auth/change-password: Change the signed-in email user's password. Revokes every other session.
Access and keys
The API works without a key, on the small per-IP allowance below. For more, an X-Agent-Key header is issued on request: email w7carrington@gmail.com with what your agent does and the volume you expect. Keys are stored only as SHA-256 hashes, and an unknown key is ignored (you are treated as an unsigned caller).
Limits
| What | Default |
|---|---|
| Builds without a key or sign-in | 6 per IP address per UTC day ("All three" counts 3) |
Builds with an X-Agent-Key | 100 per key per UTC day |
| Builds when signed in on the site | 60 per user per UTC day |
Imports (GET /api/import) | 60 per IP address per UTC day |
| Share links created | 30 per IP address per UTC day |
| Whole site, per cloud | 250 or 500 builds per UTC day, depending on the engine connection |
| Whole site, estimated engine spend | a daily ceiling across all clouds |
These are defaults and may change; GET /api/limits returns what applies to you. Over a limit the API answers 429 {"error": "rate_limited", "scope", "limit", "retryAfterSeconds", "message"}. When the site-wide spend ceiling is reached, or the store or an engine is unavailable, it answers 503 with spend_ceiling, store_unavailable or upstream_unavailable, and refuses rather than guessing.
Every build spends a daily allowance at the sister engine, so build once and reuse the result. Never put personal data, customer names or anything confidential in a request.
3. The MCP server
One MCP server covers all three clouds: https://mcp.azure-price-calculator.com/mcp (Streamable HTTP). Its tools are build_cloud_quote, get_cloud_quote, compose_quote_link and list_calculator_capabilities.
compare_cloud_quote(request, providers[], quoteName?) prices one request on several clouds through this site's API and returns one Cloud Pricing Calculators share link holding every quote, the per-cloud totals and the reason for any cloud that was skipped. It arrives with the MCP server update that adds it; if list_calculator_capabilities does not list it yet, call the API above directly.
Documents for agents
- /llms.txt: the short index.
- /llms-full.txt: the full guide, with the AI-link contract block.
- /openapi.json: the federation API.
- /ai-link.json: the AI-link grammar as data.
Sister calculators
To price on one cloud only, the sister calculators have their own agent endpoints and AI links:
- Azure Price Calculator (Microsoft Azure): agent access, AI links, llms.txt, OpenAPI.
- AWS Price Calculator (Amazon Web Services): agent access, AI links, llms.txt, OpenAPI.
- GCP Price Calculator (Google Cloud): agent access, AI links, llms.txt, OpenAPI.
Estimates are informational; each engine prices from its provider's published prices. See the Terms of Use and the Privacy Statement.