{
  "data": {
    "a": {
      "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": 545,
        "ranked": true,
        "rankOf": 1510,
        "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"
      }
    },
    "answer": "Modal scores 62.7 (B) on agent readiness against Together GPU Clusters's 58.1 (C), and leads in 4 of 7 scored categories. Together GPU Clusters leads on schema \u0026 documentation.",
    "b": {
      "slug": "together-gpu-clusters",
      "name": "Together GPU Clusters",
      "vendor": "Together AI",
      "vendorUrl": "https://www.together.ai",
      "kind": "http-api",
      "category": "gpu-compute",
      "summary": "Together GPU Clusters rents multi-node NVIDIA H100, H200, B200 and B300 clusters with InfiniBand and shared storage, run as Kubernetes or Slurm, by the GPU-hour. Clusters are created and scaled from the console, the tg CLI, SDKs or REST API.",
      "url": "https://www.anchorterminal.com/tools/together-gpu-clusters",
      "markdownUrl": "https://www.anchorterminal.com/tools/together-gpu-clusters.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/together-gpu-clusters.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/together-gpu-clusters.json",
      "dns": "together-gpu-clusters.grade.anchorterminal.com",
      "repo": "https://github.com/togethercomputer/together-py",
      "license": "Proprietary service under Together's terms of service. The Python SDK and CLI are Apache-2.0 and the OpenAPI document is MIT",
      "transports": [],
      "remoteUrl": "https://api.together.ai/v1/compute/clusters",
      "packages": [
        {
          "registry": "pypi",
          "name": "together"
        },
        {
          "registry": "npm",
          "name": "together-ai"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer `TOGETHER_API_KEY`, scoped to a project, revocable and optionally expiring, the same keys as Together's other APIs. Only a project admin's key returns the cluster's admin kubeconfig. Team members can reach the Kubernetes API through OIDC with their own identity provider, and SSH uses OIDC or uploaded keys.",
      "pricing": "usage",
      "pricingNotes": "On-demand from $3.99 per GPU-hour (H100) to $9.99 (B300); reserved 3 to 180 days from $3.19 to $7.99; preemptible (preview) from $1.99. Storage per GiB-month. No ingress or egress fees. Reservations are prepaid and non-refundable, and creation needs enough credit to cover them.",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the GPU clusters docs, billing pages or OpenAPI document (checked 2026-11-06). An exhausted balance returns 402 to scale requests with no payment requirements.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.together.ai/docs/gpu-clusters-overview",
      "llmsTxt": "https://docs.together.ai/llms.txt",
      "openapi": "https://github.com/togethercomputer/openapi",
      "capabilities": [
        "compute.gpu",
        "compute.containers",
        "compute.batch"
      ],
      "tags": [
        "hosted",
        "official",
        "usage",
        "prepaid",
        "openapi",
        "llms-txt",
        "kubernetes",
        "slurm",
        "python",
        "typescript",
        "cli",
        "h100",
        "b200"
      ],
      "lastRelease": "2026-10-22",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.1,
        "grade": "C",
        "agentReady": false,
        "rank": 768,
        "ranked": true,
        "rankOf": 1510,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 55,
          "maintenance": 75,
          "payments": 20,
          "reliability": 38,
          "schema": 92,
          "security": 68,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "Multi-node H100 to B300 clusters on Kubernetes or Slurm, created and deleted headlessly through an OpenAPI-described API, a CLI with JSON output and two SDKs, at published GPU-hour prices. Clusters take 10 minutes to an hour to provision, can't be paused, and have no status component, SLA or idempotent create.",
        "bestFor": "Training, fine-tuning and batch jobs that need several 8-GPU nodes with InfiniBand, run by a pipeline that creates and deletes clusters.",
        "strengths": [
          "Public OpenAPI 3.1, llms.txt and Markdown docs, with an automation guide for CI pipelines",
          "Published per GPU-hour prices for on-demand, reserved and preemptible capacity, with no egress fees",
          "Kubernetes or Slurm on the same hardware, with InfiniBand and a persistent shared volume",
          "Automatic health checks and node repair, approved by hand or run automatically",
          "Project-scoped keys, admin-only kubeconfig and OIDC access for team members"
        ],
        "weaknesses": [
          "Provisioning takes 10 minutes to an hour, and a cluster can't be paused or scaled to zero",
          "No status page component, SLA or published rate limits for GPU clusters",
          "No idempotency key on creation, so a retried create can bill a second cluster",
          "No free trial; reservations are prepaid and non-refundable",
          "Volumes bill until deleted and outlive the clusters they were attached to"
        ],
        "agentNotes": [
          "Use `tg clusters`, not `tg beta clusters`, which stopped working with CLI 3.0 on 22 October 2026",
          "Pass `--json` and `--non-interactive`, poll `tg clusters retrieve` until status is Ready, and delete the cluster in a cleanup step",
          "Check for an existing cluster by name before retrying a create, since creation has no idempotency key",
          "Read live availability from the regions API and prices from the pricing page; the regions response has no prices",
          "Use a project admin's key when the task needs the kubeconfig, since other roles get none"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.1
          }
        ],
        "editorialScores": {
          "ergonomics": 55,
          "maintenance": 75,
          "payments": 20,
          "reliability": 38,
          "schema": 92,
          "security": 68,
          "transparency": 46
        },
        "provenanceScore": 83,
        "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": {
        "install": "uv tool install \"together[cli]\"",
        "http": "curl -H \"Authorization: Bearer $TOGETHER_API_KEY\" https://api.together.ai/v1/compute/clusters"
      },
      "letme": {
        "capability": "https://letme.dev/compute.gpu",
        "tool": "https://letme.dev/together-gpu-clusters"
      },
      "sameCompany": [
        "together-inference",
        "together-fine-tuning",
        "together-code-sandbox"
      ],
      "area": "models",
      "unitPrices": [
        {
          "item": "H100 on-demand",
          "unit": "gpu-hour",
          "usd": 3.99,
          "note": "reserved $3.69 to $3.19, preemptible $1.99"
        },
        {
          "item": "H200 on-demand",
          "unit": "gpu-hour",
          "usd": 5.99,
          "note": "reserved $4.99 to $3.99, preemptible $2.99"
        },
        {
          "item": "B200 on-demand",
          "unit": "gpu-hour",
          "usd": 8.19,
          "note": "reserved $7.99 to $6.79, preemptible $4.09"
        },
        {
          "item": "B300 on-demand",
          "unit": "gpu-hour",
          "usd": 9.99,
          "note": "preemptible $4.99, reserved by sales"
        }
      ],
      "provenance": {
        "legalEntity": "Together Computer, Inc.",
        "domain": "together.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.together.ai/terms-of-service",
        "privacy": "https://www.together.ai/privacy",
        "statusPage": "https://status.together.ai",
        "changelog": "https://docs.together.ai/docs/changelog",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "Legal entity, terms, privacy and security.txt as on the Together AI Inference listing, checked 1 November 2026, and not re-read for this listing.",
          "docs.together.ai/robots.txt disallows only /cdn-cgi/ and /_next/, with Content-Signal ai-train=yes, search=yes, ai-input=yes. www.together.ai/robots.txt allows all.",
          "status.together.ai has no component for GPU clusters on 6 November 2026."
        ],
        "score": 83
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/together-gpu-clusters.json",
      "live": {
        "slug": "together-gpu-clusters",
        "probe": {
          "target": "https://api.together.ai/v1/compute/clusters",
          "method": "get",
          "lastAt": "2026-11-07T22:56:27.360809678Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 259,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 492,
          "p95ms24h": 827,
          "samples24h": 244,
          "samples30d": 246,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 233,
              "ok": 233
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "togethercomputer/together-py",
            "version": "v3.1.1",
            "released": "2026-11-04",
            "seenAt": "2026-11-07T00:12:15.100983119Z"
          },
          {
            "registry": "npm",
            "name": "together-ai",
            "version": "1.0.0",
            "seenAt": "2026-11-07T00:12:15.067840103Z"
          },
          {
            "registry": "pypi",
            "name": "together",
            "version": "3.1.1",
            "released": "2026-11-04",
            "seenAt": "2026-11-07T00:12:14.921893617Z"
          }
        ],
        "githubStars": 12,
        "npmWeekly": 99619,
        "pypiWeekly": 424792,
        "securityTxt": {
          "url": "https://together.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2028-09-30T00:00:00.000Z",
          "checkedAt": "2026-11-07T16:00:47.073630606Z"
        },
        "llmsTxt": {
          "url": "https://docs.together.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:34:12.138384896Z"
        },
        "updatedAt": "2026-11-07T22:56:27.360809678Z"
      }
    },
    "edges": [
      {
        "by": 32,
        "category": "reliability",
        "leads": "modal",
        "name": "Reliability",
        "reasons": {
          "a": "Status page at status.modal.com (Better Stack) with per-component history and RSS (20). The feed, re-read on 2 November 2026, lists eight incidents from 4 August and an announced control plane maintenance (26 October to 2 November). Slow `.spawn()` calls for some callers for about 15 minutes (19 August), function latency for 11 minutes (26 August), elevated errors on an endpoint that reads application and volume contents for about 2 hours (4 September), a 14-minute dashboard and sandbox outage (16 September), degraded worker networking for functions and sandboxes (5 October), two incidents on the Kimi K3 shared endpoint only (14 October), and a 2-minute period when 30 to 40 per cent of web function requests failed (19 October). Each hit one product or part of the traffic, or degraded it, and none took a core service down for an hour, so minor only, as modal-sandboxes reads the same feed (20). Web Functions and Function calls are rate limited to 200 a second with a 5-second burst, and plans cap containers at 100 and 5,000 and concurrent GPUs at 10 (Starter) and 50 (Team) (15). Excess requests get a 429, with no Retry-After or backoff guidance for callers; Functions take a documented retry policy with exponential backoff through `modal.Retries` (5). No SLA on the pricing page (0). Functions, web endpoints and Servers are GA (10). 20+20+15+5+0+10 = 70.",
          "b": "Read with the hosted lines. status.together.ai lists the website, the playground and serverless models with no component for GPU clusters, and a vendor page with no component for the product takes 15 in this run, as for Together's Code Sandbox and fine-tuning listings (15). No incident history for clusters can be read (5). No rate limits for the clusters API found (0). Together's docs give 429 and 503 backoff guidance for its APIs, per the inference listing's 1 November check, and the CLI has `--non-interactive` and `--json` for scripted retries, but creation has no idempotency key (8). No SLA for clusters found; the published 99% commitment covers provisioned inference throughput only (0). Generally available since 9 September 2025 and out of the CLI's beta paths since 22 October 2026, with preemptible nodes in preview (10). 15+5+0+8+0+10 = 38."
        },
        "scores": {
          "a": 70,
          "b": 38
        }
      },
      {
        "by": 22,
        "category": "schema",
        "leads": "together-gpu-clusters",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "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.",
          "b": "Public OpenAPI 3.1 for /v1/compute/clusters and shared volumes, MIT, embedded in every reference page (25). llms.txt and a Markdown twin of every page (10). The docs say when to choose Kubernetes or Slurm and each capacity type, and the management page carries instructions for agents on reporting live availability and prices (18). Enums for cluster type, billing type, GPU type and status, required fields marked (13). CLI, Python, TypeScript and console steps on each task, with 402 and 403 cases documented, though no error catalogue for the clusters API (11). Versioned SDKs and a dated changelog with cluster entries (15). 25+10+18+13+11+15 = 92."
        },
        "scores": {
          "a": 70,
          "b": 92
        }
      },
      {
        "by": 10,
        "category": "maintenance",
        "leads": "modal",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "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.",
          "b": "Closed service. The newest cluster change is CLI and SDK 3.0 on 22 October 2026, 15 days before this check (30). Dated cluster entries in the 90 days from 8 August include 12, 18, 19, 24, 27 and 28 August, 10 September and 22 October (20). Dated changelog, a support portal and Discord, with responsiveness not tested (8). Python SDK 3.1 and TypeScript SDK 1.0 are current and cover clusters (15). SDK CI and dependencies weren't audited (2). 30+20+8+15+2 = 75."
        },
        "scores": {
          "a": 85,
          "b": 75
        }
      },
      {
        "by": 6,
        "category": "transparency",
        "leads": "modal",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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.",
          "b": "Closed service under Together's terms, with Apache-2.0 SDKs, which don't raise the line for a closed API (15). The privacy policy's data table covers GPU clusters, per the 4 November Code Sandbox check, and the billing page states when volumes are deleted after credit runs out, with no retention period for data on deleted clusters (15). The 3.0 breaking change came with a migration guide on the day, and reservations carry dated end-of-term emails, with no notice period for API changes found (8). Regions are listed through the API and US regions appear in examples; subprocessors and data locations for clusters were not established (8). 15+15+8+8 = 46."
        },
        "scores": {
          "a": 71,
          "b": 65
        }
      }
    ],
    "facts": [
      {
        "a": "Platform",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Modal",
        "b": "Together AI",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.together.ai/v1/compute/clusters",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0",
        "b": "Proprietary service under Together's terms of service. The Python SDK and CLI are Apache-2.0 and the OpenAPI document is MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-27",
        "b": "2026-10-22",
        "name": "Last release"
      },
      {
        "a": "2026-05-01",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2023-05-17",
        "b": "no date given",
        "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": "yes",
        "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": "514 stars, 941k npm/wk, 10.1M PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "4/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Modal scores 62.7 (B) on agent readiness against Together GPU Clusters's 58.1 (C), and leads in 4 of 7 scored categories. Together GPU Clusters leads on schema \u0026 documentation.",
        "question": "Which is better for AI agents, Modal or Together GPU Clusters?"
      },
      {
        "answer": "No hosted endpoint is listed for Modal. Together GPU Clusters has a hosted endpoint at https://api.together.ai/v1/compute/clusters.",
        "question": "Can an agent call Modal and Together GPU Clusters without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 70 against 38",
          "Maintenance \u0026 community, 85 against 75",
          "Transparency \u0026 trust, 71 against 65"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 92 against 70"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "Training, fine-tuning and batch jobs that need several 8-GPU nodes with InfiniBand, run by a pipeline that creates and deletes clusters.",
        "slug": "together-gpu-clusters",
        "watchFor": "Provisioning takes 10 minutes to an hour, and a cluster can't be paused or scaled to zero"
      }
    ],
    "history": {
      "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"
        }
      ],
      "together-gpu-clusters": null
    },
    "job": {
      "capability": "compute.gpu",
      "name": "GPU compute"
    },
    "others": [
      {
        "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/baseten-vs-together-gpu-clusters.json",
        "title": "Baseten vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/baseten-vs-together-gpu-clusters"
      },
      {
        "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/beam-vs-together-gpu-clusters.json",
        "title": "Beam vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/beam-vs-together-gpu-clusters"
      },
      {
        "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/cerebrium-vs-together-gpu-clusters.json",
        "title": "Cerebrium vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/cerebrium-vs-together-gpu-clusters"
      },
      {
        "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/coreweave-vs-together-gpu-clusters.json",
        "title": "CoreWeave vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/coreweave-vs-together-gpu-clusters"
      },
      {
        "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/crusoe-cloud-vs-together-gpu-clusters.json",
        "title": "Crusoe Cloud vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/crusoe-cloud-vs-together-gpu-clusters"
      },
      {
        "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/gpusmarket-vs-together-gpu-clusters.json",
        "title": "GPUsMarket vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/gpusmarket-vs-together-gpu-clusters"
      },
      {
        "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/hugging-face-inference-endpoints-vs-together-gpu-clusters.json",
        "title": "Hugging Face Inference Endpoints vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/hugging-face-inference-endpoints-vs-together-gpu-clusters"
      },
      {
        "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/hyperbolic-vs-together-gpu-clusters.json",
        "title": "Hyperbolic vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/hyperbolic-vs-together-gpu-clusters"
      },
      {
        "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/koyeb-vs-together-gpu-clusters.json",
        "title": "Koyeb vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/koyeb-vs-together-gpu-clusters"
      },
      {
        "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/lambda-vs-together-gpu-clusters.json",
        "title": "Lambda Cloud vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/lambda-vs-together-gpu-clusters"
      },
      {
        "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/massed-compute-vs-together-gpu-clusters.json",
        "title": "Massed Compute vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/massed-compute-vs-together-gpu-clusters"
      },
      {
        "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-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/nebius-ai-cloud-vs-together-gpu-clusters.json",
        "title": "Nebius AI Cloud vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/nebius-ai-cloud-vs-together-gpu-clusters"
      },
      {
        "json": "https://www.anchorterminal.com/compare/northflank-vs-together-gpu-clusters.json",
        "title": "Northflank vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/northflank-vs-together-gpu-clusters"
      },
      {
        "json": "https://www.anchorterminal.com/compare/replicate-deploy-vs-together-gpu-clusters.json",
        "title": "Replicate Deployments vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/replicate-deploy-vs-together-gpu-clusters"
      },
      {
        "json": "https://www.anchorterminal.com/compare/runpod-vs-together-gpu-clusters.json",
        "title": "Runpod vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/runpod-vs-together-gpu-clusters"
      },
      {
        "json": "https://www.anchorterminal.com/compare/thunder-compute-vs-together-gpu-clusters.json",
        "title": "Thunder Compute vs Together GPU Clusters",
        "url": "https://www.anchorterminal.com/compare/thunder-compute-vs-together-gpu-clusters"
      },
      {
        "json": "https://www.anchorterminal.com/compare/together-gpu-clusters-vs-vast-ai.json",
        "title": "Together GPU Clusters vs Vast.ai",
        "url": "https://www.anchorterminal.com/compare/together-gpu-clusters-vs-vast-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/together-gpu-clusters-vs-verda.json",
        "title": "Together GPU Clusters vs Verda",
        "url": "https://www.anchorterminal.com/compare/together-gpu-clusters-vs-verda"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal.json",
        "title": "Cloud Run GPUs vs Modal",
        "url": "https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 32,
        "edge": "modal",
        "key": "reliability",
        "modal": 70,
        "name": "Reliability",
        "together-gpu-clusters": 38,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 22,
        "edge": "together-gpu-clusters",
        "key": "schema",
        "modal": 70,
        "name": "Schema \u0026 documentation",
        "together-gpu-clusters": 92,
        "weight": 13
      },
      {
        "by": 2,
        "edge": "modal",
        "key": "ergonomics",
        "modal": 57,
        "name": "Agent ergonomics",
        "together-gpu-clusters": 55,
        "weight": 13
      },
      {
        "by": 0,
        "edge": "",
        "key": "security",
        "modal": 68,
        "name": "Security \u0026 auth",
        "together-gpu-clusters": 68,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "modal": 20,
        "name": "Payments \u0026 pricing",
        "together-gpu-clusters": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "modal",
        "key": "maintenance",
        "modal": 85,
        "name": "Maintenance \u0026 community",
        "together-gpu-clusters": 75,
        "weight": 7
      },
      {
        "by": 6,
        "edge": "modal",
        "key": "transparency",
        "modal": 71,
        "name": "Transparency \u0026 trust",
        "together-gpu-clusters": 65,
        "weight": 7
      }
    ],
    "summary": "Modal scores 62.7 (B) on agent readiness against Together GPU Clusters's 58.1 (C), and leads in 4 of 7 scored categories. Together GPU Clusters leads on schema \u0026 documentation. Both do gpu compute.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "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.",
      "together-gpu-clusters": "Multi-node H100 to B300 clusters on Kubernetes or Slurm, created and deleted headlessly through an OpenAPI-described API, a CLI with JSON output and two SDKs, at published GPU-hour prices. Clusters take 10 minutes to an hour to provision, can't be paused, and have no status component, SLA or idempotent create."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters",
    "json": "https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters.min.md"
  },
  "markdown": "Modal scores 62.7 (B) on agent readiness against Together GPU Clusters's 58.1 (C), and leads in 4 of 7 scored categories. Together GPU Clusters leads on schema \u0026 documentation. Both do gpu compute.\n\n- Modal: grade B, 62.7/100, rank #545 of 1510. Markdown https://www.anchorterminal.com/tools/modal.md · JSON https://www.anchorterminal.com/api/v1/tools/modal.json\n- Together GPU Clusters: grade C, 58.1/100, rank #768 of 1510. Markdown https://www.anchorterminal.com/tools/together-gpu-clusters.md · JSON https://www.anchorterminal.com/api/v1/tools/together-gpu-clusters.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### 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- Reliability, 70 against 38\n- Maintenance \u0026 community, 85 against 75\n- Transparency \u0026 trust, 71 against 65\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### Together GPU Clusters (C)\n\nGood for: Training, fine-tuning and batch jobs that need several 8-GPU nodes with InfiniBand, run by a pipeline that creates and deletes clusters.\n\nAhead on:\n- Schema \u0026 documentation, 92 against 70\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: Provisioning takes 10 minutes to an hour, and a cluster can't be paused or scaled to zero\n\n\n## Why the edge\n\n### Reliability: Modal +32\n\n- Modal (70): Status page at status.modal.com (Better Stack) with per-component history and RSS (20). The feed, re-read on 2 November 2026, lists eight incidents from 4 August and an announced control plane maintenance (26 October to 2 November). Slow `.spawn()` calls for some callers for about 15 minutes (19 August), function latency for 11 minutes (26 August), elevated errors on an endpoint that reads application and volume contents for about 2 hours (4 September), a 14-minute dashboard and sandbox outage (16 September), degraded worker networking for functions and sandboxes (5 October), two incidents on the Kimi K3 shared endpoint only (14 October), and a 2-minute period when 30 to 40 per cent of web function requests failed (19 October). Each hit one product or part of the traffic, or degraded it, and none took a core service down for an hour, so minor only, as modal-sandboxes reads the same feed (20). Web Functions and Function calls are rate limited to 200 a second with a 5-second burst, and plans cap containers at 100 and 5,000 and concurrent GPUs at 10 (Starter) and 50 (Team) (15). Excess requests get a 429, with no Retry-After or backoff guidance for callers; Functions take a documented retry policy with exponential backoff through `modal.Retries` (5). No SLA on the pricing page (0). Functions, web endpoints and Servers are GA (10). 20+20+15+5+0+10 = 70.\n- Together GPU Clusters (38): Read with the hosted lines. status.together.ai lists the website, the playground and serverless models with no component for GPU clusters, and a vendor page with no component for the product takes 15 in this run, as for Together's Code Sandbox and fine-tuning listings (15). No incident history for clusters can be read (5). No rate limits for the clusters API found (0). Together's docs give 429 and 503 backoff guidance for its APIs, per the inference listing's 1 November check, and the CLI has `--non-interactive` and `--json` for scripted retries, but creation has no idempotency key (8). No SLA for clusters found; the published 99% commitment covers provisioned inference throughput only (0). Generally available since 9 September 2025 and out of the CLI's beta paths since 22 October 2026, with preemptible nodes in preview (10). 15+5+0+8+0+10 = 38.\n\n### Schema \u0026 documentation: Together GPU Clusters +22\n\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- Together GPU Clusters (92): Public OpenAPI 3.1 for /v1/compute/clusters and shared volumes, MIT, embedded in every reference page (25). llms.txt and a Markdown twin of every page (10). The docs say when to choose Kubernetes or Slurm and each capacity type, and the management page carries instructions for agents on reporting live availability and prices (18). Enums for cluster type, billing type, GPU type and status, required fields marked (13). CLI, Python, TypeScript and console steps on each task, with 402 and 403 cases documented, though no error catalogue for the clusters API (11). Versioned SDKs and a dated changelog with cluster entries (15). 25+10+18+13+11+15 = 92.\n\n### Maintenance \u0026 community: Modal +10\n\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- Together GPU Clusters (75): Closed service. The newest cluster change is CLI and SDK 3.0 on 22 October 2026, 15 days before this check (30). Dated cluster entries in the 90 days from 8 August include 12, 18, 19, 24, 27 and 28 August, 10 September and 22 October (20). Dated changelog, a support portal and Discord, with responsiveness not tested (8). Python SDK 3.1 and TypeScript SDK 1.0 are current and cover clusters (15). SDK CI and dependencies weren't audited (2). 30+20+8+15+2 = 75.\n\n### Transparency \u0026 trust: Modal +6\n\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- Together GPU Clusters (65): Closed service under Together's terms, with Apache-2.0 SDKs, which don't raise the line for a closed API (15). The privacy policy's data table covers GPU clusters, per the 4 November Code Sandbox check, and the billing page states when volumes are deleted after credit runs out, with no retention period for data on deleted clusters (15). The 3.0 breaking change came with a migration guide on the day, and reservations carry dated end-of-term emails, with no notice period for API changes found (8). Regions are listed through the API and US regions appear in examples; subprocessors and data locations for clusters were not established (8). 15+15+8+8 = 46.\n\n## Score by category\n\n| Category | Weight | Modal | Together GPU Clusters | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 70 | 38 | Modal +32 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 70 | 92 | Together GPU Clusters +22 |\n| Agent ergonomics | 13% (16.2 this run) | 57 | 55 | Modal +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 68 | 68 | even |\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) | 85 | 75 | Modal +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 65 | Modal +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **62.7 · B** | **58.1 · C** | |\n\n## Facts side by side\n\n| Fact | Modal | Together GPU Clusters |\n| --- | --- | --- |\n| Kind | Platform | HTTP API |\n| Vendor | Modal | Together AI |\n| Hosted endpoint | no (local only) | `https://api.together.ai/v1/compute/clusters` |\n| Transports |  |  |\n| Auth | API key | API key |\n| Pricing | Freemium | Pay per use |\n| x402 | no | no |\n| Licence | Apache-2.0 | Proprietary service under Together's terms of service. The Python SDK and CLI are Apache-2.0 and the OpenAPI document is MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-27 | 2026-10-22 |\n| Terms last updated | 2026-05-01 | no date given |\n| Privacy policy last updated | 2023-05-17 | no date given |\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 | yes |\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 | 514 stars, 941k npm/wk, 10.1M PyPI/wk | none |\n| Agent reviews | 4/5 (2) | none |\n\n## How the scores have moved\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### Together GPU Clusters\n\nNo score change since it was listed.\n\n## Verdicts\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**Together GPU Clusters.** Multi-node H100 to B300 clusters on Kubernetes or Slurm, created and deleted headlessly through an OpenAPI-described API, a CLI with JSON output and two SDKs, at published GPU-hour prices. Clusters take 10 minutes to an hour to provision, can't be paused, and have no status component, SLA or idempotent create.\n\n## Before you call either\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### Together GPU Clusters\n\n1. Use `tg clusters`, not `tg beta clusters`, which stopped working with CLI 3.0 on 22 October 2026\n2. Pass `--json` and `--non-interactive`, poll `tg clusters retrieve` until status is Ready, and delete the cluster in a cleanup step\n3. Check for an existing cluster by name before retrying a create, since creation has no idempotency key\n4. Read live availability from the regions API and prices from the pricing page; the regions response has no prices\n5. Use a project admin's key when the task needs the kubeconfig, since other roles get none\n\n## Questions\n\n### Which is better for AI agents, Modal or Together GPU Clusters?\n\nModal scores 62.7 (B) on agent readiness against Together GPU Clusters's 58.1 (C), and leads in 4 of 7 scored categories. Together GPU Clusters leads on schema \u0026 documentation.\n\n### Can an agent call Modal and Together GPU Clusters without installing anything?\n\nNo hosted endpoint is listed for Modal. Together GPU Clusters has a hosted endpoint at https://api.together.ai/v1/compute/clusters.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters.json, and with the fewest tokens: https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"modal\", \"b\": \"together-gpu-clusters\"}`. From a terminal: `anchor compare modal together-gpu-clusters`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/modal.json and https://www.anchorterminal.com/api/v1/tools/together-gpu-clusters.json\n\n## Other comparisons with Modal or Together GPU Clusters\n\n- [Baseten vs Modal](https://www.anchorterminal.com/compare/baseten-vs-modal.md)\n- [Baseten vs Together GPU Clusters](https://www.anchorterminal.com/compare/baseten-vs-together-gpu-clusters.md)\n- [Beam vs Modal](https://www.anchorterminal.com/compare/beam-vs-modal.md)\n- [Beam vs Together GPU Clusters](https://www.anchorterminal.com/compare/beam-vs-together-gpu-clusters.md)\n- [Cerebrium vs Modal](https://www.anchorterminal.com/compare/cerebrium-vs-modal.md)\n- [Cerebrium vs Together GPU Clusters](https://www.anchorterminal.com/compare/cerebrium-vs-together-gpu-clusters.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- [CoreWeave vs Together GPU Clusters](https://www.anchorterminal.com/compare/coreweave-vs-together-gpu-clusters.md)\n- [Crusoe Cloud vs Modal](https://www.anchorterminal.com/compare/crusoe-cloud-vs-modal.md)\n- [Crusoe Cloud vs Together GPU Clusters](https://www.anchorterminal.com/compare/crusoe-cloud-vs-together-gpu-clusters.md)\n- [GPUsMarket vs Modal](https://www.anchorterminal.com/compare/gpusmarket-vs-modal.md)\n- [GPUsMarket vs Together GPU Clusters](https://www.anchorterminal.com/compare/gpusmarket-vs-together-gpu-clusters.md)\n- [Hugging Face Inference Endpoints vs Modal](https://www.anchorterminal.com/compare/hugging-face-inference-endpoints-vs-modal.md)\n- [Hugging Face Inference Endpoints vs Together GPU Clusters](https://www.anchorterminal.com/compare/hugging-face-inference-endpoints-vs-together-gpu-clusters.md)\n- [Hyperbolic vs Modal](https://www.anchorterminal.com/compare/hyperbolic-vs-modal.md)\n- [Hyperbolic vs Together GPU Clusters](https://www.anchorterminal.com/compare/hyperbolic-vs-together-gpu-clusters.md)\n- [Koyeb vs Modal](https://www.anchorterminal.com/compare/koyeb-vs-modal.md)\n- [Koyeb vs Together GPU Clusters](https://www.anchorterminal.com/compare/koyeb-vs-together-gpu-clusters.md)\n- [Lambda Cloud vs Modal](https://www.anchorterminal.com/compare/lambda-vs-modal.md)\n- [Lambda Cloud vs Together GPU Clusters](https://www.anchorterminal.com/compare/lambda-vs-together-gpu-clusters.md)\n- [Massed Compute vs Modal](https://www.anchorterminal.com/compare/massed-compute-vs-modal.md)\n- [Massed Compute vs Together GPU Clusters](https://www.anchorterminal.com/compare/massed-compute-vs-together-gpu-clusters.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 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- [Nebius AI Cloud vs Together GPU Clusters](https://www.anchorterminal.com/compare/nebius-ai-cloud-vs-together-gpu-clusters.md)\n- [Northflank vs Together GPU Clusters](https://www.anchorterminal.com/compare/northflank-vs-together-gpu-clusters.md)\n- [Replicate Deployments vs Together GPU Clusters](https://www.anchorterminal.com/compare/replicate-deploy-vs-together-gpu-clusters.md)\n- [Runpod vs Together GPU Clusters](https://www.anchorterminal.com/compare/runpod-vs-together-gpu-clusters.md)\n- [Thunder Compute vs Together GPU Clusters](https://www.anchorterminal.com/compare/thunder-compute-vs-together-gpu-clusters.md)\n- [Together GPU Clusters vs Vast.ai](https://www.anchorterminal.com/compare/together-gpu-clusters-vs-vast-ai.md)\n- [Together GPU Clusters vs Verda](https://www.anchorterminal.com/compare/together-gpu-clusters-vs-verda.md)\n- [Cloud Run GPUs vs Modal](https://www.anchorterminal.com/compare/cloud-run-gpus-vs-modal.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": "Modal vs Together GPU Clusters",
        "url": ""
      }
    ],
    "description": "Modal scores 62.7 (B) to Together GPU Clusters's 58.1 (C) for gpu compute. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Modal B 62.7",
      "Together GPU Clusters C 58.1",
      "scores"
    ],
    "h1": "Modal vs Together GPU Clusters",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/modal-vs-together-gpu-clusters",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Modal vs Together GPU Clusters for AI agents (2026) | Anchor Terminal",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/modal-vs-together-gpu-clusters"
  },
  "tokens": {
    "markdown": 4500,
    "slim": 2230
  },
  "version": 1
}
