Custom data feeds

Custom data feeds are a capability of ArcGIS Enterprise that allow a developer to build and publish web services from data sources that are not natively supported with ArcGIS. Data accessed through a custom data feed is presented as a feature service REST endpoint and can be served to web clients, desktop apps, and field apps or any other REST client. Some scenarios where a custom data feed may be a good option include:

  • You want to access data in ArcGIS applications, from a proprietary format or endpoint
  • You do not want to register the data source with ArcGIS Enterprise
  • You want to access data that is maintained by a third party
  • The data is stored in a remote location and must be streamed as a live data feed

Custom data feeds use the cdf command line tool that comes with ArcGIS Enterprise SDK. The tool allows you to use JavaScript to create and test custom data providers that fetch data from your data sources. It also packages your code into custom data package files that can be used to register the data providers with ArcGIS Server. Once registered, the data can be made available to ArcGIS clients as feature services that reference your data providers.

Custom data feeds can be consumed by any client as HTTP REST services, and are specifically designed to support existing ArcGIS clients, where the user can interact with the data from a custom data feed, create popups, even submit feature edits, without identifying that the service is based on an external or third-party data source.

Integration patterns in ArcGIS

Custom data feeds can only be created in ArcGIS Enterprise. They can be consumed in ArcGIS Pro and web apps in ArcGIS Enterprise and ArcGIS Online.

Capability ArcGIS Online ArcGIS Enterprise ArcGIS Location Platform ArcGIS Pro
Custom data feeds N/A

Full support

Partial support


Best practices

When developing a custom data feed integration, consider these best practices:

  • Carefully manage larger data queries: pagination, large query sizes and wait times for serialization or conversion can all contribute to poor performance of a custom data feed if the dataset that is queried is too large. If the remote API or data source supports indexing, attribute-based filters or spatial filters, logic can be written in the custom data feed to translate incoming fFeature layer request parameters (such as an extent) into optimized requests to the backend.

  • While custom data feeds implement a feature service endpoint that most ArcGIS applications can work with, be judicious in testing the intended applications for your system – some applications send complex queries or expect additional capabilities of a feature service, and may not work perfectly with custom data feeds. Consult the REST API documentation and work with Esri to understand any limitations specific to your workflow, custom data feed, and provider.

  • Only include necessary attributes in a feed. While a remote API or data source may provide a large number of attributes, only include necessary attributes in the response to ArcGIS clients to provide the best performance.

  • Use existing NodeJS libraries where possible. If the remote API or service is accessible through a well-known NodeJS library or module, such as one accessible from npm, use these modules and keep them up to date, as they will often implement the latest security and authentication standards for that remote system. These modules may be developed by the providers (such as the arcgis-rest-js module that Esri maintains) or maintained by an open source community.

  • Custom data feeds expect an integer-based identifier for each record. If possible, include it in the backend schema or generate it, to prevent a scenario where the CDF is required to generate an ID, which can lead to inconsistency when using some ArcGIS applications.

Top