Is there a way to create a new Microsoft Forms form programmatically? I've checked Microsoft Flow and PowerApps, to no avail.

If there is a public API for Forms that supports form creation, that works too!

2 Answers 2


The Microsoft Forms doesn't support the extensions through developer APIs. Features it doesn't support:

Microsoft Forms Preview doesn’t allow embedding images or videos, themes, question branching, co-authoring of forms, and extensions through developer APIs. Microsoft Forms Preview will evolve over time and additional functionality will be added based on customer feedback.

If there is any of feature you required, then you can submit the feedback.
You can click More Options (...) in the upper right corner of the Microsoft Forms Preview window and then click Feedback.

For API related questions, we suggest you post the question to our MSDN forum for professional support. That is our dedicated channel focusing on API related questions.

  • 1
    Could you give a link to the source for this quote?
    – remeika
    Jul 13, 2018 at 20:45
  • @remeika sure: jijitechnologies.com/blogs/…
    – user0
    Jul 13, 2018 at 20:51
  • 1
    Thanks for that! The article seems a bit out of date; in particular, Forms are no longer in preview. Themes, question branching, and co-authoring of forms are all now supported. That does not mean this answer is incorrect, just that this source does not seem authoritative any more.
    – remeika
    Jul 13, 2018 at 20:58
  • @remeika I edited my answer a bit... you can try social.msdn.microsoft.com/Forums/en-US/home?brandIgnore=True (from bit.ly/2mhdusA)
    – user0
    Jul 13, 2018 at 21:13

This example is for Power Automate, but I'm sure you can apply it to other methods. This took a bit of trial and error because there isn't any documentation on the Forms API.

Optional - Set up variables for your tenantid, groupid, and yourformtitle. Tenantid should obviously be the ID of your O365 tenant. Groupid should be the id of the group you are trying to create a form in (that you already have access to). yourformtitle can be whatever you want it to be.

Use the out-of-box, "Send an HTTP Request to SharePoint" connector.

Site Address = https://forms.office.com

Method = POST

Uri = /formapi/api/tenantid/groups/groupid/forms

Headers = --leave blank--

Body = {title: "yourformtitle"}

You can't leave the body blank, so make sure you include at least a form title (like shown in JSON format).

Not the answer you're looking for? Browse other questions tagged or ask your own question.