Tool for importing iNat observations to eBird

Hi all,

I built a small free tool for those of us who log birds on both iNaturalist and eBird: aviansync.xyz

It fetches all your research-grade bird observations from iNaturalist, compares them against your eBird life list, and generates a CSV ready to import into eBird - no manual copy-pasting.

A few things it handles:

  • Skips species you already have in eBird (optional)

  • Merges observations from the same day into a single checklist

  • Validates species names against the official eBird taxonomy

Just enter your iNaturalist username, upload your eBird life list export, and download the result.

Source code: github.com/desuinside/aviansync

Happy birding!

When you say “merges observations from the same day,” does this take into account the location and time of these observations? Merging all observations from an entire day would likely go against eBird’s best practices in several ways.

Also, just to confirm, does this automatically make Incidental eBird checklists? I think there is no way that this could make checklists that were in any way useful to the science side of eBird (just personal listing), so they should be marked as “Incidental.”

Regarding merging - not yet, will be implemented soon.

Checklists made as incidental and not complete, yes.

Just deployed an updated version with merging options (range and time based).

Does it import photos and/or sound recordings?

No, only location, date/time and species observed. eBird API doesn’t have any put methods, so it’s not possible at this point.

I looked at you GitHub and noticed you have two repos written ten years apart. aviansync was built in one day.

How much coding experience do you have? People spend a lot of time creating their observations. It would be good to know your coding experience before people use the software to edit their data.

Well, I can’t say I have a lot of experience in coding, but I’ve been working as a DevOps engineer/team lead for almost 10 years, so I have some. And claude code does quite a good job if you validate its output - tbh wouldn’t touch the frontend without it :) Regarding GitHub - I just haven’t had anything worth uploading there, really.

About observations - I would say it’s pretty safe to use, as this app doesn’t put anything in both services. The only thing that may be corrupted is eBird import, and you can safely remove only imported checklists at any time (checked it myself).

Ah, you have a DevOps background. I was wondering why your one page app had a Dockerfile.

AI coding agents can produce AI slop. Do you have enough coding experience to understand and edit the AI generated code, excluding the CSS/HTML parts? I would rather deal with CSS/HTML than setting up and maintaining infrastructure. :grinning_face:

Caught red-handed :D

Yeah, I’m definitely aware about potential slop quality (but, to be frank, it is getting much less of an issue now, AI produces quite decent code if you don’t need some high performance/complex logic). Most of the backend parts I wrote myself, and AI parts were validated and make sense to me.