What's the most difficult / annoying thing during implementation / maintenance?
Certain vendors have profited greatly by convincing managers that API integration code is difficult to write, possibly by evoking people's memory of what a hassle it is to get GUI applications to look and work exactly the way you want. If you want to trade 15 minutes of coding for a few hours of talking to sales and support people though be my guest.
The reality is that API integration code is usually the easiest code you'll ever write because you don't have to deal with the awful specifics of dealing with 50 or so documents that specify CSS and you don't need leetcode skills to write computer science heavy systems code.
I am looking at a 28 line of code Python script that I wrote that downloaded all of my slack standup messages for a year and extracted my status reports to make a list of things I worked on for my performance review.
I have something called the "maintainance droid" that automatically checks out and builds my software, inside that there are exactly 16 lines of code to make a pull request and that includes initializing the API client with a password from a file.
That last bit, being systematic about where you keep your login credentials, is an important point because it is highly insecure to check them into version control. If you are systematic about keeping that information in a dotfile or use something like dotenv you dodged the #1 bullet.
Some API vendors unfortunately have systems that make authentication much harder than it has to be. A few years back I did a shootout between visual recognition API vendors and found I could get them all up and running in less than 20 minutes except for Google which wasted 2 hours because it trashed my Python installation when I installed the authentication libraries.