1. Help
  2. Integrations & Export
  3. API: Create Request with Fields

API: Create Request with Fields

Please note: This endpoint is currently in alpha and is not guaranteed to be backwards compatible. It works well right now for creating fully structured requests in Content Snare from AI.

The Create Request endpoint lets you build a complete request in a single API call, including pages, sections, and fields. You do not need a pre-built template.

Endpoint: POST /partner_api/v1/requests
Required scopes: write_requestswrite_clients (if the client doesn’t already exist)

Request Body

Top-level properties

PropertyTypeRequiredDescription
namestringYesThe name of the request
client_emailstringYesClient’s email address. If the client doesn’t exist, one will be created automatically
client_full_namestringIf new clientFull name for the client (required when creating a new client)
company_namestringNoCompany name for the client
folder_namestringNoFolder to organise the request into
duestringNoDue date in yyyy-mm-dd format
statusstringNo"draft" (default) or "published"
owner_idstringNoTeam member ID to assign as owner
owner_emailstringNoTeam member email to assign as owner (alternative to owner_id)
communication_template_idstringNoID of a communications schedule to attach
communication_template_namestringNoName of a communications schedule (alternative to ID)
comments_enabledbooleanNoAllow the client to leave comments
passcode_enabledbooleanNoRequire a PIN code to access
share_via_link_enabledbooleanNoAllow the client to share the request via link
pages_dataarrayYesArray of page objects (see below)

Structure: Pages, Sections, and Questions

A request is organised into pages (the tabs your client sees), each containing one or more sections, each containing one or more questions (fields).

Request
├── Page 1
│   ├── Section A
│   │   ├── Question 1
│   │   ├── Question 2
│   │   └── Question 3
│   └── Section B
│       └── Question 4
└── Page 2
    └── Section C
        ├── Question 5
        └── Question 6

Page object

PropertyTypeRequiredDescription
namestringYesPage name (displayed as a tab)
sections_dataarrayYesArray of section objects

Section object

PropertyTypeRequiredDescription
namestringYesSection heading
questions_dataarrayYesArray of question objects

Question object

PropertyTypeRequiredDescription
questionstringYesThe question or field label displayed to the client
data_typestringYesThe field type (see full list below)
question_numberintegerYesSequential number starting from 1, unique across the entire request
optionsarray of stringsConditionalRequired for: single select optionmulti select optionsdropdowntask list
columnsarray of stringsConditionalRequired for: table
instructionsstringNoHelp text shown to the client explaining how to complete the field
show_whenobjectNoConditional visibility rules (see below)

Field Types (data_type)

Text input

ValueDescription
single-lineSingle-line text input
textStandard text input
multi-line textMulti-line textarea
formatted textRich text editor

Contact information

ValueDescription
emailEmail address with validation
phonePhone number input
urlURL with validation
addressStructured address fields
country selectCountry dropdown

File uploads

ValueDescription
single image uploadUpload one image
multiple image uploadUpload multiple images
single file uploadUpload one file
multiple file uploadUpload multiple files

Numbers and dates

ValueDescription
numberNumeric input
currencyCurrency/monetary value
date/timeDate and time picker
date rangeStart and end date selection

Ratings

ValueDescription
numeric ratingNumeric scale rating
star ratingStar-based rating

Selection fields

These types require the options array.

ValueDescription
single select optionRadio-button-style single selection
multi select optionsCheckbox-style multiple selection
dropdownDropdown single selection
task listChecklist of items

Data entry

This type requires the columns array.

ValueDescription
tableTable with defined column headers; client adds rows

Other

ValueDescription
signatureSignature capture
buttonClickable button
iconIcon field
color pickerColor selection

Conditional Visibility (show_when)

Questions can be shown or hidden based on your client’s answers to other questions. This lets you build dynamic, branching forms.

{
  "show_when": {
    "conditions": [
      {
        "question_number": 1,
        "condition": "equals",
        "value": "Yes"
      }
    ],
    "logical_operator": "and"
  }
}

show_when properties

PropertyTypeRequiredDescription
conditionsarrayYesOne or more condition objects
logical_operatorstringWhen 2+ conditions"and" (all must match) or "or" (any must match)

Condition object

PropertyTypeDescription
question_numberintegerThe question_number of the field to evaluate
conditionstringThe comparison operator (see below)
valuestringThe value to compare against

Available conditions

ConditionDescription
containsField value contains the specified text
equalsField value exactly matches
does not equalField value does not match
less thanNumeric comparison
greater thanNumeric comparison
is emptyField has no value
has a valueField has any value

Full Example

This example creates a vendor onboarding form with two pages, conditional logic, and a variety of field types.

{
  "name": "Vendor Application Form",
  "client_email": "vendor@example.com",
  "client_full_name": "Jane Smith",
  "company_name": "Smith Supplies",
  "due": "2026-04-15",
  "status": "published",
  "pages_data": [
    {
      "name": "Company Information",
      "sections_data": [
        {
          "name": "Basic Details",
          "questions_data": [
            {
              "question": "Legal business name",
              "data_type": "single-line",
              "question_number": 1
            },
            {
              "question": "Business type",
              "data_type": "dropdown",
              "question_number": 2,
              "options": ["Sole Proprietor", "Partnership", "Corporation", "LLC", "Other"]
            },
            {
              "question": "If Other, please specify",
              "data_type": "single-line",
              "question_number": 3,
              "show_when": {
                "conditions": [
                  { "question_number": 2, "condition": "equals", "value": "Other" }
                ]
              }
            },
            {
              "question": "Business address",
              "data_type": "address",
              "question_number": 4
            },
            {
              "question": "Company website",
              "data_type": "url",
              "question_number": 5
            },
            {
              "question": "Contact phone",
              "data_type": "phone",
              "question_number": 6
            }
          ]
        },
        {
          "name": "Company Profile",
          "questions_data": [
            {
              "question": "Company logo",
              "data_type": "single image upload",
              "question_number": 7,
              "instructions": "Please upload a high-resolution PNG or SVG file"
            },
            {
              "question": "Describe your products or services",
              "data_type": "multi-line text",
              "question_number": 8
            },
            {
              "question": "How would you rate your production capacity?",
              "data_type": "star rating",
              "question_number": 9
            }
          ]
        }
      ]
    },
    {
      "name": "Compliance & Documents",
      "sections_data": [
        {
          "name": "Certifications",
          "questions_data": [
            {
              "question": "Do you hold any industry certifications?",
              "data_type": "single select option",
              "question_number": 10,
              "options": ["Yes", "No"]
            },
            {
              "question": "Upload certification documents",
              "data_type": "multiple file upload",
              "question_number": 11,
              "instructions": "PDF or scanned copies accepted",
              "show_when": {
                "conditions": [
                  { "question_number": 10, "condition": "equals", "value": "Yes" }
                ]
              }
            },
            {
              "question": "List certifications and expiry dates",
              "data_type": "table",
              "question_number": 12,
              "columns": ["Certification Name", "Issuing Body", "Expiry Date"],
              "show_when": {
                "conditions": [
                  { "question_number": 10, "condition": "equals", "value": "Yes" }
                ]
              }
            }
          ]
        },
        {
          "name": "Agreement",
          "questions_data": [
            {
              "question": "Compliance checklist",
              "data_type": "task list",
              "question_number": 13,
              "options": [
                "I agree to the Terms of Service",
                "I have read the Privacy Policy",
                "I confirm all information is accurate"
              ]
            },
            {
              "question": "Authorized signature",
              "data_type": "signature",
              "question_number": 14
            },
            {
              "question": "Date signed",
              "data_type": "date/time",
              "question_number": 15
            }
          ]
        }
      ]
    }
  ]
}

Notes

  • question_number must be unique across the entire request, not just within a section. Start at 1 and increment sequentially.
  • Conditional references use question_number, so a question on Page 2 can reference a question on Page 1.
  • New clients are created automatically if no client with the given client_email exists. In that case, client_full_name is required.
  • Draft vs. published: requests created as "draft" are not visible to the client until you change the status to "published".
  • Rate limits: the API allows 20 write operations per 10 seconds.
Updated on May 7, 2026
Was this article helpful?

Related Articles