Find which bindable declaration a presented issuer names, for this tenant

The platform twin of the tenant plane's resolve, for an operator composing a
binding on a customer's behalf. It answers which of the issuers a binding in
THIS tenant may name is the one a presented token's iss identifies,
or none.

🔴 The comparison is not string equality, which is why this operation exists. A declaration is stored in canonical form — lowercase scheme and host, default port removed, every trailing slash stripped from the path — while a token's iss arrives exactly as its issuer wrote it, and Auth0 always emits the trailing slash. A raw comparison therefore reports NO MATCH for a configuration that is correct and will authenticate at runtime, and no spelling of the declaration can make it agree. This runs the SAME selection the operator probe and authentication run, so a client renders a verdict instead of computing one.

🔴 It is a POST, and that is deliberate — do not "correct" it

to a GET. The edge and environment NGINX both log
"$request", the full request line including the query string,

so an iss in a query parameter — or in a path segment, which is the
same thing doubly encoded — would become a durable tenant-to-issuer correlation
in an access log whose retention this surface does not control. The identifier
travels in a body so that it is written nowhere.

🔴 It carries the READ scope, not a write one, and it does not acquire a

write's gates: rejectRootTarget is NOT called, because that rule
exists to keep an audit row from being mis-attributed and this operation writes
no row and emits none. The ROOT tenant is a valid target here, exactly as it is
for the reads beside it.

No match is a 200 with matched: null — never

a 404 and never a 204. A distinct status would be a
third meaning of 404 on this controller, alongside the tenant-existence 404, and
a caller could then tell them apart. A blank, malformed or inadmissible
iss is likewise a 200/null rather than a
400. The one 400 this operation can answer is TRANSPORT

— a body it cannot read, or one carrying a field it does not declare — which says
the request was not one this operation accepts and says nothing about the tenant.

🔴 The maxLength the request schema publishes is

DOCUMENTARY, not a second refusal. It names the bound
canonicalizeIssuerUrl applies before it parses anything; an

oversized iss is still answered 200 with
matched: null, exactly like every other value nothing declares. A

generated client or schema-validating gateway that refused an oversized value
LOCALLY would author on the client side the very second refusal shape this
operation deliberately does not have — so read it as the rule's own bound,
published for a reader, never as a precondition to enforce.

It resolves over the bindable set — the same rows ../bindable-issuers lists, with no enabled filter — and

a matched row is identical to the row that list publishes for it, inherited
displayName withheld and all.

Not entitlement-gated. The operator is the party that sells the

edition, so refusing them on it would be the platform refusing itself.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
uuid
required
Body Params

The presented issuer identifier, and nothing else. The body carries the iss claim ALONE — never the token, never sub, aud or exp — and any other field is REJECTED rather than ignored.

The issuer identifier a presented token carries, submitted to find out which declaration — if any — it names. Sent exactly as the token carried it: the server canonicalizes, because the comparison has one home and a client that normalized first would be a second author of it.

string
length ≤ 2048

The iss claim, verbatim from the token. A trailing slash, a non-default port and a percent-encoded path segment are all handled by the server's canonical form, so no client-side normalization is needed or wanted. A blank, oversized or inadmissible value is not an error: it simply names no declaration. The maxLength below is therefore DOCUMENTARY — it names the bound the server's canonicalization applies, not a refusal the server makes — so a generated client or schema-validating gateway must not enforce it as a precondition: doing so would author on the client side a second refusal shape this operation deliberately does not have.

Headers
string
enum
Defaults to application/json

Generated from available response content types

Allowed:
Responses

Language
Credentials
Bearer
JWT
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json
application/problem+json