Create a template
Creates an email template project from Samva's canonical TSX starter and returns its template entry with status 201.
Creates an email template project from Samva's canonical TSX starter and returns its template entry with status 201.
apiKeyx-api-key<token>idempotency-key*string1 <= length <= 255application/json- body
name*string1 <= length <= 200projectName?|nullslug?|nullgalleryTemplateId?|nulluseBrand?|nulldescription?string|null|nullcategory?|null|nullisActive?boolean|nullnamespaceId?|The namespace the new template project belongs to; the project and every entry added to it share it. Omit for organization level. A namespace-scoped key always creates in its own namespace.
shared?|Share the new organization-level project with every namespace: namespace-scoped keys read and send its entries but cannot change them. Defaults to false. Not with namespaceId, and not from a namespace-scoped key.
Success
application/json- response
id*TemplateId^tmpl_[0-9a-hjkmnp-tv-z]{16,24}$slug*stringname*stringchannel*string"sms""whatsapp""email"projectId*TemplateProjectId^tproj_[0-9a-hjkmnp-tv-z]{16,24}$namespaceId*|The namespace the template's project belongs to; every entry in a project shares it. Null at organization level. A namespace-scoped key reaches only its own namespace's templates and shared ones.
shared*booleanWhether the template's project is shared with every namespace. Every entry in a project shares it. A namespace-scoped key reads and sends a shared template in its own namespace but cannot change it. Only an organization-level project is shared.
entryPath*string^(?!\/)(?!.*\\)(?!.*(?:^|\/)\.{1,2}(?:\/|$))(?!.*(?:^|\/)\.git(?:\/|$))(?:templates|emails)\/.+\.tsx$length <= 1024status*string"draft""pending""approved""published""rejected""archived"isActive*booleanpublishedAt*string|nullbrand*|nullfromDefault*|nullusageCount*integer0 <= value <= 9007199254740991lastUsedAt*string|nullcreatedAt*stringupdatedAt*stringfamilyId*|nulldescription*string|nullcategory*|nullreplyToDefault*array<string>|nulltrackingDefault*|nullemail*|nullsms*|nullwhatsapp*|nullpublicationId*|nullinputContractId*|nullinputSchema*|nullimport { createClient } from "samva";const samva = createClient({ apiKey: process.env.SAMVA_API_KEY! });const result = await samva.templates.create({ "name": "example"});{ "id": "string", "slug": "string", "name": "string", "channel": "sms", "projectId": "string", "namespaceId": "string", "shared": true, "entryPath": "string", "status": "draft", "isActive": true, "publishedAt": "string", "brand": { "slug": "string", "digest": "string", "stale": true }, "fromDefault": { "email": "string", "name": "string" }, "usageCount": 0, "lastUsedAt": "string", "createdAt": "string", "updatedAt": "string", "familyId": "string", "description": "string", "category": "transactional", "replyToDefault": [ "string" ], "trackingDefault": { "opens": true, "clicks": true }, "email": { "subject": "string", "preheader": "string", "headers": { "property1": "string", "property2": "string" } }, "sms": { "body": "string", "encoding": "string", "estimatedSegments": -9007199254740991, "category": "transactional" }, "whatsapp": { "name": "string", "language": "string", "category": "marketing", "components": [ { "type": "HEADER", "format": "TEXT", "text": "string", "example": { "header_text": [ "string" ] } } ] }, "publicationId": "string", "inputContractId": "string", "inputSchema": { "property1": "string", "property2": "string" }}