Skip to main content

Update Settings

Update account settings by sending a PATCH request to /api/v1/user/settings/update with a partial settings payload. The JSON payload uses a key/value structure where key identifies the settings section to update.

Valid keys: storage, auth, webhook, database, image, video, addons, watermark


Storage

Update S3 storage bucket configuration. All keys are mandatory.

warning

If you are using different S3 buckets for Originals, Derivatives and Transcodes, all buckets must be in the same region.

{
"key": "storage",
"value": {
"originals_root": "MY-S3-BUCKET",
"originals_root_folder": "folder/path",
"derivatives_root": "MY-S3-BUCKET",
"derivatives_root_folder": "folder/path",
"transcodes_root": "MY-S3-BUCKET",
"transcodes_root_folder": "folder/path"
}
}
ParameterTypeDescription
keystringSet to storage
value.originals_rootstringS3 bucket name for original asset files
value.originals_root_folderstringPath prefix for objects in the bucket
value.derivatives_rootstringS3 bucket name for image conversions
value.derivatives_root_folderstringPath prefix for objects in the bucket
value.transcodes_rootstringS3 bucket name for video transcodes
value.transcodes_root_folderstringPath prefix for objects in the bucket

Auth

Update authentication keys and authorized domains. All keys are mandatory (use empty strings to clear).

{
"key": "auth",
"value": {
"upload_key": "UPLOAD_KEY",
"authorized_domains": "filespin.io, myapp.example.org",
"dropbox_app_key": "DROPBOX_KEY",
"dropbox_app_secret": "DROPBOX_SECRET",
"api_key": "API_KEY"
}
}
ParameterTypeDescription
keystringSet to auth
value.upload_keystringRFC4122-compliant UUID4 hex value (alphanumeric only, no dashes)
value.authorized_domainsstringComma-separated domain names allowed for this upload key. Empty allows all domains. Max 10 domains. Naked domains authorize all subdomains.
value.dropbox_app_keystringDropbox App Key for File Picker uploads
value.dropbox_app_secretstringDropbox App Secret for File Picker uploads
value.api_keystringRFC4122-compliant UUID4 hex value (alphanumeric only, no dashes)

Webhook

Update webhook callback URLs and events. All keys are mandatory.

{
"key": "webhook",
"value": {
"web_urls": "https://myapp.example.org/receiver",
"callback_events": {
"file-saved": true,
"file-processed": true,
"file-data-updated": true,
"file-deleted": true,
"file-undeleted": true,
"addon-processed": false
}
}
}
ParameterTypeDescription
keystringSet to webhook
value.web_urlsstringComma-separated URLs (max 3). Can be empty.
value.callback_eventsJSONEvent flags (see table below)

Callback Events

EventDescription
file-savedFile stored in storage after upload
file-processedImage/video conversions completed
file-data-updatedCustom data attached to a file
file-deletedFile or conversions deleted
file-undeletedFile restored via Undelete API
addon-processedAddon processing completed

Database

Update external database export configuration. All keys are mandatory.

{
"key": "database",
"value": {
"db_url": "mysql://USER:PASSWORD@DB_HOST/DATABASE"
}
}

All webhook events are auto-enabled for database export.

ParameterTypeDescription
keystringSet to database
value.db_urlstringMySQL connection URL. Can be empty to disable.

Image

Update image conversion settings. All keys are mandatory.

{
"key": "image",
"value": {
"is_on_demand_private": false,
"conversions": [
{
"key": "500x500WEB",
"value": {
"format": "jpg",
"watermark": false,
"enabled": false,
"public": false,
"height": 500,
"width": 500,
"dpi": 72
}
},
{
"key": "deepzoom",
"value": {
"watermark": false,
"enabled": false,
"public": true
}
}
]
}
}
  • deepzoom is a special key — only watermark, enabled, and public can be updated
  • Maximum 5 conversions can be added/updated (including deepzoom)
ParameterTypeDescription
keystringSet to image
value.is_on_demand_privatebooleanWhether on-demand images require signed URLs
value.conversionsJSONList of conversion objects (max 5)
value.conversions.keystringUnique name up to 20 alphanumeric characters (no spaces)
value.conversions.value.formatstringjpg or png
value.conversions.value.watermarkbooleanApply account watermark to this conversion
value.conversions.value.enabledbooleanAuto-generate on upload
value.conversions.value.publicbooleanPublicly accessible without signed URL
value.conversions.value.widthintegerMax width in pixels (original used if larger or empty)
value.conversions.value.heightintegerMax height in pixels (original used if larger or empty)

Video

Update video transcode, preview, and thumbnail settings. All keys are mandatory except storyboard (only needed when the Storyboard addon is enabled).

{
"key": "video",
"value": {
"video_transcode_test_mode": false,
"thumbnails": {
"video_default": { "height": 480, "width": 640 },
"storyboard": {
"enabled": true, "mode": "number", "mode_value": 5,
"width": 480, "height": 360, "public": true,
"aspect": "pad", "padding": "000000", "upscale": true
}
},
"preview": {
"video_preview_public": true,
"video_preview_start": "00:00:03.001",
"video_preview_length": 5,
"video_preview_preset": "480p-wm-video",
"video_preview_enabled": true,
"video_preview_aspect": "pad",
"video_preview_padding": "000000",
"video_preview_upscale": true
},
"transcodes": {
"360p-video": { "enabled": true, "public": false, "aspect": "pad", "padding": "000000", "upscale": true },
"480p-video": { "enabled": true, "public": false, "aspect": "pad", "padding": "000000", "upscale": true },
"720p-video": { "enabled": true, "public": false, "aspect": "pad", "padding": "000000", "upscale": true },
"1080p-video": { "enabled": true, "public": false, "aspect": "pad", "padding": "000000", "upscale": true },
"hls-video": { "enabled": true, "public": true, "aspect": "pad", "padding": "000000", "upscale": true, "watermark": true }
}
}
}

Aspect Options

ValueDescription
padAdd padding to fill requested dimensions
preservePreserve original aspect ratio (padding ignored)
scaleScale output to match requested dimensions
cropCrop output to match requested dimensions

Storyboard Modes

ModeDescription
numberExtract mode_value images evenly spaced over the video
secondExtract one image every mode_value seconds
keyframesExtract keyframes (mode_value ignored)

Transcode Keys

Allowed keys: 360p-video, 360p-wm-video, 480p-video, 480p-wm-video, 720p-video, 720p-wm-video, 1080p-video, 1080p-wm-video, hls-video

Each transcode accepts: enabled, public, aspect, padding, upscale. The hls-video key additionally accepts watermark.

Preview Parameters

ParameterTypeDescription
video_preview_startinteger or timecodeStart time as seconds (e.g. 5) or timecode (%H:%M:%S.%f)
video_preview_lengthintegerClip length in seconds (defaults to entire video)
video_preview_presetstringAny standard transcode key
video_preview_enabledbooleanEnable video preview generation
video_preview_publicbooleanMake preview publicly accessible
video_preview_aspectstringpad, preserve, scale, or crop
video_preview_paddingstringHex color code without # (e.g. 000000)
video_preview_upscalebooleanUpscale if source is smaller than requested size

Addons

Update addon settings. See Update Addons Settings for the dedicated endpoint.


Watermark

Update watermark image, placement, and scaling. See Upload Watermark for the two-step process.