Call the uploadAsset MCP tool
Upload an image and get back a hosted https URL, without touching any post or document. The returned url works everywhere an image URL is accepted: updateDocument insert_image/replace_image (image_url), lines in document markdown, and attachImageToPost (image_url). Use this when you have image bytes with no public URL (fresh creative, a local file the user shared): upload once, then reference the URL as many times as needed. Provide exactly one of image_url (fetched server-side, https only) or image_base64 (raw base64 bytes). 5 MB decoded cap either way; png/jpeg/webp/gif only, detected from the bytes themselves. EXIF/XMP metadata is stripped losslessly on ingest, and uploads count against a 500 MB workspace storage quota. Content-addressed: uploading the same bytes again returns the same URL, so retries are always safe. Returns url, name (usable as asset_name elsewhere), content_type, and bytes.
Called through the Actions bridge: the response is that tool's own result, wrapped as { data: <tool result> } under HTTP 200. Billing, daily-cap, and confirm-step outcomes are embedded INSIDE data, never remapped to an HTTP status (see the templated /api/v1/actions/{toolName} operation above for the full protocol, and x-mcp-actions for this tool's machine-readable scope/cap/confirm_behavior fields). Authentication, request-shape, and optional idempotency-protocol failures still use their documented non-200 statuses.
Request
- Base URL: https://app.reachium.io
- URL: https://app.reachium.io/api/v1/actions/uploadAsset
- Auth: HTTP bearer
Headers
Optional caller-generated key (8-200 characters: letters, digits, dot, underscore, colon, or hyphen). A final tool result is replayed for the same key and body. An ambiguous result remains 409 under that key; reconcile external state before using a new key. Reuse with a different body returns 422.
Request body
Response
The result of calling this tool.
Changes
No recorded changes to this operation across all 3 revisions of this API.