Update settings
/settingsCosts 2 rate-limit points · Rate limits
Change settings, as the settings pages do: send any subset of the sections GET /settings returns (general, email, download_page, download_limits, order_conditions, shopify_sync, watermark, customer_accounts, eu_withdrawal) with only the fields to change. Answers with every setting after the save.
Deep partial: untouched fields keep their value. email.domain.dkim_verified is read-only. The same checks as the dashboard run (email copy is spam-checked, the download button text cannot be blank).
Also searched aschange settingsturn off the download emailset download limitenable watermarkingchange order tagsupdate email subjectset the download page colours
Request body
generalobjectShow 6 child attributesHide child attributes
app_enabledboolean, nullabledefault_localestringapp_localestringmulti_language_enabledbooleanignore_orders_beforeobjectShow 2 child attributesHide child attributes
datestring, nullableISO 8601 date or time.
order_numberinteger, nullable
branding_hiddenboolean, nullable
emailobjectShow 16 child attributesHide child attributes
enabledboolean, nullablefrom_namestring, nullablefrom_addressstring, nullablereply_tostring, nullablereport_addressstring, nullablesubjectstring, nullableExample:Your downloads are readybodystring, nullablebuttonobjectShow 4 child attributesHide child attributes
textstring, nullableExample:Download nowtext_colorstring, nullablebackground_colorstring, nullableborder_radiusinteger, nullable
footer_textstring, nullablefont_familystring, nullablelogo_sizestringcolorsobjectShow 2 child attributesHide child attributes
textstring, nullablebackgroundstring, nullable
cssstring, nullableproduct_updateobjectShow 2 child attributesHide child attributes
subjectstring, nullablebodystring, nullable
merchant_notificationsobjectShow 4 child attributesHide child attributes
promotionsboolean, nullableusageboolean, nullablelicence_exhaustionboolean, nullablelicence_exhaustion_thresholdinteger, nullable
domainobjectShow 3 child attributesHide child attributes
custom_addressboolean, nullablenamestring, nullabledkim_verifiedboolean
download_pageobjectShow 16 child attributesHide child attributes
hoststring, nullableOne offilemonkstorefrontcustomer_accountnullpath_prefixstring, nullablerequire_loginboolean, nullabletextsobjectShow 25 child attributesHide child attributes
thanksstring, nullablebuttonstring, nullablestore_linkstring, nullableorders_linkstring, nullableorders_indexstring, nullablecustom_downloadsstring, nullablecustom_downloads_readystring, nullablelicence_labelstringlicence_type_labelstringlicence_buttonstring, nullablelicence_errorstringlogin_titlestring, nullablelogin_messagestring, nullablelogin_buttonstring, nullabletotal_labelstring, nullablefiles_labelstring, nullabledownloadingstring, nullableprocessingstring, nullableprocessing_buttonstring, nullablepreorderstring, nullablewatermarkingstring, nullablegeneric_errorstring, nullablecopy_buttonstring, nullablecopiedstring, nullablenot_availablestring, nullable
colorsobjectShow 5 child attributesHide child attributes
textstring, nullablebackgroundstring, nullablesectionstring, nullablebutton_textstring, nullablebutton_backgroundstring, nullable
show_priceboolean, nullableshow_imageboolean, nullableshow_store_linkboolean, nullableshow_orders_linkboolean, nullablepdf_viewerbooleanhide_file_extensionsboolean, nullableprice_formatstring, nullablelogo_sizeinteger, nullablecssstring, nullablestore_urlstring, nullabledefault_viewstring, nullable
download_limitsobjectShow 4 child attributesHide child attributes
showboolean, nullableWhether the download page shows the buyer the limits. Display only: the limits apply either way.
per_file_countinteger, nullableHow many times each file can be downloaded per order. null means unlimited.
daysinteger, nullableHow many days after the order the files stay downloadable. null means unlimited.
messagesobjectShow 3 child attributesHide child attributes
limit_reachedstring, nullablecountstring, nullabledaysstring, nullable
order_conditionsobjectShow 9 child attributesHide child attributes
check_statusboolean, nullablestatus_typestring, nullablefinancial_statusstring, nullablefulfillment_statusstring, nullableshipment_statusstring, nullablerevoke_on_mismatchboolean, nullablerefunded_order_protectionboolean, nullablefraud_protectionboolean, nullableprocess_orders_on_updateboolean
shopify_syncobjectShow 5 child attributesHide child attributes
add_order_tagsboolean, nullableorder_tagsstring, nullablemark_line_items_fulfilledbooleanskip_fulfillment_for_tagsstring, nullableadd_tracking_infoboolean, nullable
watermarkobjectShow 7 child attributesHide child attributes
enabledbooleanall_filesboolean, nullabletextstringstylestringlayerstringopacityintegerfontobjectShow 3 child attributesHide child attributes
sizeintegercolorstringnamestring
customer_accountsobjectShow 3 child attributesHide child attributes
button_textstring, nullableproduct_downloads_subtitlestring, nullableorder_statusobjectShow 4 child attributesHide child attributes
thanks_textstring, nullablebutton_textstring, nullablethank_you_page_buttonboolean, nullableorder_status_page_buttonboolean, nullable
eu_withdrawalobjectShow 4 child attributesHide child attributes
enabledbooleanscopestringOne ofeu_onlyall_customersconsent_textstring, nullablebutton_textstring, nullable
Returns
generalobjectShow 6 child attributesHide child attributes
app_enabledboolean, nullableExample:truedefault_localestring, nullableExample:enapp_localestring, nullableExample:frmulti_language_enabledboolean, nullableExample:trueignore_orders_beforeobjectShow 2 child attributesHide child attributes
dateanyorder_numberany
branding_hiddenboolean, nullableExample:false
emailobjectShow 16 child attributesHide child attributes
enabledboolean, nullableExample:truefrom_namestring, nullableExample:Example Storefrom_addressstring, nullableExample:alerts@filemonk.ioreply_tostring, nullableExample:owner@example.comreport_addressstring, nullableExample:owner@example.comsubjectstring, nullableExample:Your {{shop.name}} {{order.name}} contentbodystring, nullableExample:Thanks for purchasing from {{shop.name}}! Click the butto…buttonobjectShow 4 child attributesHide child attributes
textstring, nullableExample:Access downloadstext_colorstring, nullableExample:#fffbackground_colorstring, nullableExample:#202223border_radiusinteger, nullableExample:5
footer_textstring, nullableExample:Facing trouble accessing your content? Contact us right a…font_familystring, nullableExample:sans-seriflogo_sizestring, nullableExample:200colorsobjectShow 2 child attributesHide child attributes
textstring, nullableExample:#202223backgroundstring, nullableExample:#ffffff
cssanyproduct_updateobjectShow 2 child attributesHide child attributes
subjectstring, nullableExample:Update to {{product_variant.title}} in your order {{order…bodystring, nullableExample:Your most recent purchase for {{product_variant.title}} h…
merchant_notificationsobjectShow 4 child attributesHide child attributes
promotionsboolean, nullableExample:trueusageboolean, nullableExample:truelicence_exhaustionboolean, nullableExample:falselicence_exhaustion_thresholdinteger, nullableExample:80
domainobjectShow 3 child attributesHide child attributes
custom_addressboolean, nullableExample:falsenamestring, nullableExample:example-storedkim_verifiedboolean, nullableExample:false
download_pageobjectShow 16 child attributesHide child attributes
hoststring, nullableExample:storefrontpath_prefixstring, nullableExample:/apps/filemonkrequire_loginanytextsobjectShow 25 child attributesHide child attributes
thanksstring, nullableExample:Thank you for purchasing from our store! Click on any of …buttonstring, nullableExample:Downloadstore_linkstring, nullableExample:Visit storeorders_linkstring, nullableExample:My ordersorders_indexstring, nullableExample:My orderscustom_downloadsstring, nullableExample:Custom productscustom_downloads_readystring, nullableExample:Your digital content will be available here when it's ready.licence_labelstring, nullableExample:Licence keylicence_type_labelstring, nullableExample:Keylicence_buttonstring, nullableExample:Viewlicence_errorstring, nullableExample:No licence key available. Contact store.login_titlestring, nullableExample:Customer Login Requiredlogin_messagestring, nullableExample:You need to be logged in with the correct account to acce…login_buttonstring, nullableExample:Log Intotal_labelstring, nullableExample:Totalfiles_labelstring, nullableExample:filesdownloadingstring, nullableExample:Downloading...processingstring, nullableExample:Processing order. Please wait.processing_buttonstring, nullableExample:Processing...preorderstring, nullableExample:This product is currently in preorder and will be availab…watermarkingstring, nullableExample:Watermarking is not complete, please wait or reload the p…generic_errorstring, nullableExample:Something went wrong.copy_buttonstring, nullableExample:Copycopiedstring, nullableExample:Copied to clipboardnot_availablestring, nullableExample:Not Available
colorsobjectShow 5 child attributesHide child attributes
textstring, nullableExample:#202223backgroundstring, nullableExample:#f6f7f7sectionstring, nullableExample:#ffffffbutton_textstring, nullableExample:#FFFbutton_backgroundstring, nullableExample:#1B76FF
show_priceboolean, nullableExample:trueshow_imageboolean, nullableExample:trueshow_store_linkboolean, nullableExample:trueshow_orders_linkboolean, nullableExample:truepdf_viewerboolean, nullableExample:falsehide_file_extensionsboolean, nullableExample:falseprice_formatstring, nullableExample:{{currency_symbol}}{{amount}}logo_sizeinteger, nullableExample:100cssanystore_urlstring, nullableExample:example-store.myshopify.comdefault_viewstring, nullableExample:files
download_limitsobjectShow 4 child attributesHide child attributes
showboolean, nullableExample:falseper_file_countanydaysanymessagesobjectShow 3 child attributesHide child attributes
limit_reachedstring, nullableExample:Sorry! This file is no longer available to download.countstring, nullableExample:Maximum downloads per file:daysstring, nullableExample:Available to download until
order_conditionsobjectShow 9 child attributesHide child attributes
check_statusboolean, nullableExample:truestatus_typestring, nullableExample:fulfillmentfinancial_statusstring, nullablefulfillment_statusstring, nullableExample:fulfilledshipment_statusstring, nullablerevoke_on_mismatchboolean, nullableExample:falserefunded_order_protectionboolean, nullableExample:falsefraud_protectionboolean, nullableExample:falseprocess_orders_on_updateboolean, nullableExample:false
shopify_syncobjectShow 5 child attributesHide child attributes
add_order_tagsboolean, nullableExample:falseorder_tagsstring, nullableExample:filemonk_ordermark_line_items_fulfilledboolean, nullableExample:falseskip_fulfillment_for_tagsanyadd_tracking_infoboolean, nullableExample:true
watermarkobjectShow 7 child attributesHide child attributes
enabledboolean, nullableExample:trueall_filesboolean, nullableExample:truetextstring, nullableExample:Licensed to {{order.customer_name}} ({{order.email_or_pho…stylestring, nullableExample:centerlayerstring, nullableExample:aboveopacityinteger, nullableExample:30fontobjectShow 3 child attributesHide child attributes
sizeinteger, nullableExample:30colorstring, nullableExample:#ff0018namestring, nullableExample:Courier New Bold
customer_accountsobjectShow 3 child attributesHide child attributes
button_textstring, nullableExample:Download filesproduct_downloads_subtitlestring, nullableExample:Downloads availableorder_statusobjectShow 4 child attributesHide child attributes
thanks_textstring, nullableExample:Thanks for your purchase! Click the button below to acces…button_textstring, nullableExample:Access downloadsthank_you_page_buttonboolean, nullableExample:trueorder_status_page_buttonboolean, nullableExample:true
eu_withdrawalobjectShow 4 child attributesHide child attributes
enabledboolean, nullableExample:falsescopestring, nullableExample:eu_onlyconsent_textstring, nullableExample:I request immediate access to this digital content and ac…button_textstring, nullableExample:Confirm and download
Errors
Missing or invalid API key.
The request failed validation, or sent a key the action does not take (code: "unknown_parameters" with unknown and accepted). Nothing was saved.
Rate limited. Cost-weighted per API key, shared with API v1: a read costs 1 point, a write 2, 40 points per fixed 60-second window. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix time the window ends); a 429 adds Retry-After (seconds), retry_after, retryable: true and a next_step in the body. A 429 did nothing: wait retry_after seconds, then send the same request again. The budget is per key, so every tool or script using the key shares it; prefer one list call with per_page over many single reads.
Every error has the same shape: see Errors.
curl -X PATCH "https://app.filemonk.io/api/v2/external/settings" \
-H "X-Auth-Token: $FILEMONK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": {
"subject": "Your downloads are ready",
"button": {
"text": "Download now"
}
},
"download_limits": {
"per_file_count": 5
}
}'const res = await fetch("https://app.filemonk.io/api/v2/external/settings", {
method: "PATCH",
headers: {
"X-Auth-Token": process.env.FILEMONK_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
"email": {
"subject": "Your downloads are ready",
"button": {
"text": "Download now"
}
},
"download_limits": {
"per_file_count": 5
}
}),
});
const data = await res.json();import os
import requests
res = requests.patch(
"https://app.filemonk.io/api/v2/external/settings",
headers={"X-Auth-Token": os.environ["FILEMONK_API_KEY"]},
json={
"email": {
"subject": "Your downloads are ready",
"button": {
"text": "Download now"
}
},
"download_limits": {
"per_file_count": 5
}
},
)
data = res.json()require "net/http"
require "json"
uri = URI("https://app.filemonk.io/api/v2/external/settings")
req = Net::HTTP::Patch.new(uri, "X-Auth-Token" => ENV["FILEMONK_API_KEY"], "Content-Type" => "application/json")
req.body = {
email: {
subject: "Your downloads are ready",
button: {
text: "Download now"
}
},
download_limits: {
per_file_count: 5
}
}.to_json
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
data = JSON.parse(res.body){
"general": {
"app_enabled": true,
"default_locale": "en",
"app_locale": "fr",
"multi_language_enabled": true,
"ignore_orders_before": {
"date": null,
"order_number": null
},
"branding_hidden": false
},
"email": {
"enabled": true,
"from_name": "Example Store",
"from_address": "alerts@filemonk.io",
"reply_to": "owner@example.com",
"report_address": "owner@example.com",
"subject": "Your {{shop.name}} {{order.name}} content",
"body": "Thanks for purchasing from {{shop.name}}! Click the button below to access the digital content for your order {{order.name}}.",
"button": {
"text": "Access downloads",
"text_color": "#fff",
"background_color": "#202223",
"border_radius": 5
},
"footer_text": "Facing trouble accessing your content? Contact us right away.",
"font_family": "sans-serif",
"logo_size": "200",
"colors": {
"text": "#202223",
"background": "#ffffff"
},
"css": null,
"product_update": {
"subject": "Update to {{product_variant.title}} in your order {{order.name}}",
"body": "Your most recent purchase for {{product_variant.title}} has been updated. Click the link below to access your updated content."
},
"merchant_notifications": {
"promotions": true,
"usage": true,
"licence_exhaustion": false,
"licence_exhaustion_threshold": 80
},
"domain": {
"custom_address": false,
"name": "example-store",
"dkim_verified": false
}
},
"download_page": {
"host": "storefront",
"path_prefix": "/apps/filemonk",
"require_login": null,
"texts": {
"thanks": "Thank you for purchasing from our store! Click on any of the products below to download your content.",
"button": "Download",
"store_link": "Visit store",
"orders_link": "My orders",
"orders_index": "My orders",
"custom_downloads": "Custom products",
"custom_downloads_ready": "Your digital content will be available here when it's ready.",
"licence_label": "Licence key",
"licence_type_label": "Key",
"licence_button": "View",
"licence_error": "No licence key available. Contact store.",
"login_title": "Customer Login Required",
"login_message": "You need to be logged in with the correct account to access your digital orders. Please click the button below to log in or switch to the appropriate account.",
"login_button": "Log In",
"total_label": "Total",
"files_label": "files",
"downloading": "Downloading...",
"processing": "Processing order. Please wait.",
"processing_button": "Processing...",
"preorder": "This product is currently in preorder and will be available for download on {{date}}.",
"watermarking": "Watermarking is not complete, please wait or reload the page to check again.",
"generic_error": "Something went wrong.",
"copy_button": "Copy",
"copied": "Copied to clipboard",
"not_available": "Not Available"
},
"colors": {
"text": "#202223",
"background": "#f6f7f7",
"section": "#ffffff",
"button_text": "#FFF",
"button_background": "#1B76FF"
},
"show_price": true,
"show_image": true,
"show_store_link": true,
"show_orders_link": true,
"pdf_viewer": false,
"hide_file_extensions": false,
"price_format": "{{currency_symbol}}{{amount}}",
"logo_size": 100,
"css": null,
"store_url": "example-store.myshopify.com",
"default_view": "files"
},
"download_limits": {
"show": false,
"per_file_count": null,
"days": null,
"messages": {
"limit_reached": "Sorry! This file is no longer available to download.",
"count": "Maximum downloads per file: ",
"days": "Available to download until"
}
},
"order_conditions": {
"check_status": true,
"status_type": "fulfillment",
"financial_status": "",
"fulfillment_status": "fulfilled",
"shipment_status": "",
"revoke_on_mismatch": false,
"refunded_order_protection": false,
"fraud_protection": false,
"process_orders_on_update": false
},
"shopify_sync": {
"add_order_tags": false,
"order_tags": "filemonk_order",
"mark_line_items_fulfilled": false,
"skip_fulfillment_for_tags": null,
"add_tracking_info": true
},
"watermark": {
"enabled": true,
"all_files": true,
"text": "Licensed to {{order.customer_name}} ({{order.email_or_phone}}), order {{order.name}}. Please don't share this file.",
"style": "center",
"layer": "above",
"opacity": 30,
"font": {
"size": 30,
"color": "#ff0018",
"name": "Courier New Bold"
}
},
"customer_accounts": {
"button_text": "Download files",
"product_downloads_subtitle": "Downloads available",
"order_status": {
"thanks_text": "Thanks for your purchase! Click the button below to access your files.",
"button_text": "Access downloads",
"thank_you_page_button": true,
"order_status_page_button": true
}
},
"eu_withdrawal": {
"enabled": false,
"scope": "eu_only",
"consent_text": "I request immediate access to this digital content and acknowledge that I lose my right of withdrawal once the download begins.",
"button_text": "Confirm and download"
}
}{
"errors": [
"Invalid API key"
]
}{
"errors": [
"access.download_limit_count must be an integer of at least 0"
],
"field_errors": {
"access.download_limit_count": [
"must be an integer of at least 0"
]
}
}{
"errors": [
"You have exceeded the rate limit of 40 points per 60 seconds. Read requests cost 1 point(s) and write requests cost 2 point(s). Please retry after 12 second(s)."
],
"code": "rate_limited",
"retry_after": 12,
"error": "Rate limit exceeded",
"message": "You have exceeded the rate limit of 40 points per 60 seconds. Read requests cost 1 point(s) and write requests cost 2 point(s). Please retry after 12 second(s)."
}