{
  "data": {
    "a": {
      "slug": "cloud-run-gpus",
      "name": "Cloud Run GPUs",
      "vendor": "Google Cloud",
      "vendorUrl": "https://cloud.google.com/run",
      "kind": "platform",
      "category": "gpu-compute",
      "summary": "Cloud Run GPUs attach one NVIDIA L4 or RTX PRO 6000 Blackwell GPU to a Cloud Run service, job or worker pool, so a container serves models serverlessly, billed per second and able to scale to zero.",
      "url": "https://www.anchorterminal.com/tools/cloud-run-gpus",
      "markdownUrl": "https://www.anchorterminal.com/tools/cloud-run-gpus.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cloud-run-gpus.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cloud-run-gpus.json",
      "dns": "cloud-run-gpus.grade.anchorterminal.com",
      "license": "Proprietary service under the Google Cloud Platform terms. Client libraries are Apache-2.0",
      "transports": [],
      "remoteUrl": "https://run.googleapis.com",
      "packages": [
        {
          "registry": "pypi",
          "name": "google-cloud-run"
        },
        {
          "registry": "npm",
          "name": "@google-cloud/run"
        }
      ],
      "auth": "oauth",
      "authNotes": "Deploys go through the Cloud Run Admin API with OAuth 2.0 bearer tokens from a service account or Application Default Credentials, under IAM roles such as roles/run.developer and roles/run.invoker. A deployed service can require IAM authentication or allow public calls. A project with billing enabled is set up in the console first.",
      "pricing": "usage",
      "pricingNotes": "Per second, instance-based billing only. L4 $0.0001867 a second (about $0.67 an hour) without zonal redundancy, $0.0002909 with; RTX PRO 6000 $0.00036522 (about $1.31 an hour) and $0.00056913. CPU and memory extra, with a minimum of 4 vCPU and 16 GiB (L4) or 20 vCPU and 80 GiB (RTX PRO 6000).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the Cloud Run pricing, GPU or quotas pages (checked 2026-11-06). Billing runs through a Google Cloud billing account.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.cloud.google.com/run/docs/configuring/services/gpu",
      "openapi": "https://run.googleapis.com/$discovery/rest?version=v2",
      "capabilities": [
        "compute.serverless",
        "compute.gpu",
        "compute.endpoints",
        "compute.containers",
        "compute.batch"
      ],
      "tags": [
        "hosted",
        "official",
        "usage",
        "per-second",
        "scale-to-zero",
        "sla",
        "status-page",
        "discovery-doc",
        "l4",
        "rtx-pro-6000"
      ],
      "lastRelease": "2026-10-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.4,
        "grade": "B",
        "agentReady": false,
        "rank": 288,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 2,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 80,
          "payments": 20,
          "reliability": 70,
          "schema": 81,
          "security": 78,
          "transparency": 84
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Serverless GPUs on Cloud Run, an L4 or RTX PRO 6000 per instance, billed per second, scaling to zero and starting in about 5 seconds before the model loads, with a published SLA and IAM. One GPU per instance, 3 GPUs of default quota a region and instance-based billing limit it to small and mid-size models.",
        "bestFor": "Serving small and mid-size open models, or batch jobs, from a container that should scale to zero.",
        "strengths": [
          "Scales to zero, bills per second, and instances with drivers start in about 5 seconds",
          "SLA of 99.95% with zonal redundancy and 99.5% without, plus Google's status feed",
          "IAM roles for deploying and invoking, Cloud Audit Logs and services that can require authentication",
          "Per-second prices public, L4 from about $0.67 a GPU-hour without zonal redundancy",
          "The same GPU option on services, jobs (up to 12 hours) and worker pools"
        ],
        "weaknesses": [
          "One GPU per instance, L4 (24 GB) or RTX PRO 6000 (96 GB) only, so large models don't fit",
          "Default quota is 3 GPUs a region; more needs a quota request",
          "Model load time comes on top of the 5-second start, and minimum instances bill while idle",
          "No free GPU tier, and the trial credit needs a payment method",
          "Google's APIs accept OAuth tokens in a URL query parameter"
        ],
        "agentNotes": [
          "Pass `--gpu 1 --gpu-type nvidia-l4` (or nvidia-rtx-pro-6000) with at least 4 vCPU and 16 GiB, and `--no-cpu-throttling` for instance-based billing",
          "Load model weights from Cloud Storage at startup in parallel; bake them into the image only below about 10 GB",
          "Turn zonal redundancy off for cheaper, more readily granted quota when failover isn't required",
          "Set minimum instances to 0 unless cold starts matter, since minimum instances bill at the full rate",
          "Send OAuth tokens in the `Authorization` header, never as `access_token` in the URL"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.4
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 80,
          "payments": 20,
          "reliability": 70,
          "schema": 81,
          "security": 78,
          "transparency": 69
        },
        "provenanceScore": 99,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "headless": {
          "command": "gcloud run deploy SERVICE --image IMAGE --gpu 1 --gpu-type nvidia-l4 --cpu 4 --memory 16Gi --no-cpu-throttling --region europe-west1"
        }
      },
      "letme": {
        "capability": "https://letme.dev/compute.serverless",
        "tool": "https://letme.dev/cloud-run-gpus"
      },
      "sameCompany": [
        "gemini-api",
        "vertex-ai",
        "gemini-embedding",
        "vertex-ai-tuning",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "google-cloud-tts",
        "gemini-live",
        "google-adk",
        "google-memory-bank",
        "google-secret-manager",
        "google-cloud-document-ai",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-calendar-api",
        "firebase-cloud-messaging",
        "google-cloud-storage",
        "google-drive-api",
        "gemini-enterprise",
        "gemini-cli",
        "google-search-console",
        "google-ads-api",
        "google-forms",
        "google-sheets-api",
        "gmail-api",
        "google-people-api"
      ],
      "area": "models",
      "unitPrices": [
        {
          "item": "NVIDIA L4, no zonal redundancy",
          "unit": "gpu-hour",
          "usd": 0.67,
          "note": "$0.0001867 a second, tier 1 regions; CPU and memory extra"
        },
        {
          "item": "NVIDIA L4, zonal redundancy",
          "unit": "gpu-hour",
          "usd": 1.05,
          "note": "$0.0002909 a second"
        },
        {
          "item": "NVIDIA RTX PRO 6000, no zonal redundancy",
          "unit": "gpu-hour",
          "usd": 1.31,
          "note": "$0.00036522 a second"
        },
        {
          "item": "NVIDIA RTX PRO 6000, zonal redundancy",
          "unit": "gpu-hour",
          "usd": 2.05,
          "note": "$0.00056913 a second"
        }
      ],
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "google.com",
        "domainRegistered": "1997-09-15",
        "domainNote": "The endpoints are on googleapis.com, Google's API domain. Docs are on docs.cloud.google.com.",
        "endpointOnVendorDomain": true,
        "terms": "https://cloud.google.com/terms",
        "privacy": "https://cloud.google.com/terms/cloud-privacy-notice",
        "statusPage": "https://status.cloud.google.com",
        "changelog": "https://docs.cloud.google.com/run/docs/release-notes",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "Legal entity, terms, privacy notice and security.txt as on the Google Cloud Document AI listing, checked 1 November 2026, and not re-read for this listing.",
          "docs.cloud.google.com/robots.txt and cloud.google.com/robots.txt allow the Cloud Run pages read; status.cloud.google.com/robots.txt allows everything.",
          "The Cloud Run SLA lists GPU services separately, 99.95% with zonal redundancy and 99.5% without (https://cloud.google.com/run/sla)."
        ],
        "score": 99
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cloud-run-gpus.json",
      "live": {
        "slug": "cloud-run-gpus",
        "probe": {
          "target": "https://run.googleapis.com",
          "method": "get",
          "lastAt": "2026-11-07T18:20:17.664716666Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 159,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 35,
          "p95ms24h": 120,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.cloud.google.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-07T04:47:16.629467571Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@google-cloud/run",
            "version": "4.2.0",
            "seenAt": "2026-11-06T23:15:29.275446701Z"
          },
          {
            "registry": "pypi",
            "name": "google-cloud-run",
            "version": "0.16.2",
            "released": "2026-10-01",
            "seenAt": "2026-11-06T23:15:27.277547645Z"
          }
        ],
        "npmWeekly": 1706675,
        "pypiWeekly": 3039289,
        "securityTxt": {
          "url": "https://google.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2030-04-01T00:00:00z",
          "checkedAt": "2026-11-07T16:01:22.068349931Z"
        },
        "pages": [
          {
            "url": "https://docs.cloud.google.com/run/docs/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:05:47.69894113Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "924ee0205e11"
          },
          {
            "url": "https://cloud.google.com/terms/cloud-privacy-notice",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:01:29.495526727Z",
            "changedAt": "2026-11-03T07:43:24.319773868Z",
            "fingerprint": "b62369d64ac6"
          },
          {
            "url": "https://cloud.google.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:01:27.593286996Z",
            "changedAt": "2026-11-03T07:43:22.480965239Z",
            "fingerprint": "b9ec671a2caf"
          }
        ],
        "updatedAt": "2026-11-07T18:20:17.664716666Z"
      }
    },
    "answer": "Cloud Run GPUs scores 68.4 (B) on agent readiness against Modal's 62.7 (B), and leads in 4 of 7 scored categories. Modal leads on maintenance \u0026 community.",
    "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",
      "dns": "modal.grade.anchorterminal.com",
      "repo": "https://github.com/modal-labs/modal-client",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [
        {
          "registry": "pypi",
          "name": "modal",
          "main": true
        },
        {
          "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, volumes at $0.09 a GiB-month after 1 TiB free, and network egress at $0.04 a GiB beyond the plan's included usage (1 TiB a month on Starter). The billing guide says a payment method must be on file to use Modal (https://modal.com/pricing, https://modal.com/docs/guide/billing, checked 2026-11-02).",
      "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-10-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.7,
        "grade": "B",
        "agentReady": false,
        "rank": 543,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 7,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 85,
          "payments": 20,
          "reliability": 70,
          "schema": 70,
          "security": 68,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-02"
        },
        "negative": 0,
        "verdict": "Scale to zero by default, per-second billing and about one-second container boots from a Python decorator, with retention stated per product. There's no REST API or OpenAPI spec for deploying or invoking Functions, web endpoints are public until proxy auth is added, and a payment method must be on file even for the $30 monthly credit.",
        "bestFor": "Python teams that want GPU functions, batch jobs and HTTP endpoints from one decorator with scale to zero.",
        "strengths": [
          "Scale to zero by default, per-second billing and about one-second container boots",
          "Retention stated per product (inputs and outputs up to 7 days, logs 1 to 30 days, zero retention on inference Endpoints)",
          "Python, JavaScript and Go SDKs, with llms.txt and dated release notes, six Python releases since 4 August 2026",
          "Status feed shows only minor or partial incidents since August 2026, the longest a 2-hour storage read degradation",
          "SOC 2 Type 2, a private HackerOne programme and published remediation times (24 hours for critical)"
        ],
        "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",
          "A payment method must be on file to use Modal, even within the $30 monthly credit"
        ],
        "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.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.7
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 85,
          "payments": 20,
          "reliability": 70,
          "schema": 70,
          "security": 68,
          "transparency": 70
        },
        "provenanceScore": 72,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-02",
            "maintenance": "2026-11-02",
            "payments": "2026-11-02",
            "reliability": "2026-11-02",
            "schema": "2026-11-02",
            "security": "2026-11-02",
            "transparency": "2026-11-02"
          },
          "last": "2026-11-02",
          "lastMoved": "2026-11-02",
          "oldest": "2026-11-02",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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": 72
      },
      "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-26T17:51:26.525023675Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "modal",
            "version": "0.11.1",
            "seenAt": "2026-11-06T23:47:03.425579459Z"
          },
          {
            "registry": "pypi",
            "name": "modal",
            "version": "1.6.3",
            "released": "2026-10-27",
            "seenAt": "2026-11-06T23:47:03.279789243Z"
          }
        ],
        "githubStars": 535,
        "npmWeekly": 1246589,
        "pypiWeekly": 11984154,
        "securityTxt": {
          "url": "https://modal.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T16:01:07.652393797Z"
        },
        "llmsTxt": {
          "url": "https://modal.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:33:13.771009294Z"
        },
        "domain": {
          "domain": "modal.com",
          "registered": "1999-03-18",
          "source": "https://rdap.verisign.com/com/v1/domain/modal.com",
          "checkedAt": "2026-11-01T14:19:59.212927266Z"
        },
        "github": {
          "repo": "modal-labs/modal-client",
          "checkedAt": "2026-11-02T09:08:09.7561962Z",
          "stars": 531,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-31T08:03:03Z",
          "openIssues": 26,
          "openPRs": 0,
          "issuesOpened90d": 24,
          "issuesClosed90d": 10,
          "prsMerged90d": 0,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-31T08:03:19Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 16,
            "medianDays": 1.1
          }
        },
        "updatedAt": "2026-11-07T16:01:07.652393797Z"
      }
    },
    "edges": [
      {
        "by": 13,
        "category": "transparency",
        "leads": "cloud-run-gpus",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under the Google Cloud terms, with Apache-2.0 client libraries (15). The Cloud Data Processing Addendum and the privacy notice cover customer data, per the Document AI listing's 1 November reading; no Cloud Run statement on GPU instance data after shutdown was found (22). The Cloud terms promise 12 months' notice before a backwards-incompatible API change, and driver versions are announced in the release notes (16). Regions per GPU type listed, with Google's subprocessor list and data-location terms (16). 15+22+16+16 = 69.",
          "b": "Closed service; the Python client is Apache-2.0 (20). Retention is spelled out per product on the security page. Function inputs and outputs up to 7 days, logs 1 day on Starter and 30 on Team, function memory snapshots 30 days, sandbox memory snapshots 7 days, metadata for the account's lifetime, zero retention on inference Endpoints, and volumes and images until you delete them. A DPA sits in the trust centre (25). The 1.1.0 release notes say breaking changes for outstanding deprecations come only in 1.Y.0 releases, and releases give deprecation warnings first (1.6.2 deprecates `.update_autoscaler()`), with no stated notice period (15). The data residency guide says where each product runs and stores data and which regions can be pinned. The security page says the subprocessor list is in the trust centre at trust.modal.com, which didn't render for us (10). 20+25+15+10 = 70."
        },
        "scores": {
          "a": 84,
          "b": 71
        }
      },
      {
        "by": 11,
        "category": "schema",
        "leads": "cloud-run-gpus",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "API reading. A public Discovery document for the Cloud Run Admin API v2 (25). No llms.txt; Google's docs answer Markdown only at an unlinked `.md.txt` address, read as half, as for the Document AI listing (5). The GPU page says when to turn zonal redundancy on or off and the best-practices page when to bake models into images or load them from Cloud Storage (16). The GPU type is a free string in a node selector, with CPU and memory minimums stated in prose (9). gcloud, YAML, Terraform and console steps on each page, and errors follow Google's status model with no Cloud Run GPU error list (11). Versioned API (v1 and v2) and dated release notes (15). 25+5+16+9+11+15 = 81.",
          "b": "No HTTP API for deploying, so no OpenAPI; the contract is the typed Python SDK with a generated reference (10 of 25). llms.txt at modal.com/llms.txt (10). Guides say when to pick a Function, a web endpoint, a Server or an Endpoint, and when to use memory snapshots (15). Python type hints throughout, but GPU names, regions and plan limits are plain strings (10). Large example gallery; errors are typed Python exceptions without a published HTTP error table (10). Dated SDK release notes (15). 10+10+15+10+10+15 = 70."
        },
        "scores": {
          "a": 81,
          "b": 70
        }
      },
      {
        "by": 10,
        "category": "security",
        "leads": "cloud-run-gpus",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "OAuth 2.0 tokens from service accounts under IAM. Google's APIs accept `access_token` as a query parameter, the 10-point deduction other Google API listings take (20). IAM roles separate viewing, deploying and invoking, and services can require IAM authentication for every call (16). The platform runs your own container and returns its output (10). Cloud Audit Logs record Admin API calls, and request logs go to Cloud Logging (15). Google's vulnerability reward programme, security.txt and certifications (17). 20+16+10+15+17 = 78.",
          "b": "Token ID and secret pairs from `modal token new`, revocable and able to carry a TTL, plus invoke-only proxy tokens for web endpoints and Servers; no scopes on the main token (25). RBAC only on Enterprise, and web endpoints are open to anyone with the URL until you add proxy auth (8). Runs your own code and returns its output (10). Audit logs only on Enterprise (10). Disclosure to security@modal.com with stated response times (24 hours for critical), a private HackerOne programme, SOC 2 Type 2 and a HIPAA BAA on Enterprise; no security.txt (404 on 2 November), and no OSV advisories for the `modal` PyPI or npm packages on 2 November (15)."
        },
        "scores": {
          "a": 78,
          "b": 68
        }
      },
      {
        "by": 9,
        "category": "ergonomics",
        "leads": "cloud-run-gpus",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "Platform reading. One `gcloud run deploy` with `--gpu` and `--gpu-type` adds a GPU to a container, and responses carry the service object with `fieldMask` on updates (15). List calls page with `pageSize` and `pageToken` (15). Google's status codes and messages, with quota errors that name the limit (12). Revisions are immutable, traffic can be moved back, and etags guard updates, but no idempotency key on create (12). Client libraries in many languages and gcloud, though a GPU deploy needs instance-based billing, minimum CPU and memory and, past 3 GPUs, a quota request (12). 15+15+12+12+12 = 66.",
          "b": "No MCP server or REST list endpoints to size; the CLI's `modal app list` and `modal function stats` are compact (10). Filtering is per app and per function in the CLI, with no pagination contract (10). Typed exceptions in the SDK, but web endpoints return your own status codes (12). `.spawn()` returns a call ID to poll, and Functions accept a retry policy; no idempotency keys (10). Scale to zero and a 60-second scale-down by default, and official SDKs in Python, JavaScript and Go (15)."
        },
        "scores": {
          "a": 66,
          "b": 57
        }
      },
      {
        "by": 5,
        "category": "maintenance",
        "leads": "modal",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Closed service with official SDKs. The newest GPU change is 30 October 2026, jobs with GPUs running up to 12 hours (30). Cloud Run release notes dated 4 November, 2 November, 30 October, 24 October and more in the 90 days (20). Release notes, Google Cloud support and public trackers for the client libraries, which were not read (10). Official client libraries in eight languages and gcloud (15). CI results not checked (5). 30+20+10+15+5 = 80.",
          "b": "Python SDK 1.6.3 on 27 October 2026 per the release notes (30). Six dated Python SDK releases from 4 August (1.5.4 on 12 August, 1.5.5 on 28 August, 1.6.0 on 28 September, 1.6.1 on 3 October, 1.6.2 on 15 October and 1.6.3 on 27 October) (20). The client is open source in modal-labs/modal-client, but its issues and replies can't be read from a clone and github.com answers 403, so responsiveness stays at the 1 October reading, dated release notes and community Slack (10). Python is current, and the JavaScript and Go SDKs (tagged 0.11.1, beta) are in the same repository (15). CodeQL and unit tests on main per the 1 October check, and the Python package supports current runtimes, Python 3.15 since 1.6.2 (10). 30+20+10+15+10 = 85."
        },
        "scores": {
          "a": 80,
          "b": 85
        }
      }
    ],
    "facts": [
      {
        "a": "Platform",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "Google Cloud",
        "b": "Modal",
        "name": "Vendor"
      },
      {
        "a": "https://run.googleapis.com",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Google Cloud Platform terms. Client libraries are Apache-2.0",
        "b": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-30",
        "b": "2026-10-27",
        "name": "Last release"
      },
      {
        "a": "2026-09-02",
        "b": "2026-05-01",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-28",
        "b": "2023-05-17",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "514 stars, 941k npm/wk, 10.1M PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "4/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Cloud Run GPUs scores 68.4 (B) on agent readiness against Modal's 62.7 (B), and leads in 4 of 7 scored categories. Modal leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, Cloud Run GPUs or Modal?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 81 against 70",
          "Agent ergonomics, 66 against 57",
          "Security \u0026 auth, 78 against 68",
          "Transparency \u0026 trust, 84 against 71"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "Serving small and mid-size open models, or batch jobs, from a container that should scale to zero.",
        "slug": "cloud-run-gpus",
        "watchFor": "One GPU per instance, L4 (24 GB) or RTX PRO 6000 (96 GB) only, so large models don't fit"
      },
      {
        "aheadOn": [
          "Maintenance \u0026 community, 85 against 80"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Python teams that want GPU functions, batch jobs and HTTP endpoints from one decorator with scale to zero.",
        "slug": "modal",
        "watchFor": "No REST API or OpenAPI spec for deploying or invoking Functions"
      }
    ],
    "history": {
      "cloud-run-gpus": null,
      "modal": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-02",
          "delta": -1,
          "from": 63.7,
          "fromGrade": "B",
          "to": 62.7,
          "toGrade": "B"
        },
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 63.8,
          "fromGrade": "B",
          "to": 63.7,
          "toGrade": "B"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-28",
          "delta": 0.1,
          "from": 63.7,
          "fromGrade": "B",
          "to": 63.8,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "compute.serverless",
      "name": "Compute serverless"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/baseten-vs-cloud-run-gpus.json",
        "title": "Baseten vs Cloud Run GPUs",
        "url": "https://www.anchorterminal.com/compare/baseten-vs-cloud-run-gpus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baseten-vs-modal.json",
        "title": "Baseten vs Modal",
        "url": "https://www.anchorterminal.com/compare/baseten-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/beam-vs-cloud-run-gpus.json",
        "title": "Beam vs Cloud Run GPUs",
        "url": "https://www.anchorterminal.com/compare/beam-vs-cloud-run-gpus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/beam-vs-modal.json",
        "title": "Beam vs Modal",
        "url": "https://www.anchorterminal.com/compare/beam-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cerebrium-vs-cloud-run-gpus.json",
        "title": "Cerebrium vs Cloud Run GPUs",
        "url": "https://www.anchorterminal.com/compare/cerebrium-vs-cloud-run-gpus"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cerebrium-vs-modal.json",
        "title": "Cerebrium vs Modal",
        "url": "https://www.anchorterminal.com/compare/cerebrium-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-coreweave.json",
        "title": "Cloud Run GPUs vs CoreWeave",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-coreweave"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-crusoe-cloud.json",
        "title": "Cloud Run GPUs vs Crusoe Cloud",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-crusoe-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-gpusmarket.json",
        "title": "Cloud Run GPUs vs GPUsMarket",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-gpusmarket"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-hugging-face-inference-endpoints.json",
        "title": "Cloud Run GPUs vs Hugging Face Inference Endpoints",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-hugging-face-inference-endpoints"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-hyperbolic.json",
        "title": "Cloud Run GPUs vs Hyperbolic",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-hyperbolic"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-lambda.json",
        "title": "Cloud Run GPUs vs Lambda Cloud",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-lambda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-massed-compute.json",
        "title": "Cloud Run GPUs vs Massed Compute",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-massed-compute"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-nebius-ai-cloud.json",
        "title": "Cloud Run GPUs vs Nebius AI Cloud",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-nebius-ai-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-northflank.json",
        "title": "Cloud Run GPUs vs Northflank",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-northflank"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-thunder-compute.json",
        "title": "Cloud Run GPUs vs Thunder Compute",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-thunder-compute"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-together-gpu-clusters.json",
        "title": "Cloud Run GPUs vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-together-gpu-clusters"
      },
      {
        "json": "https://www.anchorterminal.com/compare/coreweave-vs-modal.json",
        "title": "CoreWeave vs Modal",
        "url": "https://www.anchorterminal.com/compare/coreweave-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/crusoe-cloud-vs-modal.json",
        "title": "Crusoe Cloud vs Modal",
        "url": "https://www.anchorterminal.com/compare/crusoe-cloud-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gpusmarket-vs-modal.json",
        "title": "GPUsMarket vs Modal",
        "url": "https://www.anchorterminal.com/compare/gpusmarket-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hugging-face-inference-endpoints-vs-modal.json",
        "title": "Hugging Face Inference Endpoints vs Modal",
        "url": "https://www.anchorterminal.com/compare/hugging-face-inference-endpoints-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hyperbolic-vs-modal.json",
        "title": "Hyperbolic vs Modal",
        "url": "https://www.anchorterminal.com/compare/hyperbolic-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/koyeb-vs-modal.json",
        "title": "Koyeb vs Modal",
        "url": "https://www.anchorterminal.com/compare/koyeb-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lambda-vs-modal.json",
        "title": "Lambda Cloud vs Modal",
        "url": "https://www.anchorterminal.com/compare/lambda-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/massed-compute-vs-modal.json",
        "title": "Massed Compute vs Modal",
        "url": "https://www.anchorterminal.com/compare/massed-compute-vs-modal"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-vs-nebius-ai-cloud.json",
        "title": "Modal vs Nebius AI Cloud",
        "url": "https://www.anchorterminal.com/compare/modal-vs-nebius-ai-cloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-vs-northflank.json",
        "title": "Modal vs Northflank",
        "url": "https://www.anchorterminal.com/compare/modal-vs-northflank"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-vs-replicate-deploy.json",
        "title": "Modal vs Replicate Deployments",
        "url": "https://www.anchorterminal.com/compare/modal-vs-replicate-deploy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-vs-runpod.json",
        "title": "Modal vs Runpod",
        "url": "https://www.anchorterminal.com/compare/modal-vs-runpod"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-vs-thunder-compute.json",
        "title": "Modal vs Thunder Compute",
        "url": "https://www.anchorterminal.com/compare/modal-vs-thunder-compute"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters.json",
        "title": "Modal vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-vs-vast-ai.json",
        "title": "Modal vs Vast.ai",
        "url": "https://www.anchorterminal.com/compare/modal-vs-vast-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/modal-vs-verda.json",
        "title": "Modal vs Verda",
        "url": "https://www.anchorterminal.com/compare/modal-vs-verda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-koyeb.json",
        "title": "Cloud Run GPUs vs Koyeb",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-koyeb"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-replicate-deploy.json",
        "title": "Cloud Run GPUs vs Replicate Deployments",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-replicate-deploy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-runpod.json",
        "title": "Cloud Run GPUs vs Runpod",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-runpod"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-vast-ai.json",
        "title": "Cloud Run GPUs vs Vast.ai",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-vast-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-verda.json",
        "title": "Cloud Run GPUs vs Verda",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-verda"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 0,
        "cloud-run-gpus": 70,
        "edge": "",
        "key": "reliability",
        "modal": 70,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "cloud-run-gpus": 81,
        "edge": "cloud-run-gpus",
        "key": "schema",
        "modal": 70,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 9,
        "cloud-run-gpus": 66,
        "edge": "cloud-run-gpus",
        "key": "ergonomics",
        "modal": 57,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 10,
        "cloud-run-gpus": 78,
        "edge": "cloud-run-gpus",
        "key": "security",
        "modal": 68,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "cloud-run-gpus": 20,
        "edge": "",
        "key": "payments",
        "modal": 20,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 5,
        "cloud-run-gpus": 80,
        "edge": "modal",
        "key": "maintenance",
        "modal": 85,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 13,
        "cloud-run-gpus": 84,
        "edge": "cloud-run-gpus",
        "key": "transparency",
        "modal": 71,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Cloud Run GPUs scores 68.4 (B) on agent readiness against Modal's 62.7 (B), and leads in 4 of 7 scored categories. Modal leads on maintenance \u0026 community. Both do compute serverless.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "cloud-run-gpus": "Serverless GPUs on Cloud Run, an L4 or RTX PRO 6000 per instance, billed per second, scaling to zero and starting in about 5 seconds before the model loads, with a published SLA and IAM. One GPU per instance, 3 GPUs of default quota a region and instance-based billing limit it to small and mid-size models.",
      "modal": "Scale to zero by default, per-second billing and about one-second container boots from a Python decorator, with retention stated per product. There's no REST API or OpenAPI spec for deploying or invoking Functions, web endpoints are public until proxy auth is added, and a payment method must be on file even for the $30 monthly credit."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal",
    "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal.min.md"
  },
  "markdown": "Cloud Run GPUs scores 68.4 (B) on agent readiness against Modal's 62.7 (B), and leads in 4 of 7 scored categories. Modal leads on maintenance \u0026 community. Both do compute serverless.\n\n- Cloud Run GPUs: grade B, 68.4/100, rank #288 of 1486. Markdown https://www.anchorterminal.com/tools/cloud-run-gpus.md · JSON https://www.anchorterminal.com/api/v1/tools/cloud-run-gpus.json\n- Modal: grade B, 62.7/100, rank #543 of 1486. Markdown https://www.anchorterminal.com/tools/modal.md · JSON https://www.anchorterminal.com/api/v1/tools/modal.json\n- Best GPU and serverless compute for AI workloads: https://www.anchorterminal.com/best/gpu-compute/index.md\n- All 231 gpu compute comparisons: https://www.anchorterminal.com/compare/gpu-compute/index.md\n\n## Which one, for what\n\n### Cloud Run GPUs (B)\n\nGood for: Serving small and mid-size open models, or batch jobs, from a container that should scale to zero.\n\nAhead on:\n- Schema \u0026 documentation, 81 against 70\n- Agent ergonomics, 66 against 57\n- Security \u0026 auth, 78 against 68\n- Transparency \u0026 trust, 84 against 71\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: One GPU per instance, L4 (24 GB) or RTX PRO 6000 (96 GB) only, so large models don't fit\n\n### Modal (B)\n\nGood for: Python teams that want GPU functions, batch jobs and HTTP endpoints from one decorator with scale to zero.\n\nAhead on:\n- Maintenance \u0026 community, 85 against 80\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No REST API or OpenAPI spec for deploying or invoking Functions\n\n\n## Why the edge\n\n### Transparency \u0026 trust: Cloud Run GPUs +13\n\n- Cloud Run GPUs (84): Closed service under the Google Cloud terms, with Apache-2.0 client libraries (15). The Cloud Data Processing Addendum and the privacy notice cover customer data, per the Document AI listing's 1 November reading; no Cloud Run statement on GPU instance data after shutdown was found (22). The Cloud terms promise 12 months' notice before a backwards-incompatible API change, and driver versions are announced in the release notes (16). Regions per GPU type listed, with Google's subprocessor list and data-location terms (16). 15+22+16+16 = 69.\n- Modal (71): Closed service; the Python client is Apache-2.0 (20). Retention is spelled out per product on the security page. Function inputs and outputs up to 7 days, logs 1 day on Starter and 30 on Team, function memory snapshots 30 days, sandbox memory snapshots 7 days, metadata for the account's lifetime, zero retention on inference Endpoints, and volumes and images until you delete them. A DPA sits in the trust centre (25). The 1.1.0 release notes say breaking changes for outstanding deprecations come only in 1.Y.0 releases, and releases give deprecation warnings first (1.6.2 deprecates `.update_autoscaler()`), with no stated notice period (15). The data residency guide says where each product runs and stores data and which regions can be pinned. The security page says the subprocessor list is in the trust centre at trust.modal.com, which didn't render for us (10). 20+25+15+10 = 70.\n\n### Schema \u0026 documentation: Cloud Run GPUs +11\n\n- Cloud Run GPUs (81): API reading. A public Discovery document for the Cloud Run Admin API v2 (25). No llms.txt; Google's docs answer Markdown only at an unlinked `.md.txt` address, read as half, as for the Document AI listing (5). The GPU page says when to turn zonal redundancy on or off and the best-practices page when to bake models into images or load them from Cloud Storage (16). The GPU type is a free string in a node selector, with CPU and memory minimums stated in prose (9). gcloud, YAML, Terraform and console steps on each page, and errors follow Google's status model with no Cloud Run GPU error list (11). Versioned API (v1 and v2) and dated release notes (15). 25+5+16+9+11+15 = 81.\n- Modal (70): No HTTP API for deploying, so no OpenAPI; the contract is the typed Python SDK with a generated reference (10 of 25). llms.txt at modal.com/llms.txt (10). Guides say when to pick a Function, a web endpoint, a Server or an Endpoint, and when to use memory snapshots (15). Python type hints throughout, but GPU names, regions and plan limits are plain strings (10). Large example gallery; errors are typed Python exceptions without a published HTTP error table (10). Dated SDK release notes (15). 10+10+15+10+10+15 = 70.\n\n### Security \u0026 auth: Cloud Run GPUs +10\n\n- Cloud Run GPUs (78): OAuth 2.0 tokens from service accounts under IAM. Google's APIs accept `access_token` as a query parameter, the 10-point deduction other Google API listings take (20). IAM roles separate viewing, deploying and invoking, and services can require IAM authentication for every call (16). The platform runs your own container and returns its output (10). Cloud Audit Logs record Admin API calls, and request logs go to Cloud Logging (15). Google's vulnerability reward programme, security.txt and certifications (17). 20+16+10+15+17 = 78.\n- Modal (68): Token ID and secret pairs from `modal token new`, revocable and able to carry a TTL, plus invoke-only proxy tokens for web endpoints and Servers; no scopes on the main token (25). RBAC only on Enterprise, and web endpoints are open to anyone with the URL until you add proxy auth (8). Runs your own code and returns its output (10). Audit logs only on Enterprise (10). Disclosure to security@modal.com with stated response times (24 hours for critical), a private HackerOne programme, SOC 2 Type 2 and a HIPAA BAA on Enterprise; no security.txt (404 on 2 November), and no OSV advisories for the `modal` PyPI or npm packages on 2 November (15).\n\n### Agent ergonomics: Cloud Run GPUs +9\n\n- Cloud Run GPUs (66): Platform reading. One `gcloud run deploy` with `--gpu` and `--gpu-type` adds a GPU to a container, and responses carry the service object with `fieldMask` on updates (15). List calls page with `pageSize` and `pageToken` (15). Google's status codes and messages, with quota errors that name the limit (12). Revisions are immutable, traffic can be moved back, and etags guard updates, but no idempotency key on create (12). Client libraries in many languages and gcloud, though a GPU deploy needs instance-based billing, minimum CPU and memory and, past 3 GPUs, a quota request (12). 15+15+12+12+12 = 66.\n- Modal (57): No MCP server or REST list endpoints to size; the CLI's `modal app list` and `modal function stats` are compact (10). Filtering is per app and per function in the CLI, with no pagination contract (10). Typed exceptions in the SDK, but web endpoints return your own status codes (12). `.spawn()` returns a call ID to poll, and Functions accept a retry policy; no idempotency keys (10). Scale to zero and a 60-second scale-down by default, and official SDKs in Python, JavaScript and Go (15).\n\n### Maintenance \u0026 community: Modal +5\n\n- Cloud Run GPUs (80): Closed service with official SDKs. The newest GPU change is 30 October 2026, jobs with GPUs running up to 12 hours (30). Cloud Run release notes dated 4 November, 2 November, 30 October, 24 October and more in the 90 days (20). Release notes, Google Cloud support and public trackers for the client libraries, which were not read (10). Official client libraries in eight languages and gcloud (15). CI results not checked (5). 30+20+10+15+5 = 80.\n- Modal (85): Python SDK 1.6.3 on 27 October 2026 per the release notes (30). Six dated Python SDK releases from 4 August (1.5.4 on 12 August, 1.5.5 on 28 August, 1.6.0 on 28 September, 1.6.1 on 3 October, 1.6.2 on 15 October and 1.6.3 on 27 October) (20). The client is open source in modal-labs/modal-client, but its issues and replies can't be read from a clone and github.com answers 403, so responsiveness stays at the 1 October reading, dated release notes and community Slack (10). Python is current, and the JavaScript and Go SDKs (tagged 0.11.1, beta) are in the same repository (15). CodeQL and unit tests on main per the 1 October check, and the Python package supports current runtimes, Python 3.15 since 1.6.2 (10). 30+20+10+15+10 = 85.\n\n## Score by category\n\n| Category | Weight | Cloud Run GPUs | Modal | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 70 | even |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 81 | 70 | Cloud Run GPUs +11 |\n| Agent ergonomics | 13% (16.2 this run) | 66 | 57 | Cloud Run GPUs +9 |\n| Security \u0026 auth | 14% (17.5 this run) | 78 | 68 | Cloud Run GPUs +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 20 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 80 | 85 | Modal +5 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 84 | 71 | Cloud Run GPUs +13 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **68.4 · B** | **62.7 · B** | |\n\n## Facts side by side\n\n| Fact | Cloud Run GPUs | Modal |\n| --- | --- | --- |\n| Kind | Platform | Platform |\n| Vendor | Google Cloud | Modal |\n| Hosted endpoint | `https://run.googleapis.com` | no (local only) |\n| Transports |  |  |\n| Auth | OAuth | API key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under the Google Cloud Platform terms. Client libraries are Apache-2.0 | Apache-2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-10-30 | 2026-10-27 |\n| Terms last updated | 2026-09-02 | 2026-05-01 |\n| Privacy policy last updated | 2026-09-28 | 2023-05-17 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 514 stars, 941k npm/wk, 10.1M PyPI/wk |\n| Agent reviews | none | 4/5 (2) |\n\n## How the scores have moved\n\n### Cloud Run GPUs\n\nNo score change since it was listed.\n\n### Modal\n\n- -1.0 on 2 November 2026: correction\n- -0.1 on 28 October 2026: correction\n- +0.1 on 28 October 2026: new evidence\n\n## Verdicts\n\n**Cloud Run GPUs.** Serverless GPUs on Cloud Run, an L4 or RTX PRO 6000 per instance, billed per second, scaling to zero and starting in about 5 seconds before the model loads, with a published SLA and IAM. One GPU per instance, 3 GPUs of default quota a region and instance-based billing limit it to small and mid-size models.\n\n**Modal.** Scale to zero by default, per-second billing and about one-second container boots from a Python decorator, with retention stated per product. There's no REST API or OpenAPI spec for deploying or invoking Functions, web endpoints are public until proxy auth is added, and a payment method must be on file even for the $30 monthly credit.\n\n## Before you call either\n\n### Cloud Run GPUs\n\n1. Pass `--gpu 1 --gpu-type nvidia-l4` (or nvidia-rtx-pro-6000) with at least 4 vCPU and 16 GiB, and `--no-cpu-throttling` for instance-based billing\n2. Load model weights from Cloud Storage at startup in parallel; bake them into the image only below about 10 GB\n3. Turn zonal redundancy off for cheaper, more readily granted quota when failover isn't required\n4. Set minimum instances to 0 unless cold starts matter, since minimum instances bill at the full rate\n5. Send OAuth tokens in the `Authorization` header, never as `access_token` in the URL\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## Questions\n\n### Which is better for AI agents, Cloud Run GPUs or Modal?\n\nCloud Run GPUs scores 68.4 (B) on agent readiness against Modal's 62.7 (B), and leads in 4 of 7 scored categories. Modal leads on maintenance \u0026 community.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"cloud-run-gpus\", \"b\": \"modal\"}`. From a terminal: `anchor compare cloud-run-gpus modal`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cloud-run-gpus.json and https://www.anchorterminal.com/api/v1/tools/modal.json\n\n## Other comparisons with Cloud Run GPUs or Modal\n\n- [Baseten vs Cloud Run GPUs](https://www.anchorterminal.com/compare/baseten-vs-cloud-run-gpus.md)\n- [Baseten vs Modal](https://www.anchorterminal.com/compare/baseten-vs-modal.md)\n- [Beam vs Cloud Run GPUs](https://www.anchorterminal.com/compare/beam-vs-cloud-run-gpus.md)\n- [Beam vs Modal](https://www.anchorterminal.com/compare/beam-vs-modal.md)\n- [Cerebrium vs Cloud Run GPUs](https://www.anchorterminal.com/compare/cerebrium-vs-cloud-run-gpus.md)\n- [Cerebrium vs Modal](https://www.anchorterminal.com/compare/cerebrium-vs-modal.md)\n- [Cloud Run GPUs vs CoreWeave](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-coreweave.md)\n- [Cloud Run GPUs vs Crusoe Cloud](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-crusoe-cloud.md)\n- [Cloud Run GPUs vs GPUsMarket](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-gpusmarket.md)\n- [Cloud Run GPUs vs Hugging Face Inference Endpoints](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-hugging-face-inference-endpoints.md)\n- [Cloud Run GPUs vs Hyperbolic](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-hyperbolic.md)\n- [Cloud Run GPUs vs Lambda Cloud](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-lambda.md)\n- [Cloud Run GPUs vs Massed Compute](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-massed-compute.md)\n- [Cloud Run GPUs vs Nebius AI Cloud](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-nebius-ai-cloud.md)\n- [Cloud Run GPUs vs Northflank](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-northflank.md)\n- [Cloud Run GPUs vs Thunder Compute](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-thunder-compute.md)\n- [Cloud Run GPUs vs Together GPU Clusters](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-together-gpu-clusters.md)\n- [CoreWeave vs Modal](https://www.anchorterminal.com/compare/coreweave-vs-modal.md)\n- [Crusoe Cloud vs Modal](https://www.anchorterminal.com/compare/crusoe-cloud-vs-modal.md)\n- [GPUsMarket vs Modal](https://www.anchorterminal.com/compare/gpusmarket-vs-modal.md)\n- [Hugging Face Inference Endpoints vs Modal](https://www.anchorterminal.com/compare/hugging-face-inference-endpoints-vs-modal.md)\n- [Hyperbolic vs Modal](https://www.anchorterminal.com/compare/hyperbolic-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- [Massed Compute vs Modal](https://www.anchorterminal.com/compare/massed-compute-vs-modal.md)\n- [Modal vs Nebius AI Cloud](https://www.anchorterminal.com/compare/modal-vs-nebius-ai-cloud.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- [Modal vs Thunder Compute](https://www.anchorterminal.com/compare/modal-vs-thunder-compute.md)\n- [Modal vs Together GPU Clusters](https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters.md)\n- [Modal vs Vast.ai](https://www.anchorterminal.com/compare/modal-vs-vast-ai.md)\n- [Modal vs Verda](https://www.anchorterminal.com/compare/modal-vs-verda.md)\n- [Cloud Run GPUs vs Koyeb](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-koyeb.md)\n- [Cloud Run GPUs vs Replicate Deployments](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-replicate-deploy.md)\n- [Cloud Run GPUs vs Runpod](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-runpod.md)\n- [Cloud Run GPUs vs Vast.ai](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-vast-ai.md)\n- [Cloud Run GPUs vs Verda](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-verda.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Cloud Run GPUs vs Modal",
        "url": ""
      }
    ],
    "description": "Cloud Run GPUs scores 68.4 (B) to Modal's 62.7 (B) for compute serverless. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Cloud Run GPUs B 68.4",
      "Modal B 62.7",
      "scores"
    ],
    "h1": "Cloud Run GPUs vs Modal",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/cloud-run-gpus-vs-modal",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cloud Run GPUs vs Modal for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal"
  },
  "tokens": {
    "markdown": 4350,
    "slim": 2230
  },
  "version": 1
}
