Istrazimo Survey JSON Schema
Create surveys in any AI tool and import them into Istrazimo with a single paste.
Quick Start
Go from idea to live survey in six steps:
- 1
Copy the prompt
Click "Copy AI Prompt" above. This copies a structured prompt that tells the AI exactly how to format the survey JSON.
- 2
Paste into any AI tool
Open ChatGPT, Claude, Gemini, or any other LLM. Paste the prompt and replace the
[TOPIC]placeholder with your research topic, target population, and desired number of questions. - 3
Get JSON output
The AI will return a valid JSON object following the Istrazimo schema with sections, question types, consent text, and scoring.
- 4
Import into Istrazimo
Go to Studies → New Study → Import JSON. Paste the JSON. The validator will check it and show any issues.
- 5
Review and refine
The visual builder opens with your imported survey. Edit questions, reorder sections, add logic rules, and configure scoring using the drag-and-drop interface.
- 6
Publish
Set up the landing page, publish the instrument, and share the link with your respondents.
Complete Example
A full survey with 3 sections (demographics, AI experience, AI attitudes), ~15 questions, informed consent, scoring rules, and a thank-you message.
{
"title": "AI in Academic Research: Attitudes and Practices",
"description": "A survey exploring how researchers use and perceive AI tools in their academic work.",
"language": "en",
"consent": {
"text": "You are invited to participate in a study on AI use in academic research conducted by the Department of Psychology, University of Belgrade. The survey takes approximately 10 minutes. Your responses are completely anonymous -- we do not collect IP addresses or any identifying information. Participation is voluntary and you may withdraw at any time without consequence. Data will be stored securely and used only for academic purposes. By proceeding, you confirm that you are 18 years or older.",
"checkboxes": [
"I have read and understand the information above",
"I voluntarily consent to participate in this study"
]
},
"sections": [
{
"title": "Demographics",
"description": "Basic information about you and your academic background.",
"questions": [
{
"type": "single_choice",
"text": "What is your gender?",
"options": ["Male", "Female", "Other", "Prefer not to say"],
"required": true
},
{
"type": "number",
"text": "How old are you?",
"min": 18,
"max": 99,
"required": true
},
{
"type": "single_choice",
"text": "What is your highest level of education?",
"options": ["High school", "Bachelor's degree", "Master's degree", "Doctoral degree", "Post-doctoral"],
"required": true
},
{
"type": "text_short",
"text": "What is your primary field of study?",
"max_length": 200,
"required": true
},
{
"type": "single_choice",
"text": "What is your current academic role?",
"options": ["Undergraduate student", "Graduate student", "PhD candidate", "Postdoc", "Assistant Professor", "Associate Professor", "Full Professor", "Research Associate", "Other"],
"required": true
}
]
},
{
"title": "AI Experience",
"description": "Your usage and experience with AI tools.",
"questions": [
{
"type": "single_choice",
"text": "How often do you use AI tools (e.g., ChatGPT, Claude, Copilot) in your work?",
"options": ["Never", "Rarely (a few times a year)", "Sometimes (monthly)", "Often (weekly)", "Daily"],
"required": true
},
{
"type": "multiple_choice",
"text": "For which tasks do you use AI tools? (Select all that apply)",
"options": [
"Literature review",
"Writing assistance",
"Data analysis",
"Coding/programming",
"Translation",
"Brainstorming ideas",
"Survey design"
],
"other_option": true
},
{
"type": "slider",
"text": "How would you rate your proficiency with AI tools?",
"min": 0,
"max": 100,
"min_label": "Complete beginner",
"max_label": "Expert user"
},
{
"type": "ranking",
"text": "Rank the following AI capabilities by usefulness to your research:",
"items": ["Text generation", "Data analysis", "Literature search", "Code generation", "Translation"]
},
{
"type": "matrix",
"text": "Rate your experience with each AI tool:",
"rows": ["ChatGPT", "Claude", "Gemini", "Copilot"],
"columns": ["Never used", "Tried once", "Use occasionally", "Use regularly"]
}
]
},
{
"title": "AI Attitudes",
"description": "Your opinions about AI in academic research.",
"questions": [
{
"type": "likert",
"text": "AI tools significantly improve the quality of academic research.",
"scale": 5,
"anchors": ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly agree"],
"reverse": false,
"scale_group": "ai_attitude"
},
{
"type": "likert",
"text": "I trust AI-generated analysis results without manual verification.",
"scale": 5,
"anchors": ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly agree"],
"reverse": true,
"scale_group": "ai_attitude"
},
{
"type": "likert",
"text": "AI tools make research more accessible to early-career researchers.",
"scale": 5,
"anchors": ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly agree"],
"reverse": false,
"scale_group": "ai_attitude"
},
{
"type": "likert",
"text": "The use of AI in research raises serious ethical concerns.",
"scale": 5,
"anchors": ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly agree"],
"reverse": true,
"scale_group": "ai_attitude"
},
{
"type": "likert",
"text": "I would recommend AI tools to colleagues for their research.",
"scale": 5,
"anchors": ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly agree"],
"reverse": false,
"scale_group": "ai_attitude"
},
{
"type": "semantic_differential",
"text": "How do you perceive AI in academic research?",
"pairs": [
{ "left": "Harmful", "right": "Beneficial" },
{ "left": "Unreliable", "right": "Reliable" },
{ "left": "Complicated", "right": "Simple" }
],
"scale": 7
},
{
"type": "single_choice",
"text": "To verify you are paying attention, please select 'Agree' for this item.",
"options": ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly agree"],
"required": true,
"attention_check": true
},
{
"type": "nps",
"text": "How likely are you to recommend AI-assisted research tools to a colleague?"
},
{
"type": "text_long",
"text": "Please share any additional thoughts on the role of AI in academic research.",
"min_length": 20
}
]
}
],
"scoring": [
{
"name": "AI Attitude Score",
"description": "Composite score for attitudes toward AI in research (higher = more positive).",
"scale_group": "ai_attitude",
"aggregation": "mean",
"categories": [
{ "min": 1, "max": 2.5, "label": "Negative" },
{ "min": 2.5, "max": 3.5, "label": "Neutral" },
{ "min": 3.5, "max": 5, "label": "Positive" }
]
}
],
"thank_you": {
"title": "Thank you for participating!",
"message": "Your responses have been recorded. This study contributes to understanding how AI is transforming academic research. If you have questions, contact us at research@university.edu."
}
}Question Types
Istrazimo supports 34 question types. Below are the most common types used in JSON import. Each type has specific fields. Below is a minimal JSON example for each.
Single Choice
single_choiceRadio-button question. Exactly one option can be selected.
{
"type": "single_choice",
"text": "What is your highest level of education?",
"options": ["High school", "Bachelor", "Master", "PhD"],
"required": true
}Multiple Choice
multiple_choiceCheckbox question. One or more options can be selected. Supports an "Other" free-text option.
{
"type": "multiple_choice",
"text": "Which research methods have you used?",
"options": ["Survey", "Interview", "Experiment", "Case study"],
"other_option": true,
"required": true
}Likert
likertAgreement scale. Supports 5 or 7 points, custom anchors, reverse coding, and scale groups for reliability analysis.
{
"type": "likert",
"text": "I feel confident using AI tools in my research.",
"scale": 5,
"anchors": ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly agree"],
"reverse": false,
"scale_group": "ai_confidence"
}Matrix
matrixGrid of rows and columns. Each row is rated on the same set of column options.
{
"type": "matrix",
"text": "Rate each tool on the following criteria:",
"rows": ["Ease of use", "Reliability", "Cost"],
"columns": ["Poor", "Fair", "Good", "Excellent"]
}Semantic Differential
semantic_differentialBipolar scale between two opposing adjectives. Commonly used in attitude research.
{
"type": "semantic_differential",
"text": "Rate AI-assisted research:",
"pairs": [
{ "left": "Unreliable", "right": "Reliable" },
{ "left": "Difficult", "right": "Easy" }
],
"scale": 7
}Ranking
rankingDrag-and-drop ranking. Respondents order items by preference.
{
"type": "ranking",
"text": "Rank these factors by importance:",
"items": ["Cost", "Quality", "Speed", "Support"]
}Number
numberNumeric input with optional min/max validation.
{
"type": "number",
"text": "How old are you?",
"min": 18,
"max": 99,
"required": true
}Short Text
text_shortSingle-line text input with optional max length.
{
"type": "text_short",
"text": "What is your field of study?",
"max_length": 200,
"required": true
}Long Text
text_longMulti-line textarea for open-ended responses. Supports min length validation.
{
"type": "text_long",
"text": "Describe your experience with online surveys.",
"min_length": 20
}Slider
sliderVisual slider between min and max values with optional labels.
{
"type": "slider",
"text": "How satisfied are you with the platform?",
"min": 0,
"max": 100,
"min_label": "Not at all",
"max_label": "Completely"
}Date
dateDate picker input.
{
"type": "date",
"text": "When did you start your current position?",
"required": true
}emailEmail input with built-in format validation.
{
"type": "email",
"text": "Your email address (optional):"
}NPS
npsNet Promoter Score. 0-10 scale, automatically categorized into Detractors/Passives/Promoters.
{
"type": "nps",
"text": "How likely are you to recommend this tool to a colleague?"
}MaxDiff
maxdiffBest-worst scaling. Respondents pick the most and least preferred item from a set.
{
"type": "maxdiff",
"text": "Which feature is most and least important?",
"items": ["Speed", "Accuracy", "Ease of use", "Price"]
}Audio
audioAudio recording response. Respondent records an answer via microphone.
{
"type": "audio",
"text": "Please describe your experience in your own words."
}Video
videoVideo recording response. Respondent records an answer via camera.
{
"type": "video",
"text": "Record a short introduction of yourself."
}Sections & Logic
Surveys are organized into sections. Each section contains a title, an optional description, and an array of questions.
{
"sections": [
{
"title": "Section title",
"description": "Optional description shown to respondents.",
"questions": [
{ "type": "single_choice", "text": "...", "options": ["A", "B"] }
]
}
]
}Recommendations
- •First section should be demographics (gender, age, education).
- •Group related questions into thematic sections.
- •Add 1 attention check per 15 questions.
- •Logic rules (skip, display, branch) can be added in the visual builder after import.
Scoring Rules
Define scoring rules to automatically compute composite scores from Likert items. Use scale_group on Likert questions to group them, then reference the group in the scoring configuration.
{
"scoring": [
{
"name": "AI Attitude Score",
"description": "Composite score for attitudes toward AI.",
"scale_group": "ai_attitude",
"aggregation": "mean",
"categories": [
{ "min": 1, "max": 2.5, "label": "Negative" },
{ "min": 2.5, "max": 3.5, "label": "Neutral" },
{ "min": 3.5, "max": 5, "label": "Positive" }
]
}
]
}Aggregation methods
- •
sum— total of all items - •
mean— average across items - •
weighted— weighted average (requires weights per item)
Reverse-coded items (marked with "reverse": true) are automatically inverted before scoring.
Informed Consent
The consent object is displayed before the survey starts. Respondents must check all boxes to proceed.
{
"consent": {
"text": "You are invited to participate in a study on [topic] conducted by [institution]. The survey takes approximately [N] minutes. Your responses are completely anonymous. Participation is voluntary and you may withdraw at any time without consequence.",
"checkboxes": [
"I have read and understand the information above",
"I voluntarily consent to participate in this study"
]
}
}Ethics committee tip
Include: who conducts the study, estimated duration, anonymity guarantee, voluntary participation, right to withdraw, data storage details, and contact information. Most ethics committees require all of these elements.
Validation
When you paste JSON into the import dialog, Istrazimo automatically validates the structure. Here is what the validator checks:
- Valid JSON syntax (no trailing commas, proper quoting)
- Required top-level field:
title - At least one section with at least one question
- Every question has a valid
type(one of the 16 supported types) - Every question has a
textfield - Choice questions (
single_choice,multiple_choice) have at least 2 options - Likert items have valid
scaleandanchors - Matrix questions have non-empty
rowsandcolumns - Semantic differential has valid
pairsarray - Auto-fixes common AI mistakes: missing
requiredfields, wrong scale counts, empty arrays
FAQ
Which AI tools work with this format?
Any large language model that can output JSON: ChatGPT (GPT-4o), Claude (Sonnet/Opus), Gemini, Llama, Mistral, DeepSeek, and others. The prompt is designed to work out-of-the-box with all major models. For best results, use a model that supports long outputs.
What happens if the JSON has errors?
The import validator shows a list of specific errors (e.g., "Question 3 in Section 2: missing options for single_choice"). Many common issues are auto-fixed. If the JSON is too broken to parse, you will see a syntax error message. Copy the error back to the AI and ask it to fix the JSON.
What is the minimum valid JSON?
The minimum is a title and one section with one question. Everything else (consent, scoring, description, thank_you) is optional.
{
"title": "My Survey",
"sections": [
{
"title": "Section 1",
"questions": [
{ "type": "text_short", "text": "What is your name?" }
]
}
]
}Does importing a survey cost anything?
No. JSON import is free for all users, including the free plan. You can import unlimited surveys (within your plan's study limit). There are no AI credits consumed during import -- the AI processing happens on your side, in whatever tool you choose.