Every public API header now has one canonical, un-prefixed name

Speechify-Request-Id and RateLimit-* are now the canonical header names across the public API; the old X-prefixed spellings keep working until 2027-07-24.

Developer Relations · SpeechifyAI Labs
1 min read

Speechify already shipped three header families without an X- prefix - Speechify-Version, Speechify-Signature, Speechify-Route - alongside older headers that still carried one, like X-Request-ID. That split is gone: every header in the public API surface now has a single canonical, un-prefixed name, following the same RFC 6648 guidance the newer families already used. (One internal usage-accounting header on the streaming endpoints, X-Speechify-Billable-Characters-Count, is out of scope and keeps its X- form.)

X-Request-ID is now Speechify-Request-Id; the rate-limit budget headers are the un-prefixed RateLimit-Limit / RateLimit-Remaining / RateLimit-Reset (the same IETF-draft names other APIs are converging on); the audio streaming content-type header drops its X- prefix too; and on the request side, X-Speechify-SDK / -SDK-Version and X-Tenant-ID get canonical names as well.

Nothing breaks today. Every legacy X--prefixed spelling is still accepted on requests and still emitted on responses, side by side with the canonical name, through 2027-07-24. Existing integrations don’t need to change; new ones should read the canonical name.

Full before/after table and an example response in the docs changelog entry.