> ## 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.

# Get Content Download Url

> This API retrieves a pre-signed URL for accessing a content file for the title. A subsequent HTTP GET to the returned URL will attempt to download the content. A HEAD query to the returned URL will attempt to retrieve the metadata of the content. Note that a successful result does not guarantee the existence of this content - if it has not been uploaded, the query to retrieve the data will fail. See this post for more information: https://community.playfab.com/hc/community/posts/205469488-How-to-upload-files-to-PlayFab-s-Content-Service. Also, please be aware that the Content service is specifically PlayFab's CDN offering, for which standard CDN rates apply.



## OpenAPI

````yaml /services/playfab/api-references/rest/server/server.openapi.json post /Server/GetContentDownloadUrl
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Server API
  description: >-
    Provides functionality to allow external (developer-controlled) servers to
    interact with user inventories and data in a trusted manner, and to handle
    matchmaking and client connection orchestration
  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: Account Management
    description: Account Management APIs
  - name: Analytics
    description: Analytics APIs
  - name: Authentication
    description: Authentication APIs
  - name: Character Data
    description: Character Data APIs
  - name: Characters
    description: Characters APIs
  - name: Content
    description: Content Service APIs
  - name: Friend List Management
    description: Friend List Management APIs
  - name: Matchmaking
    description: Matchmaking APIs
  - name: Platform Specific Methods
    description: Platform Specific Methods APIs
  - name: Player Data Management
    description: Player Data Management APIs
  - name: Player Item Management
    description: Player Item Management APIs
  - name: PlayStream
    description: PlayStream Management APIs
  - name: Server-Side Cloud Script
    description: Server-Side Cloud Script APIs
  - name: Shared Group Data
    description: Shared Group Data APIs
  - name: Title-Wide Data Management
    description: Title-Wide Data Management APIs
paths:
  /Server/GetContentDownloadUrl:
    post:
      tags:
        - Content
      summary: Get Content Download Url
      description: >-
        This API retrieves a pre-signed URL for accessing a content file for the
        title. A subsequent HTTP GET to the returned URL will attempt to
        download the content. A HEAD query to the returned URL will attempt to
        retrieve the metadata of the content. Note that a successful result does
        not guarantee the existence of this content - if it has not been
        uploaded, the query to retrieve the data will fail. See this post for
        more information:
        https://community.playfab.com/hc/community/posts/205469488-How-to-upload-files-to-PlayFab-s-Content-Service.
        Also, please be aware that the Content service is specifically PlayFab's
        CDN offering, for which standard CDN rates apply.
      operationId: GetContentDownloadUrl
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetContentDownloadUrlRequest'
      responses:
        '200':
          $ref: '#/components/responses/GetContentDownloadUrlResult'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - SecretKey: []
components:
  schemas:
    GetContentDownloadUrlRequest:
      type: object
      properties:
        HttpMethod:
          description: >-
            HTTP method to fetch item - GET or HEAD. Use HEAD when only fetching
            metadata. Default is GET.
          type: string
        Key:
          description: >-
            Key of the content item to fetch, usually formatted as a path, e.g.
            images/a.png
          type: string
        ThruCDN:
          description: >-
            True to download through CDN. CDN provides higher download bandwidth
            and lower latency. However, if you want the latest, non-cached
            version of the content during development, set this to false.
            Default is true.
          type: boolean
      required:
        - Key
      example:
        Key: images/sword_icon.png
    GetContentDownloadUrlResult:
      type: object
      properties:
        URL:
          description: >-
            URL for downloading content via HTTP GET or HEAD method. The URL
            will expire in approximately one hour.
          type: string
      example:
        URL: https://...
    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
  responses:
    GetContentDownloadUrlResult:
      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/GetContentDownloadUrlResult'
            example:
              code: 200
              status: OK
              data:
                URL: https://...
    ApiErrorWrapper:
      description: This is the outer wrapper for all responses with errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorWrapper'
  securitySchemes:
    SecretKey:
      type: apiKey
      in: header
      name: X-SecretKey
      description: >-
        This API requires a title secret key, available to title admins, from
        PlayFab Game Manager.

````

## Related topics

- [Get Content Download Url](/services/playfab/api-references/rest/server/content/get-content-download-url.md)
- [Content Delivery Network quickstart](/services/playfab/data-analytics/legacy/content-delivery-network/quickstart.md)
- [Content & Configuration Reads Meter API Description](/services/playfab/pricing/meters/file-reads.md)
- [Daily and Monthly CDN Usage Report](/services/playfab/data-analytics/learn-data/reports/daily-and-monthly-cdn-usage-report.md)
- [Get Asset Download Url](/services/playfab/api-references/rest/multiplayer/multiplayer-server/get-asset-download-url.md)
