Skip to main content
PATCH
Update process

Authorizations

Authorization
string
header
required

API key authentication. Pass your API key as a Bearer token in the Authorization header.

Path Parameters

id
string<uuid>
required

Application identifier

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Example:

"fb5e5168-4281-4bec-94c5-0d1584e9e657"

process_id
string<uuid>
required

Process identifier

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Example:

"fb5e5168-4281-4bec-94c5-0d1584e9e657"

Body

application/json
display_name
string

Human-readable name for the process shown in the dashboard. Cannot contain backticks, dollar signs, double quotes, backslashes or control characters.

Required string length: 1 - 255
Example:

"web"

entrypoint
string

Command used to start the process

Maximum string length: 1024
Example:

"npm start"

resource_type_id
string

Identifier of the process resource type (machine size) to assign. Use the List Process Resource Types endpoint to retrieve available options.

Example:

"fb5e5168-4281-4bec-94c5-0d1584e9e657"

scaling_strategy
object

Scaling configuration for the process. A process with a disk can only use manual scaling with at most one instance.

port
integer

Port number the process listens on for incoming connections

Required range: 1 <= x <= 65535
Example:

8080

is_ingress_enabled
boolean

Whether external traffic routing is enabled for this process. Only applicable to web processes.

Example:

true

ingress_protocol
enum<string>

Ingress protocol for the process. http - standard HTTP/HTTPS traffic. grpc - gRPC protocol. Only applicable to web processes. The change is applied asynchronously by syncing the ingress configuration.

Available options:
http,
grpc
Example:

"http"

schedule
string

Cron expression defining the execution schedule. Only applicable to cron processes.

Maximum string length: 100
Example:

"0 */6 * * *"

time_zone
string

IANA time zone for the cron schedule. Only applicable to cron processes.

Maximum string length: 100
Example:

"America/New_York"

concurrency_policy
enum<string>

How to handle a scheduled run when the previous run is still active. Forbid skips the new run until the current one finishes. Replace cancels the running job and starts a new one, which prevents a stuck run from blocking the schedule. Only applicable to cron processes.

Available options:
Forbid,
Replace
Example:

"Forbid"

active_deadline_seconds
integer

Maximum run time in seconds. For cron processes, each scheduled run is terminated when it runs longer than this. Send 0 to turn off an existing limit. For job processes, the job is stopped and the deployment fails when the job runs longer than this. A job is also stopped when the deployment reaches its overall time limit (30 minutes by default). Send 0 to go back to the default of 600 seconds. Ignored for web and worker processes.

Required range: 0 <= x <= 9007199254740991
Example:

3600

job_start_policy
enum<string>

When the job process should run relative to deployments. beforeDeployment - run after the build and before the new version of the other processes rolls out. If the job fails, the deployment fails and the running processes stay on the previous version. afterSuccessDeployment - run after a successful deployment. afterFailedDeployment - run after a failed deployment. Only applicable to job processes.

Available options:
beforeDeployment,
afterSuccessDeployment,
afterFailedDeployment
Example:

"beforeDeployment"

liveness_probe
object

Kubernetes liveness probe configuration. Only HTTP GET probes (httpGet) are supported, and a probe without httpGet.path is not saved. Only applicable to web processes.

readiness_probe
object

Kubernetes readiness probe configuration. Only HTTP GET probes (httpGet) are supported, and a probe without httpGet.path is not saved. Only applicable to web processes.

Response

Default Response

id
string<uuid>
required

Unique identifier for the process

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Example:

"fb5e5168-4281-4bec-94c5-0d1584e9e657"

app_id
string<uuid> | null
required

Identifier of the application this process belongs to

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Example:

"fb5e5168-4281-4bec-94c5-0d1584e9e657"

key
string
required

Unique key identifying the process within the application, derived from the Procfile entry name

Required string length: 1 - 64
Example:

"web"

type
enum<string> | null
required

Process runtime type. web - HTTP server process that handles incoming web traffic. worker - background process that runs continuously. cron - scheduled process that runs at specified intervals. job - one-time process that runs to completion and then stops.

Available options:
web,
worker,
cron,
job
Example:

"web"

display_name
string | null
required

Human-readable name for the process shown in the dashboard

Required string length: 1 - 255
Example:

"Web Process"

entrypoint
string
required

Command used to start the process

Maximum string length: 1024
Example:

"npm start"

port
integer | null
required

Port number the process listens on for incoming connections

Required range: 1 <= x <= 65535
Example:

8080

is_ingress_enabled
boolean
required

Whether external traffic routing is enabled for this process. Only applicable to web processes.

Example:

true

ingress_protocol
enum<string> | null
required

Protocol used for ingress traffic. http - standard HTTP/HTTPS traffic. grpc - gRPC protocol. Only applicable to web processes.

Available options:
http,
grpc
Example:

"http"

scaling_strategy
object
required

Scaling configuration for the process

Example:
resource_type_id
string<uuid> | null
required

Identifier of the process resource type (machine size) assigned to this process. Use the List Process Resource Types endpoint to retrieve available options.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Example:

"fb5e5168-4281-4bec-94c5-0d1584e9e657"

resource_type_name
string | null
required

Name of the resource type (machine size) assigned to this process

Example:

"s1"

cpu_limit
integer | null
required

Maximum CPU allocation in millicores

Required range: 1 <= x <= 9007199254740991
Example:

500

memory_limit
integer | null
required

Maximum memory allocation in megabytes

Required range: 1 <= x <= 9007199254740991
Example:

512

schedule
string | null
required

Cron expression defining the execution schedule. Only applicable to cron processes.

Maximum string length: 100
Example:

"0 * * * *"

time_zone
string | null
required

IANA time zone for the cron schedule. Only applicable to cron processes.

Maximum string length: 100
Example:

"America/New_York"

concurrency_policy
enum<string> | null
required

How to handle a scheduled run when the previous run is still active. Forbid skips the new run until the current one finishes. Replace cancels the running job and starts a new one, which prevents a stuck run from blocking the schedule. Defaults to Forbid. Only applicable to cron processes.

Available options:
Forbid,
Replace
Example:

"Forbid"

active_deadline_seconds
integer | null
required

Maximum run time in seconds. For cron processes, each scheduled run is terminated when it runs longer than this, and null means no limit. For job processes, the job is stopped and the deployment fails when the job runs longer than this, and null means the default of 600 seconds. A job is also stopped when the deployment reaches its overall time limit (30 minutes by default). Not used for web and worker processes.

Required range: 1 <= x <= 9007199254740991
Example:

3600

job_start_policy
enum<string> | null
required

When the job process should run relative to deployments. beforeDeployment - run after the build and before the new version of the other processes rolls out. If the job fails, the deployment fails and the running processes stay on the previous version. afterSuccessDeployment - run after a successful deployment. afterFailedDeployment - run after a failed deployment. Only applicable to job processes.

Available options:
beforeDeployment,
afterSuccessDeployment,
afterFailedDeployment
Example:

"afterSuccessDeployment"

liveness_probe
object | null
required

Kubernetes liveness probe configuration. Used to detect when a process is stuck and needs to be restarted. Only populated for web processes.

Example:
readiness_probe
object | null
required

Kubernetes readiness probe configuration. Used to determine when a process is ready to receive traffic. Only populated for web processes.

Example:
internal_hostname
string | null
required

Internal Kubernetes DNS hostname for service-to-service communication within the cluster

Example:

"my-app-web.my-app-abc123.svc.cluster.local"

created_at
string<date-time>
required

Timestamp when the process was created, in ISO 8601 format

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Example:

"2025-01-30T00:00:00.000Z"

updated_at
string<date-time>
required

Timestamp when the process was last modified, in ISO 8601 format

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
Example:

"2025-01-30T00:00:00.000Z"