Using GraphQL webform add-on
You can use the fields defined on the graphql_json module in order to retrieve the webform structure. 

{
  webformById(webform_id: "contact") {
    webform {
      elements {
        name: path(steps: "#name") {
          ... on JsonLeaf {
            value
          }
        }
        type: path(steps: "#type") {
          ... on JsonLeaf {
            value
          }
        }
        title: path(steps: "#title") {
          ... on JsonLeaf {
            value
          }
        }
      }
    }
  }
}


Result: 

{
  "data": {
    "webformById": {
      "webform": {
        "elements": [
          {
            "name": {
              "value": "name"
            },
            "type": {
              "value": "textfield"
            },
            "title": {
              "value": "Your Name"
            }
          },
          {
            "name": {
              "value": "email"
            },
            "type": {
              "value": "email"
            },
            "title": {
              "value": "Your Email"
            }
          },
          {
            "name": {
              "value": "subject"
            },
            "type": {
              "value": "textfield"
            },
            "title": {
              "value": "Subject"
            }
          },
          {
            "name": {
              "value": "message"
            },
            "type": {
              "value": "textarea"
            },
            "title": {
              "value": "Message"
            }
          },
          {
            "name": null,
            "type": {
              "value": "captcha"
            },
            "title": null
          },
          {
            "name": null,
            "type": {
              "value": "webform_actions"
            },
            "title": {
              "value": "Submit button(s)"
            }
          }
        ]
      }
    }
  }
}


You can find the available steps with keys field. 

{
  webformById(webform_id: "contact") {
    webform {
      elements {
        keys
      }
    }
  }
}