---
id: technology-template-create
title: "Create a technology template"
description: "Create a technology template that serves as a starter or skeleton for new applications."
sidebar_label: "Create a technology template"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "post api-method"
info_path: docs/api/nullplatform-api
custom_edit_url: null
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Create a technology template"}
>
</Heading>

<MethodEndpoint
  method={"post"}
  path={"/template"}
  context={"endpoint"}
>
  
</MethodEndpoint>



Create a technology template that serves as a starter or skeleton for new applications.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
  children={"Request"}
>
</Heading>

<ParamsDetails
  parameters={undefined}
>
  
</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","url","provider","organization","tags","components","status"],"properties":{"name":{"type":"string","description":"The name of the technology template (e.g., node, java-spring, go, kotlin-ktor).","example":"Next.JS 13 template"},"url":{"type":"string","description":"The URL of the template in the repository.","example":"https://github.com/nullplatform/technology-templates-nextjs"},"provider":{"type":"object","properties":{"repository":{"type":"string","description":"The name of the repository within the provider.\n\n> For example, if the URL is `https://github.com/nullplatform/technology-templates-nextjs`,  \nthe repository name should be `technology-templates-nextjs`.\n","example":"technology-templates-nextjs"}}},"organization":{"type":"integer","description":"The ID of the organization.","example":234},"account":{"type":"integer","description":"The ID of account.","example":345},"status":{"type":"string","description":"The status of the template.","enum":["active","inactive"],"example":"active"},"components":{"type":"array","description":"The components of the template.","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of component (e.g., language, framework).","example":"language"},"id":{"type":"string","description":"The ID of the component (e.g., javascript, golang, java).","example":"javascript-language"},"version":{"type":"string","description":"The version of the component (e.g., 20.2, 1.18, 17).","example":"1.0"}},"title":"TemplateComponent"}},"tags":{"type":"array","items":{"type":"string"},"description":"Tags associated with the template (e.g., node, nextjs, frontend)","example":"frontend"},"rules":{"type":"object","description":"Defines rules for enforcing naming conventions and structuring repository paths.\n","items":{"type":"object","properties":{"application_name":{"type":"string","description":"A regular expression pattern used to validate the format of the application name.\n> **Note**: This field allows you to define naming conventions for applications, ensuring consistency across repository naming. For example, to require the application name to end with `-api`, use a pattern like `^(.*)-api$`.\n","format":"regex","example":"^(.*)-api$"},"repository_path":{"type":"string","description":"A substitution expression defining the custom structure of the repository path based on matched groups from the application name. \n> **Note**: This field uses a syntax similar to `sed` substitution (`s/regex/replacement/flags`), enabling you to dynamically construct repository paths.  > For instance, to rearrange parts of the application name with a new directory structure, use a pattern like `s/^(.*)-(.*)$/${namespace.slug}-golang-${1}-${2}/g`.\n","format":"regex","example":"s/^(.*)-(.*)$/${namespace.slug}-golang-${1}-${2}/g"}},"title":"TemplateRules"}}},"example":{"name":"Next.JS 13","organization":234,"account":345,"status":"active","url":"https://github.com/nullplatform/technology-templates-nextjs","provider":{"repository":"technology-templates-nextjs"},"components":[{"type":"language","id":"javascript","version":"es6"},{"type":"framework","id":"next.js","version":"13"}],"rules":{"application_name":"^(.*)-api$","repository_path":"s/^(.*)-(.*)$/${namespace.slug}-golang-${1}-${2}/g"},"tags":["javascript","frontend","nextjs"]},"title":"TechnologyTemplateCreate"}}}}}
>
  
</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"Technology template created successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","description":"The ID of the template.","example":123},"name":{"type":"string","description":"The name of the technology template (e.g., node, java-spring, go, kotlin-ktor).","example":"Next.JS 13 template"},"url":{"type":"string","description":"The URL of the template in the repository.","example":"https://github.com/nullplatform/technology-templates-nextjs"},"provider":{"type":"object","properties":{"repository":{"type":"string","description":"The name of the repository within the provider.\n\n> For example, if the URL is `https://github.com/nullplatform/technology-templates-nextjs`,  \nthe repository name should be `technology-templates-nextjs`.\n","example":"technology-templates-nextjs"}}},"components":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"The type of component (e.g., language, framework).","example":"language"},"id":{"type":"string","description":"The ID of the component (e.g., javascript, golang, java).","example":"javascript-language"},"version":{"type":"string","description":"The version of the component (e.g., 20.2, 1.18, 17).","example":"1.0"}},"title":"TemplateComponent"},"description":"The components of the template."},"tags":{"type":"array","example":"frontend","items":{"type":"string"},"description":"Tags associated with the template (e.g., node, nextjs, frontend)."},"updated_at":{"type":"string","nullable":true,"description":"The ISO-8601 UTC timestamp of when the technology template was last updated.","format":"date-time","example":"2021-01-02T00:00:00Z"},"created_at":{"type":"string","description":"The ISO-8601 UTC timestamp of when the technology template was created.","format":"date-time","example":"2021-01-02T00:00:00Z"}},"title":"TechnologyTemplateResponse"}}}},"4XX":{"description":"Client error responses due to invalid input or missing parameters.","content":{"application/json":{"schema":{"type":"object","required":["statusCode","error","message"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code representing the specific client error (e.g., 400, 401, 403, 404).","example":400},"code":{"type":"string","description":"A machine-readable error code that categorizes the server failure.","example":"bad_request"},"error":{"type":"string","description":"A brief, human-readable description of the error type (e.g., \"Bad Request\", \"Unauthorized\").","example":"Bad Request"},"message":{"type":"string","description":"Additional details about the error.","example":"The request was malformed or contained invalid parameters."}}}}}},"5XX":{"description":"Server error responses indicating an issue on the API side.","content":{"application/json":{"schema":{"type":"object","required":["statusCode","error","message"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code representing the specific server error (e.g., 500, 502, 503).","example":500},"code":{"type":"string","description":"A machine-readable error code that categorizes the server failure.","example":"internal_server_error"},"error":{"type":"string","description":"A brief, human-readable description of the error type (e.g., \"Internal Server Error\", \"Service Unavailable\").","example":"Internal Server Error"},"message":{"type":"string","description":"Additional details about the error.","example":"An unexpected error occurred. Please try again later."}}}}}}}}
>
  
</StatusCodes>


      