Kaltura API requests are standard HTTP POST/GET, URL encoded requests targeted to a specific API method. Each API method location is concatenated out of base URI, service and action identifiers strings, according to the following format:
http://www.kaltura.com/api_v3/?service=[SERVICENAME]&action=[ACTIONNAME]
where[SERVICENAME] represents the specific service and [ACTIONNAME] represent an action to be applied on the specific service.
For example, a request to activate the “list” action of the “media” service should be posted to the following URL:
http://www.kaltura.com/api_v3/?service=media&action=list
Each API method receives a different set of input parameters. For all request types:
Example:
id=abc12&name=name%20with%20spaces&entry:tag=mytag&entry:description=mydesc&cdate=2001-02-04%2003:11:32
Within this example the following parameters are being URL encoded and passed as API input parameters:
id = “abc”
name = “name with spaces”
entry {
tag = “mytag”,
description = “mydesc”
}
cdate = “2001-02-04 03:11:32”
Kaltura API response content is gziped by default (assuming client specifies it supports gzip). Every response content is wrapped in an XML formatted container object, holding a <result> element.
When Kaltura server executes an API request successfully, the <result> element within response’s body will hold a structure of parameters relevant for the specific request. Response’s <result> structure could be simple, holding one or few parameters, or complex, holding many parameters including nested objects.
Example of Successful Response:
<?xml version="1.0" encoding="utf-8" ?>
<xml>
<result>
<objectType>KalturaMediaEntry</objectType>
<id>vcnp8h76m8</id>
<name>Demo Video</name>
<description/>
<partnerId>1</partnerId>
<userId/>
<tags/>
<adminTags>demo</adminTags>
<status>2</status>
<type>1</type>
<createdAt>1240844664</createdAt>
</result>
<executionTime>0.08957796096802</executionTime>
</xml>
When Kaltura server fails to execute a specific API request, an <error> element will be nested within response’s <result> element. The <error> element will hold information on response error code and the equivalent error message.
The following table lists few possible general API error codes and their equivalent messages:
| Error Code | Error message |
|---|---|
| INTERNAL_SERVERL_ERROR | Internal server error occurred |
| MISSING_KS | Missing KS, session not established |
| INVALID_KS | Invalid KS "%KS%", Error "%KS_ERROR_CODE%,%KS_ERROR_DESCRIPTION%" |
| SERVICE_NOT_SPECIFIED | Service name was not specified, please specify one |
| SERVICE_DOES_NOT_EXISTS | Service "%SERVICE_NAME%" does not exists |
| ACTION_NOT_SPECIFIED | Action name was not specified, please specify one |
| ACTION_DOES_NOT_EXISTS | Action "%ACTION_NAME%" does not exists for service "%SERVICE_NAME%" |
| MISSING_MANDATORY_PARAMETER | Missing parameter "%PARAMETER_NAME%" |
| INVALID_OBJECT_TYPE | Invalid object type "%OBJECT_TYPE%" |
| INVALID_ENUM_VALUE | Invalid enumeration value "%GIVEN_VALUE%" for parameter "%PARAMETER_NAME%", expecting enumeration type "%ENUM_TYPE%" |
| INVALID_PARTNER_ID | Invalid partner id "%PARTNER_ID%" |
| INVALID_SERVICE_CONFIGURATION | Invalid service configuration. Unknown service [%SERVICE_NAME%:%ACTION_NAME%]. |
| PROPERTY_VALIDATION_CANNOT_BE_NULL | The property "%PROPERTY_NAME%" cannot be null |
| PROPERTY_VALIDATION_MIN_LENGTH | The property "%PROPERTY_NAME%" must have a min length of %MININUM_LENGTH% characters |
| PROPERTY_VALIDATION_MAX_LENGTH | The property "%PROPERTY_NAME%" cannot have more than %MAXIMUM_LENGTH% characters |
| PROPERTY_VALIDATION_NOT_UPDATABLE | The property "%PROPERTY_NAME%" cannot be updated |
| INVALID_USER_ID | Invalid user id |
Example of an error Response
<?xml version="1.0" encoding="utf-8" ?>
<xml>
<result>
<error>
<code>MISSING_KS</code>
<message>Missing KS. Session not established</message>
</error>
</result>
<executionTime>0.011207971573</executionTime>
</xml>