Workflows SDK Quick Reference
This is an approximate API surface map -- not a substitute for the real SDK.
Always verify signatures against the installed package before generating code.
Contents
- Where to find the real SDK source
- API surface map (defining tasks, task options, triggering runs, error types)
- Instance types
- Retry defaults
- Environment variables
Where to find the real SDK source
Python
TypeScript
API surface map
Defining tasks
| Concept |
Python |
TypeScript |
| Entry point |
from render_sdk import Workflows |
import { task } from "@renderinc/sdk/workflows" |
| Define a task |
@app.task decorator |
task(options, fn) |
| Start server |
app.start() in __main__ |
Auto-starts via RENDER_SDK_SOCKET_PATH |
| Merge multi-file tasks |
Workflows.from_workflows(app1, app2) |
Side-effect imports in index.ts |
| Retry config |
Retry(max_retries, wait_duration_ms, backoff_scaling) |
{ maxRetries, waitDurationMs, backoffScaling } |
Task options
| Option |
Python (@app.task kwarg) |
TypeScript (task() first arg) |
| Name |
name |
name (required) |
| Retry |
retry (Retry instance) |
retry (object) |
| Timeout |
timeout_seconds |
timeoutSeconds |
| Instance type |
plan |
plan |
Workflow-level defaults: Workflows(default_retry=..., default_timeout=..., default_plan=...).
Triggering runs (client SDK)
| Concept |
Python sync (Render) |
Python async (RenderAsync) |
TypeScript (Render) |
| Fire-and-forget |
start_task() |
await start_task() |
await startTask() |
| Start + wait |
run_task() |
await run_task() |
await runTask() |
| Get run details |
get_task_run() |
await get_task_run() |
await getTaskRun() |
| List runs |
list_task_runs() |
await list_task_runs() |
await listTaskRuns() |
| Cancel run |
cancel_task_run() |
await cancel_task_run() |
await cancelTaskRun() |
| Stream events (SSE) |
task_run_events() |
task_run_events() |
taskRunEvents() |
Task identifier format: {workflow-slug}/{task-name}.
Error types
| Python |
TypeScript |
Notes |
RenderError |
RenderError |
Base class |
ClientError |
ClientError |
400-level |
RateLimitError |
— |
429 (subclass of ClientError) |
ServerError |
ServerError |
500-level |
TimeoutError |
— |
Request timeout |
TaskRunError |
— |
Task run failed |
| — |
AbortError |
Request aborted via AbortSignal |
Import paths -- Python: render_sdk.client.errors, TypeScript: @renderinc/sdk.
Instance types
| Plan |
Specs |
starter |
0.5 CPU / 512 MB |
standard (default) |
1 CPU / 2 GB |
pro |
2 CPU / 4 GB |
pro_plus |
4 CPU / 8 GB |
pro_max |
8 CPU / 16 GB |
pro_ultra |
16 CPU / 32 GB |
pro_plus, pro_max, pro_ultra require requesting access.
Retry defaults
| Scenario |
backoff_scaling default |
| Explicit retry config provided, field omitted |
1.5 |
| No retry config (built-in defaults) |
2.0 |
Environment variables
| Variable |
Purpose |
RENDER_API_KEY |
API authentication |
RENDER_SDK_SOCKET_PATH |
Unix socket (set by Render) |
RENDER_SDK_MODE |
"run" or "register" (set by Render) |
RENDER_SDK_AUTO_START |
TS only: "false" to disable |
RENDER_USE_LOCAL_DEV |
"true" for local task server |
RENDER_LOCAL_DEV_URL |
Custom local server URL |