API Documentation

Authentication details

A request to the API must be authenticated, either by using a key, or by having a valid session cookie set. If no key is provided, and no cookie is set, it is interpreted as the key being set to the empty string. The key is set by adding the parameter apiKey to the url.

Keys may require a digest to ensure that the request is valid. This is provided by adding the parameter digest to the url. When using the api through an external service, this service will have to calculate the digest if it is required. This is done by using a shared secret key that is provided when the apiKey is acquired. The digest is calculated as described by the following pseudo-code:

Key = "MySharedKey"

UTF8Key = UTF8Encode(Key)

// This is a HTTP GET request
Message = "GET https://api.silobreaker.com/search/documents/Sweden"

UTF8Message = UTF8Encode(Message)

// Will output Gh9YtyvJvF39Isfn9QFo2nNkQkI=
Signature = Base64(HMAC-SHA1(UTF8Message, UTF8Key));

The final request will look like:

https://api.silobreaker.com/search/documents/Sweden?apiKey=MyApiKey&digest=Gh9YtyvJvF39Isfn9QFo2nNkQkI%3D

See login for further details on how to authenticate a user via the API.

Response Types

The API supports several of response format types. The most common ones are Xml and Json which both can be used for all requests. Other more specialised formats are Atom 1.0 and Html which can be used for document list results. To switch response type, simply set parameter type to the desired format.

Example: /documents/United Nations?type=atom10

The following formats are supported:

API Requests

Authentication

login
Login through the Api and receive a cookie to stay logged in.
logout
Logout the current user.
loginStatus
Checks if a user is logged in.
changePassword
Changes the current user’s password.
search/geoEvents
Search for documents with geographic information related to the query.
search/topstories
Search for stories, groups of documents that are thematically related.
search/social
Search through social media for mentions of the query.
search/twitter/
Search through twitter.
search/documents
Search for documents that match the query.

Statistics

statistics/documentVolume
Returns the number of documents in equal time-span bins.
statistics/documentCount
Returns the number of documents that matches the query, faceted by a number of different options such as publications, document sets, etc.
statistics/relatedEntities
Returns a list of entities related to the search.
statistics/relatedTopics
Returns a list of topics related to the search.

Document

document/comments
Get comments for the given docId.
document/attachments
Get attachments for the given docId.
document/keywords
Get keywords for the given docId.
document/categories
Get categories for the given docId.

Term

term/add
Create a new term.
term/request
Request that a new term be added.
term/available
Check if a given term is available.

Terms

terms/refresh
Refresh a list of terms.

Entities

entities/heat
Returns the heat for the entities given.
entities/evidence
Extracts an evidence snippet from recent news - a short piece of text displaying the supplied entity in context in an article.
entities/property
Get entites with a certain property
entities
Search for entities related to the query

Entity

entity
Get information about an entity.

Project

project/
Retrieves a list of all the items in the project. This means entities for projects of type entityList and documents for projects of type scrapbook.
project/share
Resolve a project shared through a secured link sl
project/delete
Delete the given project projectRef
project/access
Returns a list of users and usergroups who have access to the project projectRef
project/clone
Clones the project projectRef
project/setDescription
Set a new description for the project projectRef
project/add
Create a new project with the given description and project type entityList, scrapbook.
project/addItem
Add an item to the project projectRef.
project/removeItem
Remove an item from the project projectRef.
project/removeItems
Remove the given list of items from the project projectRef.
project/Export
Export the information from a project into one of the following formats: xml, html, rtf, docx

Projects

projects/withItem
Return projects that has the given item itemRef.
projects/
Return all projects that the user has access to, with details of ownership and write access.

MyPageTabs

MyPageTabs/
Return all mypagetabs that the user has access to, with details of ownership and write access.

MyPageTab

myPageTab/isLatestVersion
Check if there are any changes to the MyPage tab tabId
myPageTab/layout/update
Update the layout of the widgets on the MyPage tab tabId
myPageTab/Create
Create a new MyPage tab
myPageTab/Delete
Delete a MyPage tab or remove access to it if you don’t own it
myPageTab/Update
Update a MyPage tab
myPageTab/Clone
Clone a MyPage tab that you have access to and make it your own.
myPageTab/Export
Export the information from a myPageTab into one of the following formats: xml, html, rtf, docx
myPageTab
Get all widgets and basic information about the given MyPage tab tabId

Widget

widget
Get information about a widget
widget/save
Save the settings of widget
widget/delete
Delete the widget
widget/rss
Retrieves the widget’s documents represented as an rss feed.
widget/Export
Export the information on the widget into one of the following formats: xml, html, rtf, docx

Graph

graph
Given a specific query return information needed to build a graph representation of the data.

User

user
Get info about the current user, such as username, fullname, etc.
user/access
Checks if the given user has access to the list of resources

ReportOrder

reportOrder
Get a single reportOrder, if it can’t find a reportOrder then it will return a default reportOrder.
email
The reportorder will run and email out the result to the configured email addresses.
save
Update an existing or save a new reportOrder.
delete
Delete an existing reportOrder, if no reportOrder is found an error is thrown.

Utility

utility/getJs/{jsfileName}
Get a javascript concated file.
utility/getImage
Loads the image for the current user. Not recommended for public use.
utility/queryBeautifier
Resolves a descriptive name from the query q. Not recommended for public use.

App

app/config
Returns the current config for the user. Not recommended for public use.
app/style
Returns the style files for the current user. Not recommended for public use.
app/script
Returns the script files for the current user. Not recommended for public use.