Like Gavin I was also not having any problems, I tried a few different formats and they all worked
/bi/v1/disp/rds/reportData/report/iAAB73466604C4D91BA43C96D672A5808?v=3&async=off&fmt=datasetJSON&version=LATEST
/bi/v1/disp/rds/reportData/path/Team%20Content/Demo/Mashup%20Examples/Report%20Versions?async=off&version=VERSION_NAME&versionID=2025-11-19T09:04:04.733Z
/bi/v1/disp/rds/reportData/searchPath/content/folder[@name='Demo']/folder[@name='Mashup%20Examples']/report[@name='Report%20Versions']?async=off&version=LATEST
In all cases it was working fine.
A 404 error is unusual here, since if it was a Cognos problem you should be getting an RDS error in XML format.
<rds:error xmlns:rds="http://developer.cognos.com/schemas/rds/types/2"><rds:message>whatever</rds:message></rds:error>
The fact you're not getting that would indicate to me that the request isn't even reaching Cognos. Can you pull your webserver and cognos logs and see what's happening? I suspect there might be a rewrite rule or something that's intercepting the request. Maybe when LATEST is the last string? What happens if you do
rds/reportData/report/{reportID{?v=3&async=OFF&fmt=DataSetJSON&saveOutput=True&version=LATEST
That's all just a guess unfortunately.
The problem with getting the version names is a pain, but here's how I do it:
await fetch("<Gateway URL>/bi/v1/expressbus/content-manager?searchPath=/content/folder[@name=%27Demo%27]/folder[@name=%27Mashup%20Examples%27]/report[@name=%27Report%20Versions%27]//reportVersion&properties=defaultName", {
"headers": {
"accept": "application/json, text/javascript, */*; q=0.01",
"x-xsrf-token": "HUSrqp0mF205pJA8qlvG13-9IRmTGSi7"
},
"method": "GET",
"mode": "cors",
"credentials": "include"
}).then(x=>x.json())
That returns a small array
[
{"type": "reportVersion","defaultName": "2025-11-19T09:04:04.733Z"},
{"type": "reportVersion","defaultName": "2025-11-19T08:43:53.568Z"},
{"type": "reportVersion","defaultName": "2025-11-19T08:44:15.540Z"}
]
You can also get a list of burstkeys, if relevant, with:
await fetch("<gateway>/bi/v1/expressbus/content-manager?searchPath=/content/folder[@name=%27Demo%27]/folder[@name=%27Mashup%20Examples%27]/report[@name=%27Burst Keys%27]//output&properties=burstKey,parent&options={refProps:[{refPropName:parent,properties:[defaultName,type]}]}", {
"headers": {
"accept": "application/json, text/javascript, */*; q=0.01",
"x-xsrf-token": "HUSrqp0mF205pJA8qlvG13-9IRmTGSi7"
},
"method": "GET",
"mode": "cors",
"credentials": "include"
}).then(x=>x.json())
[
{"burstKey": "Camping Equipment","parent": [{"type": "reportVersion","defaultName": "2025-11-19T10:03:04.771Z"}],"type": "output"},
{"burstKey": "Golf Equipment","parent": [{"type": "reportVersion","defaultName": "2025-11-19T10:03:04.771Z"}],"type": "output"},
{"burstKey": "Mountaineering Equipment","parent": [{"type": "reportVersion","defaultName": "2025-11-19T10:03:04.771Z"}],"type": "output"},
{"burstKey": "Outdoor Protection","parent": [{"type": "reportVersion","defaultName": "2025-11-19T10:03:04.771Z"}],"type": "output"},
{"burstKey": "Personal Accessories","parent": [{"type": "reportVersion","defaultName": "2025-11-19T10:03:04.771Z"}],"type": "output"}
]
Notice the reportName for the version is in the parent array for each output. Since this is using a searchpath to find the objects, you can use valid searchpath syntax (it's basically xpath) to limit the reportVersion to only the latest: /content/folder[@name=%27Demo%27]/folder[@name=%27Mashup%20Examples%27]/report[@name=%27Burst Keys%27]/reportVersion[last()]//output
------------------------------
Paul Mendelson Product Manager
Product Manager
PMsquare
------------------------------
Original Message:
Sent: Wed October 08, 2025 11:22 AM
From: John Bronzo
Subject: Cogonos Mashup Service - Version Parameter
Has anyone successfully using the version:LATEST parameter to extract a saved report output in DataSetJSON format?
If I used this endpoint, I get a 404 error
rds/reportData/report/{reportID{?v=3&async=OFF&fmt=DataSetJSON&version=LATEST
If I add the saveOuput = true parameter it works but I don't want to execute the query on the database and save the output
rds/reportData/report/{reportID{?v=3&async=OFF&fmt=DataSetJSON&version=LATEST&saveOutput=True
If I use version=VERSION_NAME and put the specific VERSION_ID it will work but then finding the version name programmatically becomes a challenge
rds/reportData/report/{reportID{?v=3&async=OFF&fmt=DataSetJSON&version=VERSION_NAME&versionID=2025-10-08T14:56:10.079Z
------------------------------
John Bronzo
------------------------------