API Documentation

Introduction

Welcome to the Silobreaker API documentation. Here you'll find reference information about all existing endpoints in the Silobreaker API as well as code and usage samples.

Samples

Please refer to API Samples for code & CLI samples and sample API links.

Authentication

The Silobreaker API support several means of authentication, and all requests to it need to be authenticated. See authentication for more information and sample authentication code.

Querying

Many endpoints in the API takes a Silobreaker query as a q parameter. All query parameters accept the full Silobreaker search syntax. Please refer to the Silobreaker User Manual for information on the query syntax.

Versioning

The Silobreaker API is currently undergoing a revision, with new endpoints being versioned as /v1. This documentation contains information about both the new /v1 endpoints, and the original endpoints.

If available, use the /v1 versioned endpoint. Any original counterpart is deprecated.

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 format to the desired format.

Example: /documents/United Nations?format=atom10

The following formats are supported:

Contents

API samples

Code samples Code samples in various languages.
CLI samples Samples for interacting with the Silobreaker API using CURL and a CLI.
Sample links Useful links to try to test the API.

Authentication

Authenticating requests using API key Requests using an API key must provide both an API key, and an API call digest based on a shared secret.
Authenticating using authentication cookie For building browser-based clients, the Silobreaker API provides cookie-based authentication.
POST /v1/login/ Sets a session cookie which authenticates further calls to the API.
GET /v1/logout, POST /v1/logout Logs the current user out.
GET /v1/loginstatus, POST /v1/loginstatus Checks the login status.
POST /v1/changepassword Changes the users password.

/app

GET /app/config Gets the user's app configuration.
GET /app/style Gets the user's app stylesheet.
GET /app/script Gets the app's javascript library.

/document

GET /document/comments Gets the comments for a specific document.
GET /document/attachments Gets attachments for a document.
GET /document/keywords Gets the keywords assigned to a document.
GET /document/categories Gets the categories assigned to a a document.

/documents

GET /documents Alias endpoint for /search/documents.

/entities

GET /entities Searches for entities matching a query.
GET /entities/heat Gets the heat for a set of entities.
GET /entities/evidence Gets an evidence snippet from recent news.
GET /entities/property Serches entity metadata for entites by property name (dimension) and value.
GET /entities/geo Extracts entities that has geographical coordinates (such as cities and sites) and that are related to a query.
GET /entities/refresh Refreshes a list of entities.

/entity

GET /entity Gets metadata for a specific entity.
GET /entity/add Creates a new entity.
GET /entity/request Sends a request to Silobreaker QA for the addition of an entity.

/graph

GET /graph Get data to build a graph.

/mypagetab

GET /mypagetab Gets all information about a tab and it's widgets.
GET /mypagetab/clone Clone a MyPage tab to the caller's account.
GET /mypagetab/delete Delete a MyPage tab or remove access to it if it's a tab shared to you.
GET /mypagetab/create Create a new MyPage tab for the user.
GET /mypagetab/move Move a MyPage tab.
GET /mypagetab/update Update an existing mypagetab.
GET /mypagetab/islatestversion Checks if the supplied MyPage tab has been changed.
GET /mypagetab/layout/update Updates the layout of widgets on a MyPage tab.
GET /mypagetab/export Exports a MyPage tab and all it's contents to xml, rtf, docx or html.

/mypagetabs

GET /mypagetabs Gets all mypagetabs the current user has access to.

/project

GET /project Lists all the items in a project.
GET /project/share DEPRECATED.
GET /project/delete Deletes a project.
GET /project/access Gets who has access to the project.
GET /project/clone Clones a project.
GET /project/setDescription Sets the description of a project.
GET /project/add Create a new project.
GET /project/addItems Add one or more items to the project.
GET /project/removeItem Remove items from the project.
GET /project/removeItems Remove items from the project.
GET /project/export Exports a project to one of the following formats: xml, rtf, docx, html.
GET /project/subscribe Subscribes to changes in a project shared to you.
GET /project/unsubscribe Unsubscribe to changes from a project.
GET /project/distributors Gets a list of distributors connected to a specific project.
GET /project/subscribers Gets a list of subscribers connected to a specific project.

/projects

GET /projects Gets all projects the current user has access to.
GET /projects/withitem Gets all projects containing a certain item.

/search

GET /search/geoevents Gets stories and dominant city matching a query.
GET /search/topstories Gets top stories relevant to the query.
GET /search/social Searches selected social media providers for matches to the given query.
GET /search/documents Retrieves documents that match the query.
GET /search/quotes Gets quotes matching a document query.
GET /search/documents/property Gets documents that has a property with a specific value.
GET /search/provider Searches for a document that has a specific provider--reference pair.

/statistics

GET /statistics/documentvolume Get the number of documents matching a query as a histogram of document volumes over a given time window.
GET /statistics/documentcount Fetches the document count, optionally split into different facets.
GET /statistics/relatedentities Get the related terms from a query.
GET /statistics/relatedtopics Get the topics related to a query.

/user

GET /user Get information about the current user. To view other users within the system, a higher level of access is needed.
GET /user/access Use this api request to resolve what resources the current user has access to.
GET /user/property Look up a property connected to the current user.
GET /user/property/update Update a given property for the current user.

/utility

GET /utility/getJs Internal API request.
GET /utility/getImage Internal API request.
GET /utility/queryBeautifier Internal API request.

/widget

GET /widget Gets settings and metadata for a widget.
GET /widget/delete Deletes an existing widget.
GET /widget/save Save a widget. If the widget did not exist before, it will be created.
GET /widget/rss Creates and gets an RSS feed/link for the supplied widget.
GET /widget/export Exports the contents of a widget into xml, rtf, docx or html.

/v1/apikey

GET /v1/apikey/ List the api keys for a given user.
POST /v1/apikey Create an api key for a given user.
DELETE /v1/apikey Delete a specific api key.

/v1/autoComplete

GET /v1/autoComplete The auto-complete API call takes a search string or a partial search-string and returns a list of suggested completions.

/v1/companies

GET /v1/companies/ List all companies that the user has the right to see.
GET /v1/companies/:user-group-id Returns a specific company.
GET /v1/companies/:user-group-id/departments Returns a list of departments for the company specified by user-group-id.

/v1/departments

GET /v1/departments/ Lists the departments for the calling user, if it is an admin user then all departments will be listed.

/v1/entityrelevance

GET/POST /v1/entityrelevance

/v1/healthstatus

GET /v1/healthstatus/

/v1/heat

POST /v1/heat Calculates the heat, a measure of how much more than usual an entity is mentioned, for a given entity.
GET /v1/heat Calculates the heat, a measure of how much more than usual an entity is mentioned, for a given entity.

/v1/highlight

GET /v1/highlight/ Gets the data needed to highlight a document with words or phrases that has matched a given search string.

/v1/infocus

GET /v1/infocus/ Gets the most relevant entities for the given query.

/v1/mypagetabs

GET /v1/mypagetabs/ Lists the mypagetabs created by the current user, as well as the mypagetabs shared to the user.
GET /v1/mypagetabs/:project-item-id Returns a mypagetab specified by project-item-id.
GET /v1/mypagetabs/:id/projects Gets the dependencies of a mypage tab.

/v1/network

POST /v1/network Calculates entity relationships suitable for drawing as a network.

/v1/package

POST /v1/Package/upload Upload a Silobreaker package with the POST verb as binary to the server.

/v1/projects

GET /v1/projects Lists the projects the user has access to.
GET /v1/projects/:project-item-ref Retrieves information for one specific project.

/v1/providers

GET /v1/providers/ Lists the existing providers.
GET /v1/providers/:id Get a single provider.
POST /v1/providers Create a provider.
GET /v1/providers/:id/access Lists the companies, departments and users that has access to the given provider.
POST /v1/providers/:id/access Adds access to a provider for companies, departments and users, specified by the provider with id.
POST /v1/providers/access Add access to multiple providers for companies, departments and users.
DELETE /v1/providers/:id/access Remove access for a specific provider.
DELETE /v1/providers/access Remove access for multiple providers.

/v1/reportorders

GET /v1/reportorders/:report-order-id Gets the settings for the email report given by {report-order-id}.
POST /v1/reportorders/ Creates a mypage email report and returns the created reportorder.
PUT /v1/reports/:report-order-id Updates the reportorder with the given :report-order-id.
DELETE /v1/reports/:report-order-id Delete a reportorder with the given :report-order-id.
POST /v1/reportorders/:report-order-id/sendemail Email a reportorder with the given :report-order-id
GET /v1/reportorders/:report-order-id/sendemail Email a reportorder with the given :report-order-id with a 7 day filter.

/v1/reports

GET /v1/reports/ Lists the reports created by the current user, as well as the reports shared to the user.
GET /v1/reports/:report-id Returns a report specified by {report-id}.
POST /v1/reports/ Creates a report. The request body must be a JSON object describing the report.
POST /v1/reports/ x-copy-report :reportId Create a copy of a report and it's content.
PUT /v1/reports/:report-id Updates an already existing report.
DELETE /v1/reports/:report-id Deletes a report.
GET /v1/reports/:report-id/export Exports the content of a report as a list of all the contained objects, represented as a JSON object.
GET /v1/reports/:report-id/export-nested Exports the content of a report as a JSON object, where child items are included in their parent item.
GET /v1/reports/:reportId/items/ Fetches all the items a report contains.
GET /v1/reports/:reportId/items/:version Fetches all the items a report contains at a specific version.
GET /v1/reports/:reportId/items/:itemId Fetches the data for a specific item requested.
POST /v1/reports/:reportId/items/sections/ Creates a section header in the report.
POST /v1/reports/:reportId/items/savedArticlesData/ Adds a collection to the report.
PUT /v1/reports/:reportId/items/:itemtype/:itemId Updates the data for a specific item specified. Variants:
DELETE /v1/reports/:reportId/items/:itemId Deletes the item specified.

/v1/svgtopng

POST /v1/svgtopng Upload an svg file with the POST verb as multipart form. The response will be a png file named sb_image.png if the optional filename is not provided.

/v1/twitter

GET /v1/twitter/search Search for tweets by either providing a twitter query or automatically generate one from a silobreaker query.
GET /v1/twitter/toquery Use this to preview what twitter query silobreaker will generate from a given silobreaker query. Will return just the generated query.

/v1/youtube

GET /v1/youtube/ The YouTube API call returns videos based on the given query and settings.

Documentation generated by mdoc.