Dispatch Service
This service provides an interface to SCORM Dispatch, a tool used to deliver SCORM content from SCORM Cloud to client LMSs in the form of a simple and highly compatible SCORM 1.2 package. The three important entities to keep in mind when using the API are Course, Dispatch Destination, and Dispatch. A course is any host course that has been imported under your AppId. A dispatch destination should map to clients or locations where you\’ll be sending your dispatches. In this way, dispatches can be enabled or disabled (or downloaded) per client / location. Finally, a dispatch represents the intersection of a course and destination, and has the downloadable output of a simple SCORM 1.2 package that can then be launched at the given destination. The dispatch package does not contain the course assets of the target course, it just gives access to the package hosted on SCORM Cloud. A dispatch can be enabled or disabled at any time, even after deployment of the dispatch packages, allowing a system of centralized access for the dispatch creator.
getDestinationList
Semantics: Calling this method will return a page of results showing the list of existing dispatch destinations in your account. Callers should assume another page of data is available by calling again with the page parameter incremented, until an empty list is returned.
Required Arguments:
appid
-- Your application idpage
-- Which page of results to return. Page numbers start at 1.
Optional Arguments:
tags
-- A comma separated list of tags to filter results by. Results must be tagged with every tag in the list
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.getDestinationList&appid=myappid&page=1(&tags=test1,test2)
Example response:
<dispatchDestinations page="1"> <dispatchDestination> <id>1eec6b17-326f-4678-a490-b870a0506140</id> <name>Noddy</name> <tags/> <createdBy>Test User</createdBy> <createDate>2010-07-29T19:14:39.000+0000</createDate> <updateDate>2010-07-29T19:14:39.000+0000</updateDate> </dispatchDestination> <dispatchDestination> <id>6922b1a3-791b-4597-8abb-48de707434a7</id> <name>Test Destination</name> <tags> <tag>test1</tag> </tags> <createdBy>Test User</createdBy> <createDate>2010-08-24T15:28:55.000+0000</createDate> <updateDate>2010-08-24T15:28:55.000+0000</updateDate> </dispatchDestination> </dispatchDestinations>
getDestinationInfo
Semantics: Calling this method will return information about the dispatch destination named by the given destinationid parameter.
Required Arguments:
appid
-- Your application iddestinationid
-- The id of the destination being accessed
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.getDestinationInfo&appid=myappid&destinationid=1eec6b17-326f-4678-a490-b870a0506140
Example response:
<dispatchDestination> <id>1eec6b17-326f-4678-a490-b870a0506140</id> <name>Noddy</name> <tags/> <createdBy>Test User</createdBy> <createDate>2010-07-29T19:14:39.000+0000</createDate> <updateDate>2010-07-29T19:14:39.000+0000</updateDate> </dispatchDestination>
Error codes:
1
-- Destination with given id does not exist98
-- Permission denied to access destination with given id
createDestination
Semantics: Calling this method will create a new Dispatch Destination in your SCORM Cloud account, customized with the given parameters, and will return the id for the newly created destination.
Required Arguments:
appid
-- Your application idname
-- The name of the new destination
Optional Arguments:
tags
-- A comma separated list of tags to add to this destinationemail
-- The email address associated with the user creating this destination
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.createDestination&appid=myappid&name=Test+Destination(&tags=test1,test2&email=test@test.com)
Example response:
<destinationId>6922b1a3-791b-4597-8abb-48de707434a7</destinationId>
updateDestination
Semantics: Calling this method will update the Dispatch Destination, identified with the given destinatonid, in your SCORM Cloud account.
Required Arguments:
appid
-- Your application iddestinationid
-- The id of the destination being updated
Optional Arguments:
name
-- The new name for this destinationtags
-- A comma separated list of tags to set for this destination
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.updateDestination&appid=myappid&destinationid=6922b1a3-791b-4597-8abb-48de707434a7&name=Test+Destination+2(&tags=test1,test3)
Example response:
<success />
deleteDestination
Semantics: Calling this method will delete the Dispatch Destination, identified with the given destinatonid, from your SCORM Cloud account.
Required Arguments:
appid
-- Your application iddestinationid
-- The name of the new destination
Optional Arguments:
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.deleteDestination&appid=myappid&destinationid=6922b1a3-791b-4597-8abb-48de707434a7
Example response:
<success />
getDispatchList
Semantics: Calling this method will return a page of results showing the list of existing dispatches in your account. Callers should assume another page of data is available by calling again with the page parameter incremented, until an empty list is returned.
Required Arguments:
appid
-- Your application idpage
-- Which page of results to return. Page numbers start at 1.
Optional Arguments:
destinationid
-- Show only dispatches belonging to the destination named by this idcourseid
-- Show only dispatches for the course named by this idtags
-- A comma separated list of tags to filter results by. Results must be tagged with every tag in the list
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.getDispatchList&appid=myappid&page=1(&destinationid=6922b1a3-791b-4597-8abb-48de707434a7&courseid=course001&tags=test1,test2)
Example response:
<dispatches page="1"> <dispatch> <id>2737abf6-46f9-479d-a52b-34cd8e8dadae</id> <destinationId>1eec6b17-326f-4678-a490-b870a0506140</destinationId> <appId>N67DM67K0E</appId> <courseAppId>N67DM67K0E</courseAppId> <courseId>SequencingForcedSequential_SCORM20043rdEditionb0535515-a4c9-4dad-bd85-04bcc54f96b7</courseId> <enabled>true</enabled> <tags/> <notes></notes> <createdBy>Test User</createdBy> <createDate>2011-01-26T17:51:31.000+0000</createDate> <updateDate>2011-01-26T17:51:31.000+0000</updateDate> <registrationcount>2</registrationcount> <instanced>true</instanced> <registrationcap>0</registrationcap> </dispatch> <dispatch> <id>6ecc95a8-a8a8-40d2-991c-a9e34314f695</id> <destinationId>6922b1a3-791b-4597-8abb-48de707434a7</destinationId> <appId>N88DM88K0E</appId> <courseAppId>N88DM88K0E</courseAppId> <courseId>RunTimeAdvancedCalls_SCORM20043rdEdition-1e6b40aa7-0fe8-44a0-95ce-5cdb960c6630</courseId> <enabled>true</enabled> <tags> <tag>newer</tag> </tags> <notes></notes> <createdBy>Test User</createdBy> <createDate>2011-02-24T18:00:33.000+0000</createDate> <updateDate>2011-02-24T18:00:33.000+0000</updateDate> <expirationDate>2011-02-24T18:00:33.000+0000</expirationDate> <registrationcount>2</registrationcount> <instanced>true</instanced> <registrationcap>0</registrationcap> <postbackurl>https://example.com/postback</postbackurl> <authtype>form</authtype> <urlname>testuser</urlname> <urlpass>testpass</urlpass> <resultsformat>full</resultsformat> </dispatch> </dispatches>
Note
postbackurl
,authtype
,urlname
,urlpass
, andresultsformat
are only present ifpostbackurl
is set on the dispatch; otherwise they are omitted from the response.
expirationDate
is omitted from the response if not set on the dispatch.
getDispatchInfo
Semantics: Calling this method will return information about the dispatch named by the given dispatchid parameter.
Required Arguments:
appid
-- Your application id- [
dispatchid
|registrationid
] : Exactly one of these parameters must be included (see below)
Optional Arguments:
dispatchid
-- The id of the dispatch being accessedregistrationid
-- A registration tied to this dispatch (as created by Cloud when the dispatch is launched)
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.getDispatchInfo&appid=myappid&dispatchid=6ecc95a8-a8a8-40d2-991c-a9e34314f695
Example response:
<dispatch> <id>6ecc95a8-a8a8-40d2-991c-a9e34314f695</id> <destinationId>6922b1a3-791b-4597-8abb-48de707434a7</destinationId> <appId>N88DM88K0E</appId> <courseAppId>N88DM88K0E</courseAppId> <courseId>RunTimeAdvancedCalls_SCORM20043rdEdition-1e6b40aa7-0fe8-44a0-95ce-5cdb960c6630</courseId> <enabled>true</enabled> <tags> <tag>newer</tag> </tags> <notes></notes> <createdBy>Test User</createdBy> <createDate>2011-02-24T18:00:33.000+0000</createDate> <updateDate>2011-02-24T18:00:33.000+0000</updateDate> <expirationDate>2011-02-24T18:00:33.000+0000</expirationDate> <registrationcount>2</registrationcount> <instanced>true</instanced> <registrationcap>0</registrationcap> <postbackurl>https://example.com/postback</postbackurl> <authtype>form</authtype> <urlname>testuser</urlname> <urlpass>testpass</urlpass> <resultsformat>full</resultsformat> </dispatch>
Note
postbackurl
,authtype
,urlname
,urlpass
, andresultsformat
are only present ifpostbackurl
is set on the dispatch; otherwise they are omitted from the response.
expirationDate
is omitted from the response if not set on the dispatch.
Error codes:
1
-- Dispatch with given id does not exist2
-- Registration with given id does not exist3
-- Registration exists, but is not tied to a dispatch4
-- Both dispatchid and registrationid were specified (cannot specify both)98
-- Permission denied to access dispatch with given id
createDispatch
Semantics: Calling this method will create a new dispatch in your SCORM Cloud account, customized with the given parameters, and will return the id for the newly created dispatch.
Required Arguments:
appid
-- Your application iddestinationid
-- The id of the destination this dispatch will be associated withcourseid
-- The id of the course this dispatch will be associated with
Optional Arguments:
tags
-- A comma separated list of tags to add to this dispatchemail
-- The email address associated with the user creating this dispatchexpirationdate
-- The date this dispatch will expire and can not be launched (formatted yyyyMMddHHmmss in UTC time)registrationcap
-- Integer value of limit to dispatch registrations createdpostbackurl
-- Specifies a URL for which to post activity and status data in real time as the dispatched course is completed- If the authtype specified is form, or not included, then this status data is posted as ‘data’ (the key name) along with the other form variables. If the authtype is specified as httpbasic, then the data is HTTP POSTed as the body of the request. The data starts with the <registrationreport ... > element and uses the schema documented in getRegistrationResult
- For information on testing your postbackurl, see the testRegistrationPostUrl call.
- To update postback information or specify later, call updateDispatches.
authtype
-- Optional parameter to specify how to authorize against the given postbackurl, can be “form” or “httpbasic”. If form authentication, the username and password for authentication are submitted as form fields “username” and “password”, and the registration data as the form field “data”. If httpbasic authentication is used, the username and password are placed in the standard Authorization HTTP header, and the registration data is the body of the message (sent as text/xml content type). This field is set to “form” by default.urlname
-- You can optionally specify a login name to be used for credentials when posting to the URL specified in postbackurlurlpass
-- If credentials for the postbackurl are provided, this must be included, it is the password to be used in authorizing the postback of data to the URL specified by postbackurlresultsformat
-- This parameter allows you to specify a level of detail in the information that is posted back while the course is being taken. It may be one of three values: \“course\” (course summary), “activity” (activity summary, or “full” (full detail), and is set to “course” by default. The information will be posted as xml, and the format of that xml is specified below under the method “getRegistrationResult”
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.createDispatch&appid=myappid&destinationid=6922b1a3-791b-4597-8abb-48de707434a7&courseid=course001(&tags=test1,test2&email=test@test.com)
Example response:
<dispatchId>6ecc95a8-a8a8-40d2-991c-a9e34314f695</dispatchId>
Error codes:
1
-- Dispatch destination with given id does not exist2
-- Course with given id does not exist98
-- Permission denied to create dispatch against destination with given id
updateDispatches
Semantics: Calling this method will update the selected dispatches in your SCORM Cloud account, using the parameters given. Selection of dispatches to update is based either on a specific dispatch using the dispatchid parameter, or groups of dispatches using the destinationid, courseid, or tags parameters in any combination.
Required Arguments:
appid
-- Your application id- [
dispatchid
|destinationid
|courseid
|tags
] : One of these parameters must be included (see below)
Optional Arguments:
dispatchid
-- The id of the dispatch to updatedestinationid
-- The id of the destination used to select the dispatch group to updatecourseid
-- The id of the course used to select the dispatch group to updatetags
-- A comma separated list of tags used to select the dispatch group to update. Each dispatch selected will have to be tagged with each tag in the list.enabled
-- Settingtrue
orfalse
will enable or disable the selected group of dispatches. Disabled dispatches cannot be launched.open
-- Settingtrue
orfalse
will open or close the selected group of dispatches. Closed dispatches cannot have new registrations created for them.instanced
-- Settingtrue
orfalse
will enable or disable registration instancing for the selected group of dispatches.addtags
-- A comma separated list of tags to add to the selected dispatchesremovetags
-- A comma separated list of tags to remove from the selected dispatchesexpirationdate
-- The date this dispatch group will expire and can not be launched (formatted yyyyMMddHHmmss in UTC time)registrationcap
-- Integer value of limit to dispatch registrations createdregistrationcount
-- Integer value of how many dispatch registrations have been created (using this parameter, this count can be manually altered)postbackurl
-- Specifies a URL for which to post activity and status data in real time as the dispatched course is completed- If the authtype specified is form, or not included, then this status data is posted as ‘data’ (the key name) along with the other form variables. If the authtype is specified as httpbasic, then the data is HTTP POSTed as the body of the request. The data starts with the <registrationreport ... > element and uses the schema documented in getRegistrationResult
- For information on testing your postbackurl, see the testRegistrationPostUrl call.
authtype
-- Optional parameter to specify how to authorize against the given postbackurl, can be “form” or “httpbasic”. If form authentication, the username and password for authentication are submitted as form fields “username” and “password”, and the registration data as the form field “data”. If httpbasic authentication is used, the username and password are placed in the standard Authorization HTTP header, and the registration data is the body of the message (sent as text/xml content type). This field is set to “form” by default.urlname
-- You can optionally specify a login name to be used for credentials when posting to the URL specified in postbackurlurlpass
-- If credentials for the postbackurl are provided, this must be included, it is the password to be used in authorizing the postback of data to the URL specified by postbackurlresultsformat
-- This parameter allows you to specify a level of detail in the information that is posted back while the course is being taken. It may be one of three values: “course” (course summary), “activity” (activity summary, or “full” (full detail), and is set to “course” by default. The information will be posted as xml, and the format of that xml is specified below under the method “getRegistrationResult”
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.updateDispatches&appid=myappid(&dispatchid=6ecc95a8-a8a8-40d2-991c-a9e34314f695&destinationid=6922b1a3-791b-4597-8abb-48de707434a7&courseid=course001&tags=test1,test2&enabled=false&addtags=deprecated,old&removetags=test1)
Example response:
<success />
downloadDispatches
Semantics: Calling this method will use the dispatches selected by the given parameters to create and deliver a package containing the resources used to import and launch those dispatches in client systems. The return of this call is a download stream containing a zip file, which in turn contains zip files for each of the selected dispatches.
Required Arguments:
appid
-- Your application id
Optional Arguments:
dispatchid
-- The id of the dispatch to downloaddestinationid
-- The id of the destination used to select the dispatch group to downloadcourseid
-- The id of the course used to select the dispatch group to downloadtags
-- A comma separated list of tags used to select the dispatch group to download. Each dispatch selected will have to be tagged with each tag in the list.
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.downloadDispatches&appid=myappid(&dispatchid=6ecc95a8-a8a8-40d2-991c-a9e34314f695&destinationid=6922b1a3-791b-4597-8abb-48de707434a7&courseid=course001&tags=test1,test2)
Example response: Results in application/octet-stream for zip of zips file
deleteDispatches
Semantics: Calling this method will delete the selected dispatches from your SCORM Cloud account, using the parameters given. Selection of dispatches to delete is based either on a specific dispatch using the dispatchid parameter, or groups of dispatches using the destinationid, courseid, or tags parameters in any combination.
Required Arguments:
appid
-- Your application id- [
dispatchid
|destinationid
|courseid
|tags
] : One of these parameters must be included (see below)
Optional Arguments:
dispatchid
-- The id of the dispatch to deletedestinationid
-- The id of the destination used to select the dispatch group to deletecourseid
-- The id of the course used to select the dispatch group to deletetags
-- A comma separated list of tags used to select the dispatch group to delete. Each dispatch selected will have to be tagged with each tag in the list.
Example Call:
http://cloud.scorm.com/api?method=rustici.dispatch.deleteDispatches&appid=myappid(&dispatchid=6ecc95a8-a8a8-40d2-991c-a9e34314f695&destinationid=6922b1a3-791b-4597-8abb-48de707434a7&courseid=course001&tags=test1,test2)
Example response:
<success />