> ## Documentation Index
> Fetch the complete documentation index at: https://crossmint-devin-1787949784-wallet-docs-two-concept-model.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create IP Collection (Idempotent)

> Create a new collection with a pre-computed id, or get an existing one if the id already exists

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

<Warning>This API is still under development. Contact support for early access.</Warning>


## OpenAPI

````yaml put /v1/ip/collections/{collectionId}
openapi: 3.0.0
info:
  contact:
    email: support@crossmint.com
    name: Crossmint Support
    url: https://www.crossmint.com
  description: Crossmint Story API
  title: Crossmint Story API
  version: 1.0.0
servers:
  - description: Staging environment (testnets)
    url: https://staging.crossmint.com/api
security: []
tags: []
paths:
  /v1/ip/collections/{collectionId}:
    put:
      tags:
        - IP Story Protocol
      summary: Create Collection (Idempotent)
      description: >-
        Create a new collection with a pre-computed id, or get an existing one
        if the id already exists


        **API scope required**: `collections.create`
      operationId: StoryApiController-createIdempotent-4
      parameters:
        - description: API key required for authentication
          in: header
          name: X-API-KEY
          required: true
          schema:
            type: string
        - in: path
          name: collectionId
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollectionCreationInputDto'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponseDto'
          description: Collection created
components:
  schemas:
    CollectionCreationInputDto:
      properties:
        chain:
          description: The chain of the collection, either `story` or `story-testnet`
          example: story-testnet
          type: string
        metadata:
          additionalProperties: false
          description: Story Protocol collection metadata
          example:
            description: My Collection Description
            image: https://example.com/image.png
            name: My Collection
            symbol: MYCOL
          properties:
            banner_image:
              description: >-
                A URI pointing to a resource with mime type image/* that
                represents the contract, displayed as a banner image
              example: https://example.com/banner.png
              format: uri
              type: string
            description:
              description: The description of the contract
              example: My Collection Description
              type: string
            external_link:
              description: The external link of the contract
              example: https://example.com
              format: uri
              type: string
            featured_image:
              description: >-
                A URI pointing to a resource with mime type image/* that
                represents the featured image for the contract
              example: https://example.com/featured.png
              format: uri
              type: string
            image:
              description: >-
                A URI pointing to a resource with mime type image/* that
                represents the contract, typically displayed as a profile
                picture
              example: https://example.com/image.png
              format: uri
              type: string
            name:
              description: The name of the collection
              example: My Collection
              type: string
            symbol:
              description: The symbol of the collection
              example: MYCOL
              type: string
          type: object
        reuploadLinkedFiles:
          default: true
          description: >-
            Controls whether external files (like images) in the metadata should
            be reuploaded to decentralized storage (IPFS) (true) or referenced
            with their original URLs (false). Default is True.
          example: true
          type: boolean
        supplyLimit:
          description: The supply limit of the collection
          example: 100
          type: number
      required:
        - chain
        - metadata
      type: object
    CollectionResponseDto:
      properties:
        actionId:
          description: The action id of the collection
          example: d290f1ee-6c54-4b01-90e6-d701748f0851
          type: string
        id:
          description: The id of the collection
          example: d290f1ee-6c54-4b01-90e6-d701748f0851
          type: string
        metadata:
          description: Story Protocol collection metadata response
          example:
            description: My Collection Description
            image: https://example.com/image.png
            name: My Collection
            symbol: MYCOL
          properties:
            banner_image:
              description: >-
                A URI pointing to a resource with mime type image/* that
                represents the contract, displayed as a banner image
              example: https://example.com/banner.png
              format: uri
              type: string
            contractUri:
              description: The contract URI of the collection
              example: https://www.crossmint.com/assets/crossmint/logo.png
              format: uri
              type: string
            description:
              description: The description of the contract
              example: My Collection Description
              type: string
            external_link:
              description: The external link of the contract
              example: https://example.com
              format: uri
              type: string
            featured_image:
              description: >-
                A URI pointing to a resource with mime type image/* that
                represents the featured image for the contract
              example: https://example.com/featured.png
              format: uri
              type: string
            image:
              description: >-
                A URI pointing to a resource with mime type image/* that
                represents the contract, typically displayed as a profile
                picture
              example: https://example.com/image.png
              format: uri
              type: string
            name:
              description: The name of the collection
              example: My Collection
              type: string
            symbol:
              description: The symbol of the collection
              example: MYCOL
              type: string
          type: object
        onChain:
          properties:
            chain:
              description: The chain of the collection
              example: story-testnet
              type: string
            contractAddress:
              description: The address of the collection on the chain
              example: '0x123'
              type: string
            explorerLink:
              description: The explorer link of the collection
              example: >-
                https://portal.story.foundation/collections/0xAC6062FF53fa41e61Fe01B89B83d9dB96b5F9280
              format: uri
              type: string
          type: object
      required:
        - actionId
        - id
        - metadata
        - onChain
      type: object

````