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

# Setup Push Notification

> Sets the Amazon Resource Name (ARN) for iOS and Android push notifications. Documentation on the exact restrictions can be found at: http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html. Currently, Amazon device Messaging is not supported.

## Error codes

This operation may return the following PlayFab errors:

| Error | Code |
| --- | --- |
| PushServiceError | 1095 |
| ValueAlreadyExists | 1031 |




## OpenAPI

````yaml post /Admin/SetupPushNotification
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Admin API
  description: >-
    APIs for managing title configurations, uploaded Game Server code
    executables, and user data
  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: Authentication
    description: Authentication APIs
  - name: Characters
    description: Characters APIs
  - name: Content
    description: Content Service APIs
  - name: Custom Server Management
    description: Custom Server Management APIs
  - name: Matchmaking
    description: Matchmaking 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: ScheduledTask
    description: Task management APIs
  - name: Segments
    description: Segment 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
  - name: Xbox Store
    description: Xbox Store APIs
paths:
  /Admin/SetupPushNotification:
    post:
      tags:
        - Title-Wide Data Management
      summary: Setup Push Notification
      description: >
        Sets the Amazon Resource Name (ARN) for iOS and Android push
        notifications. Documentation on the exact restrictions can be found at:
        http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformApplication.html.
        Currently, Amazon device Messaging is not supported.


        ## Error codes


        This operation may return the following PlayFab errors:


        | Error | Code |

        | --- | --- |

        | PushServiceError | 1095 |

        | ValueAlreadyExists | 1031 |
      operationId: SetupPushNotification
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetupPushNotificationRequest'
        description: >-
          When using the Apple Push Notification service (APNS) or the
          development version (APNS_SANDBOX), the APNS Private Key should be
          used as the Credential in this call. With Google Cloud Messaging
          (GCM), the Android API Key should be used. The current ARN (if one
          exists) can be overwritten by setting the OverwriteOldARN boolean to
          true.
      responses:
        '200':
          $ref: '#/components/responses/SetupPushNotificationResult'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - SecretKey: []
components:
  schemas:
    SetupPushNotificationRequest:
      description: >-
        When using the Apple Push Notification service (APNS) or the development
        version (APNS_SANDBOX), the APNS Private Key should be used as the
        Credential in this call. With Google Cloud Messaging (GCM), the Android
        API Key should be used. The current ARN (if one exists) can be
        overwritten by setting the OverwriteOldARN boolean to true.
      type: object
      properties:
        Credential:
          description: >-
            Credential is the Private Key for APNS/APNS_SANDBOX, and the API Key
            for GCM
          type: string
        Key:
          description: for APNS, this is the PlatformPrincipal (SSL Certificate)
          type: string
        Name:
          description: >-
            This field is deprecated and any usage of this will cause the API to
            fail.
          type: string
        OverwriteOldARN:
          description: >-
            replace any existing ARN with the newly generated one. If this is
            set to false, an error will be returned if notifications have
            already setup for this platform.
          type: boolean
        Platform:
          allOf:
            - $ref: '#/components/schemas/PushSetupPlatform'
          description: >-
            supported notification platforms are Apple Push Notification Service
            (APNS and APNS_SANDBOX) for iOS and Google Cloud Messaging (GCM) for
            Android
      required:
        - Platform
        - Credential
        - OverwriteOldARN
      example:
        Platform: APNS_SANDBOX
        Key: MyKey123
        Credential: MyCredentialsXYZ
    PushSetupPlatform:
      type: string
      enum:
        - GCM
        - APNS
        - APNS_SANDBOX
    SetupPushNotificationResult:
      type: object
      properties:
        ARN:
          description: Amazon Resource Name for the created notification topic.
          type: string
      example:
        ARN: arn:aws:iam::123456789012:user/David
    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:
    SetupPushNotificationResult:
      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/SetupPushNotificationResult'
            example:
              code: 200
              status: OK
              data:
                ARN: arn:aws:iam::123456789012:user/David
    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

- [Setup Push Notification](/api-reference/title-wide-data-management/setup-push-notification.md)
- [Push Notifications quickstart](/services/playfab/live-service-management/game-configuration/title-communications/push-notifications/quickstart.md)
- [Push Notification for iOS](/services/playfab/live-service-management/game-configuration/title-communications/push-notifications/push-notifications-for-ios.md)
- [Push Notification for Android](/services/playfab/live-service-management/game-configuration/title-communications/push-notifications/push-notifications-for-android.md)
- [Push Notifications](/services/playfab/live-service-management/game-configuration/title-communications/push-notifications/index.md)
