I'm looking for a way to monitor API calls. Specifically when an API update came through. We have a hosting service that sends trial user info to the SFDC lead object through the SFDC API. There are questions as to whether some of the calls are reaching SFDC. Is there a way to see API call details? Or a way to monitor failed API calls?
Attribution to: Brian Siebert
Possible Suggestion/Solution #1
There is now the Event Monitoring API (Paid Feature). You can use this with the API EventType to get a complete log of all the calls that were made on a certain day. You can use the METHOD_NAME, USER_ID, CLIENT_ID to identify who and what was making each call.
I've put some additional details about this in Monitoring your Salesforce API usage
Attribution to: Daniel Ballinger
Possible Suggestion/Solution #2
There is no specific log per API call. However, you can enable the debug log for the user that the application is using to log in as under Setup->Monitoring->Debug Log. That will track up to 20 API calls (or inserts, updates, deletions, VisualForce pages, etc..). If you're actively monitoring it you can continually click the reset link to reset the limit and capture more logs.
If that's more detail than you're looking for and the application logs in each time it needs to use the Web Service API (rather than maintaining a session) you can simply look at that user's login history at the bottom of the user page. Look for a login type that isn't "Application" or "Sync".
Attribution to: E.J. Wilburn
Possible Suggestion/Solution #3
If Setup->Monitoring->Debug logs won't meet your needs, you can do a few things.
Use an AppExchange Application to log items. http://appexchange.salesforce.com/listingDetail?listingId=a0N30000003IZ5PEAW for example. There are a few items on the AppExchange that meet this requireemtn and are free.
Build your own logging application. By combining Apex, Apex Triggers, Custom Objects, and SFDC Content or Documents you could build your own logging application. Your Apex Code could log the activities and persist to a custom object or document, etc.
Attribution to: CoryCowgill
Possible Suggestion/Solution #4
If you have an active session started you can send an ajax request to the server just like the ApexCSIPage (Developer Console) does.
You can then parse the response into whatever report you want.
Request URL:https://na9.salesforce.com/_ui/common/apex/debug/ApexCSIAPI
Request Method:POST
Status Code:200 OK
Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:681
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Cookie:s_vi=[CS]v1|27BCFAA0050112C6-4000013080112CB5[CE]; web_core_geoCountry=us; HTPortal=%22%7B%27HTVersion%27%3A%20%272.0%27%7D%22; ApexCSIPageCookie=true; umps_clientId=364076-005E0000001JcFS; rememberUn=false; webact=%7B%22l_vdays%22%3A0%2C%22l_visit%22%3A1345049058716%2C%22session%22%3A1345058910089%2C%22l_search%22%3A%22%22%2C%22l_dtype%22%3A%22%22%2C%22l_page%22%3A%22SFDC%3Aus%3Alogin%22%2C%22counter%22%3A33%2C%22pv%22%3A1%2C%22f_visit%22%3A1343948212140%2C%22version%22%3A%22w172.1%22%2C%22developer%22%3A1343948212140%2C%22l_cloud%22%3A%22No%20Cloud%22%2C%22seg%22%3A%22customer%3Aus%22%2C%22customer%22%3A1344039343400%2C%22d%22%3A%2270130000000sUVv%22%7D; login=eric.talley@roundcorner.com.rc_connect; com.salesforce.LocaleInfo=us; oinfo=c3RhdHVzPUZSRUUmdHlwZT0zJm9pZD0wMERFMDAwMDAwMFppTE0=; sfdc_lv2=KxG83HmRj82pZgH6/8VmeaQGh3JcSEKazKnqlR327YjjlxoAwTMdZL4JugEcb9DQhgNzhuK04XPp/vR6ozLks9wJRr3qKuh0zGVSvmMIsabxlP8caB7jCRV0N4zlWLychwiM3diYYSnptp3OxEB7+70Ei2ZTi3b8reEpWshFjCWHYTdsPHRC/M1Fnra9kLfqUZo8Zta1RxVTBfxGkeRkRZI/ZYmGTITxSVMqBCiDXjjK1qwzdL+3XBFCGSfVGzczNMZPnpdlUMjiB6UFaPOGqvA/Gdl5Pu87vhaCD63i+0uYuhVe056tFomcU48Z1estPswdUiLRrIoaIxArV191ZlBGUZO/DThzEMg5rsqf6bPHgL2awX8cx/rsjIe17pPz4TEcl9TvNKJKu1Ir6sqaDaEA6SzTlSYRVlDSYMbcIWJEHDfsPo/5g9gti+DjvHSUI/FpsSUUGuVGLYWQVz9blGb7cSG1IjBipCLS53pkzVlZiMpnsWMY2P8NdxKfSMlEE=; disco=E:00DE0000000ZiLM:005E0000001JcFS:0; autocomplete=1; sid=00DE0000000ZiLM!ARwAQPohYMWG4oLkVRaDfPhsMq8LtStEpm4BVf5TjkihMwQrmqjaU1Ntik5NfwVlR4ovwOTB_xX7L1jFg3j7JwCrJ82cd9O.; sid_Client=0000001JcFS0000000ZiLM; clientSrc=173.160.27.73; oid=00DE0000000ZiLM; inst=APPE; lastlist=/01IE0000000R0EL?setupid=CustomObjects; setupopen=
Host:na9.salesforce.com
Origin:https://na9.salesforce.com
Referer:https://na9.salesforce.com/_ui/common/apex/debug/ApexCSIPage
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11
X-Requested-With:XMLHttpRequest
Attribution to: ebt
Possible Suggestion/Solution #5
In case you need more general overview, it can be useful to see API Usage Report. You can find it under Reports->Administrative Reports->API Calls Made Within Last 7 Days. It helped me quickly locate a source of an excessive amount of API requests.
Attribution to: Ivan Schwarz
This content is remixed from stackoverflow or stackexchange. Please visit https://salesforce.stackexchange.com/questions/464