Speckle.GetByUrl queries and new Speckle.GetTables queries. For the new tables and visual, see Power BI in 2026.9. For legacy workflows and unchanged setup guidance, see How to use Speckle for Power BI.
There is no automatic conversion. Renaming the function in the Advanced Editor is not enough.
When to switch
Your report is at risk if all three statements are true:- It uses
Speckle.GetByUrl. - It points to a model URL instead of a specific version.
- The model will get new versions from a 4.0 authoring connector or an IFC file upload.
JsonRepresentationUnavailable. Pinning to a pre-4.0 version URL is a stopgap. Rebuild the report
if it must keep following new versions.
Reports whose target versions still contain JSON data can keep using GetByUrl and the legacy visual. Updating the connector alone does not require a rebuild.
Before and after
How to switch
Pin a broken report
If the report already fails, pin it to the last version published before 4.0. A model whose first version is artifact-only, such as a new IFC upload, has no version to pin to: go to Rebuild the queries.Open the GetByUrl query
Speckle.GetByUrl. You should see the model
URL in the formula.Pin the URL to a version
.../models/MODEL_ID@VERSION_ID for the last version that still
contains JSON. You should be able to refresh against that version again.Rebuild the queries
Use the existing model URL. Do not renameGetByUrl to GetTables in the Advanced Editor.
Connect to Speckle
Load Objects
Object Key, Application ID, and Model Info.Choose properties and related fields
Object Key.Reconnect charts, measures, and slicers
Update every report element that references the old table. Check column names. Shortened property paths, numeric collision suffixes, and theType_ prefix may change table references and
calculations.
Add the new 3D visual
Import the new visual
Speckle Power BI 3D Visual.pbiviz from Documents/Power BI Desktop/Custom Visuals. The new visual appears in the
pane alongside the legacy visual.Add the new visual and fields
Objects[Model Info] into Model Info, Objects[Object Key]
into Object Keys, tooltip fields into Object Data (Tooltip), and the previous category
field into Color By. Recreate any color rules on the new Edit page. You should see your
model in the new visual.Check the report before removing the legacy visual
Remove the old queries
Delete theGetByUrl queries after no visual, measure, or relationship references them.
Retained functions
Existing M functions remain available. Data-shaping helpers still expect the legacyGetByUrl table shape. The project issues function is independent of both object data paths.
GetByUrl queries still work when their target version contains JSON data.
FAQ
How do I get back the single flat table that GetByUrl returned?
How do I get back the single flat table that GetByUrl returned?
Object Key and one column per property. See Power BI in
2026.9 for the M alternative.Why does GetByUrl still fail when I use a version URL?
Why does GetByUrl still fail when I use a version URL?
GetByUrl reads JSON data only, so pinning works only for a
version published before 4.0. Models created by a 4.0 connector or a new IFC upload have no such
version. Rebuild the query with Connect to Speckle (Custom).What happens if I only rename GetByUrl to GetTables in the Advanced Editor?
What happens if I only rename GetByUrl to GetTables in the Advanced Editor?
Why does GetByUrl fail with DirectDownloadFailed and status 404?
Why does GetByUrl fail with DirectDownloadFailed and status 404?
RootObjectId starts with bundle., the version is artifact-only. Some
connector releases report this as DirectDownloadFailed instead of
JsonRepresentationUnavailable. The fix is the same: rebuild the query with
Speckle.GetTables. Pinning to a version published before 4.0 works only if the model has one;
a new IFC upload does not.Can I keep following new versions without migrating?
Can I keep following new versions without migrating?
.../models/MODEL_ID@VERSION_ID is a recovery option. If the report must follow
new publishes after a 4.0 authoring connector is in use, rebuild it with Speckle.GetTables and
add the new visual.What happens if I import the new visual before I migrate the queries?
What happens if I import the new visual before I migrate the queries?
GetTables output before it can display a model. A legacy GetByUrl table cannot supply its
required fields. Keep the legacy visual until you have loaded the new tables and checked the
report.