curl --request GET \
--url https://{your-subdomain}.neetoform.com/api/external/v2/forms/{form_id}/outline \
--header 'X-Api-Key: <x-api-key>'const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>'}};
fetch('https://{your-subdomain}.neetoform.com/api/external/v2/forms/{form_id}/outline', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetoform.com/api/external/v2/forms/{form_id}/outline"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"outline": "Form \"Riverside Roasters Wholesale Application\" (published, single page)\nTheme: font Lora; background #F6EFE4; background image roast.jpg (center, lighter 30%); card #FBF7F0E6; button #3E5641, text #FFFFFF, radius 24px\n1. Welcome screen \"Partner with Riverside Roasters\" (button \"Apply now\")\n2. \"Work email\" email, required, placeholder \"you@yourcafe.com\"\n3. \"What kind of business is it?\" dropdown, required, options: Cafe or coffee bar | Restaurant | Grocery or deli | Something else\n4. \"Tell us a little about it\" text_input, hidden until a rule shows it\n5. Submit button \"Send application\"\nLogic:\n- Show \"Tell us a little about it\" when \"What kind of business is it?\" is \"Something else\"\nThank-you page: Thanks, we are on it."
}{
"error": "Form does not exist."
}{
"error": "The form \"Contact us\" has never been published. Pass draft: true to preview it"
}Show a form outline
Show a compact text outline of the form as respondents see it: the theme (font, colors, background image, card, buttons), every element in order with its kind, required mark, placeholder and options, the conditional logic in plain words, and the thank-you page. It is meant for AI agents and scripts that cannot open the form in a browser.
curl --request GET \
--url https://{your-subdomain}.neetoform.com/api/external/v2/forms/{form_id}/outline \
--header 'X-Api-Key: <x-api-key>'const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>'}};
fetch('https://{your-subdomain}.neetoform.com/api/external/v2/forms/{form_id}/outline', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{your-subdomain}.neetoform.com/api/external/v2/forms/{form_id}/outline"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"outline": "Form \"Riverside Roasters Wholesale Application\" (published, single page)\nTheme: font Lora; background #F6EFE4; background image roast.jpg (center, lighter 30%); card #FBF7F0E6; button #3E5641, text #FFFFFF, radius 24px\n1. Welcome screen \"Partner with Riverside Roasters\" (button \"Apply now\")\n2. \"Work email\" email, required, placeholder \"you@yourcafe.com\"\n3. \"What kind of business is it?\" dropdown, required, options: Cafe or coffee bar | Restaurant | Grocery or deli | Something else\n4. \"Tell us a little about it\" text_input, hidden until a rule shows it\n5. Submit button \"Send application\"\nLogic:\n- Show \"Tell us a little about it\" when \"What kind of business is it?\" is \"Something else\"\nThank-you page: Thanks, we are on it."
}{
"error": "Form does not exist."
}{
"error": "The form \"Contact us\" has never been published. Pass draft: true to preview it"
}{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
Use the X-Api-Key header to provide your workspace API key. Refer to Authentication for more information.
Path Parameters
Unique ID of the form. Refer to Getting the Form ID for detailed instructions.
Query Parameters
Include unpublished changes. Without it, a published form is outlined as it is live, without its pending changes. Required for a form that has never been published.
Response
OK - Request succeeded
The outline as plain text, one line per element.