Skip to main content

Pricing Overview

Stateway's pricing model is built around a single principle: you pay where value is delivered. Value is created at two distinct moments:

  • Design-time: when a business rule is captured and versioned (process or decision definition)
  • Run-time: when the engine executes or advances a process

Reads (queries) are always free because they strengthen the observability and audit loop — Stateway's core differentiator. Charging for reads would directly penalize compliance and audit use cases, which depend on frequent and unrestricted queries.


SOp: The Unit of Measure

Every billable operation consumes exactly 1 SOp (Stateway Operation). There are no fractions, no weights per operation type — any billable operation is precisely 1 SOp.

Real-time consumption granularity is available via the GET /tenant/usage endpoint:

{
"period": "2026-04",
"total_sops": 18420,
"breakdown": {
"definitions": 12,
"process_instances": 9800,
"task_completions": 6100,
"dmm_evaluations": 1450,
"events_sent": 1058
}
}

Billable Operations — 1 SOp Each

Design-time

OperationEndpoint
Create process definition (BPMN, JSON, or YAML)POST /definitions
Create new version of process definitionPUT /definitions/:key
Create DMN definitionPOST /decisions
Create new version of DMN definitionPUT /decisions/:key

Run-time

OperationEndpoint
Instantiate processPOST /instances
Complete human taskPOST /tasks/:id/complete
Delegate human taskPOST /tasks/:id/delegate
Send event to instance (message or signal)POST /instances/:id/events
Broadcast signal to all waiting instancesPOST /events/signal/:signal_name
Correlate external messagePOST /events/message/:message_name
Evaluate DMN decision directly (without process instance)POST /decisions/:key/evaluate
Suspend instancePOST /instances/:id/suspend
Resume suspended instancePOST /instances/:id/resume
Terminate instancePOST /instances/:id/terminate
Update instance variablesPOST /instances/:id/variables
Execute instance searchPOST /instances/search

Free Operations — Always

All Reads

Any GET operation on any endpoint is free and unrestricted, with no rate limit per plan. This includes querying instances, execution tokens, history, tasks, timers, webhooks, audit log, usage metrics, and health checks.

Setup and Infrastructure Operations

OperationEndpointRationale
Claim human taskPOST /tasks/:id/claimQueue administration; no execution advance
Unclaim human taskPOST /tasks/:id/unclaimQueue administration; no execution advance
Create webhook subscriptionPOST /webhooksInfrastructure configuration
Update webhook subscriptionPUT /webhooks/:idInfrastructure configuration
Send test webhookPOST /webhooks/:id/testSetup validation
Create API KeyPOST /auth/keysAuthentication operation
Timer fires (system-initiated)Not directly controllable by the user; charging would create unpredictable billing
Webhook retries (system)Stateway infrastructure cost, not tenant cost

Why Timers Are Free

A process with timeCycle: R/PT5M (repeating every 5 minutes) would generate 8,640 fires per month without the user touching any endpoint. Charging for timer fires would create completely unpredictable billing for users who rely on timers at scale — for example, SLA processes with automatic escalation or business retry cycles. The cost is already captured in the POST /instances call that activated the process.