{"id":2758392,"date":"2025-04-14T11:09:57","date_gmt":"2025-04-14T18:09:57","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2758392"},"modified":"2025-05-19T04:23:29","modified_gmt":"2025-05-19T11:23:29","slug":"whats-new-in-arcgis-api-for-python-2-4-1-april-2025","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025","title":{"rendered":"What&#8217;s New in ArcGIS API for Python 2.4.1 (April 2025)"},"author":154341,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37101],"tags":[152942,387782],"industry":[],"product":[36841],"class_list":["post-2758392","blog","type-blog","status-publish","format-standard","hentry","category-announcements","tag-api-for-python","tag-arcgis-api-for-python","product-api-python"],"acf":{"authors":[{"ID":154341,"user_firstname":"Nicholas","user_lastname":"Giner","nickname":"Nick Giner","user_nicename":"nginer","display_name":"Nicholas Giner","user_email":"NGiner@esri.com","user_url":"","user_registered":"2021-01-07 14:31:25","user_description":"Nick Giner is a Product Manager for Spatial Analysis and Data Science.  Prior to joining Esri in 2014, he completed Bachelor\u2019s and PhD degrees in Geography from Penn State University and Clark University, respectively. In his spare time, he likes to play guitar, golf, cook, cut the grass, and read\/watch shows about history.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/headshot-e1610030307989-213x200.jpeg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"},{"ID":358272,"user_firstname":"Halle","user_lastname":"Martinucci","nickname":"Halle Martinucci","user_nicename":"hmartinucci","display_name":"Halle Martinucci","user_email":"hmartinucci@esri.com","user_url":"","user_registered":"2024-06-18 18:43:42","user_description":"Halle is an Associate Product Marketing Manager on Esri\u2019s Spatial Analytics &amp; Data Science team.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/01\/halle-martinucci-3z7a7050-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Learn about the new features and updates in ArcGIS API for Python 2.4.1, including Jupyter Notebook support and item dependency graphs.","flexible_content":[{"acf_fc_layout":"content","content":"<p>The\u00a0<strong><a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-python-libraries\/libraries\/arcgis-api-python?aduc=PublicRelations&amp;sf_id=7015x000000vfizAAA&amp;aduco=sept-2024-release-blog&amp;aduca=MIArcGISAPIForPythonDeveloper&amp;utm_id=7015x000000vfizAAA&amp;adum=Blog&amp;utm_campaign=MIArcGISAPIForPythonDeveloper&amp;utm_source=PublicRelations&amp;utm_medium=Blog&amp;utm_content=sept-2024-release-blog\" target=\"_blank\" rel=\"noopener\">ArcGIS API for Python<\/a><\/strong> (e.g. \u201cthe Python API\u201d) released version 2.4.1 on April 7, 2025.\u00a0 A main focus of this release was to build upon the Jupyter Notebook 7 and JupyterLab 4 architecture changes implemented at 2.4.0, however there are several other important updates highlighted below.\u00a0 You can also read the full release notes <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/release-notes-241\/\" target=\"_blank\" rel=\"noopener\"><strong>here<\/strong><\/a>, which includes a detailed list of <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/release-notes-241\/#fixes\" target=\"_blank\" rel=\"noopener\"><strong>bug fixes<\/strong><\/a> and <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/deprecation-notices\/\" target=\"_blank\" rel=\"noopener\"><strong>deprecation announcements<\/strong><\/a>.<\/p>\n<h2>Item dependency graphs<\/h2>\n<p>GIS administrators and other users who manage content within the organization often want to know all the item dependencies for any item type.\u00a0 For example, I may want to know about the:<\/p>\n<ul>\n<li>Layers in my web maps (e.g. Feature Layer -&gt; Web Map)<\/li>\n<li>Source files for published layers (e.g. File Geodatabase -&gt; Feature Layer)<\/li>\n<li>Visual components in a web app (e.g. Web Map in a StoryMap)<\/li>\n<li>Attachments to other items (e.g. Microsoft Word Template in a Survey123 app)<\/li>\n<\/ul>\n<p>The new\u00a0<a href=\"https:\/\/developers.arcgis.com\/python\/api-reference\/arcgis.apps.itemgraph.html\" target=\"_blank\" rel=\"noopener\"><strong>itemgraph<\/strong><\/a>\u00a0submodule in the <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.apps.html\" target=\"_blank\" rel=\"noopener\"><strong>apps<\/strong><\/a> module provides classes and functions for building a dependency graph of organizational\u00a0<a href=\"https:\/\/developers.arcgis.com\/python\/api-reference\/arcgis.gis.toc.html#item\" target=\"_blank\" rel=\"noopener\"><em><strong>Item<\/strong><\/em><\/a>\u00a0content.\u00a0 A dependency graph allows you to examine how items relate to each other in ArcGIS Online or Enterprise organizations\u2014for example, which items are required for other items to exist.<\/p>\n<p>That\u2019s sounds great, but how can this functionality be used to solve a real-world problem?<\/p>\n<p>Let\u2019s say that you are a GIS administrator who has been tasked with migrating your organization\u2019s items to a different portal.\u00a0 Perhaps it is from ArcGIS Enterprise to Online, or maybe from a development environment to a production environment.\u00a0 Before migrating, you want to ensure that all of your items (including your complex apps) are rendering correctly and not missing any data sources, but you don\u2019t want to manually click through to check each one.\u00a0 How can you more efficiently find out what\u2019s missing?<\/p>\n<p>Here are the high-level steps:<\/p>\n<ul>\n<li>Create a dependency graph.<\/li>\n<li>Identify the item ID\u2019s that don\u2019t correspond to existing or accessible items. Perhaps they no longer exist, are broken, or are not accessible to your organization.<\/li>\n<li>Optionally visualize the dependency graph.<\/li>\n<li>Replace the problematic item ID\u2019s with the correct ID\u2019s. This can be achieved using the <strong><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.gis.toc.html#arcgis.gis.Item.remap_data\" target=\"_blank\" rel=\"noopener\">remap_data<\/a><\/strong> method that was released in v2.4.0 of the Python API.<\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":2758412,"id":2758412,"title":"item_graph_code","filename":"item_graph_code.jpg","filesize":301177,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_code.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\/item_graph_code","alt":"","author":"154341","description":"","caption":"Example code for creating the dependency graph of a StoryMap.","name":"item_graph_code","status":"inherit","uploaded_to":2758392,"date":"2025-04-14 12:09:15","modified":"2025-04-14 12:09:32","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":1442,"height":931,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_code-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_code.jpg","medium-width":404,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_code.jpg","medium_large-width":768,"medium_large-height":496,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_code.jpg","large-width":1442,"large-height":931,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_code.jpg","1536x1536-width":1442,"1536x1536-height":931,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_code.jpg","2048x2048-width":1442,"2048x2048-height":931,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_code-720x465.jpg","card_image-width":720,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_code.jpg","wide_image-width":1442,"wide_image-height":931}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2758422,"id":2758422,"title":"item_graph_visual","filename":"item_graph_visual.jpg","filesize":104835,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_visual.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\/item_graph_visual","alt":"","author":"154341","description":"","caption":"Example visualization of the StoryMap\u2019s dependency graph.","name":"item_graph_visual","status":"inherit","uploaded_to":2758392,"date":"2025-04-14 12:09:49","modified":"2025-04-14 12:12:30","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":1318,"height":953,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_visual-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_visual.jpg","medium-width":361,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_visual.jpg","medium_large-width":768,"medium_large-height":555,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_visual.jpg","large-width":1318,"large-height":953,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_visual.jpg","1536x1536-width":1318,"1536x1536-height":953,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_visual.jpg","2048x2048-width":1318,"2048x2048-height":953,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_visual-643x465.jpg","card_image-width":643,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/item_graph_visual.jpg","wide_image-width":1318,"wide_image-height":953}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Offline cloning \/ Creating backups<\/h2>\n<p>After you have used the item dependency graph and remapping method to prepare your content for migration, you may want to create backups of the content.\u00a0 You can use the new <a href=\"https:\/\/developers.arcgis.com\/python\/api-reference\/arcgis.gis.toc.html#arcgis.gis.OfflineContentManager\" target=\"_blank\" rel=\"noopener\"><strong>OfflineContentManager<\/strong><\/a> class to create a saved state of your items <strong><em>and their dependencies<\/em><\/strong>, which can then be restored in the event that something changes or is broken.\u00a0 This class has methods to list items, export items, and import items.\u00a0 This new class and its methods provide a great way to proactively prevent your content from breaking post-migration.<\/p>\n"},{"acf_fc_layout":"sidebar","content":"<p><strong>Note: <\/strong>In addition to backing up content, this functionality will also be useful to organizations who migrate\/clone content in <strong>disconnected environments<\/strong>.<\/p>\n","image_reference":false,"layout":"standard","image_reference_figure":"","snippet":"","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<h2>GDAL support for the Spatially Enabled DataFrame (SeDF)<\/h2>\n<p>The\u00a0<strong><a href=\"https:\/\/developers.arcgis.com\/python\/guide\/part1-introduction-to-sedf\/\" target=\"_blank\" rel=\"noopener\">Spatially Enabled DataFrame (SeDF)<\/a><\/strong> allows you to easily convert your ArcGIS data (e.g. feature layers, file geodatabase feature classes, shapefiles, GeoJSON, etc.) back and forth between\u00a0<strong><a href=\"https:\/\/pandas.pydata.org\/docs\/reference\/api\/pandas.DataFrame.html\" target=\"_blank\" rel=\"noopener\">Pandas DataFrames<\/a><\/strong>, which makes it a powerful bridge between ArcGIS and the Python data science ecosystem.<\/p>\n<p>Behind the scenes, the SeDF uses the concept of a \u201c<strong><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/part1-introduction-to-sedf\/#geometry-engines\" target=\"_blank\" rel=\"noopener\">geometry engine<\/a><\/strong>\u201d to work with and understand the geometry of geospatial data when converting it between different formats.\u00a0 By default, the SeDF uses <strong><a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/arcpy\/get-started\/what-is-arcpy-.htm\" target=\"_blank\" rel=\"noopener\">ArcPy<\/a><\/strong> as the geometry engine when it is available (e.g. when you have a license for it).\u00a0 The biggest advantage of using ArcPy as the geometry engine is the ability to write to file geodatabases, however it does also have numerous other benefits such as full compatibility with the ArcGIS ecosystem and use of the <strong><a href=\"https:\/\/pro.arcgis.com\/en\/pro-app\/latest\/help\/analysis\/geoprocessing\/basics\/what-is-geoprocessing-.htm\" target=\"_blank\" rel=\"noopener\">geoprocessing framework<\/a><\/strong>.<\/p>\n<p>The pain point here is that if you use the ArcGIS API for Python on Mac or Linux (or otherwise don\u2019t have access to ArcPy), it was not possible to read\/write file geodatabases.<\/p>\n<p>With the release of v2.4.1, we\u2019ve incorporated <strong><a href=\"https:\/\/gdal.org\/en\/stable\/\" target=\"_blank\" rel=\"noopener\">GDAL<\/a><\/strong> into the reading\/writing functions of the SeDF.\u00a0 GDAL stands for Geospatial Data Abstraction Library, which is an open-source library that can read\/write a wide variety of raster and vector geospatial data formats. It already comes in the standard environment for ArcGIS Pro on Windows and the <strong><a href=\"https:\/\/www.esri.com\/en-us\/arcgis\/products\/arcgis-notebooks\/runtime-manifests\" target=\"_blank\" rel=\"noopener\">ArcGIS Notebook Runtimes<\/a><\/strong>, and can also be installed via Python package managers Conda and Pip. This means that file geodatabases are now easily read into\/written from the SeDF on Mac and Linux, and there is now a more consistent data I\/O experience regardless of which OS you use the Python API with.<\/p>\n<p>All you need to do is <strong><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/overview241\/#new-processing-option-spatially-enabled-dataframe\" target=\"_blank\" rel=\"noopener\">set the processing environment<\/a><\/strong> at the top of your script and point to your <strong><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.features.toc.html#geoaccessor\" target=\"_blank\" rel=\"noopener\">geometry engine of choice<\/a><\/strong>, then import <strong><code>arcgis<\/code><\/strong> and whatever other Python libraries you need to use!<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2758432,"id":2758432,"title":"sedf_gdal","filename":"sedf_gdal.jpg","filesize":120011,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/sedf_gdal.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\/sedf_gdal","alt":"","author":"154341","description":"","caption":"","name":"sedf_gdal","status":"inherit","uploaded_to":2758392,"date":"2025-04-14 12:18:29","modified":"2025-04-14 12:18:29","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":1296,"height":340,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/sedf_gdal-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/sedf_gdal.jpg","medium-width":464,"medium-height":122,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/sedf_gdal.jpg","medium_large-width":768,"medium_large-height":201,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/sedf_gdal.jpg","large-width":1296,"large-height":340,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/sedf_gdal.jpg","1536x1536-width":1296,"1536x1536-height":340,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/sedf_gdal.jpg","2048x2048-width":1296,"2048x2048-height":340,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/sedf_gdal-826x217.jpg","card_image-width":826,"card_image-height":217,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/sedf_gdal.jpg","wide_image-width":1296,"wide_image-height":340}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2>Supported platforms<\/h2>\n<ul>\n<li>Python versions\n<ul>\n<li>3.11, with secondary support for 3.10 and 3.12<\/li>\n<\/ul>\n<\/li>\n<li>Esri products and their versions\n<ul>\n<li>ArcGIS Pro 3.5 and later default and cloned environments<\/li>\n<li>ArcGIS Online June 2025 release<\/li>\n<li>ArcGIS Enterprise 11.4 and later\n<ul>\n<li>Included with Enterprise 11.5 Notebook runtime<\/li>\n<\/ul>\n<\/li>\n<li>Stand-alone conda and Python environments<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Deprecation announcements<\/h2>\n<p><span data-teams=\"true\">The <a href=\"https:\/\/www.tensorflow.org\/\"><strong>TensorFlow<\/strong><\/a> library is being deprecated, and will no longer be supported in upcoming releases of the ArcGIS API for Python.\u00a0 You can view the full list of <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/deprecation-notices\/\" target=\"_blank\" rel=\"noopener\"><strong>deprecation announcements<\/strong><\/a> in the ArcGIS API for Python documentation.<\/span><\/p>\n<h2>Community and collaboration<\/h2>\n<p>We want to remind you that there are excellent resources available for getting help with the API and sharing your feedback. \u00a0You can use the\u00a0<strong><a href=\"https:\/\/community.esri.com\/t5\/arcgis-api-for-python\/ct-p\/arcgis-api-for-python?aduc=PublicRelations&amp;sf_id=7015x000000vfizAAA&amp;aduco=sept-2024-release-blog&amp;aduca=MIArcGISAPIForPythonDeveloper&amp;utm_id=7015x000000vfizAAA&amp;adum=Blog&amp;utm_campaign=MIArcGISAPIForPythonDeveloper&amp;utm_source=PublicRelations&amp;utm_medium=Blog&amp;utm_content=sept-2024-release-blog\" target=\"_blank\" rel=\"noopener\">ArcGIS API for Python Esri Community page<\/a><\/strong>\u00a0to ask specific questions, suggest ideas for enhancements and improvements, connect with other users, and read\u00a0<strong><a href=\"https:\/\/www.esri.com\/arcgis-blog\/?s=#ArcGIS%20API%20for%20Python\" target=\"_blank\" rel=\"noopener\">recent blogs<\/a><\/strong>.\u00a0 You can also use the\u00a0<strong><a href=\"https:\/\/github.com\/Esri\/arcgis-python-api\/issues\" target=\"_blank\" rel=\"noopener\">ArcGIS API for Python public GitHub repo<\/a><\/strong> to submit bugs, enhancement requests, and other issues.\u00a0 The team actively monitors these pages and greatly appreciates your feedback and suggestions, which guide our priorities for future API development. We encourage you to share your thoughts!<\/p>\n"}],"related_articles":"","show_article_image":false,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/api-for-python-CARD.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/api-for-python-WIDE.png"},"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>What&#039;s New in ArcGIS API for Python 2.4.1 (April 2025)<\/title>\n<meta name=\"description\" content=\"Learn about the new features and updates in ArcGIS API for Python 2.4.1, including Jupyter Notebook support and item dependency graphs.\" \/>\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\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What&#039;s New in ArcGIS API for Python 2.4.1 (April 2025)\" \/>\n<meta property=\"og:description\" content=\"Learn about the new features and updates in ArcGIS API for Python 2.4.1, including Jupyter Notebook support and item dependency graphs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\" \/>\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-05-19T11:23:29+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=\"6 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\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\"},\"author\":{\"name\":\"Nicholas Giner\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/2dc4741deea59d3274cfa775e52501b2\"},\"headline\":\"What&#8217;s New in ArcGIS API for Python 2.4.1 (April 2025)\",\"datePublished\":\"2025-04-14T18:09:57+00:00\",\"dateModified\":\"2025-05-19T11:23:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\"},\"wordCount\":9,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"API for Python\",\"ArcGIS API for Python\"],\"articleSection\":[\"Announcements\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\",\"name\":\"What's New in ArcGIS API for Python 2.4.1 (April 2025)\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2025-04-14T18:09:57+00:00\",\"dateModified\":\"2025-05-19T11:23:29+00:00\",\"description\":\"Learn about the new features and updates in ArcGIS API for Python 2.4.1, including Jupyter Notebook support and item dependency graphs.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What&#8217;s New in ArcGIS API for Python 2.4.1 (April 2025)\"}]},{\"@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\/2dc4741deea59d3274cfa775e52501b2\",\"name\":\"Nicholas Giner\",\"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\/2021\/01\/headshot-e1610030307989-213x200.jpeg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/headshot-e1610030307989-213x200.jpeg\",\"caption\":\"Nicholas Giner\"},\"description\":\"Nick Giner is a Product Manager for Spatial Analysis and Data Science. Prior to joining Esri in 2014, he completed Bachelor\u2019s and PhD degrees in Geography from Penn State University and Clark University, respectively. In his spare time, he likes to play guitar, golf, cook, cut the grass, and read\/watch shows about history.\",\"sameAs\":[\"www.linkedin.com\/in\/nicholas-giner-0282966b\",\"https:\/\/x.com\/NickGiner\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/nginer\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What's New in ArcGIS API for Python 2.4.1 (April 2025)","description":"Learn about the new features and updates in ArcGIS API for Python 2.4.1, including Jupyter Notebook support and item dependency graphs.","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\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025","og_locale":"en_US","og_type":"article","og_title":"What's New in ArcGIS API for Python 2.4.1 (April 2025)","og_description":"Learn about the new features and updates in ArcGIS API for Python 2.4.1, including Jupyter Notebook support and item dependency graphs.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-05-19T11:23:29+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025"},"author":{"name":"Nicholas Giner","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/2dc4741deea59d3274cfa775e52501b2"},"headline":"What&#8217;s New in ArcGIS API for Python 2.4.1 (April 2025)","datePublished":"2025-04-14T18:09:57+00:00","dateModified":"2025-05-19T11:23:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025"},"wordCount":9,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["API for Python","ArcGIS API for Python"],"articleSection":["Announcements"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025","name":"What's New in ArcGIS API for Python 2.4.1 (April 2025)","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2025-04-14T18:09:57+00:00","dateModified":"2025-05-19T11:23:29+00:00","description":"Learn about the new features and updates in ArcGIS API for Python 2.4.1, including Jupyter Notebook support and item dependency graphs.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"What&#8217;s New in ArcGIS API for Python 2.4.1 (April 2025)"}]},{"@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\/2dc4741deea59d3274cfa775e52501b2","name":"Nicholas Giner","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\/2021\/01\/headshot-e1610030307989-213x200.jpeg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2021\/01\/headshot-e1610030307989-213x200.jpeg","caption":"Nicholas Giner"},"description":"Nick Giner is a Product Manager for Spatial Analysis and Data Science. Prior to joining Esri in 2014, he completed Bachelor\u2019s and PhD degrees in Geography from Penn State University and Clark University, respectively. In his spare time, he likes to play guitar, golf, cook, cut the grass, and read\/watch shows about history.","sameAs":["www.linkedin.com\/in\/nicholas-giner-0282966b","https:\/\/x.com\/NickGiner"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/nginer"}]}},"text_date":"April 14, 2025","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-1-april-2025","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/04\/api-for-python-WIDE.png","primary_product":"ArcGIS API for Python","tag_data":[{"term_id":152942,"name":"API for Python","slug":"api-for-python","term_group":0,"term_taxonomy_id":152942,"taxonomy":"post_tag","description":"","parent":0,"count":9,"filter":"raw"},{"term_id":387782,"name":"ArcGIS API for Python","slug":"arcgis-api-for-python","term_group":0,"term_taxonomy_id":387782,"taxonomy":"post_tag","description":"","parent":0,"count":44,"filter":"raw"}],"category_data":[{"term_id":37101,"name":"Announcements","slug":"announcements","term_group":0,"term_taxonomy_id":37101,"taxonomy":"category","description":"","parent":0,"count":1961,"filter":"raw"}],"product_data":[{"term_id":36841,"name":"ArcGIS API for Python","slug":"api-python","term_group":0,"term_taxonomy_id":36841,"taxonomy":"product","description":"","parent":36601,"count":151,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=api-python","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2758392","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\/154341"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2758392"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2758392\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2758392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2758392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2758392"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2758392"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2758392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}