USPS has one.
Canada Post has.
Australia Post has one.
Why doesn't Royal Mail have an API?
This bugs the hell out of me. They don't publish their prices in any useful data format, so every 6 months or so when they're updated, I need to go into my stock control system and manually update thousands of prices for half a dozen different shipping services. This is particularly irritating as I'm sure they will have a nice XML or CSV file floating around internally.
How much effort would it be to allow API access to tracking information too? They already give PayPal access to this data, so why can't they open it up? Instead we're forced to screen scrape.
Perhaps I should get a petition going?
Actually, they do have some online forms to calculate shipping. Though its no API you could build your own service to calculate shipping using a series of http request that dynamically fill in the form and retrieve the info. Perhaps a cron could be ran every six months and run an update so you didn't have to do everything manually. Not sure if something like that possible given your situation, but may be worth a try.
That sucks. Is there a particular reason your using Royal Mail? If its nothing significant perhaps consider switching to provider with better remote integration. If its a few more dollars to use another provider perhaps its worth it to spend a little extra to have access to development API.
Royal Mail is the only economically viable service for SME's sending low value small packets. In order to compete, I need to offer free domestic shipping. My average package is 200-400g and is worth around £30. Royal Mail second class post (1-3 days) costs between 81p and £1.95 depending on the exact size and weight. The cheapest courier costs around £6 for a crummy service from Hermes. DHL, City Link, etc. cost twice that again.
I know I could scrape the content but that's not really the point. It's just ridiculous that in 2010 the UK's main postal service doesn't make price data available and has only the flimsiest tracking service with no API.