<!--
{
  "availability" : [
    "Sign in with Apple REST API: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "signinwithapple",
  "identifier" : "/documentation/SigninwithAppleRESTAPI/Fetch-Apple's-public-key-for-verifying-token-signature",
  "metadataVersion" : "0.1.0",
  "role" : "Web Service Endpoint",
  "symbol" : {
    "kind" : "Web Service Endpoint",
    "modules" : [
      "Sign in with Apple REST API"
    ],
    "preciseIdentifier" : "rest:appleid_signin_server_api:get:auth-keys"
  },
  "title" : "Fetch Apple’s public key to verify token signatures"
}
-->

# Fetch Apple’s public key to verify token signatures

Fetch Apple’s public key to verify ID token and server notification signatures.

## Discussion

If successful, the HTTP status code is 200 (OK) and the [`JWKSet.Keys`](/documentation/SigninwithAppleRESTAPI/JWKSet/Keys-data.dictionary) object contains Apple’s public key. For more information, see <doc://com.apple.signinwithapple/documentation/signinwithapple/verifying-a-user> and <doc://com.apple.signinwithapple/documentation/signinwithapple/processing-changes-for-sign-in-with-apple-accounts#Decode-and-validate-the-notifications>.

> Note:
> The endpoint can return multiple keys, and the count of keys can vary over time. From this set of keys, select the key with the matching key identifier (`kid`) to verify the signature of any JSON Web Token (JWT) issued by Apple. For more information, see the [JSON Web Signature](https://tools.ietf.org/html/rfc7515) specification.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)