Forum Discussion

arpost's avatar
arpost
Post Prodigy
2 months ago
Solved

How do I pass parameters to Fabric Notebook via REST API?

Greetings, community. I am trying to trigger an on-demand job to run a notebook using the REST API (Job Scheduler - Run On Demand Item Job - REST API (Core) | Microsoft Learn). The notebook is triggered successfully, but the parameters are not passed in no matter what configuration I try. Does anyone have suggestions/ideas?

 

The docs indicate a parameter input like this should work:

 

{
"parameters": [
    {
      "name": "testval",
      "value": "start",
      "type": "Text"
    }
}

 

However, no parameters are registered by the notebook:

 

 

I have tried other "forms" of this that date back to earlier versions of the APIs equally unsuccessfully.

  • Hi arpost , Thank you for reaching out to the Microsoft Community Forum.

     

    The generic Run On Demand Item Job API shows a top-level parameters property, but it also notes that parameter support is not broadly supported and can vary by item and job type. Based on your confirmation that passing the notebook parameters through executionData.parameters works, along with Srisakthi 's similar working example, this appears to be the approach that currently works for passing parameters when invoking a notebook through the REST API.

     

    It seems RunNotebook does not honor the generic parameters payload in this case, so the documentation could be clearer about the expected request format for notebook jobs. If you believe the documentation should explicitly call this out, you could consider submitting an idea in the  Microsoft Fabric Ideas or create a post in the Fabric Community Blog to raise awareness among users, which will in turn gets the notice of Microsoft to help improve the documentation and guidance for this scenario.

     

    Also, please refer:

    Job Scheduler - Run On Demand Item Job - REST API (Core) | Microsoft Learn
    Manage and execute Fabric notebooks with public APIs - Microsoft Fabric | Microsoft Learn

     

    Thanks Srisakthi  for sharing your working example.

7 Replies

  • Hi arpost ,

     

    I have tried this few months earlier in powershell, it was working

    $runNotebookBody = @{
    executionData = @{
    parameters = @{
    DDLPath = @{
    value = "Files/check"
    type = "string"
    }
    lakehouse_name = @{
    value = $lakehouseName
    type = "string"
    }
    }
    }
    configuration = @{
    defaultLakehouse = @{
    name = $lakehouseName
    id = $lakehouse.Id
    workspaceId = $workspace.Id
    }
    }
    } | ConvertTo-Json -Depth 10
    $global:baseUrl = "https://api.fabric.microsoft.com/v1"
    $notebookRunUrl = "{0}/workspaces/{1}/items/{2}/jobs/instances?jobType=RunNotebook" -f $global:baseUrl, $workspace.Id, $notebook.id
    Invoke-RestMethod -Headers $global:fabricHeaders -Uri $notebookRunUrl -Method POST -Body $runNotebookBody

     

    Regards,

    Srisakthi

     

  • Hi arpost 

     

    Why not simply use a data pipeline where you can pass through the parameters successfully to your notebook?

    • arpost's avatar
      arpost
      Post Prodigy

      Good question. This is the first step toward a Power Platform-based orchestration solution. Having a pipeline + notebook combo just to orchestrate incurs duplicative capacity usage and also has potential limitations in cases where we may have changing parameters.

      API-based approach enables us to pass "dynamic" parameters to the Fabric item in question.

       

      EXAMPLE: I want a Power App that lets users make selections related to a particular technical or business process, select some items that produce parameter inputs, and then trigger.

  • v-hashadapu's avatar
    v-hashadapu
    Community Support

    Hi arpost , Thank you for reaching out to the Microsoft Community Forum.

     

    The generic Run On Demand Item Job API shows a top-level parameters property, but it also notes that parameter support is not broadly supported and can vary by item and job type. Based on your confirmation that passing the notebook parameters through executionData.parameters works, along with Srisakthi 's similar working example, this appears to be the approach that currently works for passing parameters when invoking a notebook through the REST API.

     

    It seems RunNotebook does not honor the generic parameters payload in this case, so the documentation could be clearer about the expected request format for notebook jobs. If you believe the documentation should explicitly call this out, you could consider submitting an idea in the  Microsoft Fabric Ideas or create a post in the Fabric Community Blog to raise awareness among users, which will in turn gets the notice of Microsoft to help improve the documentation and guidance for this scenario.

     

    Also, please refer:

    Job Scheduler - Run On Demand Item Job - REST API (Core) | Microsoft Learn
    Manage and execute Fabric notebooks with public APIs - Microsoft Fabric | Microsoft Learn

     

    Thanks Srisakthi  for sharing your working example.

    • arpost's avatar
      arpost
      Post Prodigy

      Thanks for the reply, v-hashadapu. I'll look at doing that. It was definitely a challenge figuring this out through a lot of trial-and-error, so it would be useful to have supported vs. non-supported be tracked.

  • v-hashadapu's avatar
    v-hashadapu
    Community Support

    Hi arpost , Hope you are doing well. Kindly let us know if the issue has been resolved or if further assistance is needed. Your input could be helpful to others in the community.