Get questionnaire structure
GET
/api/v2/filler/questionnaires/{id}/structure/
const url = 'https://api.full-fill.ai/api/v2/filler/questionnaires/example/structure/';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.full-fill.ai/api/v2/filler/questionnaires/example/structure/ \ --header 'X-API-Key: <X-API-Key>'Lightweight endpoint returning table group metadata for skeleton rendering. No answers, sources, or comments are loaded.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
string
Responses
Section titled “Responses”Media typeapplication/json
Response for the /structure/ endpoint - lightweight metadata for progressive loading.
object
tabs
required
Array<object>
Tab summary within the structure response.
object
tab_name
required
string
question_count
required
integer
needs_filling_count
required
integer
groups
required
Array<object>
Table group metadata within the structure response.
object
tab_name
required
string
section_path
Array<string>
question_count
required
integer
needs_filling_count
required
integer
answer_slots
required
Array<object>
Serializer for answer slot definitions.
object
role
required
string
header
required
string
coordinate
required
string
value
string
is_blocked
boolean
type
string
allowed_values
Array<string>
display_order
required
Minimum global question order within this group - use for sorting sections.
integer
filter_counts
required
Per-group counts keyed by filter ID (approved, not_approved, needs_review, low_trust). COUPLING: keys must match frontend filter IDs in AnswersV2.
object
key
additional properties
integer
total_question_count
required
integer
total_needs_filling_count
required
integer
quick_filter_counts
required
Counts for frontend quick filters.
object
trustLow
required
integer
trustMedium
required
integer
trustHigh
required
integer
approved
required
integer
notApproved
required
integer
scoreLow
required
integer
scoreMedium
required
integer
scoreHigh
required
integer
needsReview
required
integer
lowCoverage
required
integer
avg_score
required
Average overall score (0-100) across all questions.
integer
Examplegenerated
{ "tabs": [ { "tab_name": "example", "question_count": 1, "needs_filling_count": 1 } ], "groups": [ { "tab_name": "example", "section_path": [ "example" ], "question_count": 1, "needs_filling_count": 1, "answer_slots": [ { "role": "example", "header": "example", "coordinate": "example", "value": "example", "is_blocked": true, "type": "example", "allowed_values": [ "example" ] } ], "display_order": 1, "filter_counts": { "additionalProperty": 1 } } ], "total_question_count": 1, "total_needs_filling_count": 1, "quick_filter_counts": { "trustLow": 1, "trustMedium": 1, "trustHigh": 1, "approved": 1, "notApproved": 1, "scoreLow": 1, "scoreMedium": 1, "scoreHigh": 1, "needsReview": 1, "lowCoverage": 1 }, "avg_score": 1}