Introduction
The NiFi REST API allows clients to obtain and update configuration and status information pertaining to an instance of NiFi. The links below detail each resource. Follow the link to get more information about the resource including the supported HTTP methods and the expected parameters.
Additionally, the documentation for each resource will describe what type of data should be returned from a successful invocation. However, if the request is not successful one of the follow status codes should be returned:
- 400 (Bad Request) - A 400 status code will be returned when NiFi is unable to complete the request because it was invalid. The request should not be retried without modification.
- 401 (Unathorized) - A 401 status code indicates that the user is not known to this NiFi instance. The user may submit an account request.
- 403 (Forbidden) - A 403 status code indicates that the user is known to this NiFi instance and they do not have authority to perform the requested action.
- 404 (Not Found) - A 404 status code will be returned when the desired resource does not exist.
- 409 (Conflict) - NiFi employs an optimistic locking strategy where the client must include a revision in their request when performing an update. If the specified revision does not match the current base revision a 409 status code is returned. Additionally, a 409 is used when the state of the system does not allow for the request at that time. This same request may be successful later if the system is in a different state (e.g. cannot delete a processor because it is currently running).
- 500 (Internal Server Error) - A 500 status code indicates that an unexpected error has occurred.
Most unsuccessful requests will include a description of the problem in the entity body of the response.
The context path for the REST API is /nifi-api
REST Resources
This API supports a Representational State Transfer (REST) model for accessing a set of resources through a fixed set of operations. The following resources are accessible through the RESTful model:
- BulletinBoardResource
- ClusterResource
- ConnectionResource
- ControllerResource
- FunnelResource
- HistoryResource
- InputPortResource
- LabelResource
- NodeResource
- OutputPortResource
- ProcessGroupResource
- ProcessorResource
- ProvenanceResource
- RemoteProcessGroupResource
- SnippetResource
- SystemDiagnosticsResource
- TemplateResource
- UserGroupResource
- UserResource
There is also a WADL document describing the REST API.
Data Model
All endpoints act on a common set of data. The data can be represented with difference media (i.e. "MIME") types, depending on the endpoint that consumes and/or produces the data. The data can described by XML Schema, which definitively describes the XML representation of the data, but is also useful for describing the other formats of the data, such as JSON.
This document will describe the data using terms based on XML Schema. Data can be grouped by namespace, with a schema document describing the elements and types of the namespace. Generally speaking, types define the structure of the data and elements are instances of a type. For example, elements are usually produced by (or consumed by) a REST endpoint, and the structure of each element is described by its type.
Namespace "ns0"
| Namespace URI: | (default namespace) |
| XSD: | ns0.xsd |
Data Elements
- aboutEntity
- actionEntity
- authoritiesEntity
- bannersEntity
- bulletinBoardEntity
- clusterConnectionStatusEntity
- clusterEntity
- clusterPortStatusEntity
- clusterProcessorStatusEntity
- clusterRemoteProcessGroupStatusEntity
- clusterSearchResultsEntity
- clusterStatusEntity
- clusterStatusHistoryEntity
- connectionEntity
- connectionsEntity
- controllerConfigurationEntity
- controllerEntity
- controllerStatusEntity
- counterEntity
- countersEntity
- entity
- flowSnippetEntity
- funnelEntity
- funnelsEntity
- historyEntity
- inputPortEntity
- inputPortsEntity
- labelEntity
- labelsEntity
- lineageEntity
- nodeEntity
- outputPortEntity
- outputPortsEntity
- prioritizerTypesEntity
- processGroupEntity
- processGroupsEntity
- processGroupStatusEntity
- processorEntity
- processorHistoryEntity
- processorsEntity
- processorTypesEntity
- provenanceEntity
- provenanceEventEntity
- provenanceOptionsEntity
- remoteProcessGroupEntity
- remoteProcessGroupPortEntity
- remoteProcessGroupsEntity
- searchResultsEntity
- snippetEntity
- statusHistoryEntity
- systemDiagnosticsEntity
- template
- templateEntity
- templatesEntity
- userEntity
- userGroupEntity
- userSearchResultsEntity
- usersEntity
Data Types
- about
- aboutEntity
- action
- actionEntity
- allowableValue
- attribute
- authorityEntity
- bannerEntity
- banners
- bulletin
- bulletinBoard
- bulletinBoardEntity
- cluster
- clusterConnectionStatus
- clusterConnectionStatusEntity
- clusterEntity
- clusterPortStatus
- clusterPortStatusEntity
- clusterProcessorStatus
- clusterProcessorStatusEntity
- clusterRemoteProcessGroupStatus
- clusterRemoteProcessGroupStatusEntity
- clusterSearchResultsEntity
- clusterStatus
- clusterStatusEntity
- clusterStatusHistory
- clusterStatusHistoryEntity
- componentDetails
- componentSearchResult
- config
- configureDetails
- connectable
- connectDetails
- connection
- connectionEntity
- connectionsEntity
- connectionStatus
- controller
- controllerConfigurationEntity
- controllerEntity
- controllerStatus
- controllerStatusEntity
- counter
- counterEntity
- counters
- countersEntity
- details
- documentedType
- entity
- flowSnippet
- flowSnippetEntity
- funnel
- funnelEntity
- funnelsEntity
- garbageCollection
- history
- historyEntity
- inputPortEntity
- inputPortsEntity
- label
- labelEntity
- labelsEntity
- lineage
- lineage
- lineageEntity
- lineageRequest
- lineageRequestType
- moveDetails
- nifiComponent
- node
- nodeConnectionStatus
- nodeEntity
- nodeEvent
- nodePortStatus
- nodeProcessorStatus
- nodeRemoteProcessGroupStatus
- nodeSearchResult
- nodeStatus
- nodeStatusHistory
- outputPortEntity
- outputPortsEntity
- port
- portStatus
- position
- previousValue
- prioritizerTypesEntity
- processGroup
- processGroupEntity
- processGroupsEntity
- processGroupStatus
- processGroupStatusEntity
- processor
- processorConfig
- processorDetails
- processorEntity
- processorHistory
- processorHistoryEntity
- processorsEntity
- processorStatus
- processorTypesEntity
- propertyDescriptor
- propertyHistory
- provenance
- provenanceEntity
- provenanceEvent
- provenanceEventEntity
- provenanceLink
- provenanceNode
- provenanceOptions
- provenanceOptionsEntity
- provenanceRequest
- provenanceResults
- provenanceSearchableField
- purgeDetails
- relationship
- remoteProcessGroup
- remoteProcessGroupContents
- remoteProcessGroupDetails
- remoteProcessGroupEntity
- remoteProcessGroupPort
- remoteProcessGroupPortEntity
- remoteProcessGroupsEntity
- remoteProcessGroupStatus
- revision
- searchResults
- searchResultsEntity
- snippet
- snippetEntity
- status
- statusDescriptor
- statusHistory
- statusHistoryEntity
- statusSnapshot
- storageUsage
- systemDiagnostics
- systemDiagnosticsEntity
- templateDTO
- templateEntity
- templatesEntity
- user
- userEntity
- userGroup
- userGroupEntity
- userGroupSearchResult
- userSearchResult
- userSearchResultsEntity
- usersEntity