IBANforge · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for IBANforge API Keys API
14 actions
14 updates
phrasing
extends
openapi/ibanforge-api-keys-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for IBANforge's API. It is a proposal applied on top of the contract, not a document IBANforge publishes.
What the actions change
x-apievangelist-phrasing
Targets 14
$.info
$.paths['/v1/keys/generate'].post
$.paths['/v1/keys/device'].post
$.paths['/v1/keys/device/token'].post
$.paths['/v1/keys/device/lookup'].post
$.paths['/v1/keys/device/approve'].post
$.paths['/v1/keys/device/deny'].post
$.paths['/v1/keys/usage'].get
$.paths['/v1/keys/report'].get
$.paths['/v1/keys/revoke'].post
$.paths['/v1/keys/claim'].post
$.paths['/v1/keys/rotate'].post
$.paths['/stats'].get
$.paths['/stats/history'].get
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 IBANforge API Keys API
version: 1.0.0
extends: openapi/ibanforge-api-keys-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: 13
- target: $.paths['/v1/keys/generate'].post
update:
x-apievangelist-phrasing:
intent: Generate a free API key
effect: write
questions:
- Can I get an API key with no email and no card?
- What is the difference between an anonymous key and one issued to an email address?
- Why did key creation answer verification_required and mail me a code?
instructions:
- text: Create an anonymous free API key.
- text: Generate a free API key registered to {email}.
slots:
email: requestBody.email
- text: Finish creating the key for {email} with verification code {code}.
slots:
email: requestBody.email
code: requestBody.code
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/device'].post
update:
x-apievangelist-phrasing:
intent: Start a device authorization request for a key
effect: write
questions:
- How can an agent get an API key approved by a human without handling their email?
- How long does a device authorization request stay open?
- What code and link do I show the human for device approval?
instructions:
- text: Open a device authorization request for an API key.
- text: Start a device key request as {client_name}, explaining it is for {reason}.
slots:
client_name: requestBody.client_name
reason: requestBody.reason
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/device/token'].post
update:
x-apievangelist-phrasing:
intent: Collect the key after device approval
effect: write
questions:
- How often should an agent poll for the key after asking a human to approve it?
- What does slow_down mean when waiting for a device-approved key?
- Is the approved key handed over more than once?
instructions:
- text: Poll for the approved API key with device code {device_code}.
slots:
device_code: requestBody.device_code
- text: Collect the key for device request {device_code} once the human approves it.
slots:
device_code: requestBody.device_code
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/device/lookup'].post
update:
x-apievangelist-phrasing:
intent: Look up a pending device request by its code
effect: write
questions:
- What does a pending device request show before I approve it?
- Where do I get the approval token needed to approve or refuse a device request?
instructions:
- text: Look up the pending device request for user code {user_code}.
slots:
user_code: requestBody.user_code
- text: Fetch the approval token for device code {user_code} the human typed.
slots:
user_code: requestBody.user_code
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/device/approve'].post
update:
x-apievangelist-phrasing:
intent: Approve a device request and issue the key
effect: write
questions:
- Can I approve an agent's key request and raise it to 200 requests a month by verifying my mailbox?
- What does approving a device request without an email give the agent?
instructions:
- text: Approve device request {user_code} with approval token {approval_token}.
slots:
user_code: requestBody.user_code
approval_token: requestBody.approval_token
- text: Approve device request {user_code} using token {approval_token} and verify mailbox {email}.
slots:
user_code: requestBody.user_code
approval_token: requestBody.approval_token
email: requestBody.email
- text: Confirm mailbox {email} with code {code} to approve device request {user_code} (token {approval_token}).
slots:
user_code: requestBody.user_code
approval_token: requestBody.approval_token
email: requestBody.email
code: requestBody.code
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/device/deny'].post
update:
x-apievangelist-phrasing:
intent: Refuse a device key request
effect: destructive
questions:
- What should I do with a device approval request that is not mine?
- Can the agent try again after I refuse its key request?
instructions:
- text: Deny device request {user_code} with approval token {approval_token}.
slots:
user_code: requestBody.user_code
approval_token: requestBody.approval_token
- text: Refuse the key request for code {user_code}; the token is {approval_token}.
slots:
user_code: requestBody.user_code
approval_token: requestBody.approval_token
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/usage'].get
update:
x-apievangelist-phrasing:
intent: Check this month's usage of an API key
effect: read
questions:
- How many requests do I have left on my API key this month?
- Does my key's allowance reset monthly or is it a lifetime limit?
- Which tier is my API key on?
instructions:
- text: Show the usage and remaining quota of my API key.
- text: Tell me whether my key is anonymous, email, claimed or paid.
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/report'].get
update:
x-apievangelist-phrasing:
intent: Read the activity report of the presented key
effect: read
questions:
- Which endpoints has my API key called, and what failed?
- Can I tell if my API key was used from unusual networks?
- Can the key report cover a full year of traffic?
instructions:
- text: Show the activity report for the API key I'm using.
- text: Report what my key did over the last {days} days.
slots:
days: query.days
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/revoke'].post
update:
x-apievangelist-phrasing:
intent: Permanently revoke the presented API key
effect: destructive
questions:
- My API key leaked, how can I kill it immediately?
- Is revoking a key reversible?
instructions:
- text: Revoke the API key I'm presenting, permanently.
- text: Deactivate this leaked key without issuing a replacement.
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/claim'].post
update:
x-apievangelist-phrasing:
intent: Upgrade an anonymous key to the free tier
effect: write
questions:
- Can I raise my anonymous key from 25 to 200 requests a month without changing the key?
- Why does claiming my key answer unused_key?
instructions:
- text: Claim my anonymous key by verifying mailbox {email}.
slots:
email: requestBody.email
- text: Complete the claim of my key for {email} with code {code}.
slots:
email: requestBody.email
code: requestBody.code
method: generated
generated: '2026-09-26'
- target: $.paths['/v1/keys/rotate'].post
update:
x-apievangelist-phrasing:
intent: Rotate an API key into a fresh one
effect: destructive
questions:
- Can I swap my API key for a new one and keep my plan and credits?
- Does rotating a key reset my monthly quota?
instructions:
- text: Rotate my current API key and give me the replacement.
- text: Replace this key with a fresh one and revoke the old one.
method: generated
generated: '2026-09-26'
- target: $.paths['/stats'].get
update:
x-apievangelist-phrasing:
intent: Get detailed usage statistics by operation
effect: read
questions:
- What are the API's usage and revenue figures broken down by operation type?
- Which operation types get the most calls right now?
instructions:
- text: Show the detailed API statistics by operation type.
- text: Get the current usage and revenue breakdown.
method: generated
generated: '2026-09-26'
- target: $.paths['/stats/history'].get
update:
x-apievangelist-phrasing:
intent: Get per-day statistics for a period
effect: read
questions:
- What did daily API usage look like over the past week?
- How far back can the per-day statistics go?
instructions:
- text: Show per-day statistics for the last {period} days.
slots:
period: query.period
- text: Get the daily usage history for the default seven days.
method: generated
generated: '2026-09-26'