viber business
viber.com · Storage · 2 records · JSON
- viber business as a media host Storagefails: quotaemail?card?R
- Viber Business Messages / REST Bot API Storagefails: quotaemail?card?R
viber business as a media host Storage
fails: quotaemail?card?R
| Free tier | Inverted API: Viber consumes your public image URL, it never produces one. 1-3 MB cap on your file. unit none; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | not recorded |
| Retention | not recorded |
| Egress | not recorded |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | unknown |
| Tooling | not recorded |
| Composes with | not recorded |
| Reliability | Inverted API: Viber consumes your public image URL, it never produces one. 1-3 MB cap on your file. |
| Notes | Inverted API: Viber consumes your public image URL, it never produces one. 1-3 MB cap on your file. |
| Evidence rung | reported |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (1)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | developers.viber.com/docs/api/rest-bot-api/#send-message | Inverted API: Viber consumes your public image URL, it never produces one. 1-3 MB cap on your file. |
More fields (1)
{
"dead_end": {
"failure_class": "quota",
"why": "Inverted API: Viber consumes your public image URL, it never produces one. 1-3 MB cap on your file.",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (15)
$.chainingnot-recorded$.confidence_notewithheld$.egress.termsnot-recorded$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.interfaceinterface-unknown$.interface_detailwithheld$.limits_noteprocess$.per_object_cap.notesnot-recorded$.per_object_cap.statednot-recorded$.retention.notesprocess$.retention.statednot-recorded$.toolingnot-recorded
Viber Business Messages / REST Bot API Storage
fails: quotaemail?card?R
| Free tier | No storage quota — same inversion as Kakao: you pass a picture URL, Viber fetches it. Max image 1 MB on iOS, 3 MB on Android, thumbnail 100 KB. unit MB; metered on stored-bytes |
|---|---|
| Price | none stated |
| Per-object cap | not stated |
| Retention | not stated |
| Egress | N/A — Viber hosts nothing for you. It requires 'The URL must have a resource with a .jpeg, .png or .gif file extension as the last path segment', i.e. it is a consumer of your public URLs. |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | rest rest |
| Tooling | viber-bot-python / raw REST POST to https://chatapi.viber.com/pa/send_message. Sender-only API. |
| Composes with | Not chainable. No upload, no media_id, no listing, no retention — structurally incapable of storing a byte. |
| Reliability | N/A for storage. Recorded only so the next agent does not re-investigate: Viber is a URL consumer, never a URL producer. |
| Notes | No storage quota — same inversion as Kakao: you pass a picture URL, Viber fetches it. Max image 1 MB on iOS, 3 MB on Android, thumbnail 100 KB. |
| Evidence rung | reported One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (1)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | developers.viber.com/docs/api/rest-bot-api/#send-message | read live: 'media | URL of the image (JPEG, PNG, non-animated GIF) | required. The URL must have a resource with a .jpeg, .png or .gif file extension as the last path segment ... Max image size: 1MB on iOS, 3MB on Android.' |
More fields (1)
{
"dead_end": {
"failure_class": "quota",
"why": "No storage quota — same inversion as Kakao: you pass a picture URL, Viber fetches it. Max image 1 MB on iOS, 3 MB on Android, thumbnail 100 KB.",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (8)
$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.per_object_cap.notesnot-extracted$.per_object_cap.statednot-extracted$.retention.notesnot-extracted$.retention.statednot-extracted