{"rid":"storage/line-messaging-api-message-content-endpoint","card":{"rid":"storage/line-messaging-api-message-content-endpoint","eid":"line","topic":"storage","slug":"line-messaging-api-message-content-endpoint","provider":"LINE Messaging API — message content endpoint","url":"https://developers.line.biz/en/docs/messaging-api/receiving-messages/","domain":"line.biz","category":"messaging","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"none","identity_kind":"national-id","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":1,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest","egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"No storage quota is offered at all. Content is a delivery mechanism, not a store.","duplicate_of":null,"n_unknown":6},"record":{"topic":"storage","slug":"line-messaging-api-message-content-endpoint","provider":"LINE Messaging API — message content endpoint","url":"https://developers.line.biz/en/docs/messaging-api/receiving-messages/","category":"messaging","free_tier":{"stated":"No storage quota is offered at all. Content is a delivery mechanism, not a store.","unit":"mixed","metered_on":"stored-bytes","source_url":"https://developers.line.biz/en/docs/messaging-api/receiving-messages/","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://developers.line.biz/en/docs/messaging-api/receiving-messages/","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://developers.line.biz/en/docs/messaging-api/receiving-messages/","notes":"not stated"},"egress":{"terms":"Retrieval is authenticated only: GET /v2/bot/message/{messageId}/content with a channel access token. No public URL is ever issued.","metered":false},"interface":["rest"],"interface_detail":"rest","tooling":"line-bot-sdk (Python/Node/Java/Go/PHP). The SDK exposes get_message_content() and nothing else — no listing, no expiry control, no bulk export.","chaining":"Not chainable: there is no enumeration API, so you cannot even address stored objects after the fact without having logged every messageId yourself.","limits":[],"limits_note":"Explicit auto-deletion with an undisclosed period: 'Content that users send is automatically deleted after a certain period of time.' LINE does not publish the number, which is worse than a known 30 days because it cannot be reasoned about. No listing endpoint, no bulk download.","identity_cost":{"kind":"national-id","detail":"derived from the record's prose, not from an identity field, and no signup was executed: ed objects after the fact without having logged every messageId yourself. Explicit auto-deletion with an undisclosed period: 'Content that users send is automatically deleted after a","country":null},"reliability_note":"Undisclosed retention window plus no enumeration = data becomes unreachable silently. Cannot be used even as a 7-day cache reliably.","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://developers.line.biz/en/docs/messaging-api/receiving-messages/","date":"2026-10-21","proved":"read live: 'Content that users send is automatically deleted after a certain period of time.'"},{"url":"https://api-data.line.me/v2/bot/message/1234567890/content","date":"2026-10-21","proved":"probe: GET -> 401 (token mandatory, anonymous read impossible)"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"No storage quota is offered at all. Content is a delivery mechanism, not a store.","extras":{"dead_end":{"failure_class":"quota","why":"No storage quota is offered at all. Content is a delivery mechanism, not a store.","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"none","binding_note":"no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]}