Read conversation response preferences
const url = 'https://api.harperharbor.com/open/v1/conversation/response-settings?conversationId=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.harperharbor.com/open/v1/conversation/response-settings?conversationId=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0' \ --header 'Authorization: Bearer <token>'HarperHarbor-only operation. Requires chat.play and conversation ownership.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Responses
Section titled “Responses”Authoritative saved settings and resolved effective preferences.
object
object
Effective reply length target when length is target, absent otherwise. Characters for Chinese, Japanese and Korean replies, words for English.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Reply output: when on, content is returned incrementally; when off, the complete result is returned once generation finishes. On by default. World-mode turns always return content incrementally.
object
Effective reply length target when length is target, absent otherwise. Characters for Chinese, Japanese and Korean replies, words for English.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Reply output: when on, content is returned incrementally; when off, the complete result is returned once generation finishes. On by default. World-mode turns always return content incrementally.
What applies when the player has chosen nothing: platform defaults with the card’s author defaults on top. Show these for axes absent from overrides; resetting an axis returns to this value.
object
Effective reply length target when length is target, absent otherwise. Characters for Chinese, Japanese and Korean replies, words for English.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Optional refinement of the selected option for this axis only; where it differs from the option, the note takes precedence. Nonblank, at most 200 Unicode code points.
Reply output: when on, content is returned incrementally; when off, the complete result is returned once generation finishes. On by default. World-mode turns always return content incrementally.
Example
{ "scope": "conversation", "schemaVersion": 1, "overrides": { "agency": "protect", "style": "default", "perspective": "card", "length": "auto", "lengthTarget": 200, "pace": "natural", "streaming": "on" }, "effective": { "agency": "protect", "style": "default", "perspective": "card", "length": "auto", "lengthTarget": 200, "pace": "natural", "streaming": "on" }, "defaults": { "agency": "protect", "style": "default", "perspective": "card", "length": "auto", "lengthTarget": 200, "pace": "natural", "streaming": "on" }}Invalid request or patch. No settings changed.
object
Error code (snake_case) or, for legacy handlers, a free-text/localized message.
Human-readable sentence. Present only on middleware errors and /me, /me/wallet.
Whether retrying may succeed. Present only on middleware errors, /me, /me/wallet and service/share routes.
Only on a first-turn context_capacity_exceeded: the smallest context tier that fits the whole card with room to talk. Save it as context in player settings and resend. Absent when no tier fits.
The token budget of required_context_tier for the selected model, for display.
Only on a first-turn context_capacity_exceeded: whether saving trimConstantLore=true lets the card play at the current tier. Absent on mid-conversation capacity errors.
Only on insufficient_credits: the credits this turn needs before it can start. Absent when the refusal came without an estimate.
Only on insufficient_credits: the credits the wallet could set aside for it.
Examplegenerated
{ "error": "example", "message": "example", "retryable": true, "required_context_tier": 1, "required_context_tokens": 1, "constant_lore_trim_fits": true, "credits_needed": 1, "credits_available": 1}Missing or invalid bearer token.
object
Error code (snake_case) or, for legacy handlers, a free-text/localized message.
Human-readable sentence. Present only on middleware errors and /me, /me/wallet.
Whether retrying may succeed. Present only on middleware errors, /me, /me/wallet and service/share routes.
Only on a first-turn context_capacity_exceeded: the smallest context tier that fits the whole card with room to talk. Save it as context in player settings and resend. Absent when no tier fits.
The token budget of required_context_tier for the selected model, for display.
Only on a first-turn context_capacity_exceeded: whether saving trimConstantLore=true lets the card play at the current tier. Absent on mid-conversation capacity errors.
Only on insufficient_credits: the credits this turn needs before it can start. Absent when the refusal came without an estimate.
Only on insufficient_credits: the credits the wallet could set aside for it.
Examplegenerated
{ "error": "example", "message": "example", "retryable": true, "required_context_tier": 1, "required_context_tokens": 1, "constant_lore_trim_fits": true, "credits_needed": 1, "credits_available": 1}Chat.play scope required.
object
Error code (snake_case) or, for legacy handlers, a free-text/localized message.
Human-readable sentence. Present only on middleware errors and /me, /me/wallet.
Whether retrying may succeed. Present only on middleware errors, /me, /me/wallet and service/share routes.
Only on a first-turn context_capacity_exceeded: the smallest context tier that fits the whole card with room to talk. Save it as context in player settings and resend. Absent when no tier fits.
The token budget of required_context_tier for the selected model, for display.
Only on a first-turn context_capacity_exceeded: whether saving trimConstantLore=true lets the card play at the current tier. Absent on mid-conversation capacity errors.
Only on insufficient_credits: the credits this turn needs before it can start. Absent when the refusal came without an estimate.
Only on insufficient_credits: the credits the wallet could set aside for it.
Examplegenerated
{ "error": "example", "message": "example", "retryable": true, "required_context_tier": 1, "required_context_tokens": 1, "constant_lore_trim_fits": true, "credits_needed": 1, "credits_available": 1}Conversation is unavailable to this caller.
object
Error code (snake_case) or, for legacy handlers, a free-text/localized message.
Human-readable sentence. Present only on middleware errors and /me, /me/wallet.
Whether retrying may succeed. Present only on middleware errors, /me, /me/wallet and service/share routes.
Only on a first-turn context_capacity_exceeded: the smallest context tier that fits the whole card with room to talk. Save it as context in player settings and resend. Absent when no tier fits.
The token budget of required_context_tier for the selected model, for display.
Only on a first-turn context_capacity_exceeded: whether saving trimConstantLore=true lets the card play at the current tier. Absent on mid-conversation capacity errors.
Only on insufficient_credits: the credits this turn needs before it can start. Absent when the refusal came without an estimate.
Only on insufficient_credits: the credits the wallet could set aside for it.
Examplegenerated
{ "error": "example", "message": "example", "retryable": true, "required_context_tier": 1, "required_context_tokens": 1, "constant_lore_trim_fits": true, "credits_needed": 1, "credits_available": 1}Stale expectedRevision; reload without discarding the local draft.
object
Error code (snake_case) or, for legacy handlers, a free-text/localized message.
Human-readable sentence. Present only on middleware errors and /me, /me/wallet.
Whether retrying may succeed. Present only on middleware errors, /me, /me/wallet and service/share routes.
Only on a first-turn context_capacity_exceeded: the smallest context tier that fits the whole card with room to talk. Save it as context in player settings and resend. Absent when no tier fits.
The token budget of required_context_tier for the selected model, for display.
Only on a first-turn context_capacity_exceeded: whether saving trimConstantLore=true lets the card play at the current tier. Absent on mid-conversation capacity errors.
Only on insufficient_credits: the credits this turn needs before it can start. Absent when the refusal came without an estimate.
Only on insufficient_credits: the credits the wallet could set aside for it.
Examplegenerated
{ "error": "example", "message": "example", "retryable": true, "required_context_tier": 1, "required_context_tokens": 1, "constant_lore_trim_fits": true, "credits_needed": 1, "credits_available": 1}Service unavailable.
object
Error code (snake_case) or, for legacy handlers, a free-text/localized message.
Human-readable sentence. Present only on middleware errors and /me, /me/wallet.
Whether retrying may succeed. Present only on middleware errors, /me, /me/wallet and service/share routes.
Only on a first-turn context_capacity_exceeded: the smallest context tier that fits the whole card with room to talk. Save it as context in player settings and resend. Absent when no tier fits.
The token budget of required_context_tier for the selected model, for display.
Only on a first-turn context_capacity_exceeded: whether saving trimConstantLore=true lets the card play at the current tier. Absent on mid-conversation capacity errors.
Only on insufficient_credits: the credits this turn needs before it can start. Absent when the refusal came without an estimate.
Only on insufficient_credits: the credits the wallet could set aside for it.
Examplegenerated
{ "error": "example", "message": "example", "retryable": true, "required_context_tier": 1, "required_context_tokens": 1, "constant_lore_trim_fits": true, "credits_needed": 1, "credits_available": 1}