Giant Context
Giant ContextGet Early Access

Project Domains

Manage project domains and DNS verification.


GET

Get the exact DNS record the owner must add to verify a domain

/organizations/{organizationId}/projects/{projectId}/domains/{domainId}/verification

Retrieves the DNS verification instructions for the specified custom domain. Returns the exact DNS record (type, name, and value) that must be added to the domain's DNS configuration at the domain registrar to prove ownership. This is required before the domain can be verified and used for serving content. The instructions include the CNAME or TXT record details needed for the verification process.

Parameters
organizationIdRequired
path · stringOrganization ID
projectIdRequired
path · stringProject ID
domainIdRequired
path · stringDomain 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 { domains } = await gc.projectDomains.listProjectDomains({  organizationId: org.id,  projectId: projects[0].id,});
const instructions = await gc.projectDomains.getDomainVerificationInstructions({  organizationId: org.id,  projectId: projects[0].id,  domainId: domains[0].id,});
GET

List a project's manageable domains with verification status and owning app

/organizations/{organizationId}/projects/{projectId}/domains

Returns a comprehensive list of all domains (both auto-generated and custom) across all apps within the specified project. Each domain entry includes its hostname, verification status, whether it is generated or custom, whether it is the primary domain for its app, and the associated app name and slug. Domains are grouped by app and sorted with generated domains first and primary domains prioritized.

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: hostname, appType, isGenerated, isPrimary, isVerified, verificationStatus, createdAt, updatedAt. Direction is 'asc' or 'desc' and defaults to 'asc'.
search
query · stringFree-text search. Matched against: hostname.
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).
appType
query · stringFilter by appType. Operators: appType=value (equals), appType_ne, appType_gt, appType_gte, appType_lt, appType_lte, appType_like (contains), appType_isnull=true|false, appType_has=value (jsonb array contains), appType[]=a&appType[]=b (in).
hostname
query · stringFilter by hostname. Operators: hostname=value (equals), hostname_ne, hostname_gt, hostname_gte, hostname_lt, hostname_lte, hostname_like (contains), hostname_isnull=true|false, hostname_has=value (jsonb array contains), hostname[]=a&hostname[]=b (in).
isGenerated
query · stringFilter by isGenerated. Operators: isGenerated=value (equals), isGenerated_ne, isGenerated_gt, isGenerated_gte, isGenerated_lt, isGenerated_lte, isGenerated_like (contains), isGenerated_isnull=true|false, isGenerated_has=value (jsonb array contains), isGenerated[]=a&isGenerated[]=b (in).
isPrimary
query · stringFilter by isPrimary. Operators: isPrimary=value (equals), isPrimary_ne, isPrimary_gt, isPrimary_gte, isPrimary_lt, isPrimary_lte, isPrimary_like (contains), isPrimary_isnull=true|false, isPrimary_has=value (jsonb array contains), isPrimary[]=a&isPrimary[]=b (in).
isVerified
query · stringFilter by isVerified. Operators: isVerified=value (equals), isVerified_ne, isVerified_gt, isVerified_gte, isVerified_lt, isVerified_lte, isVerified_like (contains), isVerified_isnull=true|false, isVerified_has=value (jsonb array contains), isVerified[]=a&isVerified[]=b (in).
verificationStatus
query · stringFilter by verificationStatus. Operators: verificationStatus=value (equals), verificationStatus_ne, verificationStatus_gt, verificationStatus_gte, verificationStatus_lt, verificationStatus_lte, verificationStatus_like (contains), verificationStatus_isnull=true|false, verificationStatus_has=value (jsonb array contains), verificationStatus[]=a&verificationStatus[]=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 { domains } = await gc.projectDomains.listProjectDomains({  organizationId: org.id,  projectId: projects[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 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
Project Domains | Giant Context