Actions

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), caption 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.

post/api/v1/actions/uploadAsset

Request

  • Base URL: https://app.reachium.io
  • URL: https://app.reachium.io/api/v1/actions/uploadAsset
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

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

image_urlstring uri

Public https URL to fetch and re-host. Pass this OR image_base64, never both.

image_base64string

Base64-encoded image bytes (5 MB decoded cap). Pass this OR image_url, never both.

filenamestring

Optional friendly name prefix for the stored asset, shown in listAssets (sanitized; extension is derived from the actual bytes).

Response

The result of calling this tool.

dataunknown required
errorunknown required

Changes

No recorded changes to this operation across all 3 revisions of this API.