Slideshare Free API-Version 1.0



Initial configuration



To use the Slideshare API, you will need to first create an account on Slideshare. Once you do, visit (http://www.slideshare.net/developers/applyforapi) and fill out a form. You will need to indicate a point of contact (name and email address). Your request will be immediately approved and we will provide you with

1) An API Key (needed use of the API)
2) A shared secret (a string used to sign your API calls)

API Validation using the slideshare API



All requests made using the SlideShare API must have the following parameters
1) api_key: set this value to the API Key that SlideShare has provided for you.
2) ts: set this value to the current time in Unix TimeStamp format, to the nearest second (http://en.wikipedia.org/wiki/Unix_time) .
3) hash: set this value to the SHA1 hash of the string created by concatenation of the shared secret and the timestamp(i.e ts). i.e. SHA1 (sharedsecret + timestamp). The order of the terms in the concatenation is important.

Authentication using the slideshare API



Requests that request private data from users, or that act on their behalf, must include the following parameters.
1) username: set this to the username of the account whose data is being requested
2) password: set this to the password of the account whose data is being requested

Note: these requests are marked with the phrase "auth needed" in the documentation Not all the requests require authentication.

Slideshow Search

New!

Request Type: HTTP GET
URL: http://www.slideshare.net/api/1/search_slideshows

Required parameters:

api_key
ts
hash
q : the query string

Optional parameters:

page - The page number of the results (works in conjunction with items_per_page), default is 1
items_per_page - Number of results to return per page, default is 12
lang - Language of slideshows (default is English, 'en')
('**':All,'es':Spanish,'pt':Portuguese,'fr':French,'it':Italian,'nl':Dutch,
'de':German,'zh':Chinese,'ja':Japanese,'ko':Korean,'ro':Romanian,'!!':Other)
sort - Sort order (default is 'relevance')
('mostviewed','mostdownloaded','latest')
what - What type of search. If not set, text search is used. 'tag' is the other option.
download - Slideshows that are available to download; Set to '0' to do this, otherwise default is all slideshows.
fileformat - File format to search for. Default is "all".
('pdf':PDF,'ppt':PowerPoint,'odp':Open Office,'pps':PowerPoint Slideshow,'pot':PowerPoint template)
cc - Set to '1' to retrieve results under the Creative Commons license. Default is '0'
cc_commercial - Set to '1' to retrieve results with the commercial Creative Commons license. Default is '0'
cc_adapt - Set to '1' for results under Creative Commons that allow adaption, modification. Default is '0'


Response XML Format (if API call is successful):
<Slideshows>
<Meta>
<Query>{ query }</Query>
<ResultOffset>{ the offset of this result (if pages were used)}</ResultOffset>
<NumResults>{ number of results returned }</NumResults>
<TotalResults>{ total number of results}</TotalResults>
</Meta>
<Slideshow>
<Id>{ SlideShow ID }</Id>
<Title>{ SlideShow Title }</Title>
<Owner>{ Username of owner }</Owner>
<URL>{ Link to SlideShow's Slide View page</URL>
<Thumbnail>{ Thumbnail Image of SlideShow }</Thumbnail>
<Embed>{ Embeddable Code }</Embed>
<Description>{ Descriptive Text }</Description>
<Tags>
<Tag>{ A Tag }</Tag>
<Tag>{ Another Tag}</Tag>
...
</Tags>
<Downloads>{ Number of Downloads }</Downloads>
<Views>{ Number of Views }</Views>
<Created>{ Created date. Format: Thu Mar 13 00:46:57 -0700 2008 }</Created>
<NumSlides>{ Number of Slides in this SlideShow }</NumSlides>
</Slideshow>
...
</Slideshows>


Editing Existing Slideshow information using the slideshare API

New!

Request Type: HTTP POST
URL: http://www.slideshare.net/api/1/edit_slideshow (auth needed)

Required parameters:

api_key
ts
hash
slideshow_id
username
password

Optional parameters:

slideshow_title - text
slideshow_description - text
slideshow_tags - text
make_slideshow_private - Should be Y if you want to upload the slideshow privately. If this is not set, following tags will not be considered
generate_secret_url - Generate a secret URL for the slideshow. Requires make_slideshow_private to be Y
allow_embeds - Sets if other websites should be allowed to embed the slideshow. Requires make_slideshow_private to be Y
share_with_contacts - Sets if your contacts on Slideshare can view the slideshow. Requires make_slideshow_private to be Y

Response XML Format (if API call is successful):
<SlideShowEdited>
<SlideShowID>SlideShowID</SlideShowID>
</SlideShowEdited>


Deleting a Slideshow using the slideshare API

New!

Request Type: HTTP POST
URL: http://www.slideshare.net/api/1/delete_slideshow (auth needed)

Required parameters:

api_key
ts
hash
slideshow_id
username
password

Response XML Format (if API call is successful):
<SlideShowDeleted>
<SlideShowID>SlideShowID</SlideShowID>
</SlideShowDeleted>


Retrieving Slideshow information using the slideshare API

New!

Request Type: HTTP GET
URL: http://www.slideshare.net/api/1/get_slideshow_info

Required parameters:

api_key
ts
hash
slideshow_id
slideshow_url


Either slideshow_id or slideshow_url should be sent as a parameter in the call. If both are available, slideshow_id will be given higher priority.

Response XML Format (if API call is successful):
<Slideshow>
<ID>{slideshow id}</ID>
<Title>{slideshow title}</Title>
<Description>{slideshow description}</Description>
<Status>{conversion status code}</Status>
<EmbedCode>{embed code goes here}</EmbedCode>
<PlayerDoc>{doc passed to player}</PlayerDoc>
<TotalSlides>{total slides}</TotalSlides>
<URLDoc>{doc passed in url}</URLDoc>
<Language>{language code}</Language>
<URL>{complete url of slideshow}</URL>
<UserID>{user id of owner}</UserID>
<UserLogin>{login id of owner}</UserLogin>
<RelatedSlideshows>{csv list of related slideshow id's}</RelatedSlideshows>
<ThumbnailURL>{url of thumbnail}</ThumbnailURL>
<ThumbnailSmallURL>{url of smaller thumbnail}</ThumbnailSmallURL>
<Tags>{slideshow tags}</Tags>
Status can be 0 (queued for conversion into flash format), 1 (undergoing conversion), 2 (ready/converted), or 3 (conversion failed). PlayerDoc is the document name passed as a parameter to the slideview player. Ex. http://static.slideshare.net/swf/ssplayer2.swf?doc=PlayerDoc

Response XML Format (if API call failed):
<SlideShareServiceError>
<Message id={various numbers go here}>{various messages go here}</Message>
</SlideShareServiceError>
The message / ID in a SlideShareService error will be one of the following:

1 Failed API validation
2 Failed User authentication
3 Missing title
4 Missing file for upload
5 Blank title
6 Slideshow file isn't a source object
7 Invalid extension
8 File size too big

Uploading Slideshows using the slideshare API (auth needed)



Request Type: HTTP POST
URL: http://www.slideshare.net/api/1/upload_slideshow

Required parameters:

api_key
ts
hash
username
password
slideshow_title
slideshow_srcfile

Optional parameters:

slideshow_description
slideshow_tags (tags should be space separated, use quotes for multiple word tags)
make_src_public (should be Y if you want users to be able to download the ppt file later, N otherwise. Default is Y)

Privacy settings (optional):

make_slideshow_private (should be Y if you want to upload the slideshow privately. If this is not set, following tags will not be considered)
generate_secret_url (Generate a secret URL for the slideshow. Requires make_slideshow_private to be Y)
allow_embeds (Sets if other websites should be allowed to embed the slideshow. Requires make_slideshow_private to be Y)
share_with_contacts (Sets if your contacts on Slideshare can view the slideshow. Requires make_slideshow_private to be Y)

The document will upload into the account of the user specified by (username / password). The user associated with the API key need not be the same as the user into who's account the slideshow gets uploaded. So, for example, a bulk uploader would include the api_key (and hash) associated with the API account, and the username and password associated with the account being uploaded to.

Response XML Format (if API call is successful):
<SlideShowUploaded>
<SlideShowID>{slideshow id goes here}</SlideShowID>
</SlideShowUploaded>
The slideshare ID will be necessary for retrieving the slideshow embed code, once the slideshow has been converted into flash.

Response XML Format (if API call failed):
<SlideShareServiceError>
<Message id={various numbers go here}>{various messages go here}</Message>
</SlideShareServiceError>
The message / ID in a SlideShareService error will be one of the following:

1 Failed API validation
2 Failed User authentication
3 Missing title
4 Missing file for upload
5 Blank title
6 Slideshow file isn't a source object
7 Invalid extension
8 File size too big

Retrieving Embed Code for a Slideshow using the SlideShare API


After a file has been uploaded to SlideShare, it will be converted into a series of flash files suitable for streaming over the internet (this usually takes 1-10 minutes, depending on the size of the file and how many other files are in the queue). The files will be hosted by Slideshare: clients embed them into their own HTML pages using an "embed code", similar to the embed codes used on sites like Youtube for embedding videos.

Request Type: HTTP POST to the following url:
URL: http://www.slideshare.net/api/1/get_slideshow

Required parameters:

api_key
ts
hash
slideshow_id

Response XML Format (if API call is successful):
<Slideshows>
<Status>0, 1, 2, or 3</Status>
<StatusDescription>{queued, processing, ready, or failed}</StatusDescription>
<Title>{title goes here}</Title>
<Description>{description goes here}</Description>
<Tags>{all tags go here, separated by spaces. Multiple word tags are surrounded by double quotes}</Tags>
<EmbedCode>{embed code goes here}</EmbedCode>
<Thumbnail>{url for thumbnail goes here}</Thumbnail>
<Permalink>{Permanent link for the slideshow}</Permalink>
<Views>{Number of views for the slideshow}</Views>
</Slideshow>
Status can be 0 (queued for conversion into flash format), 1 (undergoing conversion), 2 (ready/converted), or 3 (conversion failed). Embed code and thumbnail will ONLY be provided if status is 2(ready/converted).

Response XML Format (if API call failed):
<SlideShareServiceError>
<Message id={various numbers go here}>{various messages go here, depending on the error}</Message>
</SlideShareServiceError>
The message in a SlideShareService error will be one of the following:

1 Failed API validation
9 SlideShow Not Found

Retrieving SlideShows for a given user


Request Type: HTTP GET
URL: http://www.slideshare.net/api/1/get_slideshow_by_user

Required Parameters:

api_key
ts
hash
username_for

Optional parameters

Offset : The offset from which we retrieve slideshows
Limit : How many slideshows to retrieve
username : Username; to authorize fetching of private slideshowsadded
password : Passowrd; to authorize fetching of private slideshowsadded

Response XML Format (if API call is successful):
<User>{Name goes here}</User>
<count>{Total number of slideshows for given user}</count>
<Slideshows>
<EmbedCode>{embed code goes here}</EmbedCode>
<Thumbnail>{url for thumbnail goes here}</Thumbnail>
<Title>{title goes here}</Title>
<Description>{description goes here}</Description>
<Status>0, 1, 2, or 3</Status>
<StatusDescription>{queued, processing, ready, or failed}</StatusDescription>
<Permalink>{Permanent link for the slideshow}</Permalink>
<Views>{Number of views for the slideshow}</Views>
<Make_SlideShow_Private>{Y or N}</Make_SlideShow_Private>added
<Generate_Secret_URL>{Y or N}</Generate_Secret_URL>added
<Allow_Embeds>{Y or N}</Allow_Embeds>added
<Share_With_Contacts>{Y or N}</Share_With_Contacts>added
</Slideshow>
{repeat SlideShow element as many times as is necessary}
</User>
Status can be 0 (queued), 1 (processing), 2 (ready), or 3 (failed).

Response XML Format (if API call failed):
<SlideShareServiceError>
<Message id={various numbers go here}>{various messages go here}</Message>
</SlideShareServiceError>
The message in a SlideShareService error will be one of the following:

1 Failed API validation
10 User Not Found

Retrieving SlideShows for a given tag


Request Type: HTTP GET
URL: http://www.slideshare.net/api/1/get_slideshow_by_tag

Required Parameters:

api_key
ts
hash
tag

Optional parameters (Useful for pagination)

Offset : The offset from which we retrieve slideshows
Limit : How many slideshows to retrieve

Response XML Format (if API call is successful):
<Tag>
<name>{tag}</name>
<count>{Total number of slideshows for given tag}</count>
<Slideshows>
<EmbedCode>{embed code goes here}</EmbedCode>
<Thumbnail>{url for thumbnail goes here}</Thumbnail>
<Title>{title goes here}</Title>
<Description>{description goes here}</Description>
<Status>0, 1, 2, or 3</Status>
<StatusDescription>{queued, processing, ready, or failed}</StatusDescription>
<Permalink>{Permanent link for the slideshow}</Permalink>
<Views>{Number of views for the slideshow}</Views>
</Slideshow>
{repeat SlideShow element as many times as is necessary}
</Tag>
Status for each slideshow can be 0 (queued), 1 (processing), 2 (ready), or 3 (failed).

Response XML Format (if API call failed):
<SlideShareServiceError>
<Message id={various numbers go here}>{various messages go here}</Message>
</SlideShareServiceError>
The message in a SlideShareService error will be one of the following:
1 Failed API validation

Retrieving SlideShows for a given group


Request Type: HTTP GET
URL: http://www.slideshare.net/api/1/get_slideshow_from_group

Required Parameters:

api_key
ts
hash
group_name

Optional parameters (Useful for pagination)

Offset : The offset from which we retrieve slideshows
Limit : How many slideshows to retrieve

Response XML Format (if API call is successful):
<Group>{name goes here}</Group>
<Slideshows>
<EmbedCode>{embed code goes here}</EmbedCode>
<Thumbnail>{url for thumbnail goes here}</Thumbnail>
<Title>{title goes here}</Title>
<Description>{description goes here}</Description>
<Status>0, 1, 2, or 3</Status>
<StatusDescription>{queued, processing, ready, or failed}</StatusDescription>
<Permalink>{Permanent link for the slideshow}</Permalink>
<Views>{Number of views for the slideshow}</Views>
</Slideshow>
{repeat SlideShow element as many times as is necessary}
</Group>
Status can be 0 (queued), 1 (processing), 2 (ready), or 3 (failed).

Response XML Format (if API call failed)
<SlideShareServiceError>
<Message id={various numbers go here}>{various messages go here}</Message>
</SlideShareServiceError>
The message in a SlideShareService error will be one of the following:

1 Failed API validation
11 Group Not Found

Complete List of Error Codes

1 Failed API validation
2 Failed User authentication
3 Missing title
4 Missing file for upload
5 Blank title
6 Slideshow file isn't a source object
7 Invalid extension
8 File size too big
9 SlideShow Not Found
10 User Not Found
11 Group Not Found
12 No Tag Provided
13 Tag Not Found
99 Account Exceeded Daily Limit
100 Your Account has been blocked

Notes about using API


Your use of the API is at the discretion of SlideShare, and is restricted to non-commercial use. For full details, see the Slideshare API terms of service (http://www.slideshare.net/developers/tos).

It is recommended that you join the SlideShare API mailing list at (http://groups.google.com/group/slideshare-developers) so that you can interact with other API users and get regular updates about the SlideShare API.

In particular, do NOT write code that calls our API every time you get a web request. Cache the information so that you can serve it as needed to your users. API uploads are limited to 100 per day per API_Key. Calls that exceed this limit will receive an error message in the following format.
<SlideShareServiceError>
<Message id=99>Account Exceeded Daily Limit</Message>
</SlideShareServiceError>

In case your application needs to upload more than 100 presentations per day, e-mail us about your requirements.