{"id":2511942,"date":"2024-10-08T11:45:41","date_gmt":"2024-10-08T18:45:41","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2511942"},"modified":"2025-04-18T11:39:56","modified_gmt":"2025-04-18T18:39:56","slug":"whats-new-in-arcgis-api-for-python-2-4-0-blog","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog","title":{"rendered":"What&#8217;s New in ArcGIS API for Python 2.4.0 (September 2024)"},"author":154341,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37101],"tags":[152942,387782],"industry":[],"product":[36841],"class_list":["post-2511942","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":352692,"user_firstname":"Mariia","user_lastname":"Lubinova","nickname":"Mariia Lubinova","user_nicename":"mlubinova","display_name":"Mariia Lubinova","user_email":"mlubinova@esri.com","user_url":"","user_registered":"2024-02-07 23:40:22","user_description":"Mariia is a Product Marketing Manager on Esri's Spatial Analytics &amp; Data Science team, with a background in Marketing and Business Development.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/02\/Mariia-Lubinova_photo-213x200.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Check out this What's New blog to review the latest updates for ArcGIS API for Python version 2.4.0. ","flexible_content":[{"acf_fc_layout":"content","content":"<p>The <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\">ArcGIS API for Python<\/a> (e.g. \u201cthe Python API\u201d) released version 2.4.0 on September 24, 2024.\u00a0 The focus of this release is on modernization and improved usability, but we\u2019ve also prioritized bug fixes and added <em>hundreds<\/em> of updates and enhancements throughout the API.\u00a0 Read some of the highlights organized into major themes and common workflows below, and check out the full release notes <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/release-notes-240\/?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\">here<\/a>.<\/p>\n<h2>New map widget for improved mapping and visualization<\/h2>\n<p>The map widget of the arcgis.mapping module has long been popular with Python API users because it allows you to visualize your spatial data and analysis results on interactive web maps directly in a Jupyter (or ArcGIS) Notebook.\u00a0 In version 2.4.0, we\u2019ve added a new, modern version of the map widget into the API.\u00a0 Here are some things to be aware of:<\/p>\n<ul>\n<li>The previous <a href=\"https:\/\/developers.arcgis.com\/python-2-3\/api-reference\/arcgis.mapping.toc.html?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\">arcgis.mapping<\/a> and <a href=\"https:\/\/developers.arcgis.com\/python-2-3\/api-reference\/arcgis.widgets.html?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?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\">arcgis.widgets<\/a> modules have been deprecated and refactored into the new <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html?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\">arcgis.map<\/a> module.<\/li>\n<li>You can now use the API to design your map widget in a notebook (e.g. add layers, symbolize, add bookmarks, etc.), then save this map widget as a web map that can be seamlessly consumed in the Map Viewer and other supported web applications.<\/li>\n<li>The new map widget provides you with internal validation when creating pop-ups, renderers, and symbols.<\/li>\n<li>In version 2.4.0 (and going forward), the new map widget will support the latest version of the JavaScript API, which enables you to take advantage of the latest features in the JavaScript API.<\/li>\n<li>The new map widget also works with the next generation of Jupyter Notebooks (Jupyter Notebook 7 and JupyterLab 4). With the upcoming releases of ArcGIS Pro 3.4, ArcGIS Enterprise 11.4, and the November 2024 ArcGIS Online update, <u>all<\/u> ArcGIS Notebooks products will be Jupyter Notebook 7-based, which means they will be compatible with the new map widget!<\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":2514522,"id":2514522,"title":"old_map_widget_v2","filename":"old_map_widget_v2-scaled.jpg","filesize":440450,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_map_widget_v2-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog\/old_map_widget_v2","alt":"Map widget in a notebook","author":"154341","description":"","caption":"Example of the code for the previous map widget (v2.3.x and earlier).","name":"old_map_widget_v2","status":"inherit","uploaded_to":2511942,"date":"2024-10-03 16:21:24","modified":"2024-10-07 22:24:24","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":2560,"height":1459,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_map_widget_v2-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_map_widget_v2-scaled.jpg","medium-width":458,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_map_widget_v2-scaled.jpg","medium_large-width":768,"medium_large-height":438,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_map_widget_v2-scaled.jpg","large-width":1895,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_map_widget_v2-1536x875.jpg","1536x1536-width":1536,"1536x1536-height":875,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_map_widget_v2-2048x1167.jpg","2048x2048-width":2048,"2048x2048-height":1167,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_map_widget_v2-816x465.jpg","card_image-width":816,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_map_widget_v2-1895x1080.jpg","wide_image-width":1895,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2514532,"id":2514532,"title":"new_map_widget_v2","filename":"new_map_widget_v2-scaled.jpg","filesize":453194,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_map_widget_v2-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog\/new_map_widget_v2","alt":"new map widget in a notebook","author":"154341","description":"","caption":"Example of the code for the new map widget (v2.4.x and after).","name":"new_map_widget_v2","status":"inherit","uploaded_to":2511942,"date":"2024-10-03 16:23:28","modified":"2024-10-07 22:24:54","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":2560,"height":1613,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_map_widget_v2-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_map_widget_v2-scaled.jpg","medium-width":414,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_map_widget_v2-scaled.jpg","medium_large-width":768,"medium_large-height":484,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_map_widget_v2-scaled.jpg","large-width":1714,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_map_widget_v2-1536x968.jpg","1536x1536-width":1536,"1536x1536-height":968,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_map_widget_v2-2048x1291.jpg","2048x2048-width":2048,"2048x2048-height":1291,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_map_widget_v2-738x465.jpg","card_image-width":738,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_map_widget_v2-1714x1080.jpg","wide_image-width":1714,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"sidebar","content":"<p><strong>Note:<\/strong> If you want to continue using Jupyter Notebook 6, the option is to stick with version 2.3.1. If you are using the old map widget in your code, and you switch to 2.4.0, you will have to do some migration of your code.<\/p>\n<p>You may also need to adjust some of your code if you use ArcGIS Notebooks and decide to <a href=\"https:\/\/doc.arcgis.com\/en\/arcgis-online\/create-maps\/specify-the-runtime-of-a-notebook.htm#ESRI_SECTION1_E8C9CEF11BFC47C19796371AE9399081?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\">change\/update the notebook runtime<\/a> to v11.0, as it will ship with Python API 2.4.0.\u00a0 Please refer to <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/overview24\/#refactor-arcgismapping-module?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\">this documentation<\/a> for best practices, code snippets, and a functionality comparison when doing this migration.<\/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>New <em>Service<\/em> class for streamlined access to GIS Services<\/h2>\n<p>The foundational purpose of the ArcGIS API for Python is to \u201cbe the Python API to your web GIS\u201d.\u00a0 In other words, it provides a Pythonic way to interact with ArcGIS REST services from ArcGIS Online or ArcGIS Enterprise.<\/p>\n<p>Within ArcGIS, there are hundreds of available services in the categories of <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-and-location-services\/?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\">mapping &amp; location<\/a>, <a href=\"https:\/\/developers.arcgis.com\/documentation\/portal-and-data-services\/?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\">portal &amp; data<\/a>, and <a href=\"https:\/\/developers.arcgis.com\/documentation\/spatial-analysis-services\/?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\">spatial analysis<\/a>, and the ArcGIS API for Python has classes, functions, and methods for interacting with many of them.\u00a0 Prior to this release, users might have multiple import statements in their code based on the specific types of services they are working with (calling).<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2514542,"id":2514542,"title":"old_services_v2","filename":"old_services_v2-scaled.jpg","filesize":157737,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_services_v2-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog\/old_services_v2","alt":"ArcGIS for Python multiple import statements to access GIS services","author":"154341","description":"","caption":"Example of using multiple import statements and making service type-specific calls to access GIS services. ","name":"old_services_v2","status":"inherit","uploaded_to":2511942,"date":"2024-10-03 16:24:58","modified":"2024-10-07 23:38:52","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":2560,"height":545,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_services_v2-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_services_v2-scaled.jpg","medium-width":464,"medium-height":99,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_services_v2-scaled.jpg","medium_large-width":768,"medium_large-height":164,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_services_v2-scaled.jpg","large-width":1920,"large-height":409,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_services_v2-1536x327.jpg","1536x1536-width":1536,"1536x1536-height":327,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_services_v2-2048x436.jpg","2048x2048-width":2048,"2048x2048-height":436,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_services_v2-826x176.jpg","card_image-width":826,"card_image-height":176,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_services_v2-1920x409.jpg","wide_image-width":1920,"wide_image-height":409}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>In the 2.4.0 release, we\u2019ve worked to streamline access to <u>all<\/u> GIS services through the <em><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.layers.toc.html#service?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\">Service<\/a><\/em> class of the new <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.layers.toc.html?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\">arcgis.layers<\/a> module.\u00a0 This is one single class (and single import statement!) that provides a centralized and easy way to access any supported GIS service, without the user specifying or even knowing what type of service it is.\u00a0 Given the sheer volume of different types of services within the ArcGIS system, this is a huge win!<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2514552,"id":2514552,"title":"new_services_v2","filename":"new_services_v2-scaled.jpg","filesize":141057,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_services_v2-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog\/new_services_v2","alt":"ArcGIS for Python import statement to access multiple different GIS services","author":"154341","description":"","caption":"Example of using one import statement and one class to access multiple different GIS services. ","name":"new_services_v2","status":"inherit","uploaded_to":2511942,"date":"2024-10-03 16:26:19","modified":"2024-10-07 23:39:09","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":2560,"height":586,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_services_v2-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_services_v2-scaled.jpg","medium-width":464,"medium-height":106,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_services_v2-scaled.jpg","medium_large-width":768,"medium_large-height":176,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_services_v2-scaled.jpg","large-width":1920,"large-height":440,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_services_v2-1536x351.jpg","1536x1536-width":1536,"1536x1536-height":351,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_services_v2-2048x469.jpg","2048x2048-width":2048,"2048x2048-height":469,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_services_v2-826x189.jpg","card_image-width":826,"card_image-height":189,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/new_services_v2-1920x439.jpg","wide_image-width":1920,"wide_image-height":439}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"sidebar","content":"<p><strong>Note:<\/strong> The previous workflows for interacting with GIS services will continue to work, but will likely be deprecated in a future release.\u00a0 As such, we recommend that you start to migrate your code sooner rather than later.<\/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>Administration<\/h2>\n<p>Administering your web GIS can refer to managing users, groups, infrastructure, and servers, or customizing the look and feel of your ArcGIS Online or Enterprise.\u00a0 Here are some highlights from the 2.4.0 release:<\/p>\n<ul>\n<li><strong>Support for the new User Types &#8211; <\/strong>As you may be aware, Esri <a href=\"https:\/\/www.esri.com\/about\/newsroom\/arcnews\/simplifying-how-users-access-arcgis\/?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\">updated the ArcGIS user type model<\/a> in June 2024. User types control what licenses are assigned to a user, and therefore what capabilities they have access to.\u00a0 We know that many of our customers use the ArcGIS API for Python to automate creation of user accounts, and to configure all of the licenses, privileges, etc. that are associated with them.\u00a0 As such, we have ensured that <em>our underlying code<\/em> has been adjusted to account for these new user type changes, so that <em>your existing code<\/em> will continue to work and will pick up these changes when you create new users with the API.<\/li>\n<li><strong>Check offline licenses &#8211;<\/strong> Another administrative enhancement we\u2019ve added at 2.4.0 is the ability to check offline Named User licenses. This allows organization administrators to programmatically identify the users in their ArcGIS Online organization who have taken a license offline, such that they can be monitored over time or contacted regarding the organization\u2019s offline licensing policies.\u00a0 Thanks to <a href=\"https:\/\/github.com\/Esri\/arcgis-python-api\/issues\/1798\">this issue<\/a> submitted in the <a href=\"https:\/\/github.com\/Esri\/arcgis-python-api\/issues\">ArcGIS API for Python public GitHub repo<\/a>, we\u2019ve added this functionality for checking offline ArcGIS Pro licenses.<\/li>\n<li><strong>Recycle bin support &#8211;<\/strong> In June 2024, Esri introduced the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/announcements\/recycle-bin-what-you-need-to-know\/?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\">Recycle Bin<\/a> to ArcGIS Online. This allows individual users or administrators to recover items that have been deleted from the organization.\u00a0 Like we do with many new features that are added to ArcGIS, the Python API team added functionality to work with the Recycle Bin programmatically in version 2.2.0.\u00a0 At 2.4.0, we\u2019ve added enhancements to allow organization administrators to access and recover Recycle Bin content from the whole organization, as well as the ability to restore deleted content to a specific folder.<\/li>\n<\/ul>\n<h2>Content management<\/h2>\n<p>We know that managing content in an efficient and automated manner is one of the most common tasks our customers do with the ArcGIS API for Python.\u00a0 As such, content management workflows drive many of our development projects when considering new releases.\u00a0 Here are a select few\u2026<\/p>\n<ul>\n<li><strong>Item classification support<\/strong> \u2013 Item classification is the process of assigning data or items with a specific label.\u00a0 It is widely used by government agencies and other businesses to assign levels of protection, restrict access to, or control dissemination of individual pieces of data or content within the organization.\u00a0 With the upcoming release of ArcGIS Enterprise 11.4, portal administrators can define and apply a classification and dissemination schema to each item in the portal.\u00a0 At 2.4.0, we\u2019ve added functionality to programmatically enable or disable item classification via the Python API\u2019s new <em><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.gis.admin.html#classificationmanager?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\">ClassificationManager<\/a>\u00a0<\/em>class.<\/li>\n<li><strong>Update Living Atlas v2.0 content in ArcGIS Enterprise<\/strong> \u2013 At Enterprise 11.3 or higher, users can update ArcGIS Living Atlas content as updates become available, rather than waiting to upgrade to a new version of Enterprise. Version 2.4.0 of the Python API contains support for programmatically checking for, scheduling, and downloading Living Atlas updates.<\/li>\n<li><strong>Remapping items<\/strong> \u2013 the new <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.map.toc.html?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\">remap_data<\/a> method allows you to easily replace data sources in web maps or applications with new data sources. This can be helpful if data becomes corrupted or outdated, or if you are replacing test data with production data.<\/li>\n<\/ul>\n<h2>Analysis and Data Science<\/h2>\n<p>In the area of analysis and data science, we\u2019ve added Python API support for the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/developers\/announcements\/esris-last-mile-delivery-solver\/?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\">Last Mile Delivery solver<\/a>. This solver allows businesses to spatially optimize the deliveries made by their vehicle fleet.<\/p>\n<p>Following the <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/arcgis-online\/announcements\/notebooks-as-web-tools-in-arcgis-online\/\">release of Notebook web tools<\/a> in the June 2024 update of ArcGIS Online, we\u2019ve also added functionality for working with notebook web tools in ArcGIS Online.\u00a0 You can now publish, overwrite, and consume notebook web tools programmatically using the ArcGIS API for Python!<\/p>\n<p>In every release, we continue to innovate and evolve in the area of GeoAI (machine learning and deep learning) by adding new functionality to the <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/api-reference\/arcgis.learn.toc.html?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\">arcgis.learn<\/a> module of the Python API.\u00a0 Some highlights include:<\/p>\n<ul>\n<li>Fine-tuning the Prithvi foundation model*<\/li>\n<li>A new deep learning foundation model for time series forecasting of climate\/weather data (ClimaX)*<\/li>\n<li>Model extensibility for Text AI models<\/li>\n<li>New object detection models<\/li>\n<\/ul>\n"},{"acf_fc_layout":"sidebar","content":"<p><strong>Note:<\/strong> *There was a revision\/patch version of the Python API (2.3.1) released in July 2024.\u00a0 This included a few bug fixes, but mainly focused on new GeoAI models.<\/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>SDK (Documentation, guides, and samples)<\/h2>\n<ul>\n<li><a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/deprecation-notices\/?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\">Deprecation announcements<\/a>\n<ul>\n<li>As the API evolves, we want you to know about not only what we are adding, but also what is being deprecated\/removed.\u00a0 Our main goal is for your code to run as smoothly as possible with each version update!<\/li>\n<\/ul>\n<\/li>\n<li>New <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/release-notes-240\/#guides\">guides<\/a>\n<ul>\n<li>Time series forecasting with ClimaX<\/li>\n<li>Using third-party large language models (LLMs) in ArcGIS Pro\u2019s Text Analysis tools<\/li>\n<\/ul>\n<\/li>\n<li>New <a href=\"https:\/\/developers.arcgis.com\/python\/latest\/guide\/release-notes-240\/#samples?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\">sample notebooks<\/a>\n<ul>\n<li>Fine-tuning the Segment Anything Model for flood inundation mapping<\/li>\n<li>Fairness in machine learning using AutoML<\/li>\n<\/ul>\n<\/li>\n<li>If you need to access documentation for previous versions of the Python API, you can access them <a href=\"https:\/\/developers.arcgis.com\/python\/latest?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\">here<\/a>:<\/li>\n<\/ul>\n"},{"acf_fc_layout":"image","image":{"ID":2514582,"id":2514582,"title":"old_doc","filename":"old_doc-scaled.jpg","filesize":179083,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_doc-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog\/old_doc","alt":"Python API Old documentation","author":"154341","description":"","caption":"","name":"old_doc","status":"inherit","uploaded_to":2511942,"date":"2024-10-03 16:35:47","modified":"2024-10-07 23:39:34","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":2560,"height":982,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_doc-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_doc-scaled.jpg","medium-width":464,"medium-height":178,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_doc-scaled.jpg","medium_large-width":768,"medium_large-height":295,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_doc-scaled.jpg","large-width":1920,"large-height":737,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_doc-1536x589.jpg","1536x1536-width":1536,"1536x1536-height":589,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_doc-2048x786.jpg","2048x2048-width":2048,"2048x2048-height":786,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_doc-826x317.jpg","card_image-width":826,"card_image-height":317,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/old_doc-1920x737.jpg","wide_image-width":1920,"wide_image-height":737}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<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 <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\">ArcGIS API for Python Esri Community page<\/a> to ask specific questions, suggest ideas for enhancements and improvements, connect with other users, and read <a href=\"https:\/\/www.esri.com\/arcgis-blog\/?s=#ArcGIS%20API%20for%20Python\">recent blogs<\/a>.\u00a0 You can also use the <a href=\"https:\/\/github.com\/Esri\/arcgis-python-api\/issues\">ArcGIS API for Python public GitHub repo<\/a> to submit bugs, enhancement requests, and other issues. <span data-teams=\"true\">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!<\/span><\/p>\n"}],"related_articles":"","card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2024\/10\/Whats-New-in-ArcGIS-API-for-Python-2.4.0-September-2024-card-new.png","wide_image":false,"show_article_image":false},"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>Latest updates for ArcGIS API for Python 2.4.0. - September 2024<\/title>\n<meta name=\"description\" content=\"The ArcGIS API for Python 2.4.0 release emphasizes modernization, enhanced usability, bug fixes, and hundreds of improvements across the API.\" \/>\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-0-blog\" \/>\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.0 (September 2024)\" \/>\n<meta property=\"og:description\" content=\"The ArcGIS API for Python 2.4.0 release emphasizes modernization, enhanced usability, bug fixes, and hundreds of improvements across the API.\" \/>\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-0-blog\" \/>\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-04-18T18:39:56+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=\"9 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-0-blog#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog\"},\"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.0 (September 2024)\",\"datePublished\":\"2024-10-08T18:45:41+00:00\",\"dateModified\":\"2025-04-18T18:39:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog\"},\"wordCount\":9,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"API for Python\",\"ArcGIS API for Python\"],\"articleSection\":[\"Announcements\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog\",\"name\":\"Latest updates for ArcGIS API for Python 2.4.0. - September 2024\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2024-10-08T18:45:41+00:00\",\"dateModified\":\"2025-04-18T18:39:56+00:00\",\"description\":\"The ArcGIS API for Python 2.4.0 release emphasizes modernization, enhanced usability, bug fixes, and hundreds of improvements across the API.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog#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-0-blog\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog#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.0 (September 2024)\"}]},{\"@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":"Latest updates for ArcGIS API for Python 2.4.0. - September 2024","description":"The ArcGIS API for Python 2.4.0 release emphasizes modernization, enhanced usability, bug fixes, and hundreds of improvements across the API.","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-0-blog","og_locale":"en_US","og_type":"article","og_title":"What's New in ArcGIS API for Python 2.4.0 (September 2024)","og_description":"The ArcGIS API for Python 2.4.0 release emphasizes modernization, enhanced usability, bug fixes, and hundreds of improvements across the API.","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2025-04-18T18:39:56+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","twitter_misc":{"Est. reading time":"9 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-0-blog#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog"},"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.0 (September 2024)","datePublished":"2024-10-08T18:45:41+00:00","dateModified":"2025-04-18T18:39:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog"},"wordCount":9,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["API for Python","ArcGIS API for Python"],"articleSection":["Announcements"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog","name":"Latest updates for ArcGIS API for Python 2.4.0. - September 2024","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2024-10-08T18:45:41+00:00","dateModified":"2025-04-18T18:39:56+00:00","description":"The ArcGIS API for Python 2.4.0 release emphasizes modernization, enhanced usability, bug fixes, and hundreds of improvements across the API.","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog#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-0-blog"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/api-python\/announcements\/whats-new-in-arcgis-api-for-python-2-4-0-blog#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.0 (September 2024)"}]},{"@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":"October 8, 2024","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-0-blog","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","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":1964,"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\/2511942","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=2511942"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2511942\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2511942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2511942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2511942"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2511942"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2511942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}