Emboss · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Getemboss Ai Admin API

44 actions 44 updates phrasing extends openapi/getemboss-ai-admin-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Emboss's API. It is a proposal applied on top of the contract, not a document Emboss publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 44 · first 16 shown; the file carries all of them

$.info
$.paths['/admin/account'].get
$.paths['/admin/account'].patch
$.paths['/admin/usage'].get
$.paths['/admin/usage/detail'].get
$.paths['/admin/billing/breakdown'].get
$.paths['/admin/forms'].get
$.paths['/admin/forms'].post
$.paths['/admin/forms/batch-runs'].get
$.paths['/admin/forms/batch-counts'].get
$.paths['/admin/layouts'].get
$.paths['/admin/forms/{form_id}'].get
$.paths['/admin/forms/{form_id}'].delete
$.paths['/admin/forms/{form_id}/thumbnail'].get
$.paths['/admin/usage/trend'].get
$.paths['/admin/usage/events'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Getemboss Ai Admin API
  version: 1.0.0
extends: openapi/getemboss-ai-admin-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 43
- target: $.paths['/admin/account'].get
  update:
    x-apievangelist-phrasing:
      intent: View an owner's account and retention default
      effect: read
      questions:
      - What retention default will new forms inherit for this account owner?
      - Can an admin look up who an account owner is and their default retention policy?
      instructions:
      - text: Show the account details and retention default for owner {owner}.
        slots:
          owner: query.owner
      - text: Look up which retention policy new forms for {owner} will inherit.
        slots:
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/account'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change an owner's default retention policy
      effect: write
      questions:
      - How do I change the default retention policy for an account as an admin?
      - Does changing the account retention default affect forms that already exist?
      instructions:
      - text: Update the account default retention for owner {owner}.
        slots:
          owner: query.owner
      - text: Flip the retention default on {owner}'s account so future forms use the new policy.
        slots:
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/usage'].get
  update:
    x-apievangelist-phrasing:
      intent: View usage totals for an owner as admin
      effect: read
      questions:
      - Can an admin see the current usage summary for any account owner?
      - Where does the dashboard get a signed-in owner's usage totals?
      instructions:
      - text: Get the usage summary for owner {owner}.
        slots:
          owner: query.owner
      - text: Show me how much {owner} has used so far as an admin.
        slots:
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/usage/detail'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an owner's detailed usage for a month
      effect: read
      questions:
      - Can I see a detailed usage breakdown for one owner in a specific month?
      - Which month-level usage detail is available for an account?
      instructions:
      - text: Show detailed usage for owner {owner} in month {month}.
        slots:
          owner: query.owner
          month: query.month
      - text: Pull the {month} usage detail for {owner}.
        slots:
          month: query.month
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/billing/breakdown'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an owner's billing breakdown for a month
      effect: read
      questions:
      - What will an owner be billed for in a given month, line by line?
      - Can an admin see the billing breakdown for an account's month?
      instructions:
      - text: Show the billing breakdown for owner {owner} for {month}.
        slots:
          owner: query.owner
          month: query.month
      - text: Break down {owner}'s charges for {month}.
        slots:
          owner: query.owner
          month: query.month
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms'].get
  update:
    x-apievangelist-phrasing:
      intent: List an owner's forms as admin
      effect: read
      questions:
      - Can an admin search through all the forms a particular owner has uploaded?
      - Is there paging when listing an owner's forms from the admin side?
      instructions:
      - text: List the forms owned by {owner}.
        slots:
          owner: query.owner
      - text: Search {owner}'s forms for {q}, returning {limit} at a time.
        slots:
          owner: query.owner
          q: query.q
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms'].post
  update:
    x-apievangelist-phrasing:
      intent: Upload a fillable form on behalf of an owner
      effect: write
      questions:
      - How do I create a fillable form for a customer from the admin batch-fill page?
      - Can an admin upload a PDF as a new form billed to another owner?
      instructions:
      - text: Create a fillable form from {file} on behalf of owner {owner}.
        slots:
          file: requestBody.file
          owner: query.owner
      - text: Acting as {owner}, upload this PDF {file} as a new form.
        slots:
          owner: query.owner
          file: requestBody.file
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/batch-runs'].get
  update:
    x-apievangelist-phrasing:
      intent: List an owner's batch-fill runs
      effect: read
      questions:
      - Which batch-fill runs has an owner kicked off?
      - Can an admin page through the history of spreadsheet batch fills for an account?
      instructions:
      - text: List the batch-fill runs for owner {owner}.
        slots:
          owner: query.owner
      - text: Show the last {limit} batch runs for {owner}.
        slots:
          limit: query.limit
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/batch-counts'].get
  update:
    x-apievangelist-phrasing:
      intent: Count an owner's batch-fill runs
      effect: read
      questions:
      - How many batch fills has an owner run in total?
      - Is there a quick count of batch-fill runs per account?
      instructions:
      - text: Get the batch-fill counts for owner {owner}.
        slots:
          owner: query.owner
      - text: Tell me how many batch runs {owner} has.
        slots:
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/layouts'].get
  update:
    x-apievangelist-phrasing:
      intent: Review shared form layout reuse stats
      effect: read
      questions:
      - Which shared form layouts get reused the most, and how many hits do they have?
      - Where can an operator spot layout rows with many loose matches and a low baseline?
      instructions:
      - text: Show the form layout reuse readout.
      - text: List the top {top} most-reused form layouts.
        slots:
          top: query.top
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/{form_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check a form's status on behalf of an owner
      effect: read
      questions:
      - Can an admin poll the processing status of a customer's form?
      - Is an owner's uploaded form ready yet, from the admin view?
      instructions:
      - text: Check the status of form {form_id} for owner {owner}.
        slots:
          form_id: path.form_id
          owner: query.owner
      - text: Acting as {owner}, poll whether form {form_id} is ready.
        slots:
          owner: query.owner
          form_id: path.form_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/{form_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an owner's form as admin
      effect: destructive
      questions:
      - Can an admin remove a form from someone else's account?
      - How do I delete a customer's form from the admin dashboard?
      instructions:
      - text: Delete form {form_id} belonging to {owner}.
        slots:
          form_id: path.form_id
          owner: query.owner
      - text: As admin, remove {owner}'s form {form_id}.
        slots:
          owner: query.owner
          form_id: path.form_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/{form_id}/thumbnail'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an owner's form thumbnail as admin
      effect: read
      questions:
      - Can an admin fetch the preview image of a customer's form?
      - What does an owner's form look like as a thumbnail?
      instructions:
      - text: Fetch the thumbnail for form {form_id} owned by {owner}.
        slots:
          form_id: path.form_id
          owner: query.owner
      - text: Show me a preview image of {owner}'s form {form_id}.
        slots:
          owner: query.owner
          form_id: path.form_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/usage/trend'].get
  update:
    x-apievangelist-phrasing:
      intent: Chart an owner's usage trend over days
      effect: read
      questions:
      - How has an owner's usage changed day by day recently?
      - Can I see a usage trend for an account over the last N days?
      instructions:
      - text: Show the daily usage trend for owner {owner}.
        slots:
          owner: query.owner
      - text: Plot {owner}'s usage over the last {days} days.
        slots:
          owner: query.owner
          days: query.days
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/usage/events'].get
  update:
    x-apievangelist-phrasing:
      intent: List an owner's individual usage events
      effect: read
      questions:
      - Which individual billable events did an owner generate?
      - Can I filter an account's usage events by kind and time range?
      instructions:
      - text: List the usage events for owner {owner}.
        slots:
          owner: query.owner
      - text: Show {owner}'s {kinds} usage events in range {range}.
        slots:
          owner: query.owner
          kinds: query.kinds
          range: query.range
      - text: Get page {page} of {owner}'s usage events, {page_size} per page.
        slots:
          page: query.page
          owner: query.owner
          page_size: query.page_size
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/with-context'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a context fill on behalf of an owner
      effect: write
      questions:
      - Can an admin fill a new PDF from supporting context and bill it to a customer?
      - Which admin call powers the /fill page for a given owner?
      instructions:
      - text: Acting as {owner}, fill PDF {file} using context {context}.
        slots:
          owner: query.owner
          file: requestBody.file
          context: requestBody.context
      - text: Start a with-context fill job of {file} for owner {owner}.
        slots:
          file: requestBody.file
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/with-context/{job_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check an owner's context-fill job status
      effect: read
      questions:
      - Has an owner's context fill job finished yet?
      - Can an admin poll the progress of a with-context fill job?
      instructions:
      - text: Check the status of context-fill job {job_id} for {owner}.
        slots:
          job_id: path.job_id
          owner: query.owner
      - text: Poll {owner}'s with-context job {job_id}.
        slots:
          owner: query.owner
          job_id: path.job_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/with-context/{job_id}/render'].post
  update:
    x-apievangelist-phrasing:
      intent: Render an owner's context-fill job to PDF
      effect: write
      questions:
      - How do I turn a finished context-fill job into a rendered PDF as admin?
      - Can an admin trigger rendering of a customer's context fill?
      instructions:
      - text: Render context-fill job {job_id} for owner {owner}.
        slots:
          job_id: path.job_id
          owner: query.owner
      - text: Acting as {owner}, produce the filled PDF for job {job_id}.
        slots:
          owner: query.owner
          job_id: path.job_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/with-context/{job_id}/pdf'].get
  update:
    x-apievangelist-phrasing:
      intent: Download an owner's context-filled PDF
      effect: read
      questions:
      - Where can an admin download the PDF produced by a customer's context fill?
      - Can I fetch the rendered file from a with-context job for another owner?
      instructions:
      - text: Download the filled PDF from context job {job_id} for {owner}.
        slots:
          job_id: path.job_id
          owner: query.owner
      - text: Get {owner}'s rendered PDF for job {job_id}.
        slots:
          owner: query.owner
          job_id: path.job_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/{form_id}/with-context'].post
  update:
    x-apievangelist-phrasing:
      intent: Fill an owner's existing form from context
      effect: write
      questions:
      - Can an admin fill a form a customer already uploaded using new context?
      - Does filling an existing form from context as admin bill the owner?
      instructions:
      - text: Fill {owner}'s existing form {form_id} from context {context}.
        slots:
          owner: query.owner
          form_id: path.form_id
          context: requestBody.context
      - text: Acting as {owner}, run a context fill on ready form {form_id}.
        slots:
          owner: query.owner
          form_id: path.form_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/web-token/limits'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the engine's upload limits
      effect: read
      questions:
      - What are the maximum upload limits for browser uploads?
      - Where does the website read the engine's file size limits from?
      instructions:
      - text: Show the current web upload limits.
      - text: Fetch the engine's upload limits for the website.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/web-token'].post
  update:
    x-apievangelist-phrasing:
      intent: Mint a short-lived browser upload token
      effect: write
      questions:
      - How does the signed-in browser get a token to upload directly to the owner routes?
      - How long does a minted web upload token last, and can it be refreshed?
      instructions:
      - text: Mint a 15-minute web upload token for owner {owner}.
        slots:
          owner: query.owner
      - text: Issue a browser direct-upload token for {owner}.
        slots:
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/{form_id}/suggest-mapping'].post
  update:
    x-apievangelist-phrasing:
      intent: Suggest spreadsheet-to-field mapping for an owner
      effect: write
      questions:
      - Can an admin get suggested column-to-field mappings for a customer's spreadsheet?
      - Is mapping suggestion metered when an admin acts on behalf of an owner?
      instructions:
      - text: Suggest how spreadsheet {file} maps to {owner}'s form {form_id}.
        slots:
          file: requestBody.file
          owner: query.owner
          form_id: path.form_id
      - text: Acting as {owner}, propose column mappings for form {form_id} from {file}.
        slots:
          owner: query.owner
          form_id: path.form_id
          file: requestBody.file
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/{form_id}/fill-batch'].post
  update:
    x-apievangelist-phrasing:
      intent: Batch-fill an owner's form from a spreadsheet
      effect: write
      questions:
      - How do I batch fill a customer's form from a spreadsheet as admin?
      - Is each row billed when an admin runs a batch fill for an owner?
      instructions:
      - text: Batch fill {owner}'s form {form_id} from spreadsheet {file} using mapping {mapping}.
        slots:
          owner: query.owner
          form_id: path.form_id
          file: requestBody.file
          mapping: requestBody.mapping
      - text: Acting as {owner}, fill one copy of form {form_id} per row in {file} with {mapping}.
        slots:
          owner: query.owner
          form_id: path.form_id
          file: requestBody.file
          mapping: requestBody.mapping
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/fill-batch/{batch_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Check an owner's batch-fill progress
      effect: read
      questions:
      - How far along is a customer's batch fill?
      - Can an admin poll an owner's batch-fill status without being billed?
      instructions:
      - text: Check batch {batch_id} status for owner {owner}.
        slots:
          batch_id: path.batch_id
          owner: query.owner
      - text: Poll {owner}'s batch fill {batch_id}.
        slots:
          owner: query.owner
          batch_id: path.batch_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/forms/fill-batch/{batch_id}/zip'].get
  update:
    x-apievangelist-phrasing:
      intent: Download an owner's batch-fill results as ZIP
      effect: read
      questions:
      - Can an admin download all of a customer's batch-filled PDFs at once?
      - Where is the zip archive of an owner's batch fill?
      instructions:
      - text: Download the zip for batch {batch_id} owned by {owner}.
        slots:
          batch_id: path.batch_id
          owner: query.owner
      - text: Get {owner}'s batch {batch_id} filled PDFs as one archive.
        slots:
          owner: query.owner
          batch_id: path.batch_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/billing/setup-intent'].post
  update:
    x-apievangelist-phrasing:
      intent: Start adding a payment method for an owner
      effect: write
      questions:
      - How do I begin saving a card on file for an account?
      - Can an admin create a billing setup intent for an owner?
      instructions:
      - text: Create a billing setup intent for owner {owner}.
        slots:
          owner: query.owner
      - text: Start payment method setup for {owner}.
        slots:
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/billing/payment-method'].get
  update:
    x-apievangelist-phrasing:
      intent: View an owner's saved payment method
      effect: read
      questions:
      - Which payment method does an account currently have on file?
      - Does this owner have a card saved for billing?
      instructions:
      - text: Show the payment method on file for {owner}.
        slots:
          owner: query.owner
      - text: Check whether owner {owner} has a saved card.
        slots:
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/billing/invoices'].get
  update:
    x-apievangelist-phrasing:
      intent: List an owner's invoices
      effect: read
      questions:
      - What invoices has an account been sent?
      - Can an admin see an owner's past invoices?
      instructions:
      - text: List the invoices for owner {owner}.
        slots:
          owner: query.owner
      - text: Show me {owner}'s billing history invoices.
        slots:
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/billing/confirm'].post
  update:
    x-apievangelist-phrasing:
      intent: Confirm an owner's billing setup
      effect: write
      questions:
      - How do I finish attaching a payment method after the setup intent succeeds?
      - Is there a step to confirm an owner's billing once their card is added?
      instructions:
      - text: Confirm the billing setup for owner {owner}.
        slots:
          owner: query.owner
      - text: Finalize {owner}'s payment method after setup.
        slots:
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/billing/run-invoicing'].post
  update:
    x-apievangelist-phrasing:
      intent: Run the monthly invoicing for a period
      effect: write
      questions:
      - How do I run the monthly billing for all owners?
      - Can I preview invoicing with a dry run before charging anyone?
      - Is it safe to rerun invoicing for the same period twice?
      instructions:
      - text: Run invoicing for period {period}.
        slots:
          period: query.period
      - text: Do a dry run of invoicing for {period} with dry_run {dry_run}.
        slots:
          period: query.period
          dry_run: query.dry_run
      - text: Invoice only owner {owner} for period {period}.
        slots:
          owner: query.owner
          period: query.period
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/nudges/run'].post
  update:
    x-apievangelist-phrasing:
      intent: Run the hourly nudge emails and cleanup
      effect: write
      questions:
      - Which owners would be emailed by the nudge run if I dry-run it?
      - What does the nightly maintenance tick purge besides sending nudges?
      instructions:
      - text: Run the nudge job now.
      - text: Dry-run the nudges for owner {owner} with dry_run {dry_run}.
        slots:
          owner: query.owner
          dry_run: query.dry_run
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/retention/sweep'].post
  update:
    x-apievangelist-phrasing:
      intent: Run the retention and fax cleanup sweep
      effect: destructive
      questions:
      - How are expired documents and stalled faxes cleaned up?
      - Can I see what the retention sweep would delete without touching anything?
      instructions:
      - text: Run the retention sweep.
      - text: Preview the retention sweep with dry_run {dry_run}, capped at {limit} items.
        slots:
          dry_run: query.dry_run
          limit: query.limit
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/library/{slug}/store'].post
  update:
    x-apievangelist-phrasing:
      intent: Store a fetched copy of a library form
      effect: write
      questions:
      - How does the seed script upload a government form into the library catalogue?
      - Which fields does storing a library copy actually trust from the caller?
      instructions:
      - text: Store PDF {file} as library form {slug} with checksum {sha256}.
        slots:
          file: requestBody.file
          slug: path.slug
          sha256: requestBody.sha256
      - text: Save {file} as revision {revision} of library form {slug}, hash {sha256}.
        slots:
          file: requestBody.file
          revision: requestBody.revision
          slug: path.slug
          sha256: requestBody.sha256
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/library/check'].post
  update:
    x-apievangelist-phrasing:
      intent: Run the weekly library freshness check
      effect: write
      questions:
      - How do I check whether any catalogue forms have changed at their source?
      - Does the library freshness check change what is served?
      instructions:
      - text: Run the library freshness check.
      - text: Re-fetch every catalogue form and record whether its hash changed.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/library'].get
  update:
    x-apievangelist-phrasing:
      intent: List catalogue forms with revision and check status
      effect: read
      questions:
      - Which library forms have never been seeded yet?
      - What is the active revision and last check result for each catalogue form?
      instructions:
      - text: Show every library catalogue form with its active revision.
      - text: List catalogue forms still waiting on a seed run.
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/library/misses'].get
  update:
    x-apievangelist-phrasing:
      intent: See library searches that found nothing
      effect: read
      questions:
      - Which forms are people searching for that the library doesn't have?
      - What were the most frequent empty library searches recently?
      instructions:
      - text: List the library search misses, most frequent first.
      - text: Show library searches with no result over the last {days} days.
        slots:
          days: query.days
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/library/{slug}/accept'].post
  update:
    x-apievangelist-phrasing:
      intent: Accept a changed library form revision
      effect: write
      questions:
      - How do I promote a changed government form to the active library revision?
      - Is the previous library revision kept when a new one is accepted?
      instructions:
      - text: Accept the changed version of library form {slug}.
        slots:
          slug: path.slug
      - text: Refetch {slug}, make it fillable and set it as the active revision.
        slots:
          slug: path.slug
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/oauth/pending/{pid}'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up a pending OAuth authorization
      effect: read
      questions:
      - What client and scopes is a pending OAuth request asking for?
      - Can I inspect an OAuth authorization that is waiting for consent?
      instructions:
      - text: Show pending OAuth request {pid}.
        slots:
          pid: path.pid
      - text: Look up the details of the OAuth authorization awaiting consent, id {pid}.
        slots:
          pid: path.pid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/oauth/consent'].post
  update:
    x-apievangelist-phrasing:
      intent: Record a user's OAuth consent decision
      effect: write
      questions:
      - How is a user's approve or deny decision on an OAuth app recorded?
      - Can a user deny a pending OAuth client from the consent screen?
      instructions:
      - text: Record decision {decision} from user {user_id} on OAuth request {req}.
        slots:
          decision: requestBody.decision
          user_id: requestBody.user_id
          req: requestBody.req
      - text: Approve OAuth request {req} for user {user_id} with decision {decision}.
        slots:
          req: requestBody.req
          user_id: requestBody.user_id
          decision: requestBody.decision
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/oauth/grants'].get
  update:
    x-apievangelist-phrasing:
      intent: List a user's OAuth grants
      effect: read
      questions:
      - Which connected apps has a user granted access to?
      - Can I see all OAuth grants for one user?
      instructions:
      - text: List the OAuth grants for user {user_id}.
        slots:
          user_id: query.user_id
      - text: Show which apps {user_id} has authorized.
        slots:
          user_id: query.user_id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/oauth/clients'].get
  update:
    x-apievangelist-phrasing:
      intent: List OAuth clients registered since a date
      effect: read
      questions:
      - Which directories and gateways have registered as OAuth clients this week?
      - Can I see OAuth client registrations since a specific date for the acquisition report?
      instructions:
      - text: List OAuth clients registered in the last seven days.
      - text: Show OAuth client registrations since {since}.
        slots:
          since: query.since
      method: generated
      generated: '2026-10-01'
- target: $.paths['/admin/oauth/grants/{gid}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke a user's OAuth grant
      effect: destructive
      questions:
      - How do I disconnect an app a user previously authorized?
      - Can a single OAuth grant be revoked without affecting the user's other apps?
      instructions:
      - text: Revoke OAuth grant {gid} for user {user_id}.
        slots:
          gid: path.gid
          user_id: query.user_id
      - text: Disconnect app grant {gid} from {user_id}'s account.
        slots:
          gid: path.gid
          user_id: query.user_id
      method: generated
      generated: '2026-10-01'