Header key casing change for HTTP/2 compatibility
Starting 2025-11-26, all HTTP response headers returned by the Storyblok API will use lowercase field names (e.g., content-type instead of Content-Type).
This aligns with the HTTP/2 specification (RFC 7540 §8.1.2), which requires all header field names to be lowercase.
What this means for you
Most HTTP client libraries already handle header field names case-insensitively. For example:
requestsin PythonaxiosorFetchin JavaScriptFaradayorNet::HTTPin Rubynet/httpin GoHttpClientorOkHttpin JavaSymfony HTTP Clientfor PHP
These implementations will continue to work without any changes.
If your code accesses response headers using a case-sensitive map or text-based parser, you should verify that it does not rely on the previous capitalization.
# Check how your client or implementation handles different cases.
# They should all return the same value.
puts headers["content-type"]
puts headers["Content-Type"]
# If not, read both versions to stay compatible with the upcoming change.
value = headers["content-type"] || headers["Content-Type"] Why we’re doing this
This change ensures full HTTP/2 compliance, simplifies header handling across different transports, and improves interoperability with proxies, CDNs, and future protocol versions.
We recommend verifying your API integrations before 2025-11-26 to avoid any unexpected behavior.