Unity Authentication API

Player sign-in and token management

Business capability
Identity & Access Management BC-620.20

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /v1/authentication/anonymous Sign a player in anonymously · Sign In Anonymously #
Ask an LLM
“Can players start playing without creating an account?”
“What happens if an anonymous player's session token doesn't match anyone?”
Tell an agent
Sign the player in anonymously with session tokens {sessionTokens}.
Get an access token for a guest player using session tokens {sessionTokens}.
POST /v1/authentication/usernamepassword/sign-in Sign a player in with username and password · Sign In With Username and Password #
Ask an LLM
“How do I log an existing player in with a username and password?”
“Can a returning player authenticate using credentials they already registered?”
Tell an agent
Sign in player {username} with password {password}.
Log in the existing account {username} using password {password}.
POST /v1/authentication/usernamepassword/sign-up Register a player with username and password · Sign Up With Username and Password #
Ask an LLM
“Can new players create an account with a username and password?”
“What do I need to register a brand-new player account?”
Tell an agent
Sign up a new player with username {username} and password {password}.
Register account {username} with password {password}.
POST /v1/authentication/external-token Sign a player in with an external identity token · Sign In With External Token #
Ask an LLM
“Can players sign in to my Unity game with their Google, Apple or Steam account?”
“Is it possible to only sign in an existing player without creating a new one from an external token?”
Tell an agent
Sign the player in with their {idProvider} token {token}.
Authenticate using {idProvider} token {token}, sign-in only: {signInOnly}.
POST /v1/token/refresh Refresh a player's access token · Refresh Authentication Token #
Ask an LLM
“My player's access token expired; can I get a new one without logging in again?”
“What do I exchange to renew a session token?”
Tell an agent
Refresh the access token using refresh token {refreshToken}.
Exchange refresh token {refreshToken} for a new access token.

Documentation

📖
Documentation
https://docs.unity.com/ugs/en-us/manual/authentication/manual/rest-api
📖
APIReference
https://services.docs.unity.com/player-auth-admin/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/cloud-code/manual
📖
APIReference
https://services.docs.unity.com/cloud-code-admin/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/cloud-save/manual/reference/rest-api
📖
APIReference
https://services.docs.unity.com/cloud-save-admin/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/economy/manual/write-configuration/rest-api
📖
APIReference
https://services.docs.unity.com/economy-admin/v2/index.html
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/leaderboards/manual/write-configuration/rest-api
📖
APIReference
https://services.docs.unity.com/leaderboards-admin/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/remote-config/manual/write-configuration/rest-api
📖
APIReference
https://services.docs.unity.com/remote-config-admin/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/analytics/manual/rest-api
📖
APIReference
https://services.docs.unity.com/analytics/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/lobby/manual/lobby-apis
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/matchmaker/manual/matchmaker-api
📖
APIReference
https://services.docs.unity.com/matchmaker-admin/v3/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/relay/manual/rest-api
📖
APIReference
https://services.docs.unity.com/relay-allocations/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/game-server-hosting/manual/api/rest-api
📖
APIReference
https://services.docs.unity.com/multiplay-config/v1/
📖
Documentation
https://docs.unity.com/ugs/manual/ccd/manual/ccd-rest-api
📖
APIReference
https://services.docs.unity.com/content-delivery-management/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/cloud-code/manual/triggers
📖
APIReference
https://services.docs.unity.com/triggers-admin/v1/
📖
APIReference
https://services.docs.unity.com/scheduler-admin/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/friends/manual/overview
📖
APIReference
https://services.docs.unity.com/friends/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/moderation/manual/overview
📖
APIReference
https://services.docs.unity.com/moderation/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/push-notifications/manual/overview
📖
Documentation
https://docs.unity.com/ugs/manual/devops/manual/build-automation/build-automation-api
📖
APIReference
https://build-api.cloud.unity3d.com/docs/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/devops/manual/unity-version-control
📖
APIReference
https://services.docs.unity.com/guides/unity-version-control-cm/overview/
📖
Documentation
https://docs.unity.com/ugs/manual/overview/manual/access-control
📖
APIReference
https://services.docs.unity.com/access/v1/
📖
Documentation
https://support.unity.com/hc/en-us/articles/38766626849684-How-do-I-configure-SCIM-provisioning
📖
APIReference
https://services.docs.unity.com/scim/v2/
📖
Documentation
https://unity.com/products/distributed-authority
📖
APIReference
https://services.docs.unity.com/distributed-authority/v1/
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/safe-text/manual/overview
📖
Documentation
https://docs.unity.com/ugs/en-us/manual/asset-manager/manual
📖
APIReference
https://services.docs.unity.com/assets-manager/v1/
📖
Documentation
https://docs.unity.com/ads/en-us/manual/MonetizationResourceCenter
📖
APIReference
https://services.docs.unity.com/monetize/v1/

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/unity:unity-authentication-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

unity-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Unity Player Authentication API
  description: The Unity Player Authentication REST API verifies player identity and manages authentication workflows. It provides endpoints for anonymous sign-in, platform-specific authentication (Google, Apple, Steam, Facebook), custom identity provider integration, token refresh, and account linking. Supports both the player-facing authentication flow and admin operations for player management.
  version: v1.0.0
  termsOfService: https://unity.com/legal/terms-of-service
  contact:
    name: Unity Support
    url: https://support.unity.com
  license:
    name: Unity Terms of Service
    url: https://unity.com/legal/terms-of-service
servers:
- url: https://player-auth.services.api.unity.com
  description: Unity Player Authentication Production Server
security:
- bearerAuth: []
tags:
- name: Authentication
  description: Player sign-in and token management
paths:
  /v1/authentication/anonymous:
    post:
      operationId: signInAnonymously
      summary: Sign In Anonymously
      description: Signs in a player anonymously and returns an access token. Creates a new player account if the session ID does not match any existing player.
      tags:
      - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnonymousSignInRequest'
      responses:
        '200':
          description: Authentication successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
  /v1/authentication/usernamepassword/sign-in:
    post:
      operationId: signInWithUsernamePassword
      summary: Sign In With Username and Password
      description: Authenticates a player using their username and password credentials.
      tags:
      - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UsernamePasswordSignInRequest'
      responses:
        '200':
          description: Authentication successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          description: Bad Request
        '401':
          description: Invalid credentials
  /v1/authentication/usernamepassword/sign-up:
    post:
      operationId: signUpWithUsernamePassword
      summary: Sign Up With Username and Password
      description: Creates a new player account with username and password credentials.
      tags:
      - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UsernamePasswordSignUpRequest'
      responses:
        '200':
          description: Account created and signed in
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          description: Bad Request - invalid or duplicate username
  /v1/authentication/external-token:
    post:
      operationId: signInWithExternalToken
      summary: Sign In With External Token
      description: Authenticates a player using a token from an external identity provider such as Google, Apple, Steam, Facebook, or a custom provider.
      tags:
      - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExternalTokenSignInRequest'
      responses:
        '200':
          description: Authentication successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          description: Bad Request
        '401':
          description: Invalid external token
  /v1/token/refresh:
    post:
      operationId: refreshToken
      summary: Refresh Authentication Token
      description: Exchanges a refresh token for a new access token without requiring the player to re-authenticate.
      tags:
      - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefreshTokenRequest'
      responses:
        '200':
          description: New access token issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '401':
          description: Invalid or expired refresh token
components:
  schemas:
    RefreshTokenRequest:
      type: object
      required:
      - refreshToken
      properties:
        refreshToken:
          type: string
    AnonymousSignInRequest:
      type: object
      required:
      - sessionTokens
      properties:
        sessionTokens:
          type: array
          items:
            type: string
          description: List of session tokens for anonymous sign-in continuity
    ExternalTokenSignInRequest:
      type: object
      required:
      - idProvider
      - token
      properties:
        idProvider:
          type: string
          enum:
          - google
          - apple
          - steam
          - facebook
          - custom
          description: The external identity provider
        token:
          type: string
          description: The identity token from the external provider
        signInOnly:
          type: boolean
          description: If true, only sign in and do not create a new account
    UsernamePasswordSignUpRequest:
      type: object
      required:
      - username
      - password
      properties:
        username:
          type: string
          minLength: 3
          maxLength: 20
        password:
          type: string
          minLength: 8
    AuthResponse:
      type: object
      properties:
        idToken:
          type: string
          description: JWT access token
        sessionToken:
          type: string
        expiresIn:
          type: integer
          description: Token expiry in seconds
        userId:
          type: string
        isNew:
          type: boolean
          description: True if a new account was created
    UsernamePasswordSignInRequest:
      type: object
      required:
      - username
      - password
      properties:
        username:
          type: string
        password:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    serviceAccountAuth:
      type: http
      scheme: basic
externalDocs:
  description: Unity Player Authentication Documentation
  url: https://docs.unity.com/ugs/en-us/manual/authentication/manual/rest-api