|
POST
|
I know you're disabling it mid-step, but can you test it with a duplicate feature layer that doesn't have sync enabled at all? Sounds like it is still storing previous versions or a history of previous edits somewhere, and if you're doing a full truncate/append that's a lot of "edits". When I need to do full overwrites I either use the .update() method to replace the whole file, or use spatially enabled dataframes (SEDF) and .edit_features(adds='your SEDF'). Something like the examples below. Could try one of these as an alternative to append() . ### Update Hosted Feature Layers Examples
from arcgis.gis import GIS
from arcgis.features import FeatureLayerCollection
updated_data = r'this_is_a_path_to_file.csv' # path to your updated dataset, the file type must match whatever the service was published with
itemid = '' # the itemid for the hosted feature service you want to update in ArcGIS Online, you can get it off item page in AGO
portal_url = '' # "https://example.maps.arcgis.com"
user = '' # AGO username
pw = '' # AGO password
### Log in to ArcGIS Online account
gis = GIS(portal_url, user, pw)
un = gis.properties.user.username
print(f'\nLogged in as {un} on {portal_url} \n')
#############################################################################
### Example 1 (Overwrite directly from local file)
# If you published to AGO from a local file (csv, fgdb, etc.), this is the simplest way to overwrite
# The new data must have the same filename and file type, and FGDBs must be zipped
hostedfeature = gis.content.get(itemid)
flayer = FeatureLayerCollection.fromitem(hostedfeature)
flayer.manager.overwrite(updated_data)
print("Hosted feature layer updated with the latest and greatest")
# That is the barebones method, but you can update lots of other stuff too, for example the description, title, etc.
# https://developers.arcgis.com/rest/users-groups-and-items/common-parameters/
item_properties={
"description":"Here is my description, isn't it great",
"title":"Great Item Title"
}
hostedfeature.update(item_properties)
# Or the thumbnail
thumb = r'path_to_some_picture.jpg' # can also use a image url
hostedfeature.update(thumbnail=thumb)
# Or you can disable and enable settings, like Sync
syncoff = {"capabilities": "Query, Extract"}
hostedfeature.manager.update_definition(syncoff)
syncon = {"capabilities": "Query, Extract, Sync"}
hostedfeature.manager.update_definition(syncon)
# https://developers.arcgis.com/python/latest/samples/overwriting-feature-layers/#:~:text=updated_capitals_csv%27%2C%20csv_file_name))-,Overwrite%20the%20feature%20layer,-Let%20us%20overwrite
#############################################################################
### Example 2 (Go the edit route with a full truncate and append)
# You can do this either from a regular pandas dataframe if it's a table, a spatially enabled dataframe if there is geometry, or from a featureset
# If you are adding more than 1000 features you want to chunk it out
import pandas as pd
import os
hostedfeature = gis.content.get(itemid).layers[0] # if you have a hosted table you can use .tables[0] instead
hostedfeature.manager.truncate()
local_featureclass = os.path.join(r"path to a file geodatabase .gdb", "MyFeatureClass")
sedf = pd.DataFrame.spatial.from_featureclass(local_featureclass)
n = 1000
for i in range(0, len(sedf), n):
chunk = sedf[i:i+n]
result = hostedfeature.edit_features(adds=chunk)
print(f'added items {i+1}-{i+n}...')
... View more
03-06-2026
08:47 AM
|
0
|
2
|
436
|
|
POST
|
I'm writing a script where I'd like to know all the potential user types provided by gis.users.license_types. The example list in the documentation is out of date, and doesn't include the newer types like Professional and Professional Plus (instead, it still shows Professional Basic/Standard/Advanced, Storyteller, etc. which were all retired). The org I'm working with doesn't have licenses for all possible types yet (so I can't see what the ids would look like if they were to get them in the future. Can anyone help me out? I believe the new list would look something like the one below, but want to confirm: ['creatorUT',
'editorUT',
'fieldWorkerUT',
'GISProfessional'(?),
'GISProfessionalPlus'(?),
'IndoorsUserUT',
'liteUT',
'viewerUT']
... View more
03-06-2026
08:25 AM
|
1
|
3
|
475
|
|
POST
|
Are you sure you Published it? "Saving" the app isn't enough. A "View" button should appear on that page above "Edit" once you choose "Publish" in the editor (top right of the builder). There will also be a direct URL generated on that Item Details page, on the right side under Details.
... View more
03-02-2026
01:55 PM
|
0
|
1
|
286
|
|
POST
|
Thanks for the response @Katie_Clark . I don't necessarily need the usage (although this is nice to know, too). Ultimately I'm just trying to determine what licenses users have access to, via the API. The provisions property of a User returns add-on licenses in ArcGIS Online, but it doesn't show if a user has access to ArcGIS Pro through their account license (like a Creator account comes with ArcGIS Pro Basic). Running something like gis.admin.license.get('ArcGIS Pro') or gis.admin.license.all() both return empty lists, too (Enterprise 11.5). Running your usage_reports example on an Enterprise Portal returns and error that PortalAdminManager doesn't have an attribute call usage_reports, so that seems like it might be for ArcGIS Online only Edit (3/6/2026): For anyone else who may come across this, I posted a comment in this other thread about what I did to get what I needed in an Enterprise Portal
... View more
02-27-2026
01:07 PM
|
0
|
0
|
513
|
|
POST
|
@JCGuarneri Did you ever figure this out? Running into the same issue. Can pull it fine via provisions property in ArcGIS Online. But that returns an empty list in Enterprise Portal (11.5), and I also get empty list using gis.admin.license.all() Edit (3/2/2026): For anyone who comes across this with the same issue, I think maybe what's happening is that user.provisions is specifically for add-on licenses that have been assigned to a user, not licenses that come inherently with an account type. For example, a Creator user type comes with ArcGIS Pro Basic (as of writing this in March 2026), it isn't manually assigned and can't be removed. What I ended up doing was looking at gis.users.license_types (which returns a dictionary of user account types in your org and all the apps/bundles/extensions that the account comes with) and pulling info from it based on the user's license id (user.userLicenseTypeId). Here is a function I wrote to pull the account's inherent ArcGIS Pro license, extensions, app bundles, and a full list of apps within those bundles. The "user" input in the function would be a user object, like you'd get from gis.users.search(). def builtin_licenser(user):
utypes = gis.users.license_types # this returns a list of dictionaries, one for each account type and containing nested dictionaries of apps/extensions
usertype = user.userLicenseTypeId # get user type id (i.e. creatorUT)
for u in utypes:
if usertype == u['id']:
prolist = []
bundlelist = []
fullapplist = []
extlist = []
for a in u['apps']: # look through apps dict
if a['type'] == 'App Bundle': # list app bundles (i.e. Essential Apps, Field Apps, etc.)
bundlelist.append(a['title'])
for app in a['apps']:
fullapplist.append(app['title'])
else:
if a['title'] == 'ArcGIS Pro': # if ArcGIS Pro is included, grab tier (entitlement)
arcpro_type = (a['title'] + ' ' + a['entitlements'][0])
prolist.append(arcpro_type)
else: # grab any other apps included that are not within the bundles
fullapplist.append(a['title'])
for e in u['extensions']: # look through extensions dict
extlist.append(e['title'])
result_dict = { # return all this info in a dict
'Pro': ', '.join(prolist),
'Bundles': ', '.join(bundlelist),
'Apps': ', '.join(fullapplist),
'Extensions': ', '.join(extlist)
}
return result_dict Hope that helps point someone else in the right direction.
... View more
02-27-2026
12:56 PM
|
0
|
0
|
489
|
|
POST
|
Did you ever figure this out? Seeing the same thing, works in ArcGIS Online but not with an Enterprise Portal (11.5). Just get an empty list. Have tried grabbing bundles too, same deal.
... View more
02-27-2026
12:54 PM
|
0
|
0
|
685
|
|
POST
|
Did anyone ever figure this out? Trying to do the same. Can get add-on type licenses from the User class / provisions property in the ArcGIS API for Python, but not licenses that come with an account, such as ArcGIS Pro Basic with a Creator account, etc..
... View more
02-27-2026
12:20 PM
|
0
|
0
|
518
|
|
POST
|
https://developers.arcgis.com/python/latest/api-reference/arcgis.gis.toc.html#arcgis.gis.User.provisions Does anybody know what specific user permissions are needed to access the User.Provisions property (linked above) via the API? When I'm logged in with an admin account, I'm able to pull this property no problem. But we're trying to create a custom role for reporting purposes that can essentially only view all user information, not manage it, so that the script doesn't require a full admin account. In the options for creating a custom role, the only permission I see related to licenses is under Admin -> Content -> Manage licenses, which is described as "Allow member to assign licenses to members of your portal." Enabling this lets me read the user.provisions property—but I'm wondering if there is another permission that would allow read-only? Separating out the ability to view and manage would be ideal. Edit 4/3/2026—to add, while the permission mentioned above works for most things (even if it's not ideal because it also allows for assigning/revoking licenses), I do get an error when trying to read add-on license for admin accounts. Specifically in one ArcGIS Online org we have, but haven't seen the issue when running on Enterprise orgs. Have not been able to figure out which specific add-on or extension causes this, or whether it's some sort of license/extension inherent to admin accounts that non-admin accounts are not allowed to view in the API. I suspect it may be an organization extension like ArcGIS Velocity. The specific error is a 403: You do not have permissions to access this resource or perform this operation. Would really appreciate some clarification or insight here
... View more
02-26-2026
02:00 PM
|
2
|
0
|
311
|
|
IDEA
|
Not the exact request, but the ArcGIS Pro November 2025 Roadmap shows in the near term that they're hoping to add layer and feature effects, which I assume will be similar to those currently in the ArcGIS Online Web Map Viewer. Those would certainly help with this kind of need. Not a single click solution, but less clicks then it would currently take.
... View more
02-20-2026
01:11 PM
|
0
|
0
|
191
|
|
POST
|
I find that anytime I run into an issue like this with Indoors data/tools, the most common solution is to run the Upgrade Indoors Database GP tool on the FGDB to validate it (domains, attribute rules, etc.) and ensure it matches whatever latest version of Pro/Indoors Information Model you are using. It sounds like you got what you needed with the workaround of just deleting the existing Levels and letting it recreate them. But for others who come across this with the same issue, maybe try the Upgrade tool first.
... View more
02-18-2026
12:05 PM
|
0
|
1
|
491
|
|
IDEA
|
@AnninaHirschiWyss Thanks for the suggestion. I looked into this a bit and it seems like it is a good solution if you're specifically using web maps that have the same layers with the same data sources. (This workflow works with the newer version of AGO-Assistant as well, the ArcGIS Assistant, which I'll plug here for anyone unaware of it.) In my case however, two of the maps I'd like to copy Categories between are different formats and have different underlying data sources. One is a AGO web map where all the layers link to web services for the Indoors Viewer app. The other is a local ArcGIS Pro map used to generate a Mobile Map Package (.mmpk) for the Indoors mobile app. Half of its layers reference web services (those that are frequently changing like Units and Occupants) while the others reference copies stored within the .mmpk (things that change less frequently like Sites, Facilities, Levels, Details, etc.). On one hand, I'm not sure where or in what format the Indoors Categories config data is stored for maps within a local ArcGIS Pro project. Probably within the same map file, but I'm not sure exactly where that is, either. If I could find it and it is easily editable, I might be able to copy between the two and update the REST URLs to local file paths. But I have no idea what the config format looks like for Indoors Categories in local maps. It might be quite different and not an easy swap of REST URL and local filepath.
... View more
02-04-2026
10:53 AM
|
0
|
0
|
283
|
|
IDEA
|
That would be nice for web meetings. Thinking about in-person presentations—handling it like speaker notes and presentation mode in PowerPoint would be nice, though that's sometimes finicky to set up with the way Windows handles multiple displays. Seeing as the mobile app is now supported on both tablets and phones, it would be very cool if you could run the presentation from one device (a tablet or desktop browser) and have the slides sync with a second device (a phone) for just speaker notes. Then you don't have to mess with the multiples display options in Windows (unsure what Mac does) and whether the screen should be duplicated or extended. No idea if that is technically feasible, but it would be neat.
... View more
01-30-2026
01:02 PM
|
0
|
0
|
215
|
|
POST
|
@RyanUthoff Your suspicion was on the right track, and the support article you linked originally was updated after I submitted a feedback request for Esri to clarify the article (scroll to blue note at the very bottom). Omitting the entire "topFilter" section will have it behave as a 1:M, although they did caveat that the behavior may not be entirely reliable. Which is a little odd to me considering it is an option in the UI when creating a Joined View manually in ArcGIS Online.
... View more
01-28-2026
01:49 PM
|
0
|
0
|
482
|
|
POST
|
Have you tried running the Upgrade Indoors Database GP tool recently? I've found that often when I start getting errors like this with Indoors data, running this tool resolves the issue. Especially if I was mucking around with schema, domains, or copying layers in and out.
... View more
12-31-2025
06:17 AM
|
0
|
0
|
1668
|
|
POST
|
Thanks @RyanUthoff , that's a good catch. I was starting to wonder if it might be something like that—no specific property but determined by the presence or absence of something else. I'll keep poking around with that topFilter / groupByFields parameter.
... View more
12-18-2025
10:36 AM
|
0
|
0
|
892
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 2 weeks ago | |
| 1 | 09-19-2023 08:22 PM | |
| 1 | 06-24-2022 09:52 AM | |
| 1 | 03-26-2026 12:44 PM | |
| 1 | 03-06-2026 08:25 AM |
| Online Status |
Offline
|
| Date Last Visited |
Thursday
|