Forum Discussion
REST API for third party workload items
- 9 months ago
Currently you won't be able to create REST API for 3rd party workloads. With the release of the Fabric extensibility toolkit we are about to release very soon the ability for Workload Developers declare their item definition and than you will be able to create 3rd party workload items.
The Fabric workload development a create item API is only for the workload developer itself to for using workloads programatically.
Thanks for asking!
Hi BenWillis ,
Thank you for reaching out to the Microsoft Community Forum.
Public REST API Only supports built-in item types. Workload Development API (Internal Bridge) Called by Fabric, not by external clients. This is how Fabric notifies your workload backend to provision an item when a user initiates creation via the UI or JavaScript API.
Please try below options.
1. You can expose your own external API that triggers item creation indirectly via Fabric. Create a REST API in your workload backend like POST /create-item that accepts parameters like below JSON code.
{
"workspaceId": "GUID",
"itemType": "YourWorkload.ItemType",
"displayName": "My Custom Item",
"creationPayload": { "customConfig": "value" }
}
2. Your API should internally call the same logic that your workload uses when Fabric triggers item creation. This means validate the request, Generate a new item ID, Store metadata, Allocate resources and notify Fabric via the Workload Development Create Item API called by Fabric internally, but you can simulate this if you have the right tokens.
3. If you want to simulate UI-based creation, you can use the @ms-fabric/workload-client package’s ItemCrudAPI.createItem() method inside a headless browser or automation script.
Note: You need to handle SubjectAndAppToken authentication to simulate Fabric’s internal calls correctly. During development, use the DevGateway to simulate Fabric’s host environment locally.
Please refer below links.
@ms-fabric/workload-client package | Microsoft Learn
Build Your Workload - Microsoft Fabric | Microsoft Learn
I hope this information helps. Please do let us know if you have any further queries.
Regards,
Dinesh
This is really helpful thank you. This is the part I need further detais on:
> notify Fabric via the Workload Development Create Item API called by Fabric internally, but you can simulate this if you have the right tokens.
Do you have anymore information about this API? I cannot find any documentation. Is it the request to `https://wabi-uk-south-redirect.analysis.windows.net/metadata/artifacts/ItemId` with these fields?
- v-dineshya9 months agoCommunity Support
Hi BenWillis ,
The request shown in your image does appear to be part of the internal Fabric item provisioning flow, the Workload Development Create Item API that Fabric calls when provisioning a third-party workload item.
The endpoint https://wabi-uk-south-redirect.analysis.windows.net/metadata/artifacts/{ItemId}
is consistent with Fabric’s internal metadata service used to store and update item metadata during creation.
Key Fields in the Request:1. objectId: Unique identifier for the item.
2. artifactType: Specifies the type of item (your custom workload type).
3. capacityObjectId: Workspace or capacity context.
4. createdByUserId, modifiedByUserId: Identity metadata.
5. extendedProperties: folderObjectId, folderType: Organizational metadata.
ownerUserId, permissions, provisionState: Ownership and access control.
payloadContent: Likely contains workload-specific configuration or initialization data.
Note: These fields are not documented publicly, but they are part of the internal lifecycle Fabric uses to notify your workload service to provision an item.
This API is Called by Fabric, not exposed for external use. Requires internal tokens like SubjectAndAppToken and Fabric context to authenticate. To be used within the Fabric host environment, not from external clients.If you are building an external API to allow users to create items programmatically, you can expose your own API POST /create-item in your workload backend. Internally simulate the provisioning logic that Fabric would trigger to generate an objectId, Populate metadata fields and Store the item in your backend.
Please refer below links.
Fabric Workload Development Kit backend authentication - Microsoft Fabric | Microsoft Learn
Overview of Fabric Workload Authentication Guidelines - Microsoft Fabric | Microsoft Learn
I hope this information helps. Please do let us know if you have any further queries.
Regards,
Dinesh
- BenWillis9 months agoRegular Visitor
> Internally simulate the provisioning logic that Fabric would trigger to generate an objectId, Populate metadata fields and Store the item in your backend.
Okay, I guess we do still need to let Fabric know that the item has been created though, otherwise our requests to the `resolvePermissions` endpoint will fail with a 404 Not Found error. I guess if this API is internal then our only way to provision an item is using the JavaScript SDK?
- v-dineshya9 months agoCommunity Support
Hi BenWillis ,
Thank you for the update. It appears this issue might require deeper investigation from the Microsoft Fabric support team. I recommend opening a Microsoft support ticket so they can trace the issue. To raise a support ticket for Fabric and Power BI, kindly follow the steps outlined in the following guide:
How to create a Fabric and Power BI Support ticket - Power BI | Microsoft Learn
Regards,
Dinesh