I\'m trying to understand how I will be able to craft an API using ASP.NET Web API which will be protected from CSRF, while still being accessible from non-web environments (e.g
Take a look at the CORS implementation for WebAPI.
http://blogs.msdn.com/b/carlosfigueira/archive/2012/07/02/cors-support-in-asp-net-web-api-rc-version.aspx
Then you could allow only localhost as a valid URI on the webapi server. This would prevent other sites from loading attack code in the browser.