> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Collection (Idempotent)

> Create a collection that you can mint NFTs/SFTs from. This API is idempotent, 
if you call it multiple times with the same ID, only one will be created.

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




## OpenAPI

````yaml put /2022-06-09/collections/{collectionId}
openapi: 3.0.1
info:
  description: N/A
  version: 1.0.0
  title: NFT Minting
  contact:
    name: Crossmint NFT Minting APIs
    url: https://www.crossmint.com
    email: support@crossmint.com
servers:
  - url: https://staging.crossmint.com/api
    description: Staging environment (testnets)
  - url: https://www.crossmint.com/api
    description: Production environment (mainnets)
security:
  - apiKey: []
paths:
  /2022-06-09/collections/{collectionId}:
    put:
      tags:
        - NFT Collections
      summary: Create Collection with ID
      description: >
        Create a collection that you can mint NFTs/SFTs from. This API is
        idempotent, 

        if you call it multiple times with the same ID, only one will be
        created.


        **API scope required**: `collections.create`
      operationId: create-collection-custom
      parameters:
        - $ref: '#/components/parameters/collectionId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCollectionBody'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCollectionResponse'
        '400':
          description: >-
            Invalid arguments, please make sure you're following the api
            specification.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Response'
        '403':
          description: Forbidden error, please ensure the credentials are correct.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Response'
        '404':
          description: Not found error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Response'
        '503':
          description: >-
            Please try again in a few minutes. If the issue still persists,
            contact Crossmint support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/503Response'
components:
  parameters:
    collectionId:
      name: collectionId
      in: path
      description: >
        This is the identifier for the collection related to the request. Every
        project has default collections: `default-solana` and
        `default-polygon`. 


        The
        [create-collection](/api-reference/minting/collection/create-collection)
        API will result in collections with UUID formatted `collectionId`. 

        **Example:** `9c82ef99-617f-497d-9abb-fd355291681b`


        The
        [create-collection-idempotent](/api-reference/minting/collection/create-collection-idempotent)
        API allows you to specify an arbitrary identifier during the initial
        request.

        **Example:** `your-custom-identifier`
      required: true
      example: default-solana
      schema:
        type: string
  schemas:
    CreateCollectionBody:
      type: object
      additionalProperties: false
      properties:
        chain:
          description: Blockchain you would like to use for this collection
          type: string
          example: polygon
          enum:
            - aptos
            - arbitrum
            - arbitrum-sepolia
            - avalanche
            - avalanche-fuji
            - base
            - base-sepolia
            - bsc
            - chiliz
            - chiliz-spicy-testnet
            - ethereum
            - ethereum-sepolia
            - optimism
            - optimism-sepolia
            - polygon
            - polygon-amoy
            - shape
            - shape-sepolia
            - skale-nebula
            - skale-nebula-testnet
            - solana
            - soneium-minato-testnet
            - xai
            - xai-sepolia-testnet
            - zora
            - zora-sepolia
        metadata:
          type: object
          additionalProperties: false
          required:
            - name
            - description
          properties:
            name:
              type: string
              description: 'Collection name (Max length: 32)'
              example: Sample NFT Collection
              maxLength: 32
            imageUrl:
              type: string
              description: URL pointing to an image that represents the collection
              example: https://www.crossmint.com/assets/crossmint/logo.png
            description:
              type: string
              description: A description of the NFT collection
              example: This is a sample NFT collection
              maxLength: 64
            symbol:
              type: string
              description: >-
                Shorthand identifier for the NFT collection (Max length: 10).
                Defaults to 'TOKEN'
              example: TOKEN
              maxLength: 10
        fungibility:
          description: >-
            Whether or not this collection is fungible. EVM and Solana
            collections may be set as semi-fungible.
          type: string
          enum:
            - non-fungible
            - semi-fungible
          default: non-fungible
        transferable:
          description: >-
            Whether or not NFTs in this collection are transferable. Supported
            on EVM and Aptos chains. (For subscriptions must be set to false)
          type: boolean
          default: true
        supplyLimit:
          type: number
          description: The maximum number of tokens that can be minted for this collection
        payments:
          $ref: '#/components/schemas/PaymentsObject'
        subscription:
          type: object
          additionalProperties: false
          properties:
            enabled:
              type: boolean
              description: Whether subscriptions are enabled for this collection
              default: false
              example: false
        reuploadLinkedFiles:
          $ref: '#/components/schemas/ReuploadLinkedFiles'
      required:
        - chain
        - metadata
    CreateCollectionResponse:
      type: object
      properties:
        id:
          type: string
          example: 5263650e-6d43-4ed3-9e31-0cf593d076a4
        metadata:
          type: object
          properties:
            name:
              type: string
              example: Sample NFT Collection
            description:
              type: string
              example: This is a sample NFT collection
            imageUrl:
              type: string
              example: https://www.crossmint.com/assets/crossmint/logo.png
            symbol:
              type: string
              example: TOKEN
        fungibility:
          type: string
          example: non-fungible
        onChain:
          type: object
          properties:
            chain:
              type: string
              example: polygon
            type:
              type: string
              example: erc-721
        actionId:
          type: string
          example: 5263650e-6d43-4ed3-9e31-0cf593d076a4
        subscription:
          type: object
          properties:
            enabled:
              type: boolean
    400Response:
      type: object
      properties:
        error:
          type: boolean
          example: true
        message:
          type: string
          example: Invalid arguments or empty parameter <missing parameter>.
    403Response:
      type: object
      properties:
        error:
          type: boolean
          example: true
        message:
          type: string
          example: Malformed API key. / API key provided doesn't have required scopes.
    404Response:
      type: object
      properties:
        error:
          type: boolean
          example: true
        message:
          type: string
          example: Not found
    503Response:
      type: object
      properties:
        error:
          type: boolean
          example: true
        message:
          type: string
          example: >-
            Please try again in a few minutes. If the issue still persists,
            contact Crossmint support.
    PaymentsObject:
      type: object
      additionalProperties: false
      description: >-
        Enable payments for this collection by setting `price`,
        `recipientAddress` and `currency`
      properties:
        price:
          type: string
          description: The price of the token in native currency for the selected chain
        recipientAddress:
          type: string
          description: The wallet address to receive payouts
        currency:
          type: string
          description: >-
            The currency for the price of the NFT. Defaults to the native
            currency of the chain
    ReuploadLinkedFiles:
      type: boolean
      description: >-
        Any URLs in the metadata object will be resolved and reuploaded to IPFS
        [Default: true]
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY
      description: Obtained in the Crossmint developer console

````