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 (opens in a new window)), which requires all header field names to be lowercase.
What this means for you
Most HTTP client libraries (e.g. requests
in Python, axios
in JavaScript, Faraday
or Net::HTTP
in Ruby, net/http
in Go, and HttpClient
or OkHttp
in Java) already handle header field names case-insensitively. 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.