{
  "data": {
    "a": {
      "slug": "baseten",
      "name": "Baseten",
      "vendor": "Baseten",
      "vendorUrl": "https://www.baseten.co",
      "kind": "http-api",
      "category": "gpu-compute",
      "summary": "Dedicated model deployments packaged with the open-source Truss framework and served behind a per-model HTTPS endpoint, with autoscaling from zero replicas, async inference, a management API and per-minute GPU billing from T4 to B200.",
      "url": "https://www.anchorterminal.com/tools/baseten",
      "markdownUrl": "https://www.anchorterminal.com/tools/baseten.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/baseten.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/baseten.json",
      "repo": "https://github.com/basetenlabs/truss",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.baseten.co",
      "packages": [
        {
          "registry": "pypi",
          "name": "truss"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key from the workspace settings, sent as `Authorization: Bearer $BASETEN_API_KEY` (preferred) or the legacy `Authorization: Api-Key` scheme. Keys created from 1 October 2026 carry a `b10_` prefix. Inference goes to model-\u003cid\u003e.api.baseten.co and management calls to api.baseten.co.",
      "pricing": "usage",
      "pricingNotes": "Basic is $0 a month, pay as you go; Pro and Enterprise add volume discounts. Dedicated deployments bill per minute of replica time, including start-up and idle, and nothing at zero replicas. T4 16 GiB $0.01052 a minute (about $0.63 an hour), L4 24 GiB $0.01414 ($0.85), A10G 24 GiB $0.02012 ($1.21), H100 MIG 40 GiB $0.0625 ($3.75), A100 80 GiB $0.06667 ($4.00), H100 80 GiB $0.10833 ($6.50), B200 180 GiB $0.16633 ($9.98). New accounts get a small credit to try the UI. Model APIs bill per token instead (https://www.baseten.co/pricing/).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 1200,
        "npmWeekly": null,
        "pypiWeekly": 74496,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.baseten.co",
      "llmsTxt": "https://docs.baseten.co/llms.txt",
      "openapi": "https://api.baseten.co/v1/spec",
      "capabilities": [
        "compute.gpu",
        "compute.endpoints",
        "compute.serverless",
        "compute.containers"
      ],
      "tags": [
        "hosted",
        "usage-priced",
        "python",
        "llms-txt",
        "open-source",
        "async-jobs",
        "webhooks",
        "enterprise"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.7,
        "grade": "B",
        "agentReady": false,
        "rank": 157,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 55,
          "maintenance": 90,
          "payments": 40,
          "reliability": 80,
          "schema": 84,
          "security": 82,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -5,
        "negativeNotes": [
          "-5: a GitHub personal access token for `basetenbot`, exposed in a public Harbor image since March 2023, gave admin and push access to Baseten's main product repository, the GitOps repository that drives its clusters, its Homebrew tap and per-customer private repositories. Reported on 2026-07-13, revoked on 2026-07-14, no misuse found, published with Baseten's approval in September 2026. Deducted less because the fix was quick and documented (https://www.strix.ai/blog/baseten-harbor-github-pat-takeover)"
        ],
        "verdict": "Team API keys scoped to inference-only, metrics-only or a single environment or model, plus a Viewer role since 1 September 2026. H100 at $6.50 and A100 at $4.00 an hour, and start-up and idle replica time are billed.",
        "strengths": [
          "Team API keys scoped to inference-only, metrics-only or a single environment or model, plus a Viewer role since 1 September 2026",
          "Public OpenAPI spec for the management API at api.baseten.co/v1/spec, and llms.txt with Markdown twins",
          "Rate limits published per endpoint with a `retry_after` field on 429",
          "Free starting credits with no payment method needed until they run out",
          "Truss (MIT) keeps the model package portable, with three releases in September 2026"
        ],
        "weaknesses": [
          "H100 at $6.50 and A100 at $4.00 an hour, and start-up and idle replica time are billed",
          "21 status-page incidents between 31 July and 29 September 2026, mostly single-cluster 5xx",
          "A bot token with admin access to the product and GitOps repositories sat exposed from March 2023 until July 2026",
          "No pagination on management list endpoints and no idempotency keys",
          "No SLA below Enterprise, no bug bounty and no security.txt"
        ],
        "agentNotes": [
          "Create a team key with inference-only permission for calling models and keep full-access keys out of the agent",
          "Sleep for `retry_after` seconds on a 429 from api.baseten.co; the activate and deactivate endpoints allow 20 calls a minute",
          "Retry 429, 503 and 529 with backoff, but treat 500 as a bug in your model code",
          "Set `scale_down_delay` below the 900-second default or every burst bills 15 idle minutes",
          "Send payloads over 256 KiB to `/predict`, not `/async_predict`, unless support has raised the async limit"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.7
          }
        ],
        "editorialScores": {
          "ergonomics": 55,
          "maintenance": 90,
          "payments": 40,
          "reliability": 80,
          "schema": 84,
          "security": 82,
          "transparency": 58
        },
        "provenanceScore": 75
      },
      "connect": {
        "install": "pip install truss",
        "http": "curl -X POST \"https://model-$BASETEN_MODEL_ID.api.baseten.co/environments/production/predict\" \\\n  -H \"Authorization: Bearer $BASETEN_API_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\":\"Hello, world!\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/compute.gpu",
        "tool": "https://letme.dev/baseten"
      },
      "area": "models",
      "unitPrices": [
        {
          "item": "H100 80 GiB",
          "unit": "gpu-hour",
          "usd": 6.5,
          "note": "$0.10833 a minute"
        },
        {
          "item": "B200 180 GiB",
          "unit": "gpu-hour",
          "usd": 9.98,
          "note": "$0.16633 a minute"
        },
        {
          "item": "A100 80 GiB",
          "unit": "gpu-hour",
          "usd": 4,
          "note": "$0.06667 a minute"
        },
        {
          "item": "H100 MIG 40 GiB",
          "unit": "gpu-hour",
          "usd": 3.75,
          "note": "$0.0625 a minute"
        },
        {
          "item": "A10G 24 GiB",
          "unit": "gpu-hour",
          "usd": 1.21,
          "note": "$0.02012 a minute"
        },
        {
          "item": "L4 24 GiB",
          "unit": "gpu-hour",
          "usd": 0.85,
          "note": "$0.01414 a minute"
        },
        {
          "item": "T4 16 GiB",
          "unit": "gpu-hour",
          "usd": 0.63,
          "note": "$0.01052 a minute"
        }
      ],
      "provenance": {
        "legalEntity": "Baseten Labs, Inc.",
        "domain": "baseten.co",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.baseten.co/terms-and-conditions/",
        "privacy": "https://www.baseten.co/privacy-policy/",
        "statusPage": "https://status.baseten.co",
        "changelog": "https://www.baseten.co/changelog/",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Terms name Baseten Labs, Inc. under California law with venue in San Francisco. The privacy policy gives 560 Davis St., Suite 250, San Francisco.",
          "Inference runs on model-\u003cid\u003e.api.baseten.co, a subdomain of the vendor domain.",
          "www.baseten.co/.well-known/security.txt returns 404.",
          "The .co registry's RDAP server couldn't be reached, so the registration date is unrecorded."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/baseten.json",
      "live": {
        "slug": "baseten",
        "probe": {
          "target": "https://api.baseten.co",
          "method": "get",
          "lastAt": "2026-10-05T01:43:33.917714493Z",
          "lastOk": true,
          "lastStatus": 202,
          "lastMs": 468,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 455,
          "p95ms24h": 505,
          "samples24h": 272,
          "samples30d": 920,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 20,
              "ok": 20
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.baseten.co",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T01:46:23.958981345Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "basetenlabs/truss",
            "version": "v0.18.32",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:22:03.609365578Z"
          },
          {
            "registry": "pypi",
            "name": "truss",
            "version": "0.18.32",
            "released": "2026-09-28",
            "seenAt": "2026-10-04T16:22:01.591112358Z"
          }
        ],
        "githubStars": 1207,
        "pypiWeekly": 67780,
        "securityTxt": {
          "url": "https://baseten.co/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:51.119519284Z"
        },
        "llmsTxt": {
          "url": "https://docs.baseten.co/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:19.413388797Z"
        },
        "domain": {
          "domain": "baseten.co",
          "checkedAt": "2026-10-04T13:09:05.701625104Z"
        },
        "pages": [
          {
            "url": "https://www.baseten.co/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:24.926514442Z",
            "changedAt": "2026-10-03T15:37:20.756910326Z",
            "fingerprint": "6cee5804197b"
          },
          {
            "url": "https://www.baseten.co/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:27.25006425Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "990de850b24f"
          },
          {
            "url": "https://www.baseten.co/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:29.099232624Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "66effb5a49f2"
          },
          {
            "url": "https://www.baseten.co/terms-and-conditions/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:49:31.355740184Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "38417e30dfca"
          }
        ],
        "updatedAt": "2026-10-05T01:46:23.958981345Z"
      }
    },
    "b": {
      "slug": "modal",
      "name": "Modal",
      "vendor": "Modal",
      "vendorUrl": "https://modal.com",
      "kind": "platform",
      "category": "gpu-compute",
      "summary": "Serverless functions, web endpoints, servers and GPU jobs from a Python decorator, with JavaScript and Go SDKs.",
      "url": "https://www.anchorterminal.com/tools/modal",
      "markdownUrl": "https://www.anchorterminal.com/tools/modal.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/modal.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/modal.json",
      "repo": "https://github.com/modal-labs/modal-client",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "modal"
        },
        {
          "registry": "npm",
          "name": "modal"
        }
      ],
      "auth": "api-key",
      "authNotes": "No public REST API for deploying. The SDKs and CLI authenticate with a token ID and secret from `modal token new`, read from `MODAL_TOKEN_ID` and `MODAL_TOKEN_SECRET` or `~/.modal.toml`; tokens can carry a TTL. Deployed web endpoints are open by default and can be locked with proxy tokens sent as `Modal-Key` and `Modal-Secret` headers. Servers and Endpoints require a proxy token by default, sent as `Authorization: Bearer \u003cid\u003e.\u003csecret\u003e`.",
      "pricing": "freemium",
      "pricingNotes": "Starter is $0 a month with $30 of compute included every month, 3 seats, 100 containers and 10 concurrent GPUs. Team is $250 a month plus compute with $100 included, unlimited seats, 5,000 containers and 50 concurrent GPUs. Enterprise is custom. GPUs bill per second with nothing charged at zero containers. T4 $0.000164, L4 $0.000222, A10 $0.000306, L40S $0.000542, A100 40 GB $0.000583, A100 80 GB $0.000694, RTX PRO 6000 $0.000842, H100 $0.001097, H200 $0.001261, B200 $0.001736 and B300 $0.001972 a second. The pricing page lists CPU at $0.0000131 a core-second (0.125 core minimum per container) and memory at $0.00000222 a GiB-second, and volumes at $0.09 a GiB-month after 1 TiB free (https://modal.com/pricing).",
      "priceSummary": "$250 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 514,
        "npmWeekly": 940973,
        "pypiWeekly": 10146778,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://modal.com/docs/guide",
      "llmsTxt": "https://modal.com/llms.txt",
      "capabilities": [
        "compute.gpu",
        "compute.serverless",
        "compute.endpoints",
        "compute.batch",
        "compute.containers"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "python",
        "typescript",
        "go",
        "llms-txt",
        "enterprise"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.8,
        "grade": "B",
        "agentReady": false,
        "rank": 195,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 85,
          "payments": 30,
          "reliability": 70,
          "schema": 70,
          "security": 68,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Scale to zero by default, per-second billing and about one-second container boots. No REST API or OpenAPI spec for deploying or invoking Functions.",
        "strengths": [
          "Scale to zero by default, per-second billing and about one-second container boots",
          "Retention stated per data type (inputs and outputs up to 7 days, logs 1 to 30 days)",
          "Python, JavaScript and Go SDKs, with llms.txt and dated release notes",
          "Four short incidents on the status page between July and September 2026",
          "SOC 2 Type 2, a private HackerOne programme and published disclosure response times"
        ],
        "weaknesses": [
          "No REST API or OpenAPI spec for deploying or invoking Functions",
          "Web endpoints are open by default until proxy tokens are added",
          "RBAC, audit logs and HIPAA only on Enterprise",
          "No published SLA, and Starter caps concurrent GPUs at 10",
          "Region pinning costs 1.15 to 1.75 times the base price"
        ],
        "agentNotes": [
          "Create a proxy token and require it on every web endpoint before sharing the URL; endpoints are public by default",
          "Pass a list to `gpu=` (for example `[\"H100\", \"A100-80GB\"]`) so a job still runs when the first choice is unavailable",
          "Set `scaledown_window` and `min_containers` explicitly; the defaults are 60 seconds and 0",
          "Use `.spawn()` and poll the call ID for long work instead of holding a web request open",
          "Keep web endpoint traffic under 200 requests a second or ask Modal to raise the limit"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.8
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 85,
          "payments": 30,
          "reliability": 70,
          "schema": 70,
          "security": 68,
          "transparency": 63
        },
        "provenanceScore": 75
      },
      "connect": {
        "install": "pip install modal \u0026\u0026 modal setup",
        "http": "curl -X POST \"https://$MODAL_WORKSPACE--my-app-predict.modal.run\" \\\n  -H \"Modal-Key: $MODAL_PROXY_KEY\" -H \"Modal-Secret: $MODAL_PROXY_SECRET\" \\\n  -H \"Content-Type: application/json\" -d '{\"prompt\":\"hello\"}'"
      },
      "letme": {
        "capability": "https://letme.dev/compute.gpu",
        "tool": "https://letme.dev/modal"
      },
      "sameCompany": [
        "modal-sandboxes"
      ],
      "area": "models",
      "unitPrices": [
        {
          "item": "H100 80 GB",
          "unit": "gpu-hour",
          "usd": 3.95,
          "note": "$0.001097 a second, may be upgraded to H200 at the same price"
        },
        {
          "item": "H200 141 GB",
          "unit": "gpu-hour",
          "usd": 4.54,
          "note": "$0.001261 a second"
        },
        {
          "item": "B200 180 GB",
          "unit": "gpu-hour",
          "usd": 6.25,
          "note": "$0.001736 a second"
        },
        {
          "item": "A100 80 GB",
          "unit": "gpu-hour",
          "usd": 2.5,
          "note": "$0.000694 a second"
        },
        {
          "item": "L40S 48 GB",
          "unit": "gpu-hour",
          "usd": 1.95,
          "note": "$0.000542 a second"
        },
        {
          "item": "L4 24 GB",
          "unit": "gpu-hour",
          "usd": 0.8,
          "note": "$0.000222 a second"
        },
        {
          "item": "T4 16 GB",
          "unit": "gpu-hour",
          "usd": 0.59,
          "note": "$0.000164 a second"
        },
        {
          "item": "Team plan",
          "unit": "month",
          "usd": 250,
          "note": "Plus compute, $100 included, 50 concurrent GPUs"
        }
      ],
      "provenance": {
        "legalEntity": "Modal Labs, Inc.",
        "domain": "modal.com",
        "domainRegistered": "1999-03-18",
        "domainNote": "modal.com was registered in 1999, long before Modal Labs, so the domain was bought later.",
        "endpointOnVendorDomain": false,
        "terms": "https://modal.com/legal/terms",
        "privacy": "https://modal.com/legal/privacy-policy",
        "statusPage": "https://status.modal.com",
        "changelog": "https://modal.com/docs/sdk/py/releases",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Terms (May 2026) name Modal Labs, Inc., a Delaware corporation, under California law.",
          "Deployed web endpoints and Servers are served from *.modal.run, a separate domain from modal.com. Deployment itself goes through the SDK, so there's no public API base URL to check.",
          "modal.com/.well-known/security.txt returns 404. The security guide gives security@modal.com and a private HackerOne programme.",
          "Modal Sandboxes are listed separately under code sandboxes."
        ],
        "score": 75
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/modal.json",
      "live": {
        "slug": "modal",
        "vendorStatus": {
          "page": "https://status.modal.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T18:12:01.451022336Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "modal",
            "version": "0.11.0",
            "seenAt": "2026-10-04T16:33:46.797593577Z"
          },
          {
            "registry": "pypi",
            "name": "modal",
            "version": "1.6.1",
            "released": "2026-10-03",
            "seenAt": "2026-10-04T16:33:46.666636627Z"
          }
        ],
        "githubStars": 522,
        "npmWeekly": 975301,
        "pypiWeekly": 10793701,
        "securityTxt": {
          "url": "https://modal.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:42.140189006Z"
        },
        "llmsTxt": {
          "url": "https://modal.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:01.18366808Z"
        },
        "domain": {
          "domain": "modal.com",
          "registered": "1999-03-18",
          "source": "https://rdap.verisign.com/com/v1/domain/modal.com",
          "checkedAt": "2026-10-04T13:03:51.14581991Z"
        },
        "updatedAt": "2026-10-04T18:12:01.451022336Z"
      }
    },
    "summary": "Baseten has a score of 66.7 (B) against Modal's 63.8 (B). Both do compute gpu. The largest gap is schema \u0026 documentation, 14 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/baseten-vs-modal",
    "json": "https://www.anchorterminal.com/compare/baseten-vs-modal.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/baseten-vs-modal.md",
    "slim": "https://www.anchorterminal.com/compare/baseten-vs-modal.min.md"
  },
  "markdown": "Baseten has a score of 66.7 (B) against Modal's 63.8 (B). Both do compute gpu. The largest gap is schema \u0026 documentation, 14 points.\n\n- Baseten: grade B, 66.7/100, rank #157 of 452. Markdown https://www.anchorterminal.com/tools/baseten.md · JSON https://www.anchorterminal.com/api/v1/tools/baseten.json\n- Modal: grade B, 63.8/100, rank #195 of 452. Markdown https://www.anchorterminal.com/tools/modal.md · JSON https://www.anchorterminal.com/api/v1/tools/modal.json\n\n## Which one, for what\n\nPick Baseten for reliability (+10), schema \u0026 documentation (+14), security \u0026 auth (+14), payments \u0026 pricing (+10), maintenance \u0026 community (+5).\n\nPick Modal for nothing in particular (no category where it leads by five points or more).\n\n## Score by category\n\n| Category | Weight | Baseten | Modal | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 70 | Baseten +10 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 84 | 70 | Baseten +14 |\n| Agent ergonomics | 13% (16.2 this run) | 55 | 57 | Modal +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 82 | 68 | Baseten +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Baseten +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 90 | 85 | Baseten +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 67 | 69 | Modal +2 |\n| Negative events | ≤15 | -5 | 0 | |\n| **Total** | | **66.7 · B** | **63.8 · B** | |\n\n## Facts side by side\n\n| Fact | Baseten | Modal |\n| --- | --- | --- |\n| Kind | HTTP API | Model platform |\n| Vendor | Baseten | Modal |\n| Hosted endpoint | `https://api.baseten.co` | no (local only) |\n| Transports | HTTP |  |\n| Auth | API key | API key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Tools exposed | none | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-28 | 2026-09-28 |\n| Popularity | 1.2k stars, 74k PyPI/wk | 514 stars, 941k npm/wk, 10.1M PyPI/wk |\n| Agent reviews | 3.5/5 (2) | 4/5 (2) |\n\n## Verdicts\n\n**Baseten.** Team API keys scoped to inference-only, metrics-only or a single environment or model, plus a Viewer role since 1 September 2026. H100 at $6.50 and A100 at $4.00 an hour, and start-up and idle replica time are billed.\n\n**Modal.** Scale to zero by default, per-second billing and about one-second container boots. No REST API or OpenAPI spec for deploying or invoking Functions.\n\n## Before you call either\n\n### Baseten\n\n1. Create a team key with inference-only permission for calling models and keep full-access keys out of the agent\n2. Sleep for `retry_after` seconds on a 429 from api.baseten.co; the activate and deactivate endpoints allow 20 calls a minute\n3. Retry 429, 503 and 529 with backoff, but treat 500 as a bug in your model code\n4. Set `scale_down_delay` below the 900-second default or every burst bills 15 idle minutes\n5. Send payloads over 256 KiB to `/predict`, not `/async_predict`, unless support has raised the async limit\n\n### Modal\n\n1. Create a proxy token and require it on every web endpoint before sharing the URL; endpoints are public by default\n2. Pass a list to `gpu=` (for example `[\"H100\", \"A100-80GB\"]`) so a job still runs when the first choice is unavailable\n3. Set `scaledown_window` and `min_containers` explicitly; the defaults are 60 seconds and 0\n4. Use `.spawn()` and poll the call ID for long work instead of holding a web request open\n5. Keep web endpoint traffic under 200 requests a second or ask Modal to raise the limit\n\n## Other comparisons with Baseten or Modal\n\n- [Baseten vs Beam](https://www.anchorterminal.com/compare/baseten-vs-beam.md)\n- [Baseten vs Koyeb](https://www.anchorterminal.com/compare/baseten-vs-koyeb.md)\n- [Baseten vs Lambda Cloud](https://www.anchorterminal.com/compare/baseten-vs-lambda.md)\n- [Baseten vs Northflank](https://www.anchorterminal.com/compare/baseten-vs-northflank.md)\n- [Baseten vs Replicate Deployments](https://www.anchorterminal.com/compare/baseten-vs-replicate-deploy.md)\n- [Baseten vs Runpod](https://www.anchorterminal.com/compare/baseten-vs-runpod.md)\n- [Beam vs Modal](https://www.anchorterminal.com/compare/beam-vs-modal.md)\n- [Koyeb vs Modal](https://www.anchorterminal.com/compare/koyeb-vs-modal.md)\n- [Lambda Cloud vs Modal](https://www.anchorterminal.com/compare/lambda-vs-modal.md)\n- [Modal vs Northflank](https://www.anchorterminal.com/compare/modal-vs-northflank.md)\n- [Modal vs Replicate Deployments](https://www.anchorterminal.com/compare/modal-vs-replicate-deploy.md)\n- [Modal vs Runpod](https://www.anchorterminal.com/compare/modal-vs-runpod.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Baseten vs Modal",
        "url": ""
      }
    ],
    "description": "Baseten has a score of 66.7 (B) against Modal's 63.8 (B). Both do compute gpu. The largest gap is schema \u0026 documentation, 14 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Baseten B 66.7",
      "Modal B 63.8",
      "scores"
    ],
    "h1": "Baseten vs Modal",
    "image": "https://www.anchorterminal.com/assets/og/compare-baseten-vs-modal.png",
    "path": "/compare/baseten-vs-modal",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Baseten vs Modal for AI agents, B 66.7 vs B 63.8 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/baseten-vs-modal"
  },
  "tokens": {
    "markdown": 1400,
    "slim": 330
  },
  "version": 1
}
