Giant Context
Giant ContextAsk for early access

Forms

Manage forms, fields, and form submissions.


GET

Count what a form blocked, and why, over a recent window

/organizations/{organizationId}/projects/{projectId}/apps/forms/{appId}/forms/{formId}/blocked-submissions
Parameters
windowDays
query · integer
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
formIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { forms } = await gc.forms.listForms({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const { submissions } = await gc.forms.getFormBlockedSubmissions({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  formId: forms[0].id,});
GET

Get one form's fields, settings and content blocks in Builder format

/organizations/{organizationId}/projects/{projectId}/apps/forms/{appId}/forms/{formId}
Parameters
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
formIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { forms } = await gc.forms.listForms({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const { form } = await gc.forms.getForm({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  formId: forms[0].id,});
DELETE

Delete form

/organizations/{organizationId}/projects/{projectId}/apps/forms/{appId}/forms/{formId}
Parameters
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
formIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { forms } = await gc.forms.listForms({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const result = await gc.forms.deleteForm({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  formId: forms[0].id,});
PATCH

Update a form's name and description; cannot re-slug it or change fields

/organizations/{organizationId}/projects/{projectId}/apps/forms/{appId}/forms/{formId}
Parameters
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
formIdRequired
path · string
BodyRequired
name
stringInternal use only
settings
object
description
union
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { forms } = await gc.forms.listForms({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const result = await gc.forms.updateFormMeta({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  formId: forms[0].id,  data: {},});
GET

Get one submission's full answers plus its user agent, IP and referer

/organizations/{organizationId}/projects/{projectId}/apps/forms/{appId}/forms/{formId}/submissions/{submissionId}
Parameters
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
formIdRequired
path · string
submissionIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { forms } = await gc.forms.listForms({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});const { submissions } = await gc.forms.listFormSubmissions({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  formId: forms[0].id,});
const submission = await gc.forms.getFormSubmission({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  formId: forms[0].id,  submissionId: submissions[0].id,});
GET

List one form's submissions, newest first, with submitted data and metadata

/organizations/{organizationId}/projects/{projectId}/apps/forms/{appId}/forms/{formId}/submissions
Parameters
page
query · number
pageSize
query · number
lite
query · string
sort
query · string
search
query · string
createdAt
query · string
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
formIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});const { forms } = await gc.forms.listForms({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});
const { submissions } = await gc.forms.listFormSubmissions({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,  formId: forms[0].id,});
GET

List forms in a Forms app with their fields and submission counts, newest first

/organizations/{organizationId}/projects/{projectId}/apps/forms/{appId}/forms
Parameters
page
query · number
pageSize
query · number
lite
query · string
sort
query · string
search
query · string
slug
query · string
isActive
query · string
createdAt
query · string
updatedAt
query · string
organizationIdRequired
path · string
projectIdRequired
path · string
appIdRequired
path · string
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const { organizations: orgs } = await gc.me.listMyOrganizations();const { projects } = await gc.projects.listProjects({ organizationId: orgs[0].id });const { apps } = await gc.projects.listProjectApps({  organizationId: orgs[0].id,  projectId: projects[0].id,});
const { forms } = await gc.forms.listForms({  organizationId: orgs[0].id,  projectId: projects[0].id,  appId: apps[0].id,});

BuiltAutonomously With AI
This content was built autonomously. Giant Context analyzed the site, determined what was missing, created and submitted an idea and draft, which Giant Context staff accepted and published.
Giant Context
Product
  • How It Works
  • Mind
  • Create
  • Capture
  • Nurture
  • Optimize
  • Publishing
  • Pricing
  • Use Cases

© 2026 Giant Context
Privacy PolicyTermsCookie PolicyAcceptable Use
Powered by
Forms | Giant Context