27% of Part I — the exam's largest single knowledge area alongside Building Flows.
7 sub-topics · this deck covers sub-topic 5 of 7
↑ Workflows Overview Module OverviewAn API Endpoint flow (Sub-topic 2) can be invoked by any external client that calls its designated endpoint with valid security credentials — but "valid" depends entirely on which of three security levels you chose when configuring the endpoint. The exam focuses on the two ends of that spectrum: registered-webhook-with-a-client-token vs. wide-open public service.
The endpoint is secured with OAuth 2.0 scoped access tokens. An admin adds the appropriate scopes to any app integration that needs to call the API. This method supports the OAuth client credentials grant type using a private JSON Web Token (JWT), and the flow triggers only after the Okta authorization server receives and approves the access token. Custom authorization servers aren't supported for this method.
Selecting Secure with client token auto-generates a client token, added as the alias value in both the Invoke URL and Resume URL. To call it, the requester passes that token either as the clientToken query parameter (default behavior) or in the x-api-client-token header (the more secure option — don't use both together).
Selecting None (public service) makes the invoke URL itself the only barrier — no token, no header, nothing else to check. To invoke either a client-token or public-service flow, the caller performs a GET or POST to the Invoke URL (POST if data needs to go in the request body). After invocation, the flow sends its output back as a response object.
Both the client-token and public-service invoke URLs are "constructed using a flow alias" — the alias is what makes the URL predictable/reusable rather than an opaque, ever-changing address. This is why rotating or exposing a public-service flow's URL is effectively equivalent to handing out an unauthenticated API key.
This sub-topic is a deep dive on one branch of Sub-topic 2 (API Endpoint flows). It also foreshadows Sub-topic 6: public-service and client-token flows are exactly the kind of "synchronous," externally-callable flows Okta's execution-limits documentation places in the Yellow Zone, subject to a 60-second synchronous timeout.
→ Assuming "webhook-exposed" and "public service" are the same thing — a client-token webhook still requires a secret (the token); public service requires nothing at all.
→ Passing the client token in both the query parameter and the header at once — Okta's docs explicitly say not to combine them.
→ Forgetting custom authorization servers aren't supported for the OAuth 2.0 security level — only the standard Okta authorization server applies.
Sources: help.okta.com — Invoke a flow with an API endpoint (ext-invoke-api-endpoint-flow); Invoke a flow with an API as a public service; Invoke a flow with an API endpoint using a Client Token; Flow endpoint security limits
Next: Sub-topic 6 →