Does Cognos have REST/SOAP web services one can connect to and
retrieve data? Or maybe an SDK?
Data can be automatically retrieved from IBM Cognos via REST API, SDK (Soap), Mashup-Services and Junyper-Notebooks using C#, Java, .net, R, python, Javascript, curl.
Some interfaces just allow retrieval others also expose configuration and update functionalities. In general all actions that can be executed via the Webportal, can also be accessed via SDK or REST-API.
REST-API
There are two flavours of REST-APIs, REST-API from v10 and the swagger-based API since Cognos v11. Both are fully functional and supported.
Cognos V10 REST-API is availabe in Cognos since Version 10.
It exposes the different services runnning as Java-Servlets in the Applikation-Server via URL and accepts parameters to retrieve portal content, execute reports, retrieve save report outputs, poll for status, /add/change/deleete extensions ....
Generic url:
<Cognos-installdir>/v1/disp/{service}
{service} can be: extensions, files, session, disp, ...
Example for getting report data or a folder structure:
http://webservername:portnumber/ibmcognos/bi/v1/disp/rds
/{resource_type}/{source_type}/source_id?option1=val1&option2=val2...
Depending on {resource_type} and {source_type} the results can be a user information, folders, saved report output a report results run on demand ...
Cognos 11.1.x REST-API was introduced with Cognos Version 11 and is provided through swagger.
The swagger-API comes with a structured documentation and may therefor be easier to understand. Latest documentation can always be found in reaching out to the installed URL: https://<cognos_analytics_server>:/api/api-docs - see IBM Cloud installation as example.
SDK
IBM provides SDK libs for C#/Java/.NET which are included in any IBM Cognos installation. Typically in /sdk
SDK examples can be found in /samples for any of the above languages.
IBM 11.1.x documentation on SDK
For Java you would use the following libs:
activation.jar
axis.jar
axisCrnpClient.jar
commons-codec-1.4.jar
commons-collections-3.2.jar
commons-configuration-1.4.jar
commons-discovery-0.2.jar
commons-jxpath-1.3.jar
commons-lang-2.3.jar
commons-logging.jar
dom4j-2.0.0-RC1.jar
jaxrpc.jar
log4j-1.2.14.jar
log4j-1.2.8.jar
mail.jar
saaj.jar
wsdl4j.jar
xercesImpl.jar
xml-apis.jar
In the /samples directory are Code snipplets for almost anything to get started with.
How do you guys integrate with Cognos?
Here are three examples with source-repos on Github using the IBM Cognos API:
TM1
As you tagged your question with TM1, I suppose that you are especially looking for TM1 API. The TM1 exposes functionalities that are unique to TM1 using a similar aproach as the Cognos REST-API coming since v10.
{service} can be: v1/Cubes, v1/Process or v1/Processes ... See documentation and documentation Planing Analytics 2.0 for details.