Before you start
- Request v3 API keys from your PolyAI representative. v3 keys are project- and region-scoped — you need a separate key for each project and region combination.
- v3 uses the same
X-Api-Keyheader authentication as v1, so your HTTP client setup does not need to change. - The base URL pattern remains the same, only the version changes:
Breaking changes
The following changes require updates to your integration code.Null handling
v1 returnsnull for empty text fields. v3 returns empty strings ("").
Update any null checks to also handle empty strings:
Timestamps
v3 uses consistent ISO 8601 timestamps throughout. v1 had inconsistent formatting across some fields.New turn-level fields
v3 adds the following fields to each turn object:| Field | Type | Description |
|---|---|---|
translated_user_input | string | English translation of the user’s input (when translation is enabled) |
english_agent_response | string | English version of the agent’s response (when translation is enabled) |
latency | object | Per-turn latency metrics (when include_latency=true) |
Pagination
| Behavior | v1 | v3 |
|---|---|---|
| Default limit | 5 | 5 |
| Max limit | 5,000 | 5,000 |
| Pagination token | next_offset (only present when more pages exist) | next_offset |
The query parameters (
start_time, end_time, client_env, limit, offset) and pagination behavior remain the same between v1 and v3.Fields to verify
The following v1 fields may behave differently in v3. Check your integration if you depend on these:| v1 field | v3 status | Notes |
|---|---|---|
state | May not be present | Dialogue state key-value pairs. Verify availability with your PolyAI representative if your integration reads this field. |
variant_name | May not be present | Check if your integration uses variant_name for filtering or routing. variant_id remains available. |
Migration checklist
Request v3 keys
Contact your PolyAI representative to provision v3 API keys for each project and region you need.
Update null handling
Replace null checks with empty-string-aware checks for all text fields (
user_input, agent_response, translated_user_input, english_agent_response, etc.).Test in sandbox
Point your integration at v3 with
client_env=sandbox and verify that your parsing, storage, and downstream processing handle the new response format correctly.Switch production traffic
Once sandbox testing is complete, update your production integration to use the v3 endpoint and keys.

