The API is implemented as a Secure WCF Rest web service. It will be accessible via the Internet over HTTPS/SSL only.
Security — Customers are validated customer using their assigned customer ID and password. Since the API can be consumed by a variety of users (vendor applications, customer applications, etc.), an assigned Vendor ID is also required.
The customer ID, password and vendor ID is assigned by the ESO Scheduler technical support staff.
The API interface can be used to access customer data using the credentials described in the above paragraph. There are two versions of the interface. They are functionally identical, but vary in frequency of access and polling allowed.
| Feature Set | Basic API | Premium API |
|---|---|---|
| Get Schedules | once every 20 mins | once every 2 mins |
| Get Punches | once every 20 mins | once every 2 mins |
| Get Employees | 4 times daily | Once per 30 mins |
| Get Certifications | 4 times daily | Once per 30 mins |
| Get Keywords | 4 times daily | Once per 30 mins |
| Get Payroll Details | once every 20 mins | once every 2 mins |
| Get Timecards | 4 times daily | Once per 30 mins |
| Put Employee Profile | unlimited | unlimited |
| Put Employee Certification | unlimited | unlimited |
When thresholds are exceeded, the API is temporarily disabled and an error message is returned. The API will be automatically unblocked following a waiting period. After the API is unblocked, and usage thresholds are exceeded again, the next waiting period will be longer. The wait time increases exponentially from 1, 2, 4, 8, to 2048 minutes before resetting to 1 minute.
Please ensure your application is configured to respect the thresholds of the version you have purchased.
Request and response data may be formatted as either XML or JSON. XML is the default format for both requests and responses. To receive a JSON-formatted response, add the following HTTP header to the request:
Accept: application/json
It may also be useful to request in XML and to receive in JSON; in that case, use the following HTTP headers:
Content-Type: application/xml Accept: application/json