GET
/
services
/
{service}
/
handlers
/
{handler}
{
  "name": "<string>",
  "ty": "Exclusive",
  "documentation": "<string>",
  "metadata": {},
  "idempotency_retention": "<string>",
  "journal_retention": "<string>",
  "inactivity_timeout": "<string>",
  "abort_timeout": "<string>",
  "enable_lazy_state": true,
  "public": true,
  "input_description": "<string>",
  "output_description": "<string>",
  "input_json_schema": "<any>",
  "output_json_schema": "<any>",
  "retry_policy": {
    "initial_interval": "<string>",
    "exponentiation_factor": 123,
    "max_attempts": 2,
    "max_interval": "<string>",
    "on_max_attempts": "Pause"
  }
}

Path Parameters

service
string
required

Fully qualified service name.

handler
string
required

Handler name.

Response

name
string
required

The handler name.

input_description
string
required

If empty, no schema was provided by the user at discovery time.

output_description
string
required

If empty, no schema was provided by the user at discovery time.

ty
enum<string>

The handler type.

Available options:
Exclusive,
Shared,
Workflow
documentation
string | null

Documentation of the handler, as propagated by the SDKs.

metadata
object

Additional handler metadata, as propagated by the SDKs.

idempotency_retention
string | null

The retention duration of idempotent requests for this handler. If set, it overrides the value set in the service.

Can be configured using the jiff::fmt::friendly format or ISO8601, for example 5 hours.

journal_retention
string | null

The journal retention. When set, this applies to all requests to this handler.

In case the invocation has an idempotency key, the idempotency_retention caps the maximum journal_retention time. In case this handler is a workflow handler, the workflow_completion_retention caps the maximum journal_retention time.

Can be configured using the jiff::fmt::friendly format or ISO8601, for example 5 hours.

If set, it overrides the value set in the service.

inactivity_timeout
string | null

This timer guards against stalled service/handler invocations. Once it expires, Restate triggers a graceful termination by asking the service invocation to suspend (which preserves intermediate progress).

The 'abort timeout' is used to abort the invocation, in case it doesn't react to the request to suspend.

Can be configured using the jiff::fmt::friendly format or ISO8601, for example 5 hours.

If set, it overrides the value set in the service.

abort_timeout
string | null

This timer guards against stalled service/handler invocations that are supposed to terminate. The abort timeout is started after the 'inactivity timeout' has expired and the service/handler invocation has been asked to gracefully terminate. Once the timer expires, it will abort the service/handler invocation.

This timer potentially interrupts user code. If the user code needs longer to gracefully terminate, then this value needs to be set accordingly.

Can be configured using the jiff::fmt::friendly format or ISO8601, for example 5 hours.

If set, it overrides the value set in the service.

enable_lazy_state
boolean | null

If true, lazy state will be enabled for all invocations to this service. This is relevant only for Workflows and Virtual Objects.

If set, it overrides the value set in the service.

public
boolean
default:true

If true, this handler can be invoked through the ingress. If false, this handler can be invoked only from another Restate service.

input_json_schema
any

JSON Schema of the handler input

output_json_schema
any

JSON Schema of the handler output

retry_policy
object

Retry policy overrides applied for this handler.