Azure Durable Functions Orchestrations API
Orchestration instance management
Orchestration instance management
openapi: 3.1.0
info:
title: Azure Durable Functions HTTP Entities Orchestrations API
description: The Azure Durable Functions extension exposes built-in HTTP APIs for managing orchestrations, entities, and task hubs. These HTTP APIs are extensibility webhooks authorized by the Azure Functions host and handled by the Durable Functions extension. Use them to start orchestrations, query status, raise events, terminate, suspend, resume, rewind, signal entities, and purge history.
version: v2
contact:
name: Microsoft Azure
url: https://learn.microsoft.com/en-us/azure/azure-functions/durable/
servers:
- url: https://{appName}.azurewebsites.net
description: Function App in Azure
variables:
appName:
default: myfuncapp
- url: http://localhost:7071
description: Local development with Azure Functions Core Tools
security:
- systemKey: []
tags:
- name: Orchestrations
description: Orchestration instance management
paths:
/runtime/webhooks/durabletask/orchestrators/{functionName}:
post:
operationId: startOrchestration
summary: Start orchestration
description: Starts a new instance of the specified orchestrator function.
tags:
- Orchestrations
parameters:
- name: functionName
in: path
required: true
schema:
type: string
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
requestBody:
required: false
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'202':
description: Orchestrator scheduled
content:
application/json:
schema:
$ref: '#/components/schemas/StartResponse'
'400':
description: Bad request
/runtime/webhooks/durabletask/orchestrators/{functionName}/{instanceId}:
post:
operationId: startOrchestrationWithId
summary: Start orchestration with explicit instance ID
tags:
- Orchestrations
parameters:
- name: functionName
in: path
required: true
schema:
type: string
- name: instanceId
in: path
required: true
schema:
type: string
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
requestBody:
required: false
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'202':
description: Orchestrator scheduled
content:
application/json:
schema:
$ref: '#/components/schemas/StartResponse'
'400':
description: Bad request
/runtime/webhooks/durabletask/instances:
get:
operationId: listInstances
summary: List instances
description: Queries the status of multiple orchestration instances.
tags:
- Orchestrations
parameters:
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
- name: createdTimeFrom
in: query
schema:
type: string
format: date-time
- name: createdTimeTo
in: query
schema:
type: string
format: date-time
- name: runtimeStatus
in: query
schema:
type: string
- name: instanceIdPrefix
in: query
schema:
type: string
- name: showInput
in: query
schema:
type: boolean
- name: top
in: query
schema:
type: integer
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/InstanceStatus'
delete:
operationId: purgeInstances
summary: Purge multiple instance histories
tags:
- Orchestrations
parameters:
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
- name: createdTimeFrom
in: query
schema:
type: string
format: date-time
- name: createdTimeTo
in: query
schema:
type: string
format: date-time
- name: runtimeStatus
in: query
schema:
type: string
responses:
'200':
description: Purge result
content:
application/json:
schema:
$ref: '#/components/schemas/PurgeResult'
'404':
description: No instances matched
/runtime/webhooks/durabletask/instances/{instanceId}:
parameters:
- name: instanceId
in: path
required: true
schema:
type: string
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
get:
operationId: getInstanceStatus
summary: Get instance status
tags:
- Orchestrations
parameters:
- name: showHistory
in: query
schema:
type: boolean
- name: showHistoryOutput
in: query
schema:
type: boolean
- name: showInput
in: query
schema:
type: boolean
- name: returnInternalServerErrorOnFailure
in: query
schema:
type: boolean
responses:
'200':
description: Instance completed or failed
content:
application/json:
schema:
$ref: '#/components/schemas/InstanceStatus'
'202':
description: Instance running
content:
application/json:
schema:
$ref: '#/components/schemas/InstanceStatus'
'404':
description: Instance not found
delete:
operationId: purgeInstance
summary: Purge single instance history
tags:
- Orchestrations
responses:
'200':
description: Purge result
content:
application/json:
schema:
$ref: '#/components/schemas/PurgeResult'
'404':
description: Instance not found
/runtime/webhooks/durabletask/instances/{instanceId}/raiseEvent/{eventName}:
post:
operationId: raiseEvent
summary: Raise event
description: Sends an event notification to a running orchestration instance.
tags:
- Orchestrations
parameters:
- name: instanceId
in: path
required: true
schema:
type: string
- name: eventName
in: path
required: true
schema:
type: string
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
requestBody:
required: true
content:
application/json:
schema: {}
responses:
'202':
description: Event accepted
'400':
description: Bad request
'404':
description: Instance not found
'410':
description: Instance no longer accepting events
/runtime/webhooks/durabletask/instances/{instanceId}/terminate:
post:
operationId: terminateInstance
summary: Terminate instance
tags:
- Orchestrations
parameters:
- name: instanceId
in: path
required: true
schema:
type: string
- name: reason
in: query
schema:
type: string
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
responses:
'202':
description: Termination accepted
'404':
description: Instance not found
'410':
description: Instance already completed or failed
/runtime/webhooks/durabletask/instances/{instanceId}/suspend:
post:
operationId: suspendInstance
summary: Suspend instance
tags:
- Orchestrations
parameters:
- name: instanceId
in: path
required: true
schema:
type: string
- name: reason
in: query
schema:
type: string
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
responses:
'202':
description: Suspension accepted
'404':
description: Instance not found
'410':
description: Instance cannot be suspended
/runtime/webhooks/durabletask/instances/{instanceId}/resume:
post:
operationId: resumeInstance
summary: Resume instance
tags:
- Orchestrations
parameters:
- name: instanceId
in: path
required: true
schema:
type: string
- name: reason
in: query
schema:
type: string
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
responses:
'202':
description: Resume accepted
'404':
description: Instance not found
'410':
description: Instance cannot be resumed
/runtime/webhooks/durabletask/instances/{instanceId}/rewind:
post:
operationId: rewindInstance
summary: Rewind instance (preview)
tags:
- Orchestrations
parameters:
- name: instanceId
in: path
required: true
schema:
type: string
- name: reason
in: query
schema:
type: string
- $ref: '#/components/parameters/TaskHub'
- $ref: '#/components/parameters/Connection'
- $ref: '#/components/parameters/Code'
responses:
'202':
description: Rewind accepted
'404':
description: Instance not found
'410':
description: Instance cannot be rewound
components:
parameters:
Code:
name: code
in: query
schema:
type: string
TaskHub:
name: taskHub
in: query
schema:
type: string
Connection:
name: connection
in: query
schema:
type: string
schemas:
PurgeResult:
type: object
properties:
instancesDeleted:
type: integer
StartResponse:
type: object
properties:
id:
type: string
statusQueryGetUri:
type: string
sendEventPostUri:
type: string
terminatePostUri:
type: string
purgeHistoryDeleteUri:
type: string
rewindPostUri:
type: string
suspendPostUri:
type: string
resumePostUri:
type: string
InstanceStatus:
type: object
properties:
instanceId:
type: string
runtimeStatus:
type: string
enum:
- Running
- Pending
- Failed
- Canceled
- Terminated
- Completed
- Suspended
input: {}
customStatus: {}
output: {}
createdTime:
type: string
format: date-time
lastUpdatedTime:
type: string
format: date-time
historyEvents:
type: array
items:
type: object
additionalProperties: true
securitySchemes:
systemKey:
type: apiKey
in: query
name: code
externalDocs:
description: Durable Functions HTTP API documentation
url: https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-http-api