---
title: "Create Template with ID"
method: PUT
path: "/2022-06-09/collections/{collectionId}/templates/{templateId}"
tags: ["NFT Templates"]
---

# Create Template with ID

`PUT /2022-06-09/collections/{collectionId}/templates/{templateId}`

## Request

- Base URL: `https://staging.crossmint.com/api`
- URL: `https://staging.crossmint.com/api/2022-06-09/collections/{collectionId}/templates/{templateId}`
- Auth: none required
- TypeScript: <https://skmtc.dev/crossmint/apis/onramp/docs/2022-06-09/collections/:collectionId/templates/:templateId/put.ts> (a function with typed inputs; its response is checked against the schema)

Create a token template with preconfigured metadata

**API scope required**: `nfts.create`

## Path parameters

- `collectionId` string, required
- `templateId` string, required

## Request body

- CreateTemplateBody
  - `metadata` object: See https://docs.crossmint.com/docs/metadata for more info
    - `name` string: Template name
    - `image` string
    - `description` string
    - `symbol` string: A shorthand identifier for the token (e.g., "MTK"). This is only applicable for SFT Templates on Solana.
  - `onChain` object: Onchain details
    - `tokenId` string: The token ID. Only relevant for SFT (ERC-1155) collections on an EVM chain. Leave empty for NFT/ERC-721 or Solana collections.
  - `supply` object: Supply details
    - `limit` integer: Supply limit, Set to 1 for ERC721.
  - `reuploadLinkedFiles` boolean: Any URLs in the metadata object will be resolved and reuploaded to IPFS [Default: true]

## Response `200`

Success

- TemplateResponse
  - `templateId` string, uuid
  - `metadata` object
    - `name` string
    - `image` string
    - `description` string
    - `symbol` string
  - `onChain` union
    - object
      - `tokenId` integer: TokenId for the token
    - object
      - `mintHash` string: (SFTs Only) Mint hash for SFT if one has been minted already
  - `supply` object
    - `limit` integer
    - `minted` integer

## Other responses

- `400`: Invalid arguments, please make sure you're following the api specification.
- `404`: Not found error.
- `409`: Conflict
- `424`: Failed Dependency
- `503`: Service unavailable

---

[API](https://skmtc.dev/crossmint/apis/onramp.md) - [All operations](https://skmtc.dev/crossmint/apis/onramp/llms.txt) - [OpenAPI document](https://skmtc.dev/crossmint/apis/onramp/revisions/e2143d192130?raw)
