---
title: "Publishes a given target as a Collectible."
method: POST
path: "/v1/collectibles"
tags: ["Assets", "Avatars"]
---

# Publishes a given target as a Collectible.

`POST /v1/collectibles`

## Request

- Base URL: `https://itemconfiguration.roblox.com`
- URL: `https://itemconfiguration.roblox.com/v1/collectibles`
- Auth: one of:
  - API key in cookie `.ROBLOSECURITY`
  - API key in header `x-api-key`

## Request body

- RobloxItemConfigurationApiModelsRequestPublishCollectibleItemRequest: Request model to publish a new CollectibleItem.
  - `isRentalOptIn` boolean: Whether the item is opted into rental.
  - `idempotencyToken` string: Idempotency token for publishing purposes.
  - `targetId` integer: Target item's Id.
  - `targetType` 0 | 1 | 2 | 3: Target item's type. ['Asset' = 0, 'Bundle' = 1, 'IecToken' = 2, 'Look' = 3]
  - `publishingType` 0 | 1 | 2: Publishing type of the CollectibleItem. ['Invalid' = 0, 'Limited' = 1, 'NonLimited' = 2]
  - `agreedPublishingFee` integer: The publishing fee seen by the end-user.
  - `creatorUserId` integer: The UserId of the creator if the creator is a user.
  - `creatorGroupId` integer: The GroupId of the creator if the creator is a group.
  - `publisherUserId` integer: The UserId of the publisher who pays the publishing fee. This should only be set if the creator is a group.
  - `quantity` integer: The total number of instances for the CollectibleItem.
  - `quantityLimitPerUser` integer: The max number of instances for the CollectibleItem a user can own.
  - `resaleRestriction` 0 | 1 | 2: The resale restriction of the CollectibleItem. ['INVALID' = 0, 'NONE' = 1, 'DISABLED' = 2]
  - `priceInRobux` integer: The sale price of the CollectibleItem and it will be used as minimum price for DPF.
  - `priceOffset` integer: Gets or sets the price offset of the item in Robux above the price floor.
  - `optOutFromRegionalPricing` boolean: Whether to opt out of the regional pricing.
  - `isFree` boolean: Gets or sets if the item is free.
  - `saleLocationConfiguration` RobloxItemConfigurationApiModelsRequestCollectiblesSaleLocationConfigurationModel: Model for Sale Location of Collectible Items.
    - `saleLocationType` 0 | 1 | 2 | 3 | 4: Roblox.ItemConfiguration.Api.Models.Request.CollectiblesSaleLocationConfigurationModel.CollectiblesSaleLocationType. ['SALE_LOCATION_TYPE_INVALID' = 0, 'SALE_LOCATION_TYPE_SHOP_AND_ALL_EXPERIENCES' = 1, 'SALE_LOCATION_EXPERIENCES_AND_DEV_API_ONLY' = 2, 'SALE_LOCATION_TYPE_SHOP_ONLY' = 3, 'SALE_LOCATION_TYPE_SHOP_AND_EXPERIENCES_BY_ID' = 4]
    - `places` integer[]: The list of PlaceIds this item is allowed to be sold in. This will be translated to UniverseIds inside the Collectibles Gateway. Requires Roblox.ItemConfiguration.Api.Models.Request.CollectiblesSaleLocationConfigurationModel.CollectiblesSaleLocationType set to ExperiencesById.
  - `name` string: The desired name of the CollectibleItem. If not set, will use the underlying itemname.
  - `description` string: The desired description of the CollectibleItem. If not set, will use the underlying itemname.
  - `onSaleTime` string, date-time: Scheduled on sale time for publishing the item.
  - `offSaleTime` string, date-time: Scheduled off sale time for publishing the item.
  - `agreementId` string: Optional. Content-licensing agreement id for a licensed publish. If unset, publishing behavior is unchanged. Not persisted on the collectible.

## Response `200`

OK

- RobloxItemConfigurationApiPublishCollectibleItemResponse: Response model for publishing a new CollectibleItem.
  - `status` 0 | 1 | 2: The status of the collectible being published. ['Succeeded' = 0, 'Failed' = 1, 'InProgress' = 2]

## Other responses

- `400`: 1: Invalid target type 4: Invalid Argument 8: Missing/Null request parameters 19: Item price is too low 20: Item price is too high 21: Asset Id is invalid 26: The upload content Name or Description was moderated. 32: Gateway could not publish item 35: Quantity is invalid 36: Specified SaleLocation is currently not supported. 43: Quantity limit is currently not supported. 44: Quantity limit is invalid. 47: Resale restriction is currently not supported. Must be none or unset for now. 48: Invalid resale restriction. 59: Price offset is invalid. 60: Minimum price is invalid. 62: Invalid price configuration. 65: Unexpected Place Ids. 76: The item is delisted. 111: Asset cannot be published because it has been used in Commerce products. 119: Item is not a rentable type. 122: Invalid name. 123: Invalid description. 146: Agreement is not publishable. 147: Resale is not allowed by the license. 148: Immediate on-sale is not allowed while the agreement is pending. 149: OnSaleTime is outside the agreement window. 150: OffSaleTime is outside the agreement window. 151: OffSaleTime is required for this agreement.
- `401`: 0: Authorization has been denied for this request. 66: Missing Authenticated User.
- `402`: 70: The user does not have enough Robux to pay
- `403`: 0: Token Validation Failed 10: Cannot release asset that is pending validation 11: Cannot release asset that contains invalid content 12: User does not have permission for the group owned asset 13: Cannot release the associated asset type 14: Cannot release asset that is pending review 15: Asset is moderated 16: Item is released 17: User does not have permission to release 18: User does not own the item 28: Asset has already been released as a non-limited item. 45: Asset is an exact copy of a published asset. 46: ItemIsInBundle 51: BundleType Cannot Be Released. 57: Non-limited publishing is not supported. 72: The Item is moderated. 74: The item's type is not allowed. 77: Resellable creation not allowed for user. 80: Publishing InExperienceCreation item is blocked. 94: Actor is moderated. 101: Calendar quota exceeded 102: Calendar quota is unavailable. 106: Missing ID verification. 107: User's creation access is blocked. 108: Missing premium subscription tier. 109: Group owner missing premium subscription tier. 115: User is not authorized for this action. 125: Missing two step verification. 143: Publishing AI-generated item is blocked. 146: Agreement is not publishable.
- `404`: 3: Service Unavailable 5: Not Found 71: The Item is not found. 134: Bundle not found.
- `412`: 75: The item has archived dependencies.
- `429`: 9: Publishing Limit Exceeded 34: Could not find initial user-owner asset 121: Purchase failed due to flood-check.
- `500`: 32: Gateway could not publish item 34: Could not find initial user-owner asset 41: Publishing quota is unavailable. 56: Publishing Gateway returns unexpected exception. 67: Invalid creator type 73: The Item's moderation status could not be determined. 103: Publishing gateway returns denied without any reason 104: Publishing gateway returns unexpected reason 105: Publishing gateway returns unexpected access status 144: Failed to get agreement. 145: Failed to get license.
- `507`: 42: Failed to fetch marketplace fee.

## Changes

- **2026-11-13** `e1e00fbc18e5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/roblox/apis/roblox-api/changes/v1/collectibles/post.md)

---

[API](https://skmtc.dev/roblox/apis/roblox-api.md) - [All operations](https://skmtc.dev/roblox/apis/roblox-api/llms.txt) - [OpenAPI document](https://skmtc.dev/roblox/apis/roblox-api/revisions/c2ba38e6ba62?raw)
