

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Player Authentication JWKS API",
    "version": "1.0.0",
    "contact": {
      "name": "Player auth",
      "url": "https://discussions.unity.com/tag/authentication"
    },
    "description": "# Introduction\nGet the JSON Web Key Set (JWKS) for verifying the ID tokens that Unity Authentication issues to players.\n"
  },
  "servers": [
    {
      "url": "https://player-auth.services.api.unity.com/.well-known"
    }
  ],
  "paths": {
    "/jwks.json": {
      "parameters": [],
      "get": {
        "operationId": "GetJSONWebKeySet",
        "summary": "Get JWKS",
        "description": "Get the JSON Web Key Set for validating authentication tokens.",
        "tags": [
          "Player Authentication"
        ],
        "security": [],
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JSONWebKeySet"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticationError"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "JSONWebKey": {
        "title": "JSONWebKey",
        "description": "JSON Web Key for validating authentication tokens.",
        "type": "object",
        "required": [
          "alg",
          "kid",
          "use",
          "kty"
        ],
        "properties": {
          "alg": {
            "type": "string",
            "example": "RS256"
          },
          "e": {
            "type": "string",
            "example": "43urutru"
          },
          "kid": {
            "type": "string",
            "example": "public-0000000-0000-0000-0000-111111111111"
          },
          "kty": {
            "type": "string",
            "example": "RSA"
          },
          "n": {
            "title": "RSA public key",
            "type": "string",
            "example": "igu4jtou4389ru34890ut90i34r0-i39w4ru90u"
          },
          "crv": {
            "title": "ECDSA curve name",
            "type": "string"
          },
          "x": {
            "title": "ECDSA x coordinate",
            "type": "string"
          },
          "y": {
            "title": "ECDSA y coordinate",
            "type": "string"
          },
          "use": {
            "type": "string",
            "example": "sig"
          }
        }
      },
      "JSONWebKeySet": {
        "title": "JSONWebKeySet",
        "description": "JSON Web Key Set for validating authentication tokens.",
        "type": "object",
        "properties": {
          "keys": {
            "items": {
              "$ref": "#/components/schemas/JSONWebKey"
            },
            "type": "array"
          }
        }
      },
      "AuthenticationError": {
        "type": "object",
        "required": [
          "title",
          "status",
          "detail"
        ],
        "properties": {
          "title": {
            "type": "string",
            "example": "Bad Request"
          },
          "status": {
            "type": "integer",
            "example": 400
          },
          "detail": {
            "type": "string",
            "example": "Something is wrong"
          },
          "details": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/ReadNotificationsResponse"
                },
                {
                  "type": "object"
                }
              ]
            },
            "example": [
              {
                "code": "ERROR_CODE_123",
                "path": "nested.value",
                "message": "Invalid value"
              }
            ]
          }
        }
      },
      "ReadNotificationsResponse": {
        "type": "object",
        "required": [
          "notifications"
        ],
        "properties": {
          "notifications": {
            "type": "array",
            "description": "List of notifications",
            "items": {
              "$ref": "#/components/schemas/Notification"
            }
          }
        }
      },
      "Notification": {
        "type": "object",
        "required": [
          "id",
          "type",
          "playerID",
          "caseID",
          "projectID",
          "message",
          "createdAt"
        ],
        "properties": {
          "id": {
            "description": "The notification identifier",
            "type": "string"
          },
          "type": {
            "description": "The notification type, defaults to DSA",
            "type": "string",
            "example": "DSA"
          },
          "playerID": {
            "description": "The player identifier",
            "type": "string"
          },
          "caseID": {
            "description": "The case identifier",
            "type": "string"
          },
          "projectID": {
            "description": "The project identifier",
            "type": "string"
          },
          "message": {
            "description": "The message content",
            "type": "string"
          },
          "createdAt": {
            "description": "Unix epoch time the notification was triggered",
            "type": "string"
          },
          "updatedAt": {
            "description": "Unix epoch time the notification was last updated",
            "type": "string"
          },
          "deletedAt": {
            "description": "Unix epoch time the notification was soft deleted",
            "type": "string"
          }
        }
      }
    }
  },
  "security": [
    {
      "Client": []
    }
  ],
  "tags": [
    {
      "name": "Player Authentication",
      "description": "For more information about Unity Authentication and how to use these APIs, please read the [Client Authentication Documentation](https://docs.unity.com/en-us/services-web-apis/client-auth). It includes information about available authentication options, login states, and enforcing login state for the end player."
    }
  ]
}
```