Batch editing / mass updates on observation fields?


Is there a way to add or update an observation field for many observations en masse? Ideally, for my purposes, something along the lines of having an external table with observation IDs & observation field values (e.g., three columns, ‘observation ID’, ‘observation field name’, ‘observation field value’), and being able to import that into iNaturalist in some fashion (and have the values in that table overwrite existing values, if any).

For my own sanity, I think I need a way to record what I consider to be the correct name without feeling like I’m constantly stumbling over the iNaturalist taxonomy. The observation fields seem to be the avenue to do so, but I won’t have time to update it manually, observation-by-observation, at any point in the foreseeable future. On the other hand, creating a table like that mentioned above… that would be relatively easy. The alternative, I guess, would be to just maintain this information outside of iNaturalist. This would be easier, but kind of misses the point on documenting biodiversity.

I’m still stuck on the idea that part of the purpose of a venue like iNaturalist is to document identifications / usage of names. For instance, in a research context, one of the things you want to be able to do is have a record that says, “In this work, this is what the plants I was calling by this name look like.” That’s a big part of what herbaria do, but I really haven’t figured out how to do it on iNaturalist. There’s no way to attach a name to an observation in a way that is going to be stable, easily retrievable, and allows for taxonomic freedom. I’ve gotten the message on here that the iNaturalist staff does not have any interest in providing that capability and that there’s no productive way for me to help iNaturalist move in that direction, so I’m trying to figure out some workaround.


if you create fields you can use the bulk edit fields to populate the values your observations, though barring some admin tool it can only be done 200 at a time. You could also use tags, less formal, but somewhat easier for some things.

During upload – at least on the website (not sure about mobile apps) – you can add observation fields. If you look at the left side of the screen, you’ll notice there are Details, Tags, Projects, and Fields. You can select fields, and add a field that you want to use, and then you can assign a value to that field. If you want to add the same field with the same value to multiple observations, just highlight the multiple observations before you add the field value.

If you want to add values after upload, on the website, hover over your account icon on the upper-right corner of the screen. That should show a drop-down menu where “Edit Observations” is the second item in the list. Click on that. That should bring you to a “Your Observations” page that has an “Add Observations” button, a “Batch Edit” button, and a “Search” option. If you want to filter for specific observations first, use the “Search” thing. Then click the “Batch Edit” button. From there, you should be able to add fields to selected observations. I think the format of the Batch Edit screen does sort of look like the table you’re asking for.

If you’re trying to add fields to observations that are not yours, then I think you have to do that one observation at a time, and that’s only possible if the observer lets you. But depending on what you’re trying to accomplish, you might be able to add other people’s observations to your own custom project – again, if they let you. Or if you’re just trying to flag model observations, you could mark those observations as favorites.

I’m not sure if this is exactly what you’re looking for, but I hope this helps.

Thanks, Charlie and Pisum. I haven’t really used the batch edit feature much. Checking it out again now, it seems to make life more efficient, by taking it from a “per observation” task to a “per taxon” task. At present it says I’ve got 4512 observations and 1285 taxa, so doing anything on a per taxon basis would certainly be better but would still take a very long time. I might just try to make sure everything is in order in my local offline records and hope for future functionality.

In the batch edit, I don’t think you have to apply the same values to the batch. So you could pull in a bunch of different observations – even if different taxa – and add names to each thing. that might be faster than doing 1285 batches by taxon.

There is always the option to go via the iNaturalist API if you want to do anything in batch.

@jtklein - Well, that might very well be what I’m looking for, but I have absolutely no idea where to start. Do you have any advice for someone who vaguely knows what an API is but has no background in using them? From past experience, I’m guessing this is the kind of thing I could figure out just fine if I had a week or two to just bang my head against the wall until things start working, but I tend not to have the time to do that nor, frankly, the desire to do so. If I can at least get to the “here’s a sandbox to play in” stage I tend to do OK… but in this case I don’t even know where the sandbox is, if there’s going to turn out to be something I can just install and use or if it’s going to turn into unending dependency hell…

1 Like

For instance, I’ve gotten good at using excel formulae because–hey, I can install excel and type stuff in, and then type other things in, and sooner or later I figure out how to do the thing I want. I haven’t the faintest idea how to do anything in mysql, on the other hand, because it would apparently take me several days just to get to that “type stuff in and see what happens” point. And this is why people use excel as a database no matter how ill-suited it is in the abstract.

1 Like

The documentation website of the API has some Sandbox for all the possible queries. E.g. for updating an already existing observation:!/Observations/put_observations_id

The iNaturalist API works simply over the web (HTTP) so you do not need any installs or dependencies at all. You can call it with any modern programming language.

Hm. So far, I’ve figured out how to get a message saying: “You need to sign in or sign up before continuing.” The relevant section here is opaque to me:

It seems to be describing how to code the proper authentication procedure into an application, but doesn’t provide me with any idea of what to do outside of that context.

Oh, interesting, apparently I can just go to and copy / paste the string. I tried that this morning and it didn’t work, but now it does… must be something funny in my home browser settings, I guess. In any case, it looks like this probably does what I want, thank you very much! I guess I just generate a bazillion of those “observation_field_value”: chunks.

Yes, this is what you can do. You can also check out my latest Medium article to get some inspiration for your source code ;-).

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.