Coursio API Documentation

General

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
    "data":
    {
        ...                   // 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.


Responses structure

{
    "isError": false,         // a boolean showing the overall operation result
    "errMsg": null,           // possible error message string
    "data":
    {
        ...                   // output from the called method
    }
}

HTTP response codes

CodeDescription
400Invalid data was sent.
401Function requires proper authentication.
403Access for the current user is denied.
404Function doesn't exist.
500Internal error or an undefined situation.

Authentication

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.


Testing

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.


Available functions

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.

Toggle all