Apache NiFi Connections API
Manage connections between processors
Manage connections between processors
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/apache-nifi:apache-nifi-connections-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact:
email: dev@nifi.apache.org
url: https://nifi.apache.org
description: REST API definition for Apache NiFi web services
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
title: Apache NiFi REST Connections API
version: 2.12.0
security:
- HTTPBearerJWT: []
- CookieSecureAuthorizationBearer: []
tags:
- name: Connections
paths:
/connections/{id}:
delete:
operationId: deleteConnection
parameters:
- description: The revision is used to verify the client is working with the latest version of the flow.
in: query
name: version
schema:
$ref: '#/components/schemas/LongParameter'
- description: If the client id is not specified, new one will be generated. This value (whether specified or generated) is included in the response.
in: query
name: clientId
schema:
$ref: '#/components/schemas/ClientIdParameter'
- description: Acknowledges that this node is disconnected to allow for mutable requests to proceed.
in: query
name: disconnectedNodeAcknowledged
schema:
type: boolean
default: false
- description: The connection id.
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectionEntity'
'400':
description: NiFi was unable to complete the request because it was invalid. The request should not be retried without modification.
'401':
description: Client could not be authenticated.
'403':
description: Client is not authorized to make this request.
'404':
description: The specified resource could not be found.
'409':
description: The request was valid but NiFi was not in the appropriate state to process it.
security:
- Write Source - /{component-type}/{uuid}: []
- Write - Parent Process Group - /process-groups/{uuid}: []
- Write Destination - /{component-type}/{uuid}: []
summary: Deletes a connection
tags:
- Connections
get:
operationId: getConnection
parameters:
- description: The connection id.
in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectionEntity'
'400':
description: NiFi was unable to complete the request because it was invalid. The request should not be retried without modification.
'401':
description: Client could not be authenticated.
'403':
description: Client is not authorized to make this request.
'404':
description: The specified resource could not be found.
'409':
description: The request was valid but NiFi was not in the appropriate state to process it.
security:
- Read Source - /{component-type}/{uuid}: []
- Read Destination - /{component-type}/{uuid}: []
summary: Gets a connection
tags:
- Connections
put:
operationId: updateConnection
parameters:
- description: The connection id.
in: path
name: id
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectionEntity'
description: The connection configuration details.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ConnectionEntity'
'400':
description: NiFi was unable to complete the request because it was invalid. The request should not be retried without modification.
'401':
description: Client could not be authenticated.
'403':
description: Client is not authorized to make this request.
'404':
description: The specified resource could not be found.
'409':
description: The request was valid but NiFi was not in the appropriate state to process it.
security:
- Write Source - /{component-type}/{uuid}: []
- Write Destination - /{component-type}/{uuid}: []
- Write New Destination - /{component-type}/{uuid} - if updating Destination: []
- Write Process Group - /process-groups/{uuid} - if updating Destination: []
summary: Updates a connection
tags:
- Connections
components:
schemas:
ConnectionStatusDTO:
type: object
description: The status of the connection.
properties:
aggregateSnapshot:
$ref: '#/components/schemas/ConnectionStatusSnapshotDTO'
destinationId:
type: string
description: The ID of the destination component
destinationName:
type: string
description: The name of the destination component
groupId:
type: string
description: The ID of the Process Group that the connection belongs to
id:
type: string
description: The ID of the connection
name:
type: string
description: The name of the connection
nodeSnapshots:
type: array
description: A list of status snapshots for each node
items:
$ref: '#/components/schemas/NodeConnectionStatusSnapshotDTO'
sourceId:
type: string
description: The ID of the source component
sourceName:
type: string
description: The name of the source component
statsLastRefreshed:
type: string
description: The timestamp of when the stats were last refreshed
ConnectionEntity:
type: object
description: The connections in this flow.
properties:
bends:
type: array
description: The bend points on the connection.
items:
$ref: '#/components/schemas/PositionDTO'
bulletins:
type: array
description: The bulletins for this component.
items:
$ref: '#/components/schemas/BulletinEntity'
component:
$ref: '#/components/schemas/ConnectionDTO'
destinationGroupId:
type: string
description: The identifier of the group of the destination of this connection.
destinationId:
type: string
description: The identifier of the destination of this connection.
destinationType:
type: string
description: The type of component the destination connectable is.
enum:
- PROCESSOR
- REMOTE_INPUT_PORT
- REMOTE_OUTPUT_PORT
- INPUT_PORT
- OUTPUT_PORT
- FUNNEL
disconnectedNodeAcknowledged:
type: boolean
description: Acknowledges that this node is disconnected to allow for mutable requests to proceed.
getzIndex:
type: integer
format: int64
description: The z index of the connection.
id:
type: string
description: The id of the component.
labelIndex:
type: integer
format: int32
description: The index of the bend point where to place the connection label.
permissions:
$ref: '#/components/schemas/PermissionsDTO'
position:
$ref: '#/components/schemas/PositionDTO'
revision:
$ref: '#/components/schemas/RevisionDTO'
sourceGroupId:
type: string
description: The identifier of the group of the source of this connection.
sourceId:
type: string
description: The identifier of the source of this connection.
sourceType:
type: string
description: The type of component the source connectable is.
enum:
- PROCESSOR
- REMOTE_INPUT_PORT
- REMOTE_OUTPUT_PORT
- INPUT_PORT
- OUTPUT_PORT
- FUNNEL
status:
$ref: '#/components/schemas/ConnectionStatusDTO'
uri:
type: string
description: The URI for futures requests to the component.
required:
- destinationType
- sourceType
xml:
name: connectionEntity
PermissionsDTO:
type: object
description: The permissions for this component.
properties:
canRead:
type: boolean
description: Indicates whether the user can read a given resource.
readOnly: true
canWrite:
type: boolean
description: Indicates whether the user can write a given resource.
readOnly: true
BulletinEntity:
type: object
description: The bulletins for this component.
properties:
bulletin:
$ref: '#/components/schemas/BulletinDTO'
canRead:
type: boolean
description: Indicates whether the user can read a given resource.
readOnly: true
groupId:
type: string
id:
type: integer
format: int64
nodeAddress:
type: string
sourceId:
type: string
timestamp:
type: string
description: When this bulletin was generated.
timestampIso:
type: string
description: When this bulletin was generated in ISO format with full date and milliseconds.
xml:
name: bulletinEntity
BulletinDTO:
type: object
properties:
category:
type: string
description: The category of this bulletin.
groupId:
type: string
description: The group id of the source component.
id:
type: integer
format: int64
description: The id of the bulletin.
level:
type: string
description: The level of the bulletin.
message:
type: string
description: The bulletin message.
nodeAddress:
type: string
description: If clustered, the address of the node from which the bulletin originated.
sourceId:
type: string
description: The id of the source component.
sourceName:
type: string
description: The name of the source component.
sourceType:
type: string
description: The type of the source component
stackTrace:
type: string
description: The stack trace associated with the bulletin, if any.
timestamp:
type: string
description: When this bulletin was generated.
timestampIso:
type: string
description: When this bulletin was generated in ISO format with full date and milliseconds.
ConnectionStatusSnapshotDTO:
type: object
properties:
bytesIn:
type: integer
format: int64
description: The size of the FlowFiles that have come into the connection in the last 5 minutes.
bytesOut:
type: integer
format: int64
description: The number of bytes that have left the connection in the last 5 minutes.
bytesQueued:
type: integer
format: int64
description: The size of the FlowFiles that are currently queued in the connection.
destinationId:
type: string
description: The id of the destination of the connection.
destinationName:
type: string
description: The name of the destination of the connection.
flowFileAvailability:
type: string
description: The availability of FlowFiles in this connection
flowFilesIn:
type: integer
format: int32
description: The number of FlowFiles that have come into the connection in the last 5 minutes.
flowFilesOut:
type: integer
format: int32
description: The number of FlowFiles that have left the connection in the last 5 minutes.
flowFilesQueued:
type: integer
format: int32
description: The number of FlowFiles that are currently queued in the connection.
groupId:
type: string
description: The id of the process group the connection belongs to.
id:
type: string
description: The id of the connection.
input:
type: string
description: The input count/size for the connection in the last 5 minutes, pretty printed.
loadBalanceStatus:
type: string
description: The load balance status of the connection
enum:
- LOAD_BALANCE_NOT_CONFIGURED
- LOAD_BALANCE_ACTIVE
- LOAD_BALANCE_INACTIVE
name:
type: string
description: The name of the connection.
output:
type: string
description: The output count/size for the connection in the last 5 minutes, pretty printed.
percentUseBytes:
type: integer
format: int32
description: Connection percent use regarding queued FlowFiles size and backpressure threshold if configured.
percentUseCount:
type: integer
format: int32
description: Connection percent use regarding queued FlowFiles count and backpressure threshold if configured.
predictions:
$ref: '#/components/schemas/ConnectionStatusPredictionsSnapshotDTO'
queued:
type: string
description: The total count and size of queued FlowFiles formatted.
queuedCount:
type: string
description: The number of FlowFiles that are queued, pretty printed.
queuedSize:
type: string
description: The total size of FlowFiles that are queued formatted.
sourceId:
type: string
description: The id of the source of the connection.
sourceName:
type: string
description: The name of the source of the connection.
LongParameter:
type: object
properties:
long:
type: integer
format: int64
ClientIdParameter:
type: object
properties:
clientId:
type: string
ConnectableDTO:
type: object
description: The destination of the connection.
properties:
comments:
type: string
description: The comments for the connectable component.
exists:
type: boolean
description: If the connectable component represents a remote port, indicates if the target exists.
groupId:
type: string
description: The id of the group that the connectable component resides in
id:
type: string
description: The id of the connectable component.
name:
type: string
description: The name of the connectable component
running:
type: boolean
description: Reflects the current state of the connectable component.
transmitting:
type: boolean
description: If the connectable component represents a remote port, indicates if the target is configured to transmit.
type:
type: string
description: The type of component the connectable is.
enum:
- PROCESSOR
- REMOTE_INPUT_PORT
- REMOTE_OUTPUT_PORT
- INPUT_PORT
- OUTPUT_PORT
- FUNNEL
versionedComponentId:
type: string
description: The ID of the corresponding component that is under version control
required:
- groupId
- id
- type
PositionDTO:
type: object
description: The position of this component in the UI if applicable.
properties:
x:
type: number
format: double
description: The x coordinate.
y:
type: number
format: double
description: The y coordinate.
ConnectionDTO:
type: object
description: The connections in this flow snippet.
properties:
availableRelationships:
type: array
description: The relationships that the source of the connection currently supports.
items:
type: string
description: The relationships that the source of the connection currently supports.
readOnly: true
readOnly: true
uniqueItems: true
backPressureDataSizeThreshold:
type: string
description: The object data size threshold for determining when back pressure is applied. Updating this value is a passive change in the sense that it won't impact whether existing files over the limit are affected but it does help feeder processors to stop pushing too much into this work queue.
backPressureObjectThreshold:
type: integer
format: int64
description: The object count threshold for determining when back pressure is applied. Updating this value is a passive change in the sense that it won't impact whether existing files over the limit are affected but it does help feeder processors to stop pushing too much into this work queue.
bends:
type: array
description: The bend points on the connection.
items:
$ref: '#/components/schemas/PositionDTO'
destination:
$ref: '#/components/schemas/ConnectableDTO'
flowFileExpiration:
type: string
description: The amount of time a flow file may be in the flow before it will be automatically aged out of the flow. Once a flow file reaches this age it will be terminated from the flow the next time a processor attempts to start work on it.
getzIndex:
type: integer
format: int64
description: The z index of the connection.
id:
type: string
description: The id of the component.
labelIndex:
type: integer
format: int32
description: The index of the bend point where to place the connection label.
loadBalanceCompression:
type: string
description: 'Whether or not data should be compressed when being transferred between nodes in the cluster. Possible returned values: DO_NOT_COMPRESS, COMPRESS_ATTRIBUTES_ONLY, COMPRESS_ATTRIBUTES_AND_CONTENT. See LoadBalanceCompression.class for more details.'
loadBalancePartitionAttribute:
type: string
description: The FlowFile Attribute to use for determining which node a FlowFile will go to if the Load Balancing Strategy is set to PARTITION_BY_ATTRIBUTE
loadBalanceStatus:
type: string
description: 'The current status of the Connection''s Load Balancing Activities. Status can indicate that Load Balancing is not configured for the connection, that Load Balancing is configured but inactive (not currently transferring data to another node), or that Load Balancing is configured and actively transferring data to another node. Possible returned values: LOAD_BALANCE_NOT_CONFIGURED, LOAD_BALANCE_INACTIVE, LOAD_BALANCE_ACTIVE. See LoadBalanceStatus.class for more details.'
readOnly: true
loadBalanceStrategy:
type: string
description: 'How to load balance the data in this Connection across the nodes in the cluster. Possible returned values: DO_NOT_LOAD_BALANCE, PARTITION_BY_ATTRIBUTE, ROUND_ROBIN, SINGLE_NODE. See LoadBalanceStrategy.class for more details.'
name:
type: string
description: The name of the connection.
parentGroupId:
type: string
description: The id of parent process group of this component if applicable.
position:
$ref: '#/components/schemas/PositionDTO'
prioritizers:
type: array
description: The comparators used to prioritize the queue.
items:
type: string
description: The comparators used to prioritize the queue.
retriedRelationships:
type: array
description: The relationships from the source of the connection that are configured to be retried.
items:
type: string
description: The relationships from the source of the connection that are configured to be retried.
readOnly: true
readOnly: true
uniqueItems: true
selectedRelationships:
type: array
description: The selected relationship that comprise the connection.
items:
type: string
description: The selected relationship that comprise the connection.
uniqueItems: true
source:
$ref: '#/components/schemas/ConnectableDTO'
versionedComponentId:
type: string
description: The ID of the corresponding component that is under version control
RevisionDTO:
type: object
description: The revision of the Process Group
properties:
clientId:
type: string
description: 'A client identifier used to make a request.
By including a client identifier, the API can allow multiple requests without needing the current revision.
Due to the asynchronous nature of requests/responses this was implemented to allow the client to make numerous requests without having to wait for the previous response to come back
'
lastModifier:
type: string
description: The user that last modified the flow.
readOnly: true
version:
type: integer
format: int64
description: 'NiFi employs an optimistic locking strategy where the client must include a revision in their request when performing an update.
In a response to a mutable flow request, this field represents the updated base version.
'
NodeConnectionStatusSnapshotDTO:
type: object
description: A list of status snapshots for each node
properties:
address:
type: string
description: The API address of the node
apiPort:
type: integer
format: int32
description: The API port used to communicate with the node
nodeId:
type: string
description: The unique ID that identifies the node
statusSnapshot:
$ref: '#/components/schemas/ConnectionStatusSnapshotDTO'
ConnectionStatusPredictionsSnapshotDTO:
type: object
description: Predictions, if available, for this connection (null if not available)
properties:
predictedBytesAtNextInterval:
type: integer
format: int64
description: The predicted total number of bytes in the queue at the next configured interval.
predictedCountAtNextInterval:
type: integer
format: int32
description: The predicted number of queued objects at the next configured interval.
predictedMillisUntilBytesBackpressure:
type: integer
format: int64
description: The predicted number of milliseconds before the connection will have backpressure applied, based on the total number of bytes in the queue.
predictedMillisUntilCountBackpressure:
type: integer
format: int64
description: The predicted number of milliseconds before the connection will have backpressure applied, based on the queued count.
predictedPercentBytes:
type: integer
format: int32
description: Predicted connection percent use regarding queued FlowFiles size and backpressure threshold if configured.
predictedPercentCount:
type: integer
format: int32
description: Predicted connection percent use regarding queued FlowFiles count and backpressure threshold if configured.
predictionIntervalSeconds:
type: integer
format: int32
description: The configured interval (in seconds) for predicting connection queue count and size (and percent usage).
securitySchemes:
CookieSecureAuthorizationBearer:
description: JSON Web Token authentication with session cookie
in: cookie
name: __Secure-Authorization-Bearer
type: apiKey
HTTPBearerJWT:
bearerFormat: JWT
description: HTTP Bearer authentication with JSON Web Token
scheme: Bearer
type: http
x-provenance:
method: harvested
publisher: Apache NiFi
source: https://nifi.apache.org/nifi-docs/swagger.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)