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

# Link Steam Account

> Links the Steam account associated with the provided Steam authentication ticket to the user's PlayFab account

## Error codes

This operation may return the following PlayFab errors:

| Error | Code |
| --- | --- |
| AccountAlreadyLinked | 1011 |
| AccountLinkedToABannedPlayer | 1613 |
| InvalidSteamTicket | 1010 |
| LinkedAccountAlreadyClaimed | 1012 |
| SteamNotEnabledForTitle | 1258 |
| SteamUserNotFound | 1513 |




## OpenAPI

````yaml post /Client/LinkSteamAccount
openapi: 3.0.0
info:
  version: '260922'
  title: PlayFab Client API
  description: >-
    APIs which provide the full range of PlayFab features available to the
    client - authentication, account and data management, inventory, friends,
    matchmaking, reporting, and platform-specific functionality
  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: Advertising
    description: Advertising 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
  - name: Trading
    description: Trading Management APIs
paths:
  /Client/LinkSteamAccount:
    post:
      tags:
        - Account Management
      summary: Link Steam Account
      description: >
        Links the Steam account associated with the provided Steam
        authentication ticket to the user's PlayFab account


        ## Error codes


        This operation may return the following PlayFab errors:


        | Error | Code |

        | --- | --- |

        | AccountAlreadyLinked | 1011 |

        | AccountLinkedToABannedPlayer | 1613 |

        | InvalidSteamTicket | 1010 |

        | LinkedAccountAlreadyClaimed | 1012 |

        | SteamNotEnabledForTitle | 1258 |

        | SteamUserNotFound | 1513 |
      operationId: LinkSteamAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkSteamAccountRequest'
        description: >-
          Steam authentication is accomplished with the Steam Session Ticket.
          More information on the Ticket can be found in the Steamworks SDK,
          here: https://partner.steamgames.com/documentation/auth (requires
          sign-in). NOTE: For Steam authentication to work, the title must be
          configured with the Steam Application ID and Publisher Key in the
          PlayFab Game Manager (under Properties). Information on creating a
          Publisher Key (referred to as the Secret Key in PlayFab) for your
          title can be found here:
          https://partner.steamgames.com/documentation/webapi#publisherkey.
      responses:
        '200':
          $ref: '#/components/responses/LinkSteamAccountResult'
        '400':
          $ref: '#/components/responses/ApiErrorWrapper'
      security:
        - SessionTicket: []
components:
  schemas:
    LinkSteamAccountRequest:
      description: >-
        Steam authentication is accomplished with the Steam Session Ticket. More
        information on the Ticket can be found in the Steamworks SDK, here:
        https://partner.steamgames.com/documentation/auth (requires sign-in).
        NOTE: For Steam authentication to work, the title must be configured
        with the Steam Application ID and Publisher Key in the PlayFab Game
        Manager (under Properties). Information on creating a Publisher Key
        (referred to as the Secret Key in PlayFab) for your title can be found
        here: https://partner.steamgames.com/documentation/webapi#publisherkey.
      type: object
      properties:
        CustomTags:
          description: >-
            The optional custom tags associated with the request (e.g. build
            number, external trace identifiers, etc.).
          type: object
        ForceLink:
          description: >-
            If another user is already linked to the account, unlink the other
            user and re-link.
          type: boolean
        SteamTicket:
          description: >-
            Authentication token for the user, returned as a byte array from
            Steam, and converted to a string (for example, the byte 0x08 should
            become "08").
          type: string
        TicketIsServiceSpecific:
          description: >-
            True if ticket was generated using
            ISteamUser::GetAuthTicketForWebAPI() using "AzurePlayFab" as the
            identity string. False if the ticket was generated with
            ISteamUser::GetAuthSessionTicket().
          type: boolean
      required:
        - SteamTicket
      example:
        SteamTicket: steamTicketID
        TicketIsServiceSpecific: true
    LinkSteamAccountResult:
      type: object
      properties: {}
    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:
    LinkSteamAccountResult:
      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/LinkSteamAccountResult'
    ApiErrorWrapper:
      description: This is the outer wrapper for all responses with errors
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiErrorWrapper'
  securitySchemes:
    SessionTicket:
      type: apiKey
      in: header
      name: X-Authorization
      description: >-
        This API requires a client session ticket, available from any Client
        Login function.

````

## Related topics

- [Link Steam Account](/api-reference/account-management/link-steam-account.md)
- [PFAccountManagementLinkSteamAccountRequest](/services/playfab/api-references/c/pfaccountmanagementtypes/structs/pfaccountmanagementlinksteamaccountrequest.md)
- [PFAccountManagementClientLinkSteamAccountAsync](/services/playfab/api-references/c/pfaccountmanagement/functions/pfaccountmanagementclientlinksteamaccountasync.md)
- [Account linking strategies for PlayFab Game Saves](/services/playfab/player-progression/game-saves/linking.md)
- [PFAccountManagementClientUnlinkSteamAccountAsync](/services/playfab/api-references/c/pfaccountmanagement/functions/pfaccountmanagementclientunlinksteamaccountasync.md)
