Read an app definition
The whole definition: tables, views, rules, pages, members, theme, surfaces.
GET/v1/apps/{appId}
Requires the schema:read scope. Operation apps.get. MCP tool apps_get. CLI: grid82 apps get (npx grid82).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
appId | string | yes |
Response
application/jsonSuccess
dataobjectrequiredShow child attributes
data.schemaVersionnumberrequireddata.idstringrequiredlength: 1–64 charsdata.namestringrequiredlength: 1–120 charsdata.slugstringrequiredpattern: ^[a-z0-9][a-z0-9-]{1,62}$data.tablesobject[]requireditems: ≤ 200 itemsShow child attributes
data.tables.idstringrequiredpattern: ^[a-z][a-z0-9_]{0,62}$data.tables.namestringrequiredlength: 1–120 charsdata.tables.pluralstringlength: 1–120 charsdata.tables.descriptionstringlength: ≤ 2000 charsdata.tables.iconstring | nulldata.tables.primaryFieldIdstringrequiredpattern: ^[a-z][a-z0-9_]{0,62}$data.tables.fieldsobject[]requireditems: 1–200 itemsShow child attributes
data.tables.fields.idstringrequiredpattern: ^[a-z][a-z0-9_]{0,62}$data.tables.fields.namestringrequiredlength: 1–120 charsdata.tables.fields.widthintegerrange: 60–900data.tables.fields.typestringrequireddata.tables.fields.configobjectrequireddefault: {}data.viewsRecord<string, object[]>requireddefault: {}data.rulesobjectrequiredShow child attributes
data.rules.versionnumberrequireddata.rules.rolesobject[]requireditems: 1–100 itemsShow child attributes
data.rules.roles.idstringrequiredpattern: ^[a-z][a-z0-9_]{0,62}$data.rules.roles.namestringrequiredlength: 1–120 charsdata.rules.roles.descriptionstringlength: ≤ 500 charsdata.rules.roles.assistantMonthlyCreditsintegerrange: 0–10000000data.rules.roles.interfaceenum<string>one of: assigned, owndata.rules.roles.automationsenum<string>one of: none, owndata.rules.permissionsobject[]requireditems: ≤ 100 itemsShow child attributes
data.rules.permissions.rolestringrequiredpattern: ^[a-z][a-z0-9_]{0,62}$data.rules.permissions.tablesstring | Record<string, object>requireddata.pagesobject[]requireddefault: []Show child attributes
data.pages.idstringrequiredlength: 1–64 charsdata.pages.namestringrequiredlength: 1–120 charsdata.pages.kindenum<string>requiredone of: declarative, codedata.pages.modeenum<string>requiredone of: locked, template, canvasdata.pages.ownerenum<string>requiredone of: admin, userdata.pages.ownerUserIdstringlength: ≤ 64 charsdata.pages.tableIdstringpattern: ^[a-z][a-z0-9_]{0,62}$data.pages.forkedFromstringlength: ≤ 64 charsdata.pages.visibleTostring | string[]requireddefault: *data.pages.readsobjectShow child attributes
data.pages.reads.tablesstring[]requireddefault: []data.pages.reads.fieldsstring[]requireddefault: []data.pages.reads.viewsstring[]requireddefault: []data.pages.bundleHashstringlength: ≤ 128 charsdata.pages.publishedVersionintegerrange: ≥ 1data.pages.themeobjectShow child attributes
data.pages.theme.accentstringpattern: ^(?:#[0-9a-fA-F]{3,8}|oklch\([0-9.%\s/]{1,60}\))$data.pages.theme.radiusnumberrange: 0–24data.pages.documentobjectdata.pages.versionintegerrequireddefault: 1range: ≥ 1data.pages.updatedAtstringrequireddata.membersobject[]requireddefault: []Show child attributes
data.members.userIdstringrequiredlength: 1–64 charsdata.members.emailstring<email>requiredpattern: ^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$data.members.namestringlength: ≤ 120 charsdata.members.rolesstring[]requireditems: ≥ 1 itemsdata.members.statusenum<string>requireddefault: invitedone of: invited, active, suspendeddata.members.invitedAtstringdata.themeobjectrequireddefault: {"radius":6,"accent":"oklch(0.47 0.16 262)","font":"inter"}Show child attributes
data.theme.radiusnumberrequireddefault: 6range: 0–24data.theme.accentstringrequireddefault: oklch(0.47 0.16 262)pattern: ^(?:#[0-9a-fA-F]{3,8}|oklch\([0-9.%\s/]{1,60}\))$data.theme.fontenum<string>requireddefault: interone of: system, geist, inter, figtree, manrope, jakarta, dm-sans, outfit, work-sans, nunito-sans, rubik, public-sans, source-serif, lora, fraunces, instrument-serif, geist-mono, jetbrains-mono, ibm-plex-monodata.theme.iconstring | nulldefault: nulldata.surfacesobjectrequireddefault: {"data":true,"interface":true,"assistant":true,"api":true,"mcp":true,"cli":true}Show child attributes
data.surfaces.databooleanrequireddefault: truedata.surfaces.interfacebooleanrequireddefault: truedata.surfaces.assistantbooleanrequireddefault: truedata.surfaces.apibooleanrequireddefault: truedata.surfaces.mcpbooleanrequireddefault: truedata.surfaces.clibooleanrequireddefault: truedata.updatedAtstringrequiredRefused
errorobjectrequiredShow child attributes
error.codeenum<string>requiredone of: not_found, forbidden, unauthenticated, validation_failed, conflict, rate_limited, payment_required, not_implemented, internalerror.messagestringrequirederror.detailsRecord<string, unknown>