Get website configuration
curl https://texttospeech.responsivevoice.org/v2/config -H 'X-API-Key: YOUR_API_KEY' -H 'X-API-Secret: YOUR_API_SECRET'import { ResponsiveVoiceAPIClient } from '@responsivevoice/api-client';
const client = new ResponsiveVoiceAPIClient({ apiKey: 'YOUR_API_KEY', apiSecret: 'YOUR_API_SECRET' });const config = await client.getConfig();Returns the website configuration including feature flags and voice settings for the authenticated user.
Authorizations
Section titled “Authorizations ”Responses
Section titled “ Responses ”Website configuration with feature flags, voice settings (name, pitch, rate, volume), and sdkVersion.
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
object
Example
{ "features": { "welcomeMessage": { "enabled": false, "text": null }, "speakSelectedText": { "enabled": false }, "speakLinks": { "enabled": false }, "speakInactivity": { "enabled": false, "text": null }, "speakEndPage": { "enabled": false, "text": null }, "exitIntent": { "enabled": false, "text": null }, "accessibilityNavigation": { "enabled": false }, "paragraphNavigation": { "enabled": false }, "webPlayer": { "enabled": false, "selector": "article", "paragraphSelector": "p, h2, h3, li", "position": "before", "theme": "neutral", "controls": { "progress": true, "time": true, "skip": true, "speed": true, "brand": true }, "navigation": { "paragraphHighlight": true, "paragraphClick": true }, "layout": { "mode": "shrink", "display": "block" }, "miniPlayer": { "enabled": true, "position": "bottom-left", "animation": "slide" }, "sanitize": { "enabled": true, "exclude": [] } }, "welcomeMessageOnce": false }, "voice": { "name": "UK English Female", "pitch": 1, "rate": 1, "volume": 1 }, "analytics": { "enabled": false }, "sdkVersion": "v1"}Headers
Section titled “Headers ”Maximum requests permitted for the authenticated key per minute.
Maximum requests permitted for the authenticated key per minute.
Requests remaining in the current per-minute window; 0 once the per-minute limit is reached. Reflects the per-minute limit, not the burst check — a burst 429 may report a value above 0.
Requests remaining in the current per-minute window; 0 once the per-minute limit is reached. Reflects the per-minute limit, not the burst check — a burst 429 may report a value above 0.
API key required — all config requests must be authenticated
API error response
object
object
Example generated
{ "error": { "message": "example", "code": "example", "statusCode": 1, "errors": "example" }}Rate limit exceeded. The body code is RATE_LIMIT_EXCEEDED (per-minute tier limit) or BURST_RATE_LIMIT_EXCEEDED (per API key + client IP burst).
API error response
object
object
Example generated
{ "error": { "message": "example", "code": "example", "statusCode": 1, "errors": "example" }}Headers
Section titled “Headers ”Maximum requests permitted for the authenticated key per minute.
Maximum requests permitted for the authenticated key per minute.
Requests remaining in the current per-minute window; 0 once the per-minute limit is reached. Reflects the per-minute limit, not the burst check — a burst 429 may report a value above 0.
Requests remaining in the current per-minute window; 0 once the per-minute limit is reached. Reflects the per-minute limit, not the burst check — a burst 429 may report a value above 0.
Seconds to wait before retrying. Dynamic — varies with how far over the limit the request went; honor this header rather than assuming a fixed delay.
Seconds to wait before retrying. Dynamic — varies with how far over the limit the request went; honor this header rather than assuming a fixed delay.