Mock an OpenID Connect discovery document
A GET mock at /.well-known/openid-configuration with issuer, authorization_endpoint, token_endpoint, and jwks_uri.
OpenID Connect clients bootstrap by fetching a discovery document from /.well-known/openid-configuration and reading the endpoints out of it. This template serves that document, so you can test the discovery step — and your client's handling of it — without standing up an identity provider.
Stands in for a third-party API endpoint.
Response payload
{"issuer":"{{mock.url}}","authorization_endpoint":"{{mock.url}}/authorize","token_endpoint":"{{mock.url}}/token","jwks_uri":"{{mock.url}}/.well-known/jwks.json","response_types_supported":["code"],"subject_types_supported":["public"],"id_token_signing_alg_values_supported":["RS256"]}
Fields worth knowing
| Field | What it means |
|---|---|
| issuer | The issuer URL clients compare against a token's iss claim; it must exactly match the base URL. |
| authorization_endpoint | Where a client sends the user to log in. |
| token_endpoint | Where a client exchanges a code for tokens. |
| jwks_uri | Where a client fetches the public keys — pairs with the jwks-endpoint template. |
Create the mock
curl -X POST https://quickmock.dev/api/mocks \
-H 'Content-Type: application/json' \
-d '{
"method": "GET",
"response_status": 200,
"content_type": "application/json",
"path_suffix": ".well-known/openid-configuration",
"response_body": "{\"issuer\":\"{{mock.url}}\",\"authorization_endpoint\":\"{{mock.url}}/authorize\",\"token_endpoint\":\"{{mock.url}}/token\",\"jwks_uri\":\"{{mock.url}}/.well-known/jwks.json\",\"response_types_supported\":[\"code\"],\"subject_types_supported\":[\"public\"],\"id_token_signing_alg_values_supported\":[\"RS256\"]}"
}'
Call it
curl https://quickmock.dev/m/<slug>/.well-known/openid-configuration
What you get
GET /m/<slug>/.well-known/openid-configuration -> 200 an OIDC discovery document
every advertised endpoint resolves to this mock via the {{mock.url}} token
How this differs from the real thing
Every URL in this document is built from the {{mock.url}} token, so it resolves to this mock's own address on every request — but nothing behind those endpoints is implemented, so a client can complete discovery and no further step. Editing the response body needs the admin token from the create banner; see /guide/manage-mocks-from-any-device for how that works.
Sources
FAQ
- Do I need to edit anything before using it?
- No. Every URL in the document is written as the {{mock.url}} token, which expands to this mock's own https://quickmock.dev/m/<slug> address on each request — so the document is self-consistent the moment you create it. You only need to edit it if you want the endpoints to point somewhere else.
- Why does the issuer have to match exactly?
- Clients compare the issuer in this document against the iss claim of the tokens they receive, and reject a mismatch. A trailing slash is enough to break it, which makes this a useful thing to test deliberately.
- Can I complete a real login flow against it?
- No. The document advertises endpoints, but nothing implements them. Pair it with the OAuth2 token template for the token step and the JWKS template for key discovery to cover more of the flow.
Ready to use it?
Pairs well with this guide: Mock a REST API endpoint
Related templates
Last updated: 2026-10-17