{"id":2941236,"date":"2025-09-29T06:28:38","date_gmt":"2025-09-29T13:28:38","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2941236"},"modified":"2025-10-16T06:32:54","modified_gmt":"2025-10-16T13:32:54","slug":"arcgis-hosted-data-services-retrieval-and-loading-time-differences","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences","title":{"rendered":"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs"},"author":293052,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191],"tags":[176482,780819,29651,780817,780816],"industry":[],"product":[761642,36551,36601],"class_list":["post-2941236","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-feature-service","tag-hosted-data-services-blog-series","tag-hosted-services","tag-map-tile-service","tag-vector-tile-service","product-platform","product-arcgis-online","product-developers"],"acf":{"short_description":"Compare ArcGIS hosted feature, vector tile, and map tile services: retrieval, payload, formats, latency, and SDK support.","flexible_content":[{"acf_fc_layout":"content","content":"<p style=\"font-size: 0.9rem; text-align: left; color: #797979;\"><em><strong>Last updated<\/strong>: Oct 16, 2025<\/em><\/p>\n<p><span style=\"font-size: .9rem;\">\u2139\ufe0f This blog series focuses on hosted data services in <strong>ArcGIS Online<\/strong> and <strong>ArcGIS Location Platform<\/strong> (<a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-services-explained-feature-vector-map-tiles-services#content-focus\">more about the scope<\/a>).<\/span><\/p>\n<p><small><strong>Note<\/strong>: This article was previously titled &#8220;Retrieval and Loading Time Differences&#8221; and has been renamed to &#8220;Behind the scenes and SDK trade-offs&#8221; to better reflect its scope and intent.<\/small><\/p>\n<p>If you are planning to build (or already developing) a custom application using ArcGIS hosted data services and want to better understand why one SDK or data service can be more performant than others, or how scalable apps can be built with performance in mind, keep reading \ud83d\ude42.<\/p>\n<p>In the previous article,\u00a0<span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">we not only discussed\u00a0<a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-management-tools-differences\" target=\"_blank\" rel=\"noopener\">which tools are best suited for each task and how to automate processes<\/a>, but also explained some performance optimizations that can be made<\/span>\u00a0<strong>from the backend<\/strong>.<\/p>\n<div class=\"small\">\n<p style=\"text-decoration: underline;\"><strong>Before reading on<\/strong><\/p>\n<p>This article explains the factors that affect performance across services and SDKs, along with concepts not required for daily use but useful for understanding their strengths, limitations, and the optimizations each SDK implements.<\/p>\n<p>It is not a step-by-step optimization guide; instead, it highlights what happens behind the scenes and what developers should consider when making decisions.<\/p>\n<\/div>\n<h2 style=\"margin-top: 1rem;\">What this article covers<\/h2>\n<p>This article is intended for <strong>client-side application developers<\/strong> working with web or native SDKs. It takes a technical look at what these APIs return and the optimization mechanisms that influence latency, tile sizes, and data transfer formats:<\/p>\n<ul class=\"spaced\">\n<li><a href=\"#tile-retrieval-latency\">Tile retrieval (latency)<\/a><\/li>\n<li><a href=\"#optimization-mechanisms\">Optimization mechanisms<\/a><\/li>\n<li><a href=\"#tile-size\">Tile size<\/a><\/li>\n<li><a href=\"#data-returned\">Data returned<\/a><\/li>\n<li><a href=\"#transferred-data-format\">Transferred data format<\/a><\/li>\n<li><a href=\"#rate-limiting-and-tiers\">Rate limiting and tiers<\/a><\/li>\n<li><a href=\"#sdks-integration\">SDKs integration<\/a><\/li>\n<li><a href=\"#next-steps\">Next steps<\/a><\/li>\n<\/ul>\n<p>By the end, you\u2019ll know what impacts data access and performance, so you can design apps that load faster and run smoother.<\/p>\n<p>[<a href=\"https:\/\/en.wikipedia.org\/wiki\/TL;DR\">TL;DR<\/a>] Short on time? This table gives you the key highlights at a glance:<\/p>\n<figure class=\"newsr-image newsr-image--center column-10 tablet-column-12 phone-column-6 \"><\/figure>\n"},{"acf_fc_layout":"image","image":{"ID":2941809,"id":2941809,"title":"arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2","filename":"arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2.png","filesize":231395,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2","alt":"","author":"293052","description":"","caption":"","name":"arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2","status":"inherit","uploaded_to":2941236,"date":"2025-10-02 08:23:20","modified":"2025-10-02 08:23:20","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1024,"height":456,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2.png","medium-width":464,"medium-height":207,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2.png","medium_large-width":768,"medium_large-height":342,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2.png","large-width":1024,"large-height":456,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2.png","1536x1536-width":1024,"1536x1536-height":456,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2.png","2048x2048-width":1024,"2048x2048-height":456,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2-826x368.png","card_image-width":826,"card_image-height":368,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2.png","wide_image-width":1024,"wide_image-height":456}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-comparison-retrieval-and-loading-time-v2.png"},{"acf_fc_layout":"content","content":"<details>\n<summary><span style=\"color: #800080;\">Notes on accuracy: Surviving the test of time &#8230;<\/span><\/summary>\n<div>\n<p>As introduced in <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-services-explained-feature-vector-map-tiles-services\">the first article of this series<\/a>, this series is a unified resource to save you time and clarify differences between similar technologies, based on information from official sources.<\/p>\n<p>Technology evolves rapidly, so some details may become outdated. Each article includes references to official documentation, which contains the most up-to-date information. <strong>In case of discrepancies, the official documentation takes precedence<\/strong>.<\/p>\n<p>If you find something unclear or notice an error, contact us at <a href=\"mailto:developers@esri.com\">developers@esri.com<\/a><\/p>\n<\/div>\n<\/details>\n"},{"acf_fc_layout":"content","content":"<h2 id=\"tile-retrieval-latency\">Tile retrieval (latency)<\/h2>\n<p>All three services can deliver data as tiles, though for feature services this is <strong>optional<\/strong>.<\/p>\n<h3>Tile services<\/h3>\n<p>Map tiles and vector tile services are very fast since they return pre-generated tiles.<\/p>\n<p><small><strong>Note:<\/strong> When published with on-demand generation, map tile services render unseen tiles on first request, adding latency, but serve them from cache thereafter.<\/small><\/p>\n<h3>Feature services<\/h3>\n<p>Feature services aren\u2019t pre-generated, so requests may query the underlying database. To minimize latency, they support several optimizations:<\/p>\n<ul class=\"spaced\">\n<li><strong>Tiled queries<\/strong>: When <code>resultType=tile<\/code> and <code>cacheHint=true<\/code> is added to requests, it enables tile caching of spatial and non-spatial results.<\/li>\n<li><strong>CDN caching<\/strong>: For public services, <a href=\"https:\/\/developers.arcgis.com\/documentation\/portal-and-data-services\/data-services\/feature-services\/cdn-caching\/\">you can configure how requests are routed through the CDN<\/a>.<\/li>\n<li><strong>Generalized geometries<\/strong>: Supports <a href=\"https:\/\/developers.arcgis.com\/documentation\/portal-and-data-services\/data-services\/feature-services\/drawing-optimization\/\">storing simplified geometries<\/a> to reduce retrieval time.<\/li>\n<li><strong>Indexes<\/strong>: Provide <a href=\"https:\/\/developers.arcgis.com\/documentation\/portal-and-data-services\/data-services\/feature-services\/field-and-spatial-indexes\/\">index configuration<\/a>\u00a0(rowstore, <a href=\"https:\/\/mediaspace.esri.com\/media\/t\/1_4e7fyqde?st=2221\">columnstore<\/a>, and full-text field indexes) to speed up initial queries.<\/li>\n<\/ul>\n<p>To confirm if some of these optimizations are applied, inspect the HTTP response headers:<\/p>\n<ul>\n<li><strong>For tiles cache<\/strong>: Check if the header <strong>&#8216;x-esri-ftiles-cache-compress&#8217;\u00a0<\/strong>is set to &#8216;true&#8217;.<\/li>\n<li><strong>For CDN cache<\/strong>: Check if the header <strong>&#8216;<\/strong><strong>x-cache&#8217;<\/strong> shows <strong>&#8216;<\/strong>Hit from CloudFront<strong>&#8216;<\/strong> (see the <a href=\"https:\/\/mediaspace.esri.com\/media\/t\/1_xcuzb32n?st=105\">&#8220;ArcGIS Maps SDK for JavaScript: Max Speed &amp; Capabilities of the Feature Layer&#8221; demo<\/a>).<\/li>\n<\/ul>\n<details>\n<summary><span style=\"color: #800080;\">Where to learn more about applying these optimizations &#8230;<\/span><\/summary>\n<div>\n<p>These are great resources:<\/p>\n<ul>\n<li><a href=\"https:\/\/mediaspace.esri.com\/media\/t\/1_xcuzb32n\">ArcGIS Maps SDK for JavaScript: Max Speed &amp; Capabilities of the Feature Layer<\/a>.<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=vGpjHd4838U\">ArcGIS Online: Tips &amp; Tricks for Viral Maps<\/a>.<\/li>\n<li><a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/data-management\/handle-large-geometry-with-optimize-layer-drawing\">Handle large geometry with Optimize Layer Drawing<\/a>.<\/li>\n<li><a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/data-management\/data-management\/scalable-hosted-feature-layers-in-arcgis-online-tile-queries-and-response-caching\">Scalable hosted feature layers in ArcGIS Online: Tile queries and response caching<\/a>.<\/li>\n<\/ul>\n<p>All of these resources apply to ArcGIS Online and ArcGIS Location Platform.<\/p>\n<\/div>\n<\/details>\n"},{"acf_fc_layout":"image","image":{"ID":2941271,"id":2941271,"title":"arcgis-feature-services-x-cache-x-esri-tiles-cache-compress","filename":"arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg","filesize":74232,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress","alt":"","author":"293052","description":"","caption":"Response headers: x-esri-ftiles-cache-compress = true (tile-level caching), and x-cache = Hit from CloudFront (CDN cache hit)","name":"arcgis-feature-services-x-cache-x-esri-tiles-cache-compress","status":"inherit","uploaded_to":2941236,"date":"2025-09-29 03:16:08","modified":"2025-09-29 07:36:43","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":784,"height":322,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg","medium-width":464,"medium-height":191,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg","medium_large-width":768,"medium_large-height":315,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg","large-width":784,"large-height":322,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg","1536x1536-width":784,"1536x1536-height":322,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg","2048x2048-width":784,"2048x2048-height":322,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg","card_image-width":784,"card_image-height":322,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg","wide_image-width":784,"wide_image-height":322}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-x-cache-x-esri-tiles-cache-compress.jpg"},{"acf_fc_layout":"content","content":"<p>As we will explain in &#8220;<a href=\"#sdks-integration\">SDKs integration<\/a>&#8220;, some of them take advantage of this by generating repeatable queries using predictable extents (bounding boxes or envelopes).<\/p>\n<h2 id=\"optimization-mechanisms\">Optimization mechanisms<\/h2>\n<p>Different hosted data services apply optimizations in different ways. Tile services focus on performance at generation time, while feature services expose REST API parameters that let developers control the size and detail of responses at query time.<\/p>\n<h3>Tile services<\/h3>\n<p>Map tile services and vector tile services are optimized at the time of generation\u00a0<span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">through:<\/span><\/p>\n<ul class=\"spaced\">\n<li><strong>Generalization<\/strong>: Geometries are simplified in vector tiles to reduce file size and improve rendering performance, and PBF encoding.<\/li>\n<li><strong data-start=\"242\" data-end=\"262\">Format selection<\/strong>: Choosing the most suitable tile format (e.g., PNG, JPEG, etc) for your dataset and symbology.<\/li>\n<\/ul>\n<p>There is no way to query or filter any of these tiles from the backend at the time of request. For example, when you request vector tiles, you always receive all the attributes that were baked into them at generation.<\/p>\n<details>\n<summary><span style=\"color: #800080;\">About map tile formats &#8230;<\/span><\/summary>\n<div>\n<p>Depending on your source data and visualization needs (such as color schemes or transparency), you can choose from several output formats: PNG, PNG-8, PNG-24, PNG-32, JPEG, mixed compression, and LERC. To learn more, check out <a href=\"https:\/\/youtu.be\/dJVEnNWyNCU?si=SFvhhcfI3dHSDcgX&amp;t=154\">the CartoRedux video<\/a> or the &#8220;Generate Tile Cache Tiling Scheme&#8221; <a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/tool-reference\/data-management\/generate-tile-cache-tiling-scheme.htm\">documentation in ArcGIS Pro<\/a>.<\/p>\n<\/div>\n<\/details>\n<h3>Feature services<\/h3>\n<p>Feature services implement <a href=\"https:\/\/developers.arcgis.com\/rest\/services-reference\/enterprise\/query-feature-service-layer\/\">multiple API parameters<\/a> to optimize server response size:<\/p>\n<ul class=\"spaced\">\n<li><strong>Feature filtering:<\/strong>\u00a0Using\u00a0<code data-start=\"383\" data-end=\"394\">WHERE<\/code> clauses and applying spatial filters passing a geometry with <code>spatialRel<\/code> to limit the rows (features) returned.<\/li>\n<li><strong>Attribute filtering<\/strong>: Using <code data-start=\"383\" data-end=\"394\">outFields<\/code> to request only the fields you need (or none, if you only want geometries).<\/li>\n<li><strong data-start=\"479\" data-end=\"499\">Geometry control<\/strong>: Using <code data-start=\"505\" data-end=\"527\">returnGeometry=false<\/code> when you <strong>only need attributes <\/strong>and <code>geometryPrecision<\/code> to control the <strong>number of decimals<\/strong> in the returned geometry coordinates.<\/li>\n<li><strong>Quantization<\/strong>: Using <code data-start=\"951\" data-end=\"975\">quantizationParameters<\/code> to reduce the number of vertices in complex geometries (<a href=\"https:\/\/mediaspace.esri.com\/media\/t\/1_xcuzb32n?st=1359\">as explained here<\/a>).<\/li>\n<li><strong>Pagination<\/strong>: Using <code>resultOffset<\/code> (starting record) and <code>resultRecordCount<\/code> (page size) to retrieve large datasets in smaller chunks.<\/li>\n<li><strong>Output format<\/strong>: as explained below in the &#8220;<a href=\"#transferred-data-format\" target=\"_blank\" rel=\"noopener\">Transferred data format<\/a>&#8221; section, using <code>f=pbf<\/code>, responses can be requested in this binary format, which is smaller than JSON and faster to transfer and parse.<\/li>\n<\/ul>\n<p><small><strong>Note:<\/strong> These optimizations are key for large or complex layers (many features, dense geometries, wide tables), in mobile\/low-bandwidth scenarios, and in cases where you don\u2019t know in advance what data the user will need.<\/small><\/p>\n<details>\n<summary><span style=\"color: #800080;\">More about the Query capabilities within hosted feature services\u00a0<\/span><\/summary>\n<div>\n<p><span style=\"text-decoration: underline;\"><strong>SQL parser<\/strong><\/span><br \/>\nHosted feature services support SQL-like queries for filtering, sorting, and aggregating data.<\/p>\n<p>Below is an overview of the capabilities they provide, along with some operations that aren\u2019t part of this query model:<\/p>\n<ul class=\"spaced\">\n<li>What can be done:\n<ul>\n<li><strong>Filter rows: <\/strong>Using the <code>where<\/code> parameter (SQL-92 syntax) on layer fields:\n<ul>\n<li>Comparison operators: (`=`, `&lt;&gt;`, `&lt;`, `&gt;`, `&lt;=`, `&gt;=`).<\/li>\n<li>Logical operators (`AND`, `OR`).<\/li>\n<li>Other operators: `LIKE`, `IN`, `BETWEEN`.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Aggregate functions<\/strong>: Such as `SUM`, `AVG`, `COUNT`, `STDDEV`, `MIN`, `MAX`, and `VAR` are available through the <code>outStatistics<\/code> parameter.<\/li>\n<li><strong>Sorting<\/strong>: Sorting results using <code>orderBy<\/code>.<\/li>\n<li><strong>Joins<\/strong>: If a relationship class exists (a predefined join), you can use <em><a href=\"https:\/\/developers.arcgis.com\/rest\/services-reference\/enterprise\/query-related-records-feature-service\/\">queryRelatedRecords<\/a><\/em> to fetch related features or tables, . Another option is to create a joined hosted feature layer view, <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-management-tools-differences#how-to-create-hosted-data-services\">as described in the previous article<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li>What cannot be done:\n<ul>\n<li><strong>Ad-hoc joins<\/strong>: `LEFT JOIN`, `RIGHT JOIN`, or `FULL OUTER JOIN`.<\/li>\n<li><strong>Subqueries<\/strong>: Nested SQL queries.<\/li>\n<li><strong>Inline SQL aggregates<\/strong>: Aggregation is only available through the <code>outStatistics<\/code> parameter.<\/li>\n<li><strong>Complex transformations<\/strong>: Advanced calculations, custom expressions, or arbitrary data transformations.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Note that the SQL parser has a size limit on expressions that may cause query failures.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Other query capabilities<\/strong><\/span><\/p>\n<p>In addition to response optimizations and the SQL capabilities mentioned above, feature services also support:<\/p>\n<ul>\n<li><strong>Spatial reference<\/strong>: Return geometries in a different coordinate system using <code>outSpatialReference<\/code> or <code>outSR.<\/code><\/li>\n<li><strong>Attachments<\/strong>: Use <em><a href=\"https:\/\/developers.arcgis.com\/rest\/services-reference\/enterprise\/query-attachments-feature-service-layer\/\">queryAttachments<\/a><\/em> to list or download files linked to each feature<\/li>\n<li><strong>Specialized analytics: <\/strong>Use <a href=\"https:\/\/developers.arcgis.com\/rest\/services-reference\/enterprise\/query-analytic\/\">queryAnalytic<\/a> for advanced calculations like running totals or ranks.<\/li>\n<li><strong>Binning: Use <\/strong><a href=\"https:\/\/developers.arcgis.com\/rest\/services-reference\/enterprise\/query-bins\/\">queryBins<\/a> to group features into spatial bins (grid or hex shapes) and summarize them, or <a href=\"https:\/\/developers.arcgis.com\/rest\/services-reference\/enterprise\/query-date-bins-fsl\/\">queryDateBins<\/a> to group by time intervals.<\/li>\n<li><strong>And more that exceeds the scope of this article<\/strong>.<\/li>\n<\/ul>\n<\/div>\n<\/details>\n"},{"acf_fc_layout":"content","content":"<h2 id=\"tile-size\">Tile size<\/h2>\n<p>As you just learned, map and vector tiles have a fixed size, while the response size of feature services varies depending on the request parameters.<\/p>\n<h2 id=\"data-returned\">Data returned<\/h2>\n<p>Each service type delivers data in a different form:<\/p>\n<ul class=\"spaced\">\n<li><strong>Map tile service<\/strong>: Always returns raster tiles.<\/li>\n<li><strong>Vector tile service<\/strong>: Always returns vector tiles with geometries (can mix geometry types, be simplified, and clipped) and the attributes baked into each feature.<\/li>\n<li><strong>Feature service<\/strong>: Returns flexible vector data (tiled or untiled, simplified or full geometries, spatial or purely tabular data) depending on the request.<\/li>\n<\/ul>\n"},{"acf_fc_layout":"content","content":"<h2 id=\"transferred-data-format\">Transferred data format<\/h2>\n<p>The actual payload format varies by service:<\/p>\n<ul class=\"spaced\">\n<li><strong>Map tile service<\/strong>: Returns raster image tiles (.jpg or .png if transparency is required).<\/li>\n<li><strong>Vector tile service<\/strong>: Return vector tiles with serialized JSON data encoded as PBF, that can be decoded with <a href=\"https:\/\/github.com\/Esri\/arcgis-pbf\">arcgis-pbf<\/a>.<\/li>\n<li><strong>Feature service<\/strong>: Returns vector data in JSON, with several output options:\n<ul class=\"spaced\">\n<li><strong>Standard JSON<\/strong>: Supports <a href=\"https:\/\/developers.arcgis.com\/rest\/services-reference\/enterprise\/featureset-object\/\">Esri JSON<\/a> (<code data-start=\"935\" data-end=\"944\">?f=json<\/code>), prettified Esri JSON (<code data-start=\"935\" data-end=\"944\">?f=pjson<\/code>) and GeoJSON (<code data-start=\"935\" data-end=\"944\">?f=geojson<\/code>).<\/li>\n<li><strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/Protocol_Buffers\">Protocol Buffers<\/a> (PBF)<\/strong>: When set <code data-start=\"935\" data-end=\"944\">?f=pbf<\/code> (<a href=\"https:\/\/mediaspace.esri.com\/media\/t\/1_4e7fyqde?st=1158\">explained here<\/a>, <a href=\"https:\/\/mediaspace.esri.com\/media\/t\/1_ms51rxhi\/373383312?st=990\" target=\"_blank\" rel=\"noopener\">demo<\/a>). Once decoded, it represents the same feature data you would obtain in JSON, but it differs from both Esri JSON and GeoJSON.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><small><span style=\"text-decoration: underline;\"><strong>About <\/strong><\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Protocol_Buffers\"><strong><span style=\"text-decoration: underline;\">Protocol Buffers<\/span><\/strong><\/a><br \/>\nIt is a compact binary format that is faster to transfer and parse than JSON, especially for large datasets. It is combined with HTTP compression (Brotli, gzip\/deflate) to reduce payload size further.<\/small><\/p>\n<p><small><strong>Note<\/strong>: Style information in vector tile services and feature services is provided as a plain JSON file.<\/small><\/p>\n<h2 id=\"rate-limiting-and-tiers\">Rate limiting and tiers<\/h2>\n<p>Hosted feature services have request rate considerations, which are discussed in <a href=\"https:\/\/mediaspace.esri.com\/media\/t\/1_4e7fyqde?st=395\">this presentation<\/a>.<\/p>\n<p>For a broader view of usage policies and pricing, see the article on \u201c<a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-services-terms-of-use-pricing-differences\">Terms of Use &amp; Pricing Differences<\/a>\u201d.<\/p>\n<h2 id=\"sdks-integration\">SDKs integration<\/h2>\n<p>All three hosted data services can be loaded across multiple client SDKs:<\/p>\n<ul class=\"spaced\">\n<li><strong>Map tile services<\/strong>: Delivered as <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tiled_web_map\">XYZ raster tiles<\/a>, a de facto standard that is supported by virtually all mapping SDKs.<\/li>\n<li><strong>Vector tile services<\/strong>: Hosted vector tiles are encoded using the MVT specification, allowing them to be consumed directly by both Esri and non-Esri SDKs.<\/li>\n<li><strong>Feature services<\/strong>: Since responses can be requested as GeoJSON, they are compatible with any client.<\/li>\n<\/ul>\n<p>In terms of <strong>client-side layer performance<\/strong>:<\/p>\n<ul>\n<li>Map and vector tile services perform consistently across SDKs.<\/li>\n<li>Feature service performance, however, depends on how well each SDK supports available optimizations.<\/li>\n<\/ul>\n<p><small><strong>Note<\/strong>: When an SDK implements all feature service optimizations, performance is often indistinguishable from vector tile services.<\/small><\/p>\n<h3>Feature service optimizations by SDK<\/h3>\n<p>Next, we\u2019ll compare the SDKs documented on developers.arcgis.com to show which feature service optimizations each one supports.<\/p>\n<h4><span style=\"text-decoration: underline;\"><strong>Esri\u2019s ArcGIS Maps SDKs<\/strong><\/span><\/h4>\n<p>Esri\u2019s ArcGIS Maps SDKs (web and native) implement <strong>all<\/strong> these feature services performance optimizations out of the box, as <a href=\"https:\/\/mediaspace.esri.com\/media\/t\/1_lo534svo\">explained in the Feature Tiles video<\/a>.<br \/>\n<small style=\"margin-top: 1rem;\"><strong>Note<\/strong>: Although the video refers to the ArcGIS Maps SDK for JavaScript, the same optimizations apply to the ArcGIS Maps SDKs for Native Apps<\/small><br \/>\nFor example, if you inspect network requests in the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/sandbox\/?sample=visualization-vv-color\">Data-driven continuous color sample<\/a> built with the ArcGIS Maps SDK for JavaScript, you\u2019ll see queries returned as cached, quantized tiles, compressed with PBF.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2941273,"id":2941273,"title":"arcgis-feature-services-quatizationParameters-resultType-tile","filename":"arcgis-feature-services-quatizationParameters-resultType-tile.png","filesize":315812,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\/arcgis-feature-services-quatizationparameters-resulttype-tile","alt":"","author":"293052","description":"","caption":"Network request showing quantizationParameters used along with resultType=tile for a feature service query","name":"arcgis-feature-services-quatizationparameters-resulttype-tile","status":"inherit","uploaded_to":2941236,"date":"2025-09-29 03:18:26","modified":"2025-09-29 10:02:40","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1384,"height":470,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile.png","medium-width":464,"medium-height":158,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile.png","medium_large-width":768,"medium_large-height":261,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile.png","large-width":1384,"large-height":470,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile.png","1536x1536-width":1384,"1536x1536-height":470,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile.png","2048x2048-width":1384,"2048x2048-height":470,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile-826x281.png","card_image-width":826,"card_image-height":281,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile.png","wide_image-width":1384,"wide_image-height":470}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-quatizationParameters-resultType-tile.png"},{"acf_fc_layout":"image","image":{"ID":2941276,"id":2941276,"title":"arcgis-maps-sdk-for-js-x-esri-files-cache-compress","filename":"arcgis-maps-sdk-for-js-x-esri-files-cache-compress.png","filesize":298634,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress","alt":"","author":"293052","description":"","caption":"Feature service query response indicating tile caching is active (x-esri-ftiles-cache-compress: true)","name":"arcgis-maps-sdk-for-js-x-esri-files-cache-compress","status":"inherit","uploaded_to":2941236,"date":"2025-09-29 03:24:01","modified":"2025-09-29 10:01:50","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1384,"height":446,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress.png","medium-width":464,"medium-height":150,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress.png","medium_large-width":768,"medium_large-height":247,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress.png","large-width":1384,"large-height":446,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress.png","1536x1536-width":1384,"1536x1536-height":446,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress.png","2048x2048-width":1384,"2048x2048-height":446,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress-826x266.png","card_image-width":826,"card_image-height":266,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress.png","wide_image-width":1384,"wide_image-height":446}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-maps-sdk-for-js-x-esri-files-cache-compress.png"},{"acf_fc_layout":"image","image":{"ID":2941277,"id":2941277,"title":"arcgis-feature-services-pbf-response","filename":"arcgis-feature-services-pbf-response.png","filesize":515605,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\/arcgis-feature-services-pbf-response","alt":"","author":"293052","description":"","caption":"Network response showing a feature service query returned as PBF (Protocol Buffers).","name":"arcgis-feature-services-pbf-response","status":"inherit","uploaded_to":2941236,"date":"2025-09-29 03:24:19","modified":"2025-09-29 09:59:55","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1384,"height":586,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response.png","medium-width":464,"medium-height":196,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response.png","medium_large-width":768,"medium_large-height":325,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response.png","large-width":1384,"large-height":586,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response.png","1536x1536-width":1384,"1536x1536-height":586,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response.png","2048x2048-width":1384,"2048x2048-height":586,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response-826x350.png","card_image-width":826,"card_image-height":350,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response.png","wide_image-width":1384,"wide_image-height":586}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-feature-services-pbf-response.png"},{"acf_fc_layout":"content","content":"<p>To see <code data-start=\"40\" data-end=\"51\">cacheHint<\/code> in action (which tells the service to cache query results), check the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/sandbox\/?sample=layers-featurelayer\">Intro to FeatureLayer example<\/a>.<\/p>\n<p>ArcGIS Maps SDKs go further than using PBF, quantization, and tiled queries; they also:<\/p>\n<ul class=\"spaced\">\n<li><strong>Handle editing workflows automatically<\/strong>: when full geometric fidelity is required, the SDK fetches the complete data behind the scenes.<\/li>\n<li><strong>Optimize attribute requests<\/strong> by default, querying only the fields needed for symbology and labeling unless you explicitly ask for more.<\/li>\n<\/ul>\n<p data-start=\"170\" data-end=\"312\">Additionally, <span data-teams=\"true\">ArcGIS Maps SDKs for <strong>Native<\/strong> maintain an in-memory geodatabase of requested features, and also track requested tiles and make use of <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Reference\/Headers\/ETag\">ETags<\/a> to avoid redundant queries.<\/span>\u00a0This reduces network traffic and leans on the local cache as much as possible.<\/p>\n<p><small><strong>Note<\/strong>: While in theory, any mapping library could support these feature services optimizations, at present, only the ArcGIS Maps SDKs have them all implemented.<\/small><\/p>\n<h4><span style=\"text-decoration: underline;\"><strong>Leaflet<\/strong><\/span><\/h4>\n<p>With the <a href=\"https:\/\/github.com\/Esri\/esri-leaflet\">Esri Leaflet plugin,<\/a> you can <a href=\"https:\/\/developers.arcgis.com\/esri-leaflet\/layers\/add-a-feature-layer\/\">easily load feature services<\/a>.<\/p>\n<p>Network requests show that it also <strong>implements tiled queries,<\/strong>\u00a0but by default, <strong>it <\/strong><a href=\"https:\/\/github.com\/Esri\/esri-leaflet\/issues\/1266\"><strong>doesn\u2019t yet support PBF encoding or quantization<\/strong><\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2941278,"id":2941278,"title":"esri-leaflet-feature-service-payload","filename":"esri-leaflet-feature-service-payload.jpg","filesize":224701,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\/esri-leaflet-feature-service-payload","alt":"","author":"293052","description":"","caption":"","name":"esri-leaflet-feature-service-payload","status":"inherit","uploaded_to":2941236,"date":"2025-09-29 03:26:47","modified":"2025-09-29 03:26:47","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1384,"height":617,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload.jpg","medium-width":464,"medium-height":207,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload.jpg","medium_large-width":768,"medium_large-height":342,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload.jpg","large-width":1384,"large-height":617,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload.jpg","1536x1536-width":1384,"1536x1536-height":617,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload.jpg","2048x2048-width":1384,"2048x2048-height":617,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload-826x368.jpg","card_image-width":826,"card_image-height":368,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload.jpg","wide_image-width":1384,"wide_image-height":617}},"image_position":"center","orientation":"horizontal","hyperlink":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/esri-leaflet-feature-service-payload.jpg"},{"acf_fc_layout":"content","content":"<h4><span style=\"text-decoration: underline;\"><strong>MapLibre GL JS, OpenLayers, and CesiumJS<\/strong><\/span><\/h4>\n<p>These SDKs load feature services through their GeoJSON output, but they don\u2019t currently implement any of the optimization mechanisms available in feature services.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2941279,"id":2941279,"title":"maplibre-gl-js-openlayers-cesium-feature-service","filename":"maplibre-gl-js-openlayers-cesium-feature-service.jpg","filesize":147338,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-gl-js-openlayers-cesium-feature-service.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\/maplibre-gl-js-openlayers-cesium-feature-service","alt":"","author":"293052","description":"","caption":"","name":"maplibre-gl-js-openlayers-cesium-feature-service","status":"inherit","uploaded_to":2941236,"date":"2025-09-29 03:28:13","modified":"2025-09-29 03:28:13","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1384,"height":476,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-gl-js-openlayers-cesium-feature-service-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-gl-js-openlayers-cesium-feature-service.jpg","medium-width":464,"medium-height":160,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-gl-js-openlayers-cesium-feature-service.jpg","medium_large-width":768,"medium_large-height":264,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-gl-js-openlayers-cesium-feature-service.jpg","large-width":1384,"large-height":476,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-gl-js-openlayers-cesium-feature-service.jpg","1536x1536-width":1384,"1536x1536-height":476,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-gl-js-openlayers-cesium-feature-service.jpg","2048x2048-width":1384,"2048x2048-height":476,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-gl-js-openlayers-cesium-feature-service-826x284.jpg","card_image-width":826,"card_image-height":284,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/maplibre-gl-js-openlayers-cesium-feature-service.jpg","wide_image-width":1384,"wide_image-height":476}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p><small><strong>Note<\/strong>:\u00a0<span style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">Similar to Esri Leaflet,\u00a0<a href=\"https:\/\/github.com\/Esri\/maplibre-arcgis\" target=\"_blank\" rel=\"noopener\">this new MapLibre GL JS plugin<\/a> may implement some of these features\u00a0<\/span>in the future.<\/small><\/p>\n<h2 id=\"next-steps\">Next steps<\/h2>\n<p>In this article, we looked at <strong>how data is retrieved and transferred through REST APIs<\/strong>, and the <strong>key factors that shape the user experience<\/strong>. We also compared how different SDKs handle these services, noting where performance may vary.<\/p>\n<p class=\"small\"><strong>Important note<\/strong>: If your application will use feature layers with large datasets and\/or you expect high traffic, use the ArcGIS Maps SDKs or manually implement the remaining optimizations to avoid <a href=\"#rate-limiting-and-tiers\">scalability<\/a>\u00a0and performance issues.<\/p>\n<p>Do you want to go deeper? Here are some recommended resources:<\/p>\n<ul class=\"spaced\">\n<li><a href=\"https:\/\/developers.arcgis.com\/documentation\/portal-and-data-services\/tutorials\/#data-services\">Explore step-by-step tutorials<\/a> in the Portal and data services guide.<\/li>\n<li>Watch <a href=\"https:\/\/mediaspace.esri.com\/media\/t\/1_4e7fyqde\">the &#8220;Road Ahead and Best Practices with Hosted Feature Services&#8221;<\/a>.<\/li>\n<li>Read <a href=\"https:\/\/www.esri.com\/about\/newsroom\/arcuser\/enhancements-for-mapping-more-data-more-efficiently-in-the-browser\">&#8220;Enhancements for Mapping More Data, More Efficiently in the Browser&#8221;<\/a>.<\/li>\n<\/ul>\n<p>Don\u2019t miss the next article, &#8220;<a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-visualization-interactivity-differences\">Visualization &amp; Interactivity Differences<\/a>&#8220;, to learn more about what you can do with these services.<\/p>\n<p>If you have questions, join the conversation in\u00a0<a href=\"https:\/\/community.esri.com\/t5\/developers\/ct-p\/developers\">Esri Community &gt; Developers<\/a>. Or if you found something confusing or believe you\u2019ve spotted an error or inconsistency in this article, reach out to us at <a href=\"mailto:developers@esri.com\">developers@esri.com<\/a>. Your input helps us improve the clarity and accuracy of this content.<\/p>\n<p>Finally, if you found this article useful and believe others in your professional network may benefit from it, we would greatly appreciate it if you could share or engage with the post on <a href=\"https:\/\/www.linkedin.com\/posts\/jimenezortegaraul_raul-are-you-done-publishing-blogs-already-activity-7379114091455336448-b21t?utm_source=share&amp;utm_medium=member_desktop&amp;rcm=ACoAAAFTWIUB408_I8M39G1F7ZzN47wVswa8PcA\">LinkedIn<\/a>, <a href=\"https:\/\/bsky.app\/profile\/rauljimenez.info\/post\/3m24wip6gxy2n\">Bluesky<\/a>, or <a href=\"https:\/\/x.com\/hhkaos\/status\/1973348320929030393\">X<\/a>.<\/p>\n<p>Thank you to everyone who contributed to the content of this article. You rock! Extra special thanks to <a href=\"https:\/\/www.linkedin.com\/in\/matt-george-247317a5\/\">Matt George<\/a>, <a href=\"https:\/\/www.esri.com\/arcgis-blog\/author\/nfurness\">Nick Furness<\/a>, <a href=\"https:\/\/www.esri.com\/arcgis-blog\/author\/pbarker_esri\">Paul Barker<\/a>, and <a href=\"https:\/\/www.esri.com\/arcgis-blog\/author\/yhu\">Emily Hu<\/a>.<\/p>\n<style>ul.spaced>li,ul.spaced>li ul li{margin-top:.5rem} ul.spaced li ul{padding-bottom:0 !important}<\/style>\n<style>details div{background-color: #efefef; padding: 1rem 1rem 0 1rem; border: 1px solid #ccc; margin-top: 0; margin-bottom: 1rem;}<\/style>\n<style>summary{margin-bottom: 1rem;cursor:pointer}<\/style>\n<style>details ul li ul{margin-top: 1rem; padding-bottom: 0.5rem;}<\/style>\n<style>details[open] summary span:before{content: \"\u2296 \"}<\/style>\n<style>details summary span:before{content: \"\u2295 \"}small, .small{font-size: 1.1rem; border: 1px dotted #ccc; padding: .6rem; display: block; background-color: #fdfdfd;} ul.spaced ul{display:block !important; } ul.spaced ul li:last-child{padding-bottom:0rem}} details ul.spaced ul{padding-top: 0 !important;}h3{margin-bottom: 0;}<\/style>\n"}],"authors":[{"ID":293052,"user_firstname":"Raul","user_lastname":"Jimenez Ortega","nickname":"Raul Jimenez Ortega","user_nicename":"rjimenez","display_name":"Ra\u00fal Jim\u00e9nez Ortega","user_email":"rjimenez@esri.com","user_url":"http:\/\/links.rauljimenez.info\/","user_registered":"2021-11-17 17:27:29","user_description":"Developer on the Developer Experience (DX) team, looking for ways to improve the DX through better educational resources, developer tools, and community support among other things.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/raul-jimenez-ortega-social-picture-enhanced-blur-desaturated-white-levels-465x465.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"show_article_image":false,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/09\/arcgis-hosted-data-services-behind-the-scenes-and-sdk-trade-offs.jpg","wide_image":false,"related_articles":[{"ID":2941236,"post_author":"293052","post_date":"2025-09-29 06:28:38","post_date_gmt":"2025-09-29 13:28:38","post_content":"","post_title":"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"arcgis-hosted-data-services-retrieval-and-loading-time-differences","to_ping":"","pinged":"","post_modified":"2025-10-16 06:32:54","post_modified_gmt":"2025-10-16 13:32:54","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2941236","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2939766,"post_author":"293052","post_date":"2025-09-15 09:34:48","post_date_gmt":"2025-09-15 16:34:48","post_content":"","post_title":"ArcGIS Hosted Data Services: Creation and Maintenance Differences","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"arcgis-hosted-data-services-creation-and-maintenance-differences","to_ping":"","pinged":"","post_modified":"2025-10-22 06:21:38","post_modified_gmt":"2025-10-22 13:21:38","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2939766","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2940568,"post_author":"293052","post_date":"2025-09-26 04:54:25","post_date_gmt":"2025-09-26 11:54:25","post_content":"","post_title":"ArcGIS Hosted Data Services: Management Tools Differences","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"arcgis-hosted-data-services-management-tools-differences","to_ping":"","pinged":"","post_modified":"2025-10-22 06:17:57","post_modified_gmt":"2025-10-22 13:17:57","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2940568","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2942023,"post_author":"293052","post_date":"2025-10-09 11:00:53","post_date_gmt":"2025-10-09 18:00:53","post_content":"","post_title":"ArcGIS Hosted Data Services: Visualization & Interactivity Differences","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"arcgis-hosted-data-services-visualization-interactivity-differences","to_ping":"","pinged":"","post_modified":"2025-10-16 06:35:17","post_modified_gmt":"2025-10-16 13:35:17","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2942023","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"1","filter":"raw"},{"ID":2938599,"post_author":"293052","post_date":"2025-09-10 08:16:54","post_date_gmt":"2025-09-10 15:16:54","post_content":"","post_title":"ArcGIS Hosted Services: Use Cases for Each Type of Data Service","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"arcgis-hosted-services-use-cases-for-each-type-of-data-service","to_ping":"","pinged":"","post_modified":"2025-11-05 23:38:19","post_modified_gmt":"2025-11-06 07:38:19","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2938599","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}]},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-16T13:32:54+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\"},\"author\":{\"name\":\"Ra\u00fal Jim\u00e9nez Ortega\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5c4567f75f116a7404ab334a37e370bc\"},\"headline\":\"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs\",\"datePublished\":\"2025-09-29T13:28:38+00:00\",\"dateModified\":\"2025-10-16T13:32:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\"},\"wordCount\":10,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"feature service\",\"hosted data services blog series\",\"hosted services\",\"map tile service\",\"vector tile service\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\",\"name\":\"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2025-09-29T13:28:38+00:00\",\"dateModified\":\"2025-10-16T13:32:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5c4567f75f116a7404ab334a37e370bc\",\"name\":\"Ra\u00fal Jim\u00e9nez Ortega\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/raul-jimenez-ortega-social-picture-enhanced-blur-desaturated-white-levels-465x465.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/raul-jimenez-ortega-social-picture-enhanced-blur-desaturated-white-levels-465x465.jpg\",\"caption\":\"Ra\u00fal Jim\u00e9nez Ortega\"},\"description\":\"Developer on the Developer Experience (DX) team, looking for ways to improve the DX through better educational resources, developer tools, and community support among other things.\",\"sameAs\":[\"http:\/\/links.rauljimenez.info\/\",\"https:\/\/www.linkedin.com\/in\/jimenezortegaraul\/\",\"https:\/\/x.com\/hhkaos\",\"https:\/\/www.youtube.com\/channel\/UC1B_69SF_RFcWyTWz3MdQDw\"],\"jobTitle\":\"Principal Product Engineer\",\"worksFor\":\"Esri Inc\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/rjimenez\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences","og_locale":"en_US","og_type":"article","og_title":"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-10-16T13:32:54+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences"},"author":{"name":"Ra\u00fal Jim\u00e9nez Ortega","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5c4567f75f116a7404ab334a37e370bc"},"headline":"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs","datePublished":"2025-09-29T13:28:38+00:00","dateModified":"2025-10-16T13:32:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences"},"wordCount":10,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["feature service","hosted data services blog series","hosted services","map tile service","vector tile service"],"articleSection":["Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences","name":"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2025-09-29T13:28:38+00:00","dateModified":"2025-10-16T13:32:54+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/developers\/arcgis-hosted-data-services-retrieval-and-loading-time-differences#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"ArcGIS Hosted Data Services: Behind the Scenes and SDK Trade-offs"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/5c4567f75f116a7404ab334a37e370bc","name":"Ra\u00fal Jim\u00e9nez Ortega","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/raul-jimenez-ortega-social-picture-enhanced-blur-desaturated-white-levels-465x465.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/06\/raul-jimenez-ortega-social-picture-enhanced-blur-desaturated-white-levels-465x465.jpg","caption":"Ra\u00fal Jim\u00e9nez Ortega"},"description":"Developer on the Developer Experience (DX) team, looking for ways to improve the DX through better educational resources, developer tools, and community support among other things.","sameAs":["http:\/\/links.rauljimenez.info\/","https:\/\/www.linkedin.com\/in\/jimenezortegaraul\/","https:\/\/x.com\/hhkaos","https:\/\/www.youtube.com\/channel\/UC1B_69SF_RFcWyTWz3MdQDw"],"jobTitle":"Principal Product Engineer","worksFor":"Esri Inc","url":"https:\/\/www.esri.com\/arcgis-blog\/author\/rjimenez"}]}},"text_date":"September 29, 2025","author_name":"Ra\u00fal Jim\u00e9nez Ortega","author_page":"https:\/\/www.esri.com\/arcgis-blog\/author\/rjimenez","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"Developers","tag_data":[{"term_id":176482,"name":"feature service","slug":"feature-service","term_group":0,"term_taxonomy_id":176482,"taxonomy":"post_tag","description":"","parent":0,"count":14,"filter":"raw"},{"term_id":780819,"name":"hosted data services blog series","slug":"hosted-data-services-blog-series","term_group":0,"term_taxonomy_id":780819,"taxonomy":"post_tag","description":"","parent":0,"count":9,"filter":"raw"},{"term_id":29651,"name":"hosted services","slug":"hosted-services","term_group":0,"term_taxonomy_id":29651,"taxonomy":"post_tag","description":"","parent":0,"count":13,"filter":"raw"},{"term_id":780817,"name":"map tile service","slug":"map-tile-service","term_group":0,"term_taxonomy_id":780817,"taxonomy":"post_tag","description":"","parent":0,"count":8,"filter":"raw"},{"term_id":780816,"name":"vector tile service","slug":"vector-tile-service","term_group":0,"term_taxonomy_id":780816,"taxonomy":"post_tag","description":"","parent":0,"count":8,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":426,"filter":"raw"}],"product_data":[{"term_id":761642,"name":"ArcGIS Location Platform","slug":"platform","term_group":0,"term_taxonomy_id":761642,"taxonomy":"product","description":"","parent":36601,"count":215,"filter":"raw"},{"term_id":36551,"name":"ArcGIS Online","slug":"arcgis-online","term_group":0,"term_taxonomy_id":36551,"taxonomy":"product","description":"","parent":0,"count":2437,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":765,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=developers","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2941236","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/293052"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2941236"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2941236\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2941236"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2941236"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2941236"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2941236"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2941236"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}