{"openapi":"3.1.0","info":{"title":"LINE Official Account (BYOK) API","version":"0.1.0","description":"LINE Official Account (BYOK) lets an AI assistant read your own LINE Official Account data through the LINE Official Account API with a key you supply (channel access token (long-lived or stateless) of a Messaging API channel). Read-only: 12 tools (get_bot_info, get_message_quota, get_message_quota_consumption, get_sent_message_count, get_user_profile, list_follower_ids, get_group_summary,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-line.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-line/docs"},"termsOfService":"https://connectorbay.com/byok-line/terms"},"servers":[{"url":"https://byok-line.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-line/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_bot_info":{"post":{"operationId":"get_bot_info","summary":"Show the official account the channel access token belongs to: user id, basic id, premium id, display name, chat mode an","description":"Show the official account the channel access token belongs to: user id, basic id, premium id, display name, chat mode and mark-as-read mode. Use for \"Which LINE official account is my channel token for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_bot_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_message_quota":{"post":{"operationId":"get_message_quota","summary":"Show this month's message limit: type is none (no cap) or limited, with the monthly number of messages when limited. Use","description":"Show this month's message limit: type is none (no cap) or limited, with the monthly number of messages when limited. Use for \"How many LINE messages can my account send this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_message_quotaArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_message_quota_consumption":{"post":{"operationId":"get_message_quota_consumption","summary":"Show how many messages the account has already counted against this month's quota. Use for \"How much of my LINE monthly ","description":"Show how many messages the account has already counted against this month's quota. Use for \"How much of my LINE monthly message quota is used\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_message_quota_consumptionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_sent_message_count":{"post":{"operationId":"get_sent_message_count","summary":"Count messages sent through the API on one day, for one kind: reply, push, multicast or broadcast. status is ready when ","description":"Count messages sent through the API on one day, for one kind: reply, push, multicast or broadcast. status is ready when the numbers are final, unready while they are being prepared. Use for \"How many LINE push messages did we send on 20260115\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"kind":{"description":"Which sending method to count: reply, push, multicast or broadcast.","enum":["reply","push","multicast","broadcast"],"title":"Kind","type":"string"},"date":{"description":"Day to report, written yyyyMMdd in Japan time (UTC+9), for example 20260115.","maxLength":8,"title":"Date","type":"string"}},"required":["kind","date"],"title":"get_sent_message_countArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_user_profile":{"post":{"operationId":"get_user_profile","summary":"Get the profile of a user who has added the account as a friend: display name, picture, status message and language. Use","description":"Get the profile of a user who has added the account as a friend: display name, picture, status message and language. Use for \"What is the LINE profile of user U4af4980629\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"LINE user ID (starts with U) received in a webhook event, for example 'U4af4980629'.","maxLength":64,"title":"User Id","type":"string"}},"required":["user_id"],"title":"get_user_profileArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_follower_ids":{"post":{"operationId":"list_follower_ids","summary":"List the user IDs of the account's friends, paged with a continuation token. Only available to verified or premium accou","description":"List the user IDs of the account's friends, paged with a continuation token. Only available to verified or premium accounts. Use for \"List the LINE user IDs of my followers\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Continuation token: the next value of the previous answer (leave empty for the first page).","title":"Start"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":300,"description":"How many user IDs to return (1 to 1000).","title":"Limit"}},"title":"list_follower_idsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_group_summary":{"post":{"operationId":"get_group_summary","summary":"Get a group chat the account has joined: group id, group name and picture URL. Use for \"What is the name of LINE group C","description":"Get a group chat the account has joined: group id, group name and picture URL. Use for \"What is the name of LINE group C4af4980629\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"description":"LINE group chat ID (starts with C), as received in webhook events, for example 'C4af4980629'.","maxLength":64,"title":"Group Id","type":"string"}},"required":["group_id"],"title":"get_group_summaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_group_member_count":{"post":{"operationId":"get_group_member_count","summary":"Count the members of a group chat the account has joined. Use for \"How many people are in LINE group C4af4980629\".","description":"Count the members of a group chat the account has joined. Use for \"How many people are in LINE group C4af4980629\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"description":"LINE group chat ID (starts with C), as received in webhook events, for example 'C4af4980629'.","maxLength":64,"title":"Group Id","type":"string"}},"required":["group_id"],"title":"get_group_member_countArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_rich_menus":{"post":{"operationId":"list_rich_menus","summary":"List the rich menus created for the account with id, name, chat bar text, size and whether selected by default. Use for ","description":"List the rich menus created for the account with id, name, chat bar text, size and whether selected by default. Use for \"Which LINE rich menus does my account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_rich_menusArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_follower_stats":{"post":{"operationId":"get_follower_stats","summary":"Get follower insight for one day: followers, targeted reaches and blocks. status is ready when the numbers are final, un","description":"Get follower insight for one day: followers, targeted reaches and blocks. status is ready when the numbers are final, unready while they are being prepared. Data is available for the previous 365 days. Use for \"How many LINE followers did we have on 20260115\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date":{"description":"Day to report, written yyyyMMdd in Japan time (UTC+9), for example 20260115.","maxLength":8,"title":"Date","type":"string"}},"required":["date"],"title":"get_follower_statsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_delivery_stats":{"post":{"operationId":"get_delivery_stats","summary":"Get how many messages the account delivered on one day, split by broadcast, targeting, auto response, welcome response, ","description":"Get how many messages the account delivered on one day, split by broadcast, targeting, auto response, welcome response, chat and API method. status is ready when the numbers are final, unready while they are being prepared. Use for \"How many LINE messages did we deliver on 20260115\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date":{"description":"Day to report, written yyyyMMdd in Japan time (UTC+9), for example 20260115.","maxLength":8,"title":"Date","type":"string"}},"required":["date"],"title":"get_delivery_statsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_friend_demographics":{"post":{"operationId":"get_friend_demographics","summary":"Get the demographics of the account's friends: gender, age group, area, device type and friend duration percentages. Ava","description":"Get the demographics of the account's friends: gender, age group, area, device type and friend duration percentages. Available only with enough friends. Use for \"What is the age and gender mix of my LINE followers\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_friend_demographicsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}