Clerk · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Clerk Com Sessions API
20 actions
20 updates
phrasing
extends
openapi/clerk-com-sessions-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Clerk's API. It is a proposal applied on top of the contract, not a document Clerk publishes.
What the actions change
x-apievangelist-phrasing
Targets 20 · first 16 shown; the file carries all of them
$.info
$.paths['/sessions'].get
$.paths['/sessions'].post
$.paths['/sessions/{session_id}'].get
$.paths['/sessions/{session_id}/refresh'].post
$.paths['/sessions/{session_id}/revoke'].post
$.paths['/sessions/{session_id}/tokens'].post
$.paths['/sessions/{session_id}/tokens/{template_name}'].post
$.paths['/v1/client/sessions'].delete
$.paths['/v1/client/sessions/{session_id}'].get
$.paths['/v1/client/sessions/{session_id}/touch'].post
$.paths['/v1/client/sessions/{session_id}/end'].post
$.paths['/v1/client/sessions/{session_id}/remove'].post
$.paths['/v1/client/sessions/{session_id}/tokens'].post
$.paths['/v1/client/sessions/{session_id}/tokens/{template_name}'].post
$.paths['/v1/client/sessions/{session_id}/verify'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Clerk Com Sessions API
version: 1.0.0
extends: openapi/clerk-com-sessions-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 19
- target: $.paths['/sessions'].get
update:
x-apievangelist-phrasing:
intent: List sessions for a user or client
effect: read
questions:
- Which sessions does a given user currently have in Clerk?
- Can I filter the backend session list to only active or revoked sessions?
- How do I page through sessions belonging to one client device?
instructions:
- text: List the sessions for user {user_id}.
slots:
user_id: query.user_id
- text: Show sessions with status {status} for client {client_id}.
slots:
status: query.status
client_id: query.client_id
method: generated
generated: '2026-09-26'
- target: $.paths['/sessions'].post
update:
x-apievangelist-phrasing:
intent: Create a test session for a user
effect: write
questions:
- How do I create an active session for a user in a test instance?
- Can I start a backend session for a user with an active organization already set?
instructions:
- text: Create a testing session for user {user_id}.
slots:
user_id: requestBody.user_id
- text: Start a test session for user {user_id} with organization {active_organization_id} active.
slots:
user_id: requestBody.user_id
active_organization_id: requestBody.active_organization_id
method: generated
generated: '2026-09-26'
- target: $.paths['/sessions/{session_id}'].get
update:
x-apievangelist-phrasing:
intent: Retrieve a session by ID from the backend
effect: read
questions:
- How do I look up the details of a session from my backend using its ID?
- What status and user does a given session ID belong to on the server side?
instructions:
- text: Retrieve session {session_id} with the backend API.
slots:
session_id: path.session_id
- text: Show the server-side details of session {session_id}.
slots:
session_id: path.session_id
method: generated
generated: '2026-09-26'
- target: $.paths['/sessions/{session_id}/refresh'].post
update:
x-apievangelist-phrasing:
intent: Refresh a session with an expired token
effect: write
questions:
- How do I get a new session token when the old one has expired, using the refresh token?
- What happens when refreshing a session fails validation, does it fall back to handshake?
instructions:
- text: Refresh session {session_id} using expired token {expired_token} and refresh token {refresh_token} from origin {request_origin}.
slots:
session_id: path.session_id
expired_token: requestBody.expired_token
refresh_token: requestBody.refresh_token
request_origin: requestBody.request_origin
- text: Refresh session {session_id} with expired token {expired_token}, refresh token {refresh_token}, origin {request_origin}, format {format}.
slots:
session_id: path.session_id
expired_token: requestBody.expired_token
refresh_token: requestBody.refresh_token
request_origin: requestBody.request_origin
format: requestBody.format
method: generated
generated: '2026-09-26'
- target: $.paths['/sessions/{session_id}/revoke'].post
update:
x-apievangelist-phrasing:
intent: Revoke a user's session
effect: destructive
questions:
- How do I force a user to sign in again by revoking their session from the backend?
- Does a revoked session still show up with its client in multi-session mode?
instructions:
- text: Revoke session {session_id}.
slots:
session_id: path.session_id
- text: Sign the user out by revoking backend session {session_id}.
slots:
session_id: path.session_id
method: generated
generated: '2026-09-26'
- target: $.paths['/sessions/{session_id}/tokens'].post
update:
x-apievangelist-phrasing:
intent: Mint a session JWT from the backend
effect: write
questions:
- How do I generate a session JWT for a session from my server?
- Can I set a custom lifetime in seconds on a backend-issued session token?
instructions:
- text: Create a session token for session {session_id} from the backend.
slots:
session_id: path.session_id
- text: Issue a session JWT for {session_id} that expires in {expires_in_seconds} seconds.
slots:
session_id: path.session_id
expires_in_seconds: requestBody.expires_in_seconds
method: generated
generated: '2026-09-26'
- target: $.paths['/sessions/{session_id}/tokens/{template_name}'].post
update:
x-apievangelist-phrasing:
intent: Mint a backend session JWT from a template
effect: write
questions:
- How do I create a JWT for a session using one of my instance's JWT templates on the server?
- Can a template-based token from the backend have its own expiry in seconds?
instructions:
- text: Create a JWT for session {session_id} using template {template_name} from the backend.
slots:
session_id: path.session_id
template_name: path.template_name
- text: Issue a {template_name} template token for session {session_id} valid for {expires_in_seconds} seconds.
slots:
template_name: path.template_name
session_id: path.session_id
expires_in_seconds: requestBody.expires_in_seconds
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions'].delete
update:
x-apievangelist-phrasing:
intent: Remove all sessions from the current client
effect: destructive
questions:
- How do I clear every session on the current browser client but keep the __client cookie?
- Can I sign out all sessions on this device without dropping the client cookie?
instructions:
- text: Remove all sessions from the current client and keep its cookie.
- text: Clear every session on this browser client.
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}'].get
update:
x-apievangelist-phrasing:
intent: Get a session on the current client
effect: read
questions:
- How do I read one session belonging to the signed-in browser client?
- What does the frontend API return for a single session ID on this client?
instructions:
- text: Get session {session_id} from the current client.
slots:
session_id: path.session_id
- text: Show client session {session_id} via the frontend API.
slots:
session_id: path.session_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/touch'].post
update:
x-apievangelist-phrasing:
intent: Set the active session on the client
effect: write
questions:
- How do I switch which session is active on a multi-session client?
- Can I change the active organization when I touch a session?
instructions:
- text: Make session {session_id} the active session on this client.
slots:
session_id: path.session_id
- text: Touch session {session_id} and switch its active organization to {active_organization_id}.
slots:
session_id: path.session_id
active_organization_id: requestBody.active_organization_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/end'].post
update:
x-apievangelist-phrasing:
intent: End a session on the current client
effect: destructive
questions:
- How do I sign a user out of one session from the browser by marking it ended?
- Can I end a single session without removing the other sessions on the client?
instructions:
- text: End session {session_id} on this client.
slots:
session_id: path.session_id
- text: Mark client session {session_id} as ended.
slots:
session_id: path.session_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/remove'].post
update:
x-apievangelist-phrasing:
intent: Delete a session from the current client
effect: destructive
questions:
- How do I delete a session entirely from the browser client instead of just ending it?
- Is there a way to remove one session from a multi-session client?
instructions:
- text: Remove session {session_id} from the current client.
slots:
session_id: path.session_id
- text: Delete client session {session_id}.
slots:
session_id: path.session_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/tokens'].post
update:
x-apievangelist-phrasing:
intent: Get a session JWT from the frontend client
effect: write
questions:
- How do I fetch a fresh session JWT for the signed-in user from the browser?
- Can the frontend token request pin a specific organization into the JWT?
instructions:
- text: Create a frontend session token for session {session_id}.
slots:
session_id: path.session_id
- text: Get a client session JWT for {session_id} scoped to organization {organization_id}.
slots:
session_id: path.session_id
organization_id: requestBody.organization_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/tokens/{template_name}'].post
update:
x-apievangelist-phrasing:
intent: Get a templated JWT from the frontend client
effect: write
questions:
- How do I get a JWT shaped by a JWT template for the signed-in user in the browser?
- Which endpoint gives the frontend a custom template token for a third-party service?
instructions:
- text: Get a {template_name} template JWT for client session {session_id}.
slots:
template_name: path.template_name
session_id: path.session_id
- text: From the browser, mint a token for session {session_id} with JWT template {template_name}.
slots:
session_id: path.session_id
template_name: path.template_name
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/verify'].post
update:
x-apievangelist-phrasing:
intent: Start step-up reverification on a session
effect: write
questions:
- How do I ask a signed-in user to re-verify before a sensitive action?
- What happens if I request second-factor reverification but the user has no second factor?
instructions:
- text: Start reverification at level {level} for session {session_id}.
slots:
level: requestBody.level
session_id: path.session_id
- text: Require session {session_id} to reverify with level {level}.
slots:
session_id: path.session_id
level: requestBody.level
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/verify/prepare_first_factor'].post
update:
x-apievangelist-phrasing:
intent: Send a first-factor reverification code
effect: write
questions:
- How do I email or text a one-time code to a user during session reverification?
- Which first-factor strategies can I prepare when reverifying a session?
instructions:
- text: Prepare first-factor reverification for session {session_id} using strategy {strategy}.
slots:
session_id: path.session_id
strategy: requestBody.strategy
- text: Send a reverification code to email address {email_address_id} for session {session_id}.
slots:
email_address_id: requestBody.email_address_id
session_id: path.session_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/verify/attempt_first_factor'].post
update:
x-apievangelist-phrasing:
intent: Submit a first-factor reverification attempt
effect: write
questions:
- How do I check the code or password a user entered to reverify their session?
- Can a user reverify their session with a passkey instead of a code?
instructions:
- text: Attempt first-factor reverification on session {session_id} with strategy {strategy} and code {code}.
slots:
session_id: path.session_id
strategy: requestBody.strategy
code: requestBody.code
- text: Reverify session {session_id} using the {strategy} strategy.
slots:
session_id: path.session_id
strategy: requestBody.strategy
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/verify/prepare_second_factor'].post
update:
x-apievangelist-phrasing:
intent: Send a second-factor reverification code
effect: write
questions:
- How do I trigger the second factor, such as an SMS code, while reverifying a session?
- Which phone number receives the code when preparing second-factor reverification?
instructions:
- text: Prepare second-factor reverification for session {session_id}.
slots:
session_id: path.session_id
- text: Send a second-factor code to phone {phone_number_id} for session {session_id}.
slots:
phone_number_id: requestBody.phone_number_id
session_id: path.session_id
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/client/sessions/{session_id}/verify/attempt_second_factor'].post
update:
x-apievangelist-phrasing:
intent: Submit a second-factor reverification code
effect: write
questions:
- How do I finish reverification by checking the user's second-factor code?
- Does the second-factor reverification attempt need the prepare step first?
instructions:
- text: Attempt second-factor reverification on session {session_id} with code {code}.
slots:
session_id: path.session_id
code: requestBody.code
- text: Complete the second factor for session {session_id} using strategy {strategy}.
slots:
session_id: path.session_id
strategy: requestBody.strategy
method: generated
generated: '2026-09-26'