---
title: "Mint NFT"
method: POST
path: "/2022-06-09/collections/{collectionId}/nfts"
tags: ["NFTs"]
---

# Mint NFT

`POST /2022-06-09/collections/{collectionId}/nfts`

## Request

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

Mint your NFTs and deliver them to a web3 wallet or an email address

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

## Path parameters

- `collectionId` string, required

## Request body

- union
  - object
    - `recipient` string, required: Allowed formats: `<chain>:<address>` or `email:<email_address>:<chain>` or `userId:<userId>:<chain>` or `twitter:<twitter_handle>:<chain>` [see here for more info](/minting/nfts/integrate/manage-delivery)
    - `sendNotification` boolean: Notify recipient via email notification about successful mint [Default: true]. For legacy projects created before Sep 16, 2024, this is set to false by default.
    - `locale` string: Specify the locale for the email content [Default: en-US]
    - `reuploadLinkedFiles` boolean: Any URLs in the metadata object will be resolved and reuploaded to IPFS [Default: true]
    - `compressed` boolean: **Solana only** Use NFT compression for cheaper mint costs [Default: true]
    - `metadata` union, required: Optional if [baseURI](/api-reference/minting/collection/set-base-uri) is set.
      - NFTMetadata
        - `name` string, required: The name of your NFT (Max length: 32)
        - `image` string, required: Direct link to your NFT image
        - `description` string, required: A brief description of the NFT (Max length: 64)
        - `animation_url` string: **EVM only** [See more info here](/minting/nfts/integrate/define-metadata)
        - `attributes` object[]: Add attributes to your NFT
          - `display_type` 'boost_number' | 'boost_percentage' | 'number': Display name of your attribute
          - `trait_type` string, required: The name of the trait
          - `value` string, required: The value of the trait
      - string: Enter a URL to a JSON file containing the metadata contents
      - NFTMetadataSolana
        - `name` string, required: The name of your NFT (Max length: 32)
        - `image` string, required: Direct link to your NFT image
        - `description` string, required: A brief description of the NFT (Max length: 64)
        - `symbol` string: **Solana only** A shorthand identifier for the token (Max length: 10)
        - `attributes` object[]: Add attributes to your NFT
          - `display_type` 'boost_number' | 'boost_percentage' | 'number': Display name of your attribute
          - `trait_type` string, required: The name of the trait
          - `value` string, required: The value of the trait
      - object: Enter a URL to a JSON file containing the metadata contents
        - `uri` string, required: Enter a URL to a JSON file containing the metadata contents
        - `name` string, required: The name of your NFT (Max length: 32)
  - object
    - `recipient` string, required: Allowed formats: `<chain>:<address>` or `email:<email_address>:<chain>` or `userId:<userId>:<chain>` or `twitter:<twitter_handle>:<chain>` [see here for more info](/minting/nfts/integrate/manage-delivery)
    - `sendNotification` boolean: Notify recipient via email notification about successful mint [Default: true]. For legacy projects created before Sep 16, 2024, this is set to false by default.
    - `locale` string: Specify the locale for the email content [Default: en-US]
    - `reuploadLinkedFiles` boolean: Any URLs in the metadata object will be resolved and reuploaded to IPFS [Default: true]
    - `compressed` boolean: **Solana only** Use NFT compression for cheaper mint costs [Default: true]
    - `templateId` string, required

## Response `200`

Success.

- union
  - MintResponseSolana200
    - `id` string
    - `onChain` object
      - `status` string
      - `chain` string
    - `actionId` string
  - MintResponseEVM200
    - `id` string
    - `onChain` object
      - `status` string
      - `chain` string
      - `contractAddress` string
      - `subscription` object
        - `expiresAt` string, date-time: The date and time when the subscription expires
    - `actionId` string

## Other responses

- `400`: Invalid arguments, please make sure you're following the api specification.
- `403`: Forbidden error, please ensure the credentials are correct.
- `404`: Not found error.
- `503`: Please try again in a few minutes. If the issue still persists, contact Crossmint support.

---

[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)
