An API method is always called via an HTTP POST request to an entity-named endpoint. Exact method name and any
possible parameters are placed into the request payload and encoded as a JSON string. RPC model has a routing
advantage over REST in our quite complex case and allows us to use the same API calls internally if we need to
prerender JSON data into the view before serving the page.
API uses camelCased names rather than under_scored.
HTTP request structure
All the fields except method are not obligatory.
"method": "someMethod", // method name
... // all the function arguments go here
"pageStart": 0, // data output starting row
"pageLength": 10 // data output row limit
If no output page limit is specified, then no limitation is performed. Normally you will not need to use
pagination as in many cases nice filtering is available within the methods themselves.
"isError": false, // a boolean showing the overall operation result
"errMsg": null, // possible error message string
... // output from the called method
HTTP response codes
Invalid data was sent.
Function requires proper authentication.
Access for the current user is denied.
Function doesn't exist.
Internal error or an undefined situation.
If user login was successful the server sends back the session identifier (sessionId
property in the response structure). This identifier may be later sent together with any API call to work
within the same login session. Identifier is sent in an HTTP header Token.
For testing purposes one may use a version of API connected to a test database
(https://t-api.s.coursio.com/). All external services (e.g. payments
providers) connected to this version are also in test mode. Test database is at regular intervals synchronized
with a production one, so do not count on keeping your data there for a long period.
Click on a specific endpoint to see a list of functions contained. Click on a function name to see a list of
parameters. Use 'Test' button to test API live. As the majority of function will require authentication, you
may use login form at the bottom of this page to log in.