Giant Context
Giant ContextGet Early Access

Ideas

Manage project ideas and approval workflows.


POST

Approve a pending idea to start content generation; a draft may follow automatically

/organizations/{organizationId}/projects/{projectId}/mind/ideas/{ideaId}/approve

Approve an idea, which sets its status to 'approved'. Email sends and focused email edits enqueue durable materialization contracts; other content types trigger draft generation automatically. The idea must be in 'pending' status.

Parameters
organizationIdRequired
path · stringOrganization ID
projectIdRequired
path · stringProject ID
ideaIdRequired
path · stringIdea ID
BodyRequired
prompt
stringOverride the prompt for draft generation. Defaults to the active ready brief prompt, then falls back to the idea rationale + outline.
contentType
stringOverride the content type for draft generation (e.g., website_page, kb_article).
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const result = await gc.ideas.approveIdea({  organizationId: org.id,  projectId: projects[0].id,  ideaId: "idea-123",  data: { status: "approved" }});
POST

Dismiss a pending idea with an optional reason so Mind stops suggesting it

/organizations/{organizationId}/projects/{projectId}/mind/ideas/{ideaId}/dismiss

Dismiss an idea that the user doesn't want to pursue. The idea must be in 'pending' status. Optionally include a reason for dismissal. Dismissed ideas are tracked so Mind doesn't re-suggest them.

Parameters
organizationIdRequired
path · stringOrganization ID
projectIdRequired
path · stringProject ID
ideaIdRequired
path · stringIdea ID
BodyRequired
reason
stringOptional reason for dismissing the idea.
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const result = await gc.ideas.dismissIdea({  organizationId: org.id,  projectId: projects[0].id,  ideaId: "idea_123",  data: {}});
GET

Get one idea's rationale, outline and similarity score before approving or dismissing

/organizations/{organizationId}/projects/{projectId}/mind/ideas/{ideaId}

Returns full details of a Mind idea including title, rationale, outline, priority, similarity score, and status. If the idea has status 'pending', it can be approved (triggering draft generation) or dismissed.

Parameters
organizationIdRequired
path · stringOrganization ID
projectIdRequired
path · stringProject ID
ideaIdRequired
path · stringIdea ID
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const idea = await gc.ideas.getIdea({  organizationId: org.id,  projectId: projects[0].id,  ideaId: "idea-123",});
GET

List Mind ideas for a project

/organizations/{organizationId}/projects/{projectId}/mind/ideas

Returns a paginated list of Mind ideas for the project. Ideas represent content gaps or suggestions identified by the AI ideation engine. Filter by status to see pending, approved, dismissed, or drafted ideas.

Parameters
page
query · numberPage number to return, 1-indexed. Defaults to 1.
pageSize
query · numberItems per page (1-100). Defaults to 10.
lite
query · stringWhen 'true', return only essential fields (id, slug, title/name) to reduce payload size. Useful for context fetching and link resolution.
sort
query · stringSort specifier as 'field:direction'. Sortable fields: status, priority, name, createdAt, updatedAt. Direction is 'asc' or 'desc' and defaults to 'asc'.
search
query · stringFree-text search. Matched against: name.
status
query · stringFilter by status. Operators: status=value (equals), status_ne, status_gt, status_gte, status_lt, status_lte, status_like (contains), status_isnull=true|false, status_has=value (jsonb array contains), status[]=a&status[]=b (in).
priority
query · stringFilter by priority. Operators: priority=value (equals), priority_ne, priority_gt, priority_gte, priority_lt, priority_lte, priority_like (contains), priority_isnull=true|false, priority_has=value (jsonb array contains), priority[]=a&priority[]=b (in).
appId
query · stringFilter by appId. Operators: appId=value (equals), appId_ne, appId_gt, appId_gte, appId_lt, appId_lte, appId_like (contains), appId_isnull=true|false, appId_has=value (jsonb array contains), appId[]=a&appId[]=b (in).
contentType
query · stringFilter by contentType. Operators: contentType=value (equals), contentType_ne, contentType_gt, contentType_gte, contentType_lt, contentType_lte, contentType_like (contains), contentType_isnull=true|false, contentType_has=value (jsonb array contains), contentType[]=a&contentType[]=b (in).
targetContentType
query · stringFilter by targetContentType. Operators: targetContentType=value (equals), targetContentType_ne, targetContentType_gt, targetContentType_gte, targetContentType_lt, targetContentType_lte, targetContentType_like (contains), targetContentType_isnull=true|false, targetContentType_has=value (jsonb array contains), targetContentType[]=a&targetContentType[]=b (in).
operationKey
query · stringFilter by operationKey. Operators: operationKey=value (equals), operationKey_ne, operationKey_gt, operationKey_gte, operationKey_lt, operationKey_lte, operationKey_like (contains), operationKey_isnull=true|false, operationKey_has=value (jsonb array contains), operationKey[]=a&operationKey[]=b (in).
createdAt
query · stringFilter by createdAt. Operators: createdAt=value (equals), createdAt_ne, createdAt_gt, createdAt_gte, createdAt_lt, createdAt_lte, createdAt_like (contains), createdAt_isnull=true|false, createdAt_has=value (jsonb array contains), createdAt[]=a&createdAt[]=b (in).
updatedAt
query · stringFilter by updatedAt. Operators: updatedAt=value (equals), updatedAt_ne, updatedAt_gt, updatedAt_gte, updatedAt_lt, updatedAt_lte, updatedAt_like (contains), updatedAt_isnull=true|false, updatedAt_has=value (jsonb array contains), updatedAt[]=a&updatedAt[]=b (in).
organizationIdRequired
path · stringOrganization ID
projectIdRequired
path · stringProject ID
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const { ideas } = await gc.ideas.listIdeas({  organizationId: org.id,  projectId: projects[0].id,});
POST

Trigger Mind ideation for a project

/organizations/{organizationId}/projects/{projectId}/mind/ideas

Enqueues a durable Mind ideation contract for this project. Optional 'target' narrows execution to one (contentType, operationKey) operation — useful for targeted testing. Returns the run and contract IDs immediately.

Parameters
organizationIdRequired
path · stringOrganization ID
projectIdRequired
path · stringProject ID
BodyRequired
target
objectOptional narrow-scope filter — run only one operation ideator for targeted testing.
SDK
import { createGiantContext } from "@giantcontext/sdk-typescript";
const gc = createGiantContext({ apiKey: process.env.GIANTCONTEXT_API_KEY! });
const org = await gc.organizations.getOrganizationBySlug({ slug: "my-org" });const { projects } = await gc.projects.listProjects({ organizationId: org.id });
const result = await gc.ideas.triggerIdeation({  organizationId: org.id,  projectId: projects[0].id,  data: { prompt: "Generate new feature ideas" }});

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 Jesse accepted and published.
Product
  • How It Works
  • Mind
  • Create
  • Capture
  • Nurture
  • Optimize
  • Publishing
  • Pricing
  • Use Cases

© 2026 Giant Context
Privacy PolicyTermsCookie Policy
Powered by
Ideas | Giant Context