The doc string of url-retrieve says: > The variables ‘url-request-data’, ‘url-request-method’ and > ‘url-request-extra-headers’ can be dynamically bound around the > request; dynamic binding of other variables doesn’t necessarily > take effect. It seems that there is no way to set ‘url-mime-encoding-string’, ‘url-mime-charset-string’, and ‘url-mime-accept-string’ for a single asynchronous query (things work with ‘url-retrieve-synchronously’, but not with ‘url-retrieve’). More precisely: this sends a query with ‘Accept: */*’, and prints nil: (let ((url-mime-accept-string "abc/def")) (url-retrieve "http://www.gnu.org/software/emacs/" (lambda (&rest _) (message "url-retrieve: %S" url-mime-accept-string)))) but this sends a query with ‘Accept: abc/def’, and prints “abc/def”: (let ((url-mime-accept-string "abc/def")) (with-current-buffer (url-retrieve-synchronously "http://www.gnu.org/software/emacs/") (message "url-retrieve: %S" url-mime-accept-string))) If this is exepcted, could we document the proper way to set an Accept header? Clément. In GNU Emacs 25.0.90.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) of 2016-02-23 built on clem-w50-mint Repository revision: f1dc3dc63ae4e454ca0e98eebbd80f0ba9d5c356 Windowing system distributor 'The X.Org Foundation', version 11.0.11501000 System Description: Linux Mint 17.3 Rosa Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix