v2 - Media

Ingest media from a public URL

Download a file from a public URL and ingest it into JubJub.

The backend downloads the file server-side and uploads it to GCS.
Useful for GPT Actions and MCP clients that cannot send binary data.

The URL must be publicly accessible, on http or https, and must not
redirect. Private and internal addresses are refused. Max download
timeout is 120 seconds; files over MEDIA_INGEST_MAX_BYTES (256 MB by
default) are refused with 413.
post/v2/media/ingest-url

Request

  • Base URL
    https://api.jubjubapp.com (the document declares no server; this is the origin it was published from)
  • Auth
    HTTP bearer

Headers

Authorizationstring
X-JubJub-Service-Keystring
X-JubJub-Agent-Keystring
X-JubJub-Platform-Keystring
Originstring
Refererstring
X-JubJub-Trial-Tokenstring

Request body

workspace_idstring required

Workspace that will own this media

urlstring required

Public URL to download the media from.

filenamestring required

Filename to use for the ingested media (e.g., 'video.mp4').

media_type'video' | 'image' | 'subtitle' | 'document' nullable

Type of media. Auto-detected from the filename if omitted (.pdf is a document, .jpg/.png/.webp an image).

Example request

{
  "url": "https://example.com/video.mp4",
  "filename": "my_video.mp4"
}

Response

Successful Response

media_idstring required
workspace_idstring required
typestring required

Media type: video, image, subtitle or document (a PDF)

filenamestring required
content_typestring required
size_bytesinteger required
duration_secondsnumber nullable

Duration in seconds (for videos)

statusstring required

Processing status: uploading, processing, ready, failed, unreadable. unreadable is terminal: the bytes are not a usable file of their type, the stored object has been deleted, and re-uploading the same file will not help.

status_reasonstring nullable

Why, in plain words, when the status needs explaining. Set with unreadable; null otherwise. Safe to show to the person.

urlstring nullable

Signed URL of the file, valid for 120 minutes (when status is 'ready'). A document's URL opens inline as application/pdf. An image's URL is the original only for its uploader; everyone else gets a copy with EXIF (GPS included) removed, and null when that copy could not be made.

created_atstring date-time required
updated_atstring date-time nullable

Changes