Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
let
// Credentials
apiKey = "xxxx",
username = "xxxx",
password = "xxxx",
credentials = Binary.ToText(Text.ToBinary(username & ":" & password), BinaryEncoding.Base64),
authHeader = "Basic " & credentials,
// Base URL without offset
baseUrl = "https://api.myosh.com/v3/inf/records?rowLimit=1000&sort=creationDate&asc=false&mobileOnly=false&filter=moduleName:Incident Reporting&filter=archivedStep:true&filter=form:2",
// Function to get a page
GetPage = (offset as number) =>
let
url = baseUrl & "&offset=" & Number.ToText(offset),
response = Json.Document(Web.Contents(url,
[Headers = [
#"x-api-key" = apiKey,
#"Authorization" = authHeader,
#"Accept" = "application/json"
]]
)),
results = try response[results] otherwise {}
in
results,
// Generate offsets (0, 1000, 2000, … up to 10000 for example)
offsets = List.Generate(() => 0, each _ < 10000, each _ + 1000),
// Fetch all pages
allPages = List.Combine(List.Transform(offsets, each GetPage(_))),
// Convert to table
table = Table.FromList(allPages, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Expanded = Table.ExpandRecordColumn(table, "Column1",
{"id", "sourceID", "module", "moduleName", "form", "formName", "lastModified", "formVersion", "versionState", "archivedStep", "workflowStepHistory", "workflowStepHistories", "complete", "creationDate", "important", "importantDocNo", "linkUrl", "location", "persistedSinceLastEdit", "readAccessRoles", "records", "invitations", "displayText", "hasNormalReverseRecord", "fieldsToValues", "fieldsToAdditionalValues", "fieldsToQuestionWithAnswers", "deleted"}
),
ExpandedFields = Table.ExpandRecordColumn(Expanded, "fieldsToValues",
{"Date Occurred", "Motor Vehicle Incident Type", "Classification (Outcomes)", "Actual Incident Category", "docNumber", "status", "Drivers Licence validation confirmed by issuing authority?"}
),
#"Filtered Rows" = Table.SelectRows(ExpandedFields, each true)
in
#"Filtered Rows"
Script with Relative Path
let
// Parameters
ModuleName = "Incident Reporting",
ArchivedStep = "true",
PageSize = 1000,
PageCount = 35,
// e.g., 35
// Credentials
apiKey = "xxxx",
username = "xxxx",
password = "xxxx",
credentials = Binary.ToText(Text.ToBinary(username & ":" & password), BinaryEncoding.Base64),
authHeader = "Basic " & credentials,
// Base URL
baseUrl = "https://api.myosh.com",
relativePath = "v3/inf/records",
// Pagination offsets
offsets = List.Transform({0..(PageCount - 1)}, each _ * PageSize),
// Function to fetch a single page
GetPage = (offset as number) =>
let
response = Json.Document(Web.Contents(baseUrl, [
RelativePath = relativePath,
Query = [
sort = "creationDate",
asc = "false",
mobileOnly = "false",
filter = "=moduleName:Incident Reporting&filter=archivedStep:true&filter=form:2",
rowStart = Text.From(offset),
rowLimit = Text.From(PageSize)
],
Headers = [
#"x-api-key" = apiKey,
#"Authorization" = authHeader,
#"Accept" = "application/json"
]
])),
results = response[results]
in
results,
// Combine all pages
allPages = List.Combine(List.Transform(offsets, each GetPage(_))),
table = Table.FromList(allPages, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Expanded = Table.ExpandRecordColumn(table, "Column1",
{"id", "sourceID", "module", "moduleName", "form", "formName", "lastModified", "formVersion", "versionState", "archivedStep", "workflowStepHistory", "workflowStepHistories", "complete", "creationDate", "important", "importantDocNo", "linkUrl", "location", "persistedSinceLastEdit", "readAccessRoles", "records", "invitations", "displayText", "hasNormalReverseRecord", "fieldsToValues", "fieldsToAdditionalValues", "fieldsToQuestionWithAnswers", "deleted"}
),
ExpandedFields = Table.ExpandRecordColumn(Expanded, "fieldsToValues",
{"Date Occurred", "Motor Vehicle Incident Type", "Classification (Outcomes)", "Actual Incident Category", "docNumber", "status", "Drivers Licence validation confirmed by issuing authority?"}
),
#"Changed Type" = Table.TransformColumnTypes(ExpandedFields,{{"Date Occurred", type date}})
in
#"Changed Type"
Solved! Go to Solution.
Hi @PhilipTreacy
I found the correct one, I was missing {}
filter = {"moduleName:Incident Reporting", "archivedStep:true", "form:2"}
What results are you getting when using RelativePath?
I notice that in the 2nd query above you have this query parameter
filter = "=moduleName:Incident Reporting&filter=archivedStep:true&filter=form:2"
but shouldn't that be this (without the leading = in the parameter value)
filter = "moduleName:Incident Reporting&filter=archivedStep:true&filter=form:2"
Regards
Phil
Proud to be a Super User!
Hi @PhilipTreacy
I found the correct one, I was missing {}
filter = {"moduleName:Incident Reporting", "archivedStep:true", "form:2"}
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 38 | |
| 36 | |
| 33 | |
| 31 | |
| 28 |
| User | Count |
|---|---|
| 129 | |
| 88 | |
| 79 | |
| 68 | |
| 63 |