The RESTful API Explained

2 minute read time.

Sage CRM exists in an ecosystem of different systems. Sage CRM out of the box integrates with a host of different Sage accounting solutions around the world. It is a part of the family of products that make up the Sage Business Cloud and provides the Sales, Marketing and Service features for products such as Sage 300 or Sage 200.

We believe the REST API changes the game for Developers and anyone working to integrate Sage CRM with other web-based systems.

The REST API enables:

  • Communication between desktop, server, web & cloud applications
  • Broad common interface for all Sage products
  • HTTP/Web access to data & business logic for web & mobile clients

The full API covers basic reading, writing, updating and deleting of data between as well as more complex functions such control of security and access, the discovery of metadata, error handling, and options for increased performance.

You can read more about the REST API at https://developer.sage.com/crm/

Not all entities are covered by this first release but the QA testing has covered the main entities used to describe the core Sales, Marketing and Service features of CRM.

REST stands for Representational state transfer and the idea is that the HTTP verbs are used to imply the type of action that will be taken in the system.

The above image mentions 4 different HTTP verbs and they imply certain interactions with the database. There are others like Patch and Options but these 4 make the point.

A RESTful URI can be broken into several sections

This would be the general structure to retrieve data from the company.

http://myserver/sdata/installnamej/sagecrm/-/entity

We know that we a finding the data because the HTTP verb is 'get'.

It is important to note that access to data via the REST-based interface is controlled by security. Each request has to be authenticated.

The image below shows a screenshot of a test of the API using a REST Client - a bit of software capable of formulating and issuing REST Requests. You can see that the request includes within the HTTP header the base64 encoded user credentials.

All requests must be authenticated and what a user may see is subject to their security rights.

It is important to note that access to data via the REST-based interface is controlled by security profiles. That has the effect of limiting access to rows within entities and views. Field-level security will also limit the columns that are returned within the generated result set.

The data is exchanged in JSON format. JavaScript Object Notation is an open standard format that uses human-readable text to transmit data objects consisting of attribute-value pairs. It is a much more accessible way of looking at the data that XML.

JSON is lightweight and can be parsed by JavaScript implementations very easily and makes it an ideal data exchange format for web (and mobile) applications like Sage CRM.

Every entity is fully documented with examples for inserting updating and deleting records all within the online Help.