Apache Flink REST API
The REST API provides programmatic access to monitor and control Flink jobs and clusters. It supports job submission, cluster management, metrics retrieval, checkpoint management, and TaskManager administration.
The REST API provides programmatic access to monitor and control Flink jobs and clusters. It supports job submission, cluster management, metrics retrieval, checkpoint management, and TaskManager administration.
openapi: 3.0.1
info:
title: Flink JobManager REST API
contact:
email: [email protected]
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: v1/2.0-SNAPSHOT
paths:
/cluster:
delete:
description: Shuts down the cluster
operationId: shutdownCluster
responses:
"200":
description: The request was successful.
summary: Apache Flink Delete Cluster
/config:
get:
description: Returns the configuration of the WebUI.
operationId: getDashboardConfiguration
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/DashboardConfiguration'
summary: Apache Flink List Config
/datasets:
get:
description: Returns all cluster data sets.
operationId: getClusterDataSetList
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/ClusterDataSetListResponseBody'
summary: Apache Flink List Datasets
/datasets/delete/{triggerid}:
get:
description: Returns the status for the delete operation of a cluster data set.
operationId: getClusterDataSetDeleteStatus
parameters:
- name: triggerid
in: path
description: 32-character hexadecimal string that identifies an asynchronous operation trigger ID. The ID was returned then the operation was triggered.
required: true
schema:
$ref: '#/components/schemas/TriggerId'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/AsynchronousOperationResult'
summary: Apache Flink Get Datasets Delete
/datasets/{datasetid}:
delete:
description: Triggers the deletion of a cluster data set. This async operation would return a 'triggerid' for further query identifier.
operationId: deleteClusterDataSet
parameters:
- name: datasetid
in: path
description: 32-character hexadecimal string value that identifies a cluster data set.
required: true
schema:
$ref: '#/components/schemas/IntermediateDataSetID'
responses:
"202":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/TriggerResponse'
summary: Apache Flink Delete Datasets
/jars:
get:
description: Returns a list of all jars previously uploaded via '/jars/upload'.
operationId: getJarList
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JarListInfo'
summary: Apache Flink List Jars
/jars/upload:
post:
description: |-
Uploads a jar to the cluster. The jar must be sent as multi-part data. Make sure that the "Content-Type" header is set to "application/x-java-archive", as some http libraries do not add the header by default.
Using 'curl' you can upload a jar via 'curl -X POST -H "Expect:" -F "jarfile=@path/to/flink-job.jar" http://hostname:port/jars/upload'.
operationId: uploadJar
requestBody:
content:
application/x-java-archive:
schema:
type: string
format: binary
required: true
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JarUploadResponseBody'
summary: Apache Flink Create Jars Upload
/jars/{jarid}:
delete:
description: Deletes a jar previously uploaded via '/jars/upload'.
operationId: deleteJar
parameters:
- name: jarid
in: path
description: "String value that identifies a jar. When uploading the jar a path is returned, where the filename is the ID. This value is equivalent to the `id` field in the list of uploaded jars
(/jars)."
required: true
schema:
type: string
responses:
"200":
description: The request was successful.
summary: Apache Flink Delete Jars
/jars/{jarid}/plan:
post:
description: Returns the dataflow plan of a job contained in a jar previously uploaded via '/jars/upload'. Program arguments can be passed both via the JSON request (recommended) or query
parameters.
operationId: generatePlanFromJar
parameters:
- name: jarid
in: path
description: "String value that identifies a jar. When uploading the jar a path is returned, where the filename is the ID. This value is equivalent to the `id` field in the list of uploaded jars
(/jars)."
required: true
schema:
type: string
- name: programArg
in: query
description: Comma-separated list of program arguments.
required: false
style: form
schema:
type: string
- name: entry-class
in: query
description: String value that specifies the fully qualified name of the entry point class. Overrides the class defined in the jar file manifest.
required: false
style: form
schema:
type: string
- name: parallelism
in: query
description: Positive integer value that specifies the desired parallelism for the job.
required: false
style: form
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JarPlanRequestBody'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JobPlanInfo'
summary: Apache Flink Create Jars Plan
/jars/{jarid}/run:
post:
description: Submits a job by running a jar previously uploaded via '/jars/upload'. Program arguments can be passed both via the JSON request (recommended) or query parameters.
operationId: submitJobFromJar
parameters:
- name: jarid
in: path
description: "String value that identifies a jar. When uploading the jar a path is returned, where the filename is the ID. This value is equivalent to the `id` field in the list of uploaded jars
(/jars)."
required: true
schema:
type: string
- name: allowNonRestoredState
in: query
description: Boolean value that specifies whether the job submission should be rejected if the savepoint contains state that cannot be mapped back to the job.
required: false
style: form
schema:
type: boolean
- name: savepointPath
in: query
description: String value that specifies the path of the savepoint to restore the job from.
required: false
style: form
schema:
type: string
- name: programArg
in: query
description: Comma-separated list of program arguments.
required: false
style: form
schema:
type: string
- name: entry-class
in: query
description: String value that specifies the fully qualified name of the entry point class. Overrides the class defined in the jar file manifest.
required: false
style: form
schema:
type: string
- name: parallelism
in: query
description: Positive integer value that specifies the desired parallelism for the job.
required: false
style: form
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JarRunRequestBody'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JarRunResponseBody'
summary: Apache Flink Create Jars Run
/jobmanager/config:
get:
description: Returns the cluster configuration.
operationId: getClusterConfigurationInfo
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ConfigurationInfoEntry'
summary: Apache Flink List Jobmanager Config
/jobmanager/environment:
get:
description: Returns the jobmanager environment.
operationId: getJobManagerEnvironment
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/EnvironmentInfo'
summary: Apache Flink List Jobmanager Environment
/jobmanager/logs:
get:
description: Returns the list of log files on the JobManager.
operationId: getJobManagerLogList
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/LogListInfo'
summary: Apache Flink List Jobmanager Logs
/jobmanager/metrics:
get:
description: Provides access to job manager metrics.
operationId: getJobManagerMetrics
parameters:
- name: get
in: query
description: Comma-separated list of string values to select specific metrics.
required: false
style: form
schema:
type: string
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/MetricCollectionResponseBody'
summary: Apache Flink List Jobmanager Metrics
/jobmanager/thread-dump:
get:
description: Returns the thread dump of the JobManager.
operationId: getJobManagerThreadDump
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/ThreadDumpInfo'
summary: Apache Flink List Jobmanager Thread-Dump
/jobs:
get:
description: Returns an overview over all jobs and their current state.
operationId: getJobIdsWithStatusesOverview
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JobIdsWithStatusOverview'
summary: Apache Flink List Jobs
/jobs/metrics:
get:
description: Provides access to aggregated job metrics.
operationId: getAggregatedJobMetrics
parameters:
- name: get
in: query
description: Comma-separated list of string values to select specific metrics.
required: false
style: form
schema:
type: string
- name: agg
in: query
description: "Comma-separated list of aggregation modes which should be calculated. Available aggregations are: \"min, max, sum, avg, skew\"."
required: false
style: form
schema:
$ref: '#/components/schemas/AggregationMode'
- name: jobs
in: query
description: Comma-separated list of 32-character hexadecimal strings to select specific jobs.
required: false
style: form
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/AggregatedMetricsResponseBody'
summary: Apache Flink List Jobs Metrics
/jobs/overview:
get:
description: Returns an overview over all jobs.
operationId: getJobsOverview
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/MultipleJobsDetails'
summary: Apache Flink List Jobs Overview
/jobs/{jobid}:
get:
description: Returns details of a job.
operationId: getJobDetails
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JobDetailsInfo'
summary: Apache Flink Get Jobs
patch:
description: Terminates a job.
operationId: cancelJob
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: mode
in: query
description: "String value that specifies the termination mode. The only supported value is: \"cancel\"."
required: false
style: form
schema:
$ref: '#/components/schemas/TerminationMode'
responses:
"202":
description: The request was successful.
summary: Apache Flink Update Jobs
/jobs/{jobid}/accumulators:
get:
description: "Returns the accumulators for all tasks of a job, aggregated across the respective subtasks."
operationId: getJobAccumulators
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: includeSerializedValue
in: query
description: Boolean value that specifies whether serialized user task accumulators should be included in the response.
required: false
style: form
schema:
type: boolean
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JobAccumulatorsInfo'
summary: Apache Flink List Jobs Accumulators
/jobs/{jobid}/checkpoints:
get:
description: Returns checkpointing statistics for a job.
operationId: getCheckpointingStatistics
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/CheckpointingStatistics'
summary: Apache Flink List Jobs Checkpoints
post:
description: Triggers a checkpoint. The 'checkpointType' parameter does not support 'INCREMENTAL' option for now. See FLINK-33723. This async operation would return a 'triggerid' for further
query identifier.
operationId: triggerCheckpoint
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CheckpointTriggerRequestBody'
responses:
"202":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/TriggerResponse'
summary: Apache Flink Create Jobs Checkpoints
/jobs/{jobid}/checkpoints/config:
get:
description: Returns the checkpointing configuration.
operationId: getCheckpointConfig
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/CheckpointConfigInfo'
summary: Apache Flink List Checkpoints Config
/jobs/{jobid}/checkpoints/details/{checkpointid}:
get:
description: Returns details for a checkpoint.
operationId: getCheckpointStatisticDetails
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: checkpointid
in: path
description: Long value that identifies a checkpoint.
required: true
schema:
type: integer
format: int64
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/CheckpointStatistics'
summary: Apache Flink Get Checkpoints Details
/jobs/{jobid}/checkpoints/details/{checkpointid}/subtasks/{vertexid}:
get:
description: Returns checkpoint statistics for a task and its subtasks.
operationId: getTaskCheckpointStatistics
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: checkpointid
in: path
description: Long value that identifies a checkpoint.
required: true
schema:
type: integer
format: int64
- name: vertexid
in: path
description: 32-character hexadecimal string value that identifies a job vertex.
required: true
schema:
$ref: '#/components/schemas/JobVertexID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/TaskCheckpointStatisticsWithSubtaskDetails'
summary: Apache Flink Get Details Subtasks
/jobs/{jobid}/checkpoints/{triggerid}:
get:
description: Returns the status of a checkpoint trigger operation.
operationId: getCheckpointStatus
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: triggerid
in: path
description: 32-character hexadecimal string that identifies an asynchronous operation trigger ID. The ID was returned then the operation was triggered.
required: true
schema:
$ref: '#/components/schemas/TriggerId'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/AsynchronousOperationResult'
summary: Apache Flink Get Jobs Checkpoints
/jobs/{jobid}/clientHeartbeat:
patch:
description: Report the jobClient's aliveness.
operationId: triggerHeartbeat
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JobClientHeartbeatRequestBody'
responses:
"202":
description: The request was successful.
summary: Apache Flink Update Jobs Clientheartbeat
/jobs/{jobid}/config:
get:
description: Returns the configuration of a job.
operationId: getJobConfig
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JobConfigInfo'
summary: Apache Flink List Jobs Config
/jobs/{jobid}/exceptions:
get:
description: "Returns the most recent exceptions that have been handled by Flink for this job. The 'exceptionHistory.truncated' flag defines whether exceptions were filtered out through the GET parameter.
The backend collects only a specific amount of most recent exceptions per job. This can be configured through web.exception-history-size in the Flink configuration. The following first-level members
are deprecated: 'root-exception', 'timestamp', 'all-exceptions', and 'truncated'. Use the data provided through 'exceptionHistory', instead."
operationId: getJobExceptions
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: maxExceptions
in: query
description: Comma-separated list of integer values that specifies the upper limit of exceptions to return.
required: false
style: form
schema:
type: integer
format: int32
- name: failureLabelFilter
in: query
description: Collection of string values working as a filter in the form of `key:value` pairs allowing only exceptions with ALL of the specified failure labels to be returned.
required: false
style: form
schema:
$ref: '#/components/schemas/FailureLabel'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JobExceptionsInfoWithHistory'
summary: Apache Flink List Jobs Exceptions
/jobs/{jobid}/execution-result:
get:
description: Returns the result of a job execution. Gives access to the execution time of the job and to all accumulators created by this job.
operationId: getJobExecutionResult
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JobExecutionResultResponseBody'
summary: Apache Flink List Jobs Execution-Result
/jobs/{jobid}/jobmanager/config:
get:
description: Returns the jobmanager's configuration of a specific job.
operationId: getJobManagerJobConfiguration
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ConfigurationInfoEntry'
summary: Apache Flink List Jobmanager Config
/jobs/{jobid}/jobmanager/environment:
get:
description: Returns the jobmanager's environment of a specific job.
operationId: getJobManagerJobEnvironment
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/EnvironmentInfo'
summary: Apache Flink List Jobmanager Environment
/jobs/{jobid}/jobmanager/log-url:
get:
description: Returns the log url of jobmanager of a specific job.
operationId: getJobManagerLogUrl
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/LogUrlResponse'
summary: Apache Flink List Jobmanager Log-Url
/jobs/{jobid}/metrics:
get:
description: Provides access to job metrics.
operationId: getJobMetrics
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: get
in: query
description: Comma-separated list of string values to select specific metrics.
required: false
style: form
schema:
type: string
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/MetricCollectionResponseBody'
summary: Apache Flink List Jobs Metrics
/jobs/{jobid}/plan:
get:
description: Returns the dataflow plan of a job.
operationId: getJobPlan
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JobPlanInfo'
summary: Apache Flink List Jobs Plan
/jobs/{jobid}/rescaling:
patch:
description: Triggers the rescaling of a job. This async operation would return a 'triggerid' for further query identifier.
operationId: rescaleJob
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: parallelism
in: query
description: Positive integer value that specifies the desired parallelism.
required: true
style: form
schema:
type: integer
format: int32
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/TriggerResponse'
summary: Apache Flink Update Jobs Rescaling
/jobs/{jobid}/rescaling/{triggerid}:
get:
description: Returns the status of a rescaling operation.
operationId: getRescalingStatus
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: triggerid
in: path
description: 32-character hexadecimal string that identifies an asynchronous operation trigger ID. The ID was returned then the operation was triggered.
required: true
schema:
$ref: '#/components/schemas/TriggerId'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/AsynchronousOperationResult'
summary: Apache Flink Get Jobs Rescaling
/jobs/{jobid}/resource-requirements:
get:
description: Request details on the job's resource requirements.
operationId: getJobResourceRequirements
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/JobResourceRequirementsBody'
summary: Apache Flink List Jobs Resource-Requirements
put:
description: Request to update job's resource requirements.
operationId: updateJobResourceRequirements
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JobResourceRequirementsBody'
responses:
"200":
description: The request was successful.
summary: Apache Flink Update Jobs Resource-Requirements
/jobs/{jobid}/savepoints:
post:
description: "Triggers a savepoint, and optionally cancels the job afterwards. This async operation would return a 'triggerid' for further query identifier."
operationId: triggerSavepoint
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SavepointTriggerRequestBody'
responses:
"202":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/TriggerResponse'
summary: Apache Flink Create Jobs Savepoints
/jobs/{jobid}/savepoints/{triggerid}:
get:
description: Returns the status of a savepoint operation.
operationId: getSavepointStatus
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
- name: triggerid
in: path
description: 32-character hexadecimal string that identifies an asynchronous operation trigger ID. The ID was returned then the operation was triggered.
required: true
schema:
$ref: '#/components/schemas/TriggerId'
responses:
"200":
description: The request was successful.
content:
application/json:
schema:
$ref: '#/components/schemas/AsynchronousOperationResult'
summary: Apache Flink Get Jobs Savepoints
/jobs/{jobid}/status:
get:
description: Returns the current status of a job execution.
operationId: getJobStatusInfo
parameters:
- name: jobid
in: path
description: 32-character hexadecimal string value that identifies a job.
required: true
schema:
$ref: '#/components/schemas/JobID'
responses:
"200":
description: The request was succ
# --- truncated at 32 KB (98 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/apache-flink/refs/heads/main/openapi/apache-flink-rest-openapi-original.yml