---
id: scope-jwks
title: Get the scope token public keys
description: >-
  Returns the JSON Web Key Set (JWKS) with the public keys you can use to verify
  the signature of the `token_for_links` JWT returned in the
  [scope](/docs/api/scope-read) object. This endpoint is public: it doesn't
  require authentication.
sidebar_label: Get the scope token public keys
hide_title: true
hide_table_of_contents: true
api: >-
  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
sidebar_class_name: get api-method
info_path: docs/api/nullplatform-api
custom_edit_url: null
canonical: 'https://docs.nullplatform.com/docs/api/scope-jwks'
---
<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Get the scope token public keys"}
>
</Heading>

<MethodEndpoint
  method={"get"}
  path={"/scope/.well-known/jwks.json"}
  context={"endpoint"}
>

</MethodEndpoint>

Returns the JSON Web Key Set (JWKS) with the public keys you can use to verify the signature of the `token_for_links` JWT returned in the [scope](/docs/api/scope-read) object. This endpoint is public: it doesn't require authentication.

<ParamsDetails
  parameters={undefined}
>

</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={undefined}
>

</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The operation was successful.","content":{"application/json":{"schema":{"type":"object","required":["keys"],"properties":{"keys":{"type":"array","description":"The public keys, in JWK format.","items":{"type":"object","required":["kty","n","e","alg","use","kid"],"properties":{"kty":{"type":"string","description":"The key type.","example":"RSA"},"n":{"type":"string","description":"The RSA modulus, Base64url-encoded."},"e":{"type":"string","description":"The RSA public exponent, Base64url-encoded.","example":"AQAB"},"alg":{"type":"string","description":"The signing algorithm.","example":"RS256"},"use":{"type":"string","description":"The intended use of the key.","example":"sig"},"kid":{"type":"string","description":"The key ID.","example":"key-1"}}}}}}}}},"4XX":{"description":"The request couldn't be processed. For example, a parameter is invalid, the resource doesn't exist, or you don't have permission. The body is a problem details object (RFC 9457).","content":{"application/problem+json":{"schema":{"type":"object","description":"Describes what went wrong, following the RFC 9457 problem details format.","required":["type","title","status"],"properties":{"type":{"type":"string","description":"A URI that identifies the kind of problem. It's an identifier, not a link, and it's the same every time this problem occurs.","example":"urn:nullplatform:error:routes-helper:invalid-params"},"title":{"type":"string","description":"A short, human-readable summary of the problem.","example":"There are invalid parameters on the request"},"status":{"type":"integer","description":"The HTTP status code of the response.","example":400},"code":{"type":"string","description":"A stable, machine-readable error code. Use it to handle specific errors in your integrations.","example":"ROUTES_HELPER.INVALID_PARAMS"},"detail":{"type":"string","nullable":true,"description":"More information about what went wrong in this request, when available.","example":null},"errors":{"type":"array","description":"One entry per invalid field or parameter. Only present on validation errors.","items":{"type":"object","properties":{"field":{"type":"string","description":"The name of the invalid field or parameter.","example":"application_id"},"in":{"type":"string","description":"Where the field was sent: `body`, `query`, or `params` (path parameters).","example":"query"},"issue":{"type":"string","description":"What's wrong with the field, such as `required` or `invalid`.","example":"invalid"},"value":{"description":"The value that was sent, when relevant.","example":"not-a-number"},"message":{"type":"string","description":"A human-readable explanation of the issue."}}}},"message":{"type":"string","deprecated":true,"description":"Same value as `title`, kept for backward compatibility. Use `title` or `code` instead.","example":"There are invalid parameters on the request"},"traceId":{"type":"string","description":"An identifier for this request, when available. Include it when you contact nullplatform support."}}}}}},"5XX":{"description":"Something went wrong on nullplatform's side. The body is a problem details object (RFC 9457).","content":{"application/problem+json":{"schema":{"type":"object","description":"Describes what went wrong, following the RFC 9457 problem details format.","required":["type","title","status"],"properties":{"type":{"type":"string","description":"A URI that identifies the kind of problem. It's an identifier, not a link, and it's the same every time this problem occurs.","example":"about:blank"},"title":{"type":"string","description":"A short, human-readable summary of the problem.","example":"Oops.. there was an internal error"},"status":{"type":"integer","description":"The HTTP status code of the response.","example":500},"code":{"type":"string","description":"A stable, machine-readable error code. Use it to handle specific errors in your integrations."},"detail":{"type":"string","nullable":true,"description":"More information about what went wrong in this request, when available.","example":null},"message":{"type":"string","deprecated":true,"description":"Same value as `title`, kept for backward compatibility. Use `title` or `code` instead.","example":"Oops.. there was an internal error"},"traceId":{"type":"string","description":"An identifier for this request, when available. Include it when you contact nullplatform support."}}}}}}}}
>

</StatusCodes>

