LINE · Authentication Profile
Line Authentication
Authentication
LINE secures its APIs with http, oauth2, and openIdConnect across 3 declared security schemes, as derived from its OpenAPI definitions.
MessagingChatbotsSocial LoginMini AppsMarketingWebhookOpenID ConnectAudienceAnalyticsJapan
Methods: http, oauth2, openIdConnect
Schemes: 3
OAuth flows:
API key in:
Security Schemes
Bearer http
scheme: bearer
basicAuth http
scheme: basic
LINE Login (OAuth 2.0 / OpenID Connect) openIdConnect
Source
Authentication Profile
generated: '2026-08-13'
method: searched
docs: https://developers.line.biz/en/docs/basics/channel-access-token/
source: >-
Derived from the securitySchemes of the nine OpenAPI documents harvested from
https://github.com/line/line-openapi, then upgraded from
https://developers.line.biz/en/docs/basics/channel-access-token/,
https://developers.line.biz/en/docs/line-login/integrate-line-login/ and the
OIDC discovery document at
https://access.line.me/.well-known/openid-configuration (probed 200).
summary:
types:
- http
- oauth2
- openIdConnect
primary: Bearer channel access token, scoped to a LINE channel
end_user_auth: LINE Login v2.1 (OAuth 2.0 authorization code + OpenID Connect)
schemes:
- name: Bearer
type: http
scheme: bearer
bearerFormat: ChannelAccessToken
description: >-
Channel access token presented as an HTTP Bearer credential in the
Authorization header. Scoped to a single LINE channel — rate limits and
message quota are counted per channel, and endpoint entitlement is a
property of the channel and the Official Account plan rather than of a
scope claim.
applies_to:
- openapi/line-messaging-api-openapi.yml
- openapi/line-insight-openapi.yml
- openapi/line-manage-audience-openapi.yml
- openapi/line-liff-openapi.yml
- openapi/line-module-openapi.yml
- openapi/line-shop-openapi.yml
token_types:
- name: long-lived channel access token
issued_by: LINE Developers Console
ttl: no expiry until reissued
note: Reissuing invalidates the previous token.
- name: short-lived channel access token (v2.0)
operation: issueChannelToken
endpoint: POST https://api.line.me/v2/oauth/accessToken
ttl: 30 days
credentials: channel ID + channel secret (client_credentials style)
verify: verifyChannelToken (POST /v2/oauth/verify)
revoke: revokeChannelToken (POST /v2/oauth/revoke)
- name: channel access token v2.1 (JWT assertion)
operation: issueChannelTokenByJWT
endpoint: POST https://api.line.me/oauth2/v2.1/token
ttl: configurable, up to 30 days
credentials: >-
JWT assertion signed with an assertion signing key registered in the
LINE Developers Console (RS256), exchanged via
urn:ietf:params:oauth:grant-type:jwt-bearer.
verify: verifyChannelTokenByJWT (GET /oauth2/v2.1/verify)
revoke: revokeChannelTokenByJWT (POST /oauth2/v2.1/revoke)
list: getsAllValidChannelAccessTokenKeyIds (GET /oauth2/v2.1/tokens/kid)
note: >-
The only token type that supports issuing multiple valid tokens
concurrently and rotating them without invalidating the others.
- name: stateless channel access token (v3)
operation: issueStatelessChannelToken
endpoint: POST https://api.line.me/oauth2/v3/token
ttl: 15 minutes
credentials: client_credentials with channel ID + channel secret
revoke: not revocable — expiry only
rate_limit: 370 requests per second
- name: basicAuth
type: http
scheme: basic
description: >-
HTTP Basic authentication used only by the Module Attach API on
manager.line.biz — the module channel presents its channel ID and secret
to attach a module channel to a LINE Official Account.
applies_to:
- openapi/line-module-attach-openapi.yml
host: https://manager.line.biz
- name: LINE Login (OAuth 2.0 / OpenID Connect)
type: openIdConnect
openIdConnectUrl: https://access.line.me/.well-known/openid-configuration
description: >-
End-user authentication and authorization. Authorization code grant with
optional PKCE (S256 only); ID tokens are ES256-signed JWTs verified
against the JWKS at https://api.line.me/oauth2/v2.1/certs. Subject
identifiers are pairwise, so a user ID is stable per channel and not
portable across channels.
endpoints:
authorization: https://access.line.me/oauth2/v2.1/authorize
token: https://api.line.me/oauth2/v2.1/token
userinfo: https://api.line.me/oauth2/v2.1/userinfo
revocation: https://api.line.me/oauth2/v2.1/revoke
jwks: https://api.line.me/oauth2/v2.1/certs
scopes: [openid, profile, email]
not_in_spec: >-
This scheme is documented and machine-discoverable via OIDC discovery but
is not represented in any of the nine published OpenAPI documents — the
specs cover the bot/server surface only.
see: scopes/line-scopes.yml
inbound_authentication:
webhook_signature:
header: x-line-signature
algorithm: Base64(HMAC-SHA256(channel secret, raw request body))
docs: https://developers.line.biz/en/docs/messaging-api/verify-webhook-signature/
note: >-
The bot server authenticates LINE, not the other way round. Signature
must be computed over raw bytes before JSON parsing.
gaps:
- >-
The published OpenAPI documents declare the Bearer scheme with only the
description "Channel access token" and no bearerFormat, so a generated
client cannot tell which of the four token flavours is expected.
- >-
No securityScheme at all is declared in channel-access-token.yml or
webhook.yml.
- >-
LINE Login is absent from the OpenAPI surface entirely; only OIDC discovery
describes it machine-readably.