Project Legal Documents
Manage project-specific legal documents.
Publish a draft project legal document
/organizations/{organizationId}/projects/{projectId}/legal/{documentId}/publishPublishes a draft legal document, making it immutable. Every locale listed in the project's enabled_locales must have non-empty content, otherwise the publish is rejected.
curl -X POST "https://api.giantcontext.com/organizations/organizationId_uuid/projects/projectId_uuid/legal/documentId_uuid/publish" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{}'Get a project legal document by ID
/organizations/{organizationId}/projects/{projectId}/legal/{documentId}Returns a single legal document version for the project, including its localized content map and publish status.
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 document = await gc.projectLegalDocuments.getProjectLegalDocument({ organizationId: org.id, projectId: projects[0].id, documentId: "doc-123",});
Update a draft project legal document
/organizations/{organizationId}/projects/{projectId}/legal/{documentId}Updates the localized content of a draft legal document. Published documents are immutable and must be re-drafted as a new version.
curl -X PATCH "https://api.giantcontext.com/organizations/organizationId_uuid/projects/projectId_uuid/legal/documentId_uuid" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "content": "content_value"}'List a project's legal document versions across all types, draft and published
/organizations/{organizationId}/projects/{projectId}/legalReturns a paginated list of legal document versions for the project, including drafts and published versions across all document types (terms of service, privacy policy, acceptable use policy, cookie policy, custom).
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 { legalDocuments } = await gc.projectLegalDocuments.listProjectLegalDocuments({ organizationId: org.id, projectId: projects[0].id,});
Create a new draft project legal document
/organizations/{organizationId}/projects/{projectId}/legalCreates a new draft legal document for the project with auto-incremented version per (project, type). Content is a record keyed by locale code; at least one locale is required before publishing.
curl -X POST "https://api.giantcontext.com/organizations/organizationId_uuid/projects/projectId_uuid/legal" \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "type": "type_value", "content": "content_value"}'