• Docs
  • Changelog
Sign in
Get started
    • Home
    • Your first deploy
    • Free instances
    • Platform features by plan
    • Use with coding agents
    • FAQ
    • Templates
      • Migrate from…
        • Heroku
        • Railway
    • Compute plans
    • SandboxesBeta
      • Service types
        • Which to use?
        • Static sites
        • Web services
        • Private services
        • Background workers
        • Cron jobs
        • Workflows
        • Multi-service architectures
      • Data storage
        • Render Postgres
        • Render Key Value (Redis®-compatible)
        • Persistent disks
    • How deploys work
    • Supported languages
    • Git providers (GitHub, etc.)
    • Build pipeline
    • Deploy hooks
    • Monorepo support
    • Troubleshooting deploys
      • Previewing changes
        • Single-service previews
        • Preview environments (multi-service)
      • Docker deploys
        • Overview
        • Deploy a registered image
        • Using secrets
      • Runtime
        • Native runtimes
        • Environment variables & secrets
        • Default environment variables
    • Intro to sandboxes
    • Limits
      • How to…
        • Create & configure sandboxes
        • Execute commands
        • Manage files
        • Manage snapshots
      • Use with…
        • Claude Managed Agents
        • Cursor Cloud Agents
        • OpenAI Agents API
      • SDK/CLI reference
        • TypeScript SDK
        • Python SDK
        • CLI commands
    • Intro to workflows
    • Tutorial
    • Limits & pricing
      • How to…
        • Define tasks
        • Define flowsNew
        • Trigger runs
        • Develop locally
      • SDK reference
        • TypeScript SDK
        • Python SDK
      • Example workflows
        • TypeScript examples
        • Python examples
    • Overview
    • Create & connect
    • Database credentials
    • Extensions
    • Version upgrades
    • Logical replication
    • Legacy instance types
      • Database recovery
        • Recovery & backups
        • High availability
      • Database performance
        • Read replicas
        • Connection pooling
        • Admin apps
        • Repacking tables
        • Troubleshooting performance
    • Regions
    • Inbound IP rules
    • Edge caching
    • WebSockets
    • TLS certificates
      • Custom domains
        • Overview
        • Cloudflare
        • Namecheap
        • Other DNS providers
      • Internal traffic
        • Private network
        • Private links
      • Outbound traffic
        • Default IP ranges
        • Dedicated IP addresses
        • Outbound bandwidth
        • Handling network changes
      • Static site config
        • Custom response headers
        • Redirects & rewrites
    • The Render Dashboard
    • SSH / Shell access
    • Projects & environments
      • Service actions
        • Scaling
        • Rollbacks
        • Maintenance mode
        • One-off jobs
      • Infrastructure as code
        • Blueprints overview
        • render.yaml reference
        • Terraform provider
    • In-dashboard metrics
    • Health checks
    • Uptime best practices
      • Logging
        • In-dashboard logs
        • Log streams (syslog/HTTPS)
      • OpenTelemetry (OTel) metrics
        • Provider setup
        • Metrics reference
      • Notifications
        • Webhooks
        • Email / Slack
    • MCP Server
      • Render CLI
        • Overview
        • Command reference
      • REST API
        • Overview
        • API reference
      • Third-party connections
        • OIDC support
        • Datadog
    • Workspaces, members, & roles
    • Login settings
    • Audit logs
      • Organizations
        • Overview
        • SAML SSO
    • DDoS protection
    • Platform maintenance
      • Compliance
        • Overview
        • HIPAA (US health data)
        • HIPAA best practices
        • Shared responsibility model
        • Pentest policy
    • Heroku vs Render
    • Vercel vs Render

Limits and Pricing for Render Workflows

Render bills for the following components of workflows:

BillableDescription

Compute usage

Render bills for each run of a task or flow based on its compute plan and duration.

See details.

Temporary state retention

Render temporarily retains the input arguments and return value of each run and step to support retries and debugging.

See details.

If a run sends network requests over the public internet, that traffic contributes to your workspace's usage of outbound bandwidth.

Compute plans

Each run executes on one of the following compute plans, which determines its specs and pricing:

Compute PlanSpecs
Price

flex (default)

Up to 1 CPU
Up to 4 GB RAM

Varies with CPU/RAM usage (see details)

2c-4g
(Formerly pro)

2 CPU
4 GB RAM
$0.40 / hour

2c-8g

2 CPU
8 GB RAM
$0.70 / hour

4c-8g
(Formerly pro_plus)

4 CPU
8 GB RAM
$1.00 / hour

4c-16g
(Formerly pro_max)

4 CPU
16 GB RAM
$1.50 / hour

8c-32g
(Formerly pro_ultra)

8 CPU
32 GB RAM
$2.50 / hour
  • Billing for compute usage is prorated by the second.
    • If a run executes on the 2c-4g compute plan for a half-hour, Render bills you $0.20, not $0.40.
  • You can specify which compute plan to use for each task and flow.

Need larger workflow compute plans?

Reach out with details about your use case:

Talk to our team

The flex compute plan

The flex compute plan is special: it's billed based on the CPU and RAM a run actually uses, not the plan's maximum specs (1 CPU, 4 GB RAM). All other compute plans are billed at a fixed rate based on specs.

Pricing for flex is as follows:

Resource
Price
Notes

CPU

$0.20 / CPU-hour

Measured as cumulative virtual CPU time over the run's full duration

RAM

$0.05 / GB-hour

Sampled multiple times per second

If a flex run constantly uses the entirety of its available CPU and RAM, it's billed at the maximum rate of $0.40 / hour. But for runs that use fewer resources, the rate can be dramatically lower:

Avg CPUAvg RAM
Flex price

0.1

0.2 GB

$0.02 + $0.01 = $0.03 / hour

1

1 GB

$0.20 + $0.05 = $0.25 / hour

1

4 GB

$0.20 + $0.20 = $0.40 / hour

(Full usage)

Render applies a minimum charge to extremely small flex runs, equivalent to one second of execution at 0.1 CPU and 0.1 GB RAM.

For workflows, the legacy plan names starter and standard both alias to flex.

State retention

Render temporarily retains the input arguments and return value of each run and step to support retries, debugging, and observability. This state is retained for 30 days.

Workflow state retention is billed monthly at $0.25 per GB. Render bills for each run and step's state only once (even though state is often retained across multiple billing periods).

For example, if the combined size of all your run and step state in a billing period is 200 MB, Render bills you $0.05.

Compute limits

A workflow service has a maximum amount of CPU and RAM it can provision in total and per minute for its runs:

LimitDescription

Total compute

A workflow service's active runs can have combined compute specs totaling up to 10,000 CPU and 40,000 GB RAM.

New compute per minute

Every minute, a workflow service can create new runs with combined specs totaling up to the following CPU and RAM limits (based on your workspace plan):

Workspace PlanCPU per minuteRAM per minute
Hobby16 CPU64 GB
Pro or higher32 CPU128 GB

If a new run would exceed a compute limit, Render queues it as usual. Queued runs spin up in order as resources become available.

Need to increase these workflow limits?

Reach out with details about your use case:

Talk to our team

API rate limits

Render enforces separate API rate limits for triggering root-level runs and chained runs. These limits are enforced at the workspace level, not per-workflow.

LimitDescription

Root-level runs

These are the runs you trigger from any source outside the workflow itself (web apps, agents, CI/CD, and so on).

All mechanisms for triggering a root-level run (including the Render SDK) use the Render API's Run task and Run flow endpoints under the hood.

These endpoints enforce the following rate limits per workspace:

Workspace PlanPer-workspace rate limit
Hobby50 requests per minute
Pro or higher1500 requests per minute

Whenever a request to one of these endpoints is rate limited, Render returns a 429 error. In this case, Render does not queue the run.

Chained runs

These are task runs that you trigger from another task run that belongs to the same workflow service. Learn more.

Render enforces a workspace-level rate limit of 1000 chained runs per minute.

Whenever an attempted chained run is rate limited, the call to ctx.run() fails with an error. In this case, Render does not queue the run.

Additional limits

LimitDescription

Run duration

By default, each attempt of a run times out after 2 hours. You can extend this to up to 24 hours on a per-task and per-flow basis.

Argument size

The total size of all arguments passed to any given run or step cannot exceed 4 MB.

Task and flow definitions

A single workflow service can register a maximum of 500 definitions of tasks and flows (combined).

Step count

Each flow run can execute up to 10,000 steps, with up to 100 attempts per step.

Step output size

The return value of any given step cannot exceed 4 MB.

Limits and Pricing for Render Workflows
  • Compute plans
    • The flex compute plan
  • State retention
  • Compute limits
  • API rate limits
  • Additional limits
Partially Degraded Service
© Render Inc. All rights reserved.