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

# Create Upload Urls

> Creates one or more upload URLs which can be used by the client to upload raw file data. Content URls and uploaded content will be garbage collected after 24 hours if not attached to a draft or published item. Detailed pricing info around uploading content can be found here: https://learn.microsoft.com/en-us/gaming/playfab/features/pricing/meters/catalog-meters

Allowed entity token types: title, master_player_account, title_player_account



## OpenAPI

````yaml post /Catalog/CreateUploadUrls
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Economy API
  description: >-
    API methods for managing the catalog. Inventory manages in-game assets for
    any given entity. API methods for managing the versioned catalogs.
  termsOfService: https://playfab.com/terms/
  contact:
    url: https://community.playfab.com/index.html
  license:
    name: Apache 2.0
    url: https://github.com/PlayFab/API_Specs/blob/master/LICENSE
servers:
  - url: https://{titleId}.playfabapi.com
    description: PlayFab title endpoint
    variables:
      titleId:
        default: your_title_id
        description: Your PlayFab title ID (hex).
security: []
tags:
  - name: Catalog
    description: |-
      Catalog Management APIs. In general for Catalog APIs, 
                          Read APIs are limited to 100 requests in 60 seconds 
                          for Player Entities while Title Entities are limited to 10000 requests
                          in 10 seconds. For Write APIs, Player Entities are limited to 10 requests 
                          in 30 seconds and Title Entities are limited to 1000 requests in 10 seconds.
  - name: Inventory
    description: |-
      Player Inventory Management APIs. Inventory operations work on an 
                          eventually consistent system against a cache of the Catalog. It can take a few moments for 
                          changes to propagate. In general for Inventory APIs, Read APIs are limited to 100 requests 
                          in 60 seconds for Player Entities while Title Entities are limited to 10000 requests
                          in 10 seconds. For Write APIs, Player Entities are limited to 30 requests 
                          in 90 seconds and Title Entities are limited to 1000 requests in 10 seconds.
  - name: VersionedCatalog
    description: ''
paths:
  /Catalog/CreateUploadUrls:
    post:
      tags:
        - Catalog
      summary: Create Upload Urls
      description: >-
        Creates one or more upload URLs which can be used by the client to
        upload raw file data. Content URls and uploaded content will be garbage
        collected after 24 hours if not attached to a draft or published item.
        Detailed pricing info around uploading content can be found here:
        https://learn.microsoft.com/en-us/gaming/playfab/features/pricing/meters/catalog-meters


        Allowed entity token types: title, master_player_account,
        title_player_account
      operationId: CreateUploadUrls
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUploadUrlsRequest'
        description: >-
          Upload URLs point to Azure Blobs; clients must follow the Microsoft
          Azure Storage Blob Service REST API pattern for uploading content. The
          response contains upload URLs and IDs for each file. The IDs and URLs
          returned must be added to the item metadata and committed using the
          CreateDraftItem or UpdateDraftItem Item APIs.
      responses:
        '200':
          $ref: '#/components/responses/CreateUploadUrlsResponse'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - EntityToken: []
components:
  schemas:
    CreateUploadUrlsRequest:
      description: >-
        Upload URLs point to Azure Blobs; clients must follow the Microsoft
        Azure Storage Blob Service REST API pattern for uploading content. The
        response contains upload URLs and IDs for each file. The IDs and URLs
        returned must be added to the item metadata and committed using the
        CreateDraftItem or UpdateDraftItem Item APIs.
      type: object
      properties:
        CustomTags:
          description: >-
            The optional custom tags associated with the request (e.g. build
            number, external trace identifiers, etc.).
          type: object
        Files:
          description: Description of the files to be uploaded by the client.
          type: array
          items:
            $ref: '#/components/schemas/UploadInfo'
          x-isclass: true
      example:
        Files:
          - FileName: textures.zip
          - FileName: sprites.png
    UploadInfo:
      type: object
      properties:
        FileName:
          description: Name of the file to be uploaded.
          type: string
    CreateUploadUrlsResponse:
      type: object
      properties:
        UploadUrls:
          description: List of URLs metadata for the files to be uploaded by the client.
          type: array
          items:
            $ref: '#/components/schemas/UploadUrlMetadata'
          x-isclass: true
      example:
        UploadUrls:
          - Id: 11111111-1111-1111-1111-111111111111
            Url: >-
              https://endpoint.blob.core.windows.net/some-identifier-private/11111111-1111-1111-1111-111111111111/textures.zip
            FileName: textures.zip
          - Id: 22222222-2222-2222-2222-222222222222
            Url: >-
              https://endpoint.blob.core.windows.net/some-identifier-private/22222222-2222-2222-2222-222222222222/sprites.png
            FileName: sprites.png
    ApiErrorWrapper:
      description: The basic wrapper around every failed API response
      type: object
      properties:
        code:
          description: Numerical HTTP code
          type: integer
        status:
          description: String HTTP code
          type: string
        error:
          description: Playfab error code
          type: string
        errorCode:
          description: Numerical PlayFab error code
          type: integer
        errorMessage:
          description: Description for the PlayFab errorCode
          type: string
        errorDetails:
          description: Detailed description of individual issues with the request object
          type: object
      required:
        - code
        - errorCode
    UploadUrlMetadata:
      type: object
      properties:
        FileName:
          description: Name of the file for which this upload URL was requested.
          type: string
        Id:
          description: Unique ID for the binary content to be uploaded to the target URL.
          type: string
        Url:
          description: URL for the binary content to be uploaded to.
          type: string
  responses:
    CreateUploadUrlsResponse:
      description: ''
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: integer
                description: >-
                  The Http status code. If X-ReportErrorAsSuccess header is set
                  to true, this will report the actual http error code.
              status:
                type: string
                description: The Http status code as a string.
              data:
                $ref: '#/components/schemas/CreateUploadUrlsResponse'
            example:
              code: 200
              status: OK
              data:
                UploadUrls:
                  - Id: 11111111-1111-1111-1111-111111111111
                    Url: >-
                      https://endpoint.blob.core.windows.net/some-identifier-private/11111111-1111-1111-1111-111111111111/textures.zip
                    FileName: textures.zip
                  - Id: 22222222-2222-2222-2222-222222222222
                    Url: >-
                      https://endpoint.blob.core.windows.net/some-identifier-private/22222222-2222-2222-2222-222222222222/sprites.png
                    FileName: sprites.png
    ApiErrorWrapper:
      description: This is the outer wrapper for all responses with errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorWrapper'
  securitySchemes:
    EntityToken:
      type: apiKey
      in: header
      name: X-EntityToken
      description: >-
        This API requires an Entity Session Token, available from the Entity
        GetEntityToken method.

````

## Related topics

- [Create Upload Urls](/api-reference/catalog/create-upload-urls.md)
- [PFCatalogCreateUploadUrlsAsync](/services/playfab/api-references/c/pfcatalog/functions/pfcatalogcreateuploadurlsasync.md)
- [PFCatalogCreateUploadUrlsRequest](/services/playfab/api-references/c/pfcatalogtypes/structs/pfcatalogcreateuploadurlsrequest.md)
- [PFCatalogCreateUploadUrlsResponse](/services/playfab/api-references/c/pfcatalogtypes/structs/pfcatalogcreateuploadurlsresponse.md)
- [PFCatalogCreateUploadUrlsGetResult](/services/playfab/api-references/c/pfcatalog/functions/pfcatalogcreateuploadurlsgetresult.md)
