Object representation and serialization

Last updated: 2024-03-25Contributors
Edit this page

Whenever you need to send or retrieve a particular piece of data, for example a call log record, information on an extension, etc., the data will be embedded in the HTTP request or response body. In the majority of cases, objects will be represented using JSON and should use the application/json MIME type.

HTTP headers

The RingCentral API allows you to explicitly define a representation format by using the following HTTP headers.

Content-type

The Content-Type header defines the MIME type of the request body. A content type header is always required, and must be set to application/json (except for the aforementioned circumstance of OAuth).

Content-Length

In addition to the Content-Type header, the Content-Length header is always required, and must be set to the request body in bytes.

Accept

The Accept header indicates the desired MIME type of the response body. The server will return response data in this format (if possible) and will set the Content-Type response header accordingly. If absent, RingCentral will default to JSON as the response format.

Data Types

The table below describes the data types which are used in the RingCentral API. Each of the types below can also appear as an array item type for array attributes/parameters.

Data Type Description
string General string value
string with enum qualifier Enumeration, the string that can only have one of the predefined constant values
integer (with possible int32 or int64 format qualifiers) 32-bit or 64-bit integer value
number (with possible float or double format qualifiers) Floating point number value with single or double precision
boolean Boolean value which can be either true or false
string with date-time format qualifier Timestamp in XML schema-compatible format, in accordance with ISO 8601 format including timezone.

Example date and time formats

RingCentral servers currently process all timestamps in UTC timezone; for example, 2012-01-01T00:15:34Z. By default, servers return fully qualified datetime formats, including a decimal fraction of a second, e.g. YYYY-MM-DDThh:mm:ss.sTZD.

The following examples are all valid and supported formats by RingCentral.

Description Format Example
Year YYYY 2012
Year and month YYYY-MM 2012-07
Complete date YYYY-MM-DD 2012-07-16
Complete date plus hours and minutes YYYY-MM-DDThh:mmTZD 2012-07-16T23:12:30
Complete date plus hours, minutes and seconds YYYY-MM-DDThh:mm:ssTZD 2012-07-16T23:12:30Z or 2012-07-16T23:12:30+04:00
Complete date plus hours, minutes, seconds and a decimal fraction of a second YYYY-MM-DDThh:mm:ss.sTZD 2012-07-16T23:12:30.45Z

The T appears literally in the datetime string, to indicate the beginning of the time element.

For convenience to developers, here is a quick legend:

Format Meaning
YYYY four-digit year
MM two-digit month (01=January, etc.)
DD two-digit day of month (01 through 31)
hh two digits of hour (00 through 23) (am/pm NOT allowed)
mm two digits of minute (00 through 59)
ss two digits of second (00 through 59)
s one or more digits representing a decimal fraction of a second
TZD time zone designator (Z or +hh:mm or -hh:mm)

Precision when comparing datetime formats

Please note, that when comparing timestamps, the timestamp is truncated to a second precision. For example, the response to request where the dateFrom value equals to 2012-07-16T23:12:30.45Z is always identical to the one with the 'dateFrom' value 2012-07-16T23:12:30Z.