Actually, linode has an API but doesn't do metered billing - thats really what you want for your particular use case.
Digital Ocean does do metered billing, and their API is very sweet & simple.
Obviously the API isn't as mature - but it is going in the right direction