# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Channel Access Token API version: 1.0.0 extends: openapi/line-channel-access-token-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: 8 - target: $.paths['/oauth2/v3/token'].post update: x-apievangelist-phrasing: intent: Issue a stateless channel access token effect: write questions: - How do I get a stateless channel access token that isn't capped by the active token limit? - How long does a stateless LINE channel access token stay valid? - Can a stateless channel access token be revoked before it expires? instructions: - text: Issue a new stateless channel access token that lasts 15 minutes. - text: Get me a stateless channel token with no max active token limit. method: generated generated: '2026-09-26' - target: $.paths['/oauth2/v2.1/tokens/kid'].get update: x-apievangelist-phrasing: intent: List valid channel access token key IDs effect: read questions: - Which key IDs belong to my currently valid v2.1 channel access tokens? - Can I see the kid of every channel access token still active on my channel? instructions: - text: List all valid channel access token key IDs using JWT assertion {client_assertion}. slots: client_assertion: query.client_assertion - text: Get the kids of my live v2.1 tokens with assertion type {client_assertion_type} and assertion {client_assertion}. slots: client_assertion_type: query.client_assertion_type client_assertion: query.client_assertion method: generated generated: '2026-09-26' - target: $.paths['/oauth2/v2.1/token'].post update: x-apievangelist-phrasing: intent: Issue a v2.1 channel token with a JWT assertion effect: write questions: - How do I issue a channel access token with an expiration date I choose? - Can I authenticate with a signed JWT to get a v2.1 channel access token? instructions: - text: Issue a v2.1 channel access token using signed JWT {client_assertion}. slots: client_assertion: requestBody.client_assertion - text: Request a custom-expiry channel token with grant type {grant_type}, assertion type {client_assertion_type} and JWT {client_assertion}. slots: grant_type: requestBody.grant_type client_assertion_type: requestBody.client_assertion_type client_assertion: requestBody.client_assertion method: generated generated: '2026-09-26' - target: $.paths['/oauth2/v2.1/verify'].get update: x-apievangelist-phrasing: intent: Verify a v2.1 channel access token effect: read questions: - Is my channel access token with a user-specified expiration still valid? - What endpoint checks a v2.1 JWT-issued channel token? instructions: - text: Verify v2.1 channel access token {access_token}. slots: access_token: query.access_token - text: Check whether JWT-issued token {access_token} is still valid. slots: access_token: query.access_token method: generated generated: '2026-09-26' - target: $.paths['/oauth2/v2.1/revoke'].post update: x-apievangelist-phrasing: intent: Revoke a v2.1 channel access token effect: destructive questions: - How do I revoke a v2.1 channel access token I issued with a JWT? - Does revoking a v2.1 token require my channel ID and channel secret? instructions: - text: Revoke v2.1 channel access token {access_token} for channel {client_id} with secret {client_secret}. slots: access_token: requestBody.access_token client_id: requestBody.client_id client_secret: requestBody.client_secret - text: Invalidate the custom-expiry token {access_token} on channel {client_id} using secret {client_secret}. slots: access_token: requestBody.access_token client_id: requestBody.client_id client_secret: requestBody.client_secret method: generated generated: '2026-09-26' - target: $.paths['/v2/oauth/accessToken'].post update: x-apievangelist-phrasing: intent: Issue a short-lived channel access token effect: write questions: - How can I get a short-lived channel access token from my channel ID and secret? - Which grant type issues a short-lived LINE channel token? instructions: - text: Issue a short-lived channel access token for channel {client_id} with secret {client_secret}. slots: client_id: requestBody.client_id client_secret: requestBody.client_secret - text: Get a short-lived token using grant type {grant_type}, channel {client_id} and secret {client_secret}. slots: grant_type: requestBody.grant_type client_id: requestBody.client_id client_secret: requestBody.client_secret method: generated generated: '2026-09-26' - target: $.paths['/v2/oauth/verify'].post update: x-apievangelist-phrasing: intent: Verify a short-lived or long-lived channel token effect: read questions: - Can I check if a short-lived or long-lived channel access token is still valid? - What does validating a long-lived channel token return? instructions: - text: Verify short-lived or long-lived channel token {access_token}. slots: access_token: requestBody.access_token - text: Tell me if long-lived channel access token {access_token} still works. slots: access_token: requestBody.access_token method: generated generated: '2026-09-26' - target: $.paths['/v2/oauth/revoke'].post update: x-apievangelist-phrasing: intent: Revoke a short-lived or long-lived channel token effect: destructive questions: - How do I revoke a short-lived or long-lived channel access token? - Can I kill a leaked long-lived channel token right away? instructions: - text: Revoke short-lived or long-lived channel token {access_token}. slots: access_token: requestBody.access_token - text: Invalidate leaked long-lived channel token {access_token} now. slots: access_token: requestBody.access_token method: generated generated: '2026-09-26'