fshy

fshy / Storage

WhatsApp Cloud

facebook.com · Storage · 2 records · JSON

WhatsApp Cloud API — Media (upload / media_id) Storage

fails: quotainstitutionno cardRper-object-cap

developers.facebook.com/docs/whatsapp/cloud-api/reference/me · messaging · storage/whatsapp-cloud-api-media · JSON · compare

Free tierPer-file caps only, no storage quota: documents 100 MB, images 5 MB, video 16 MB, audio 16 MB, stickers 500 KB (as listed on the reference page). Files persist 30 days.
unit MB; metered on stored-bytes
Pricenone stated
Per-object capPer-file caps only, no storage quota: documents 100 MB (100000000 bytes)
Retention'All media files sent through this API are encrypted and persist for 30 days, unless they are deleted earlier.' Media IDs also expire at 30 days (7 days for IDs arriving in webhooks) (30 days)
EgressDownload is free of per-GB charge but doubly gated: media URLs EXPIRE AFTER 5 MINUTES and must be re-fetched via the media ID using a Bearer token. There is no public URL at any point.
Identityinstitution derived from the record's prose, not from an identity field, and no signup was executed: ION — the disqualifier. 'All media files sent through this API are encrypted and persist for 30 days, unless they are deleted earlier.' Media IDs also expire at 30 days (7 days for I
Limits
  • retention-clamped expire at 30 days source
  • per-object-cap Per-file caps only, no storage quota: documents 100 MB source
HARD 30-DAY DELETION — the disqualifier. 'All media files sent through this API are encrypted and persist for 30 days, unless they are deleted earlier.' Media IDs also expire at 30 days (7 days for IDs arriving in webhooks). Media URLs live 5 minutes.
Bindingper-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota
Interfacerest, graph, rclone rest
ToolingGraph API; official SDKs (facebook-business, whatsapp-cloud-api wrappers). No rclone backend. Wrappers exist but cannot beat the 30-day deletion.
Composes withDoes not multiply — retention, not count, is the wall. Unlimited phone numbers x 30 days each is still a 30-day window, i.e. a cache, not storage.
ReliabilityDeterministic deletion, not a fair-use throttle: on day 31 the bytes are gone and only an error remains. Would silently destroy a 20 TiB archive.
NotesPer-file caps only, no storage quota: documents 100 MB, images 5 MB, video 16 MB, audio 16 MB, stickers 500 KB (as listed on the reference page). Files persist 30 days.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Parsed numbers
  • $.limits[1].value limit:per-object-cap 100.0 MB
Evidence (3)
datesourcewhat it proved
2026-10-21developers.facebook.com/docs/whatsapp/cloud-api/reference/meread live: 'All media files sent through this API are encrypted and persist for 30 days, unless they are deleted earlier.'; 'Media IDs returned by the API expire after 30 days. Media IDs in webhooks expire after 7 days.'; 'Media URLs expire after 5 minutes'
2026-10-21developers.facebook.com/docs/whatsapp/cloud-api/reference/meread live: size table 'Text .txt text/plain 100 MB', 'AAC .aac 16 MB', etc.
2026-10-21graph.facebook.com/v21.0/123456/mediaprobe: GET -> 400 (anonymous call refused; token mandatory)
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "Per-file caps only, no storage quota: documents 100 MB, images 5 MB, video 16 MB, audio 16 MB, stickers 500 KB (as listed on the reference page). Files persist 30 days.",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (4)
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted

whatsapp cloud api media as archive Storage

fails: quotaemail?card?R

developers.facebook.com/docs/whatsapp/cloud-api/reference/me · rejected-provider · storage/whatsapp-cloud-api-media-as-archive · JSON · compare

Free tier30-day hard deletion plus 5-minute media URLs; the bytes are unrecoverable on day 31. Any 'WhatsApp as free storage' claim found in the wild is wrong about this.
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
Reliability30-day hard deletion plus 5-minute media URLs; the bytes are unrecoverable on day 31. Any 'WhatsApp as free storage' claim found in the wild is wrong about this.
Notes30-day hard deletion plus 5-minute media URLs; the bytes are unrecoverable on day 31. Any 'WhatsApp as free storage' claim found in the wild is wrong about this.
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (1)
datesourcewhat it proved
2026-10-21developers.facebook.com/docs/whatsapp/cloud-api/reference/me30-day hard deletion plus 5-minute media URLs the bytes are unrecoverable on day 31. Any 'WhatsApp as free storage' claim found in the wild is wrong about this.
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "30-day hard deletion plus 5-minute media URLs; the bytes are unrecoverable on day 31. Any 'WhatsApp as free storage' claim found in the wild is wrong about this.",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded