Fundamentals

Media uploads

Upload, verify, and reference images and documents before publishing them.

PeopleTide Content · HTTP integration guides

Begin with the bytes you will upload.

Calculate the file’s SHA-256 hash and exact byte size on your trusted client. POST to /api/v1/sites/{site}/media with filename, contentType, size, and the lowercase hexadecimal hash. Maximum upload size is 100 MiB.

JSON
{
  "filename": "cover.webp", "contentType": "image/webp",
  "size": 24576, "hash": "SHA256_OF_THE_EXACT_FILE_BYTES"
}

Upload through the returned signed URL.

The response includes the media id and signed upload instructions. PUT the exact bytes using the returned URL and required content type. Signed URLs are temporary credentials: do not log or publish them. The storage provider’s CORS policy must allow uploads if you build a custom browser uploader.

Finalize before adding the reference.

POST /api/v1/sites/{site}/media/{id}/finalize after the upload. Finalization verifies the hash and size. Add { "$media": "MEDIA_UUID" } to a document only after acceptance; review and publish the referencing content.

Use supported formats.

JPEG, PNG, WebP, GIF, PDF, MP4, and MP3 are supported. The published release resolves media to immutable delivery URLs; use those URLs in your website, never the staging upload location.