{
"error": {
"code": "cycle_conflict",
"message": "cycle 20260929T0205 was already received with a different body"
}
}
{
"error": {
"code": "unprocessable",
"message": "cycle_time cannot be more than 60 seconds in the future",
"fields": [
{
"path": "cycle_time",
"problem": "must not exceed server time by more than 60 seconds"
}
]
}
}
{
"error": {
"code": "cycle_conflict",
"message": "cycle 20260929T0205 was already received with a different body"
}
}
{
"error": {
"code": "unprocessable",
"message": "cycle_time cannot be more than 60 seconds in the future",
"fields": [
{
"path": "cycle_time",
"problem": "must not exceed server time by more than 60 seconds"
}
]
}
}
Not in scope for trial. Client-driven weight changes through this endpoint are outside the current trial integration scope. The trial uses the delivered model with down-vote weight 0.
Surf computes the final score, with weights adjustable without retraining. The intended initial configuration has down-vote weight 0. Per-part predictions are optional.This endpoint proposes versioned configuration changes, taking effect on the next cycle. The activation cycle must be explicit, and every affected score must be computed with the reported version. Re-reading an older completed cycle preserves its original scores and versions.Before including this endpoint in a later phase, confirm who can change weights and how changes are coordinated. Do not assume per-endpoint credential scope enforcement is already implemented.The current runtime only accepts a configuration matching the loaded model: views=1, comments=0, up=0, and downvote_share equal to Surf’s configured coefficient. Other values return 422 unsupported_weights. The real artifact does not contain comments or up-vote heads. Surf controls the finite non-negative coefficient through RTB_DOWNVOTE_COEFFICIENT, initially zero, without retraining. hide and deletion remain zero. Version-name and note-length protections are implementation choices, described in Conventions.Repeating the same version and configuration returns the original acknowledgement; changing a previously used version returns a conflict. Verify refresh behavior and restart durability before enabling client-driven configuration changes.
Proposed API key sent as the whole Authorization header value. One long-lived key, handed privately to the partner contact and rotated on either side's request. Per-endpoint scopes are not currently enforced.
Proposed stable configuration version. Current engineering protection: letters, digits, dot, underscore or hyphen, up to 64 characters. Same version/body can be retried; different configuration under that version conflicts.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"DCinside RTB API Documentation","colors":{"primary":"#000000","light":"#4D9CFF","dark":"#0050B4"},"api":{"playground":{"display":"simple","proxy":false}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"surfai-5f1034e6","hasAudioNarration":false,"actualSubdomain":"surfai-5f1034e6","customDomains":["surf-dcinside-api.kr.ask.surf"],"gitSource":{"type":"github","owner":"hl219","repo":"dcinside-rtb-api-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ace4f2a99d09ae5ef3fff07","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"Getting Started","count":5},{"language":"default","tag":"Scoring API","count":4},{"language":"default","tag":"Weights and Outcomes","count":3},{"language":"default","tag":"Operations","count":1},{"language":"default","tag":"Images API","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"set-weights","slug":"/set-weights","pageMetadata":{"title":"Set Weights","description":"Proposed configuration changes without retraining","openapi":"openapi.json PUT /v1/weights","href":"/set-weights"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Proposed configuration changes without retraining\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Not in scope for trial.`}),` Client-driven weight changes through this endpoint are outside the current trial integration scope. The trial uses the delivered model with down-vote weight 0.`]})}),`\n`,_jsx(_components.p,{children:`Surf computes the final score, with weights adjustable without retraining. The intended initial configuration has down-vote weight 0. Per-part predictions are optional.`}),`\n`,_jsx(_components.p,{children:`This endpoint proposes versioned configuration changes, taking effect on the next cycle. The activation cycle must be explicit, and every affected score must be computed with the reported version. Re-reading an older completed cycle preserves its original scores and versions.`}),`\n`,_jsx(_components.p,{children:`Before including this endpoint in a later phase, confirm who can change weights and how changes are coordinated. Do not assume per-endpoint credential scope enforcement is already implemented.`}),`\n`,_jsxs(_components.p,{children:[`The current runtime only accepts a configuration matching the loaded model: `,_jsx(_components.code,{children:`views=1`}),`, `,_jsx(_components.code,{children:`comments=0`}),`, `,_jsx(_components.code,{children:`up=0`}),`, and `,_jsx(_components.code,{children:`downvote_share`}),` equal to Surf’s configured coefficient. Other values return `,_jsx(_components.code,{children:`422 unsupported_weights`}),`. The real artifact does not contain comments or up-vote heads. Surf controls the finite non-negative coefficient through `,_jsx(_components.code,{children:`RTB_DOWNVOTE_COEFFICIENT`}),`, initially zero, without retraining. `,_jsx(_components.code,{children:`hide`}),` and `,_jsx(_components.code,{children:`deletion`}),` remain zero. Version-name and note-length protections are implementation choices, described in `,_jsx(_components.a,{href:`/conventions#current-service-protections`,children:`Conventions`}),`.`]}),`\n`,_jsx(_components.p,{children:`Repeating the same version and configuration returns the original acknowledgement; changing a previously used version returns a conflict. Verify refresh behavior and restart durability before enabling client-driven configuration changes.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Set Weights","description":"Proposed configuration changes without retraining","openapi":"openapi.json PUT /v1/weights","href":"/set-weights"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"putWeights","tags":["Weights"],"summary":"Set Weights","description":"Proposed configuration changes without retraining","requestBody":"bd9941a6-37ee-4a88-a9c8-c15488934153","responses":{"200":"335c4c78-6819-47d7-9c33-4cd1e3866cfb","400":"308f0af5-61e2-4f4a-9b30-fcf6ef2c173b","401":"08c843ab-40b7-432d-ba3e-18302bfaa083","409":"d9150d1b-c722-4298-8aff-08e2120350d8","422":"014e054b-1ed4-4a27-8f02-ccb26607378c","500":"adba1c00-cdd3-469e-8409-8d5308a42b5a"},"x-trial-scope":"reference-only","method":"put","type":"path","servers":["d1723271-11ec-4bd0-a177-e7183babf553"],"security":["10858110-c05f-43f2-9504-99ddb0a1cf38"],"path":"/v1/weights","baseUrlOptions":["https://dcinside-rtb-api.stg.kr.ask.surf"],"title":"Set Weights","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","pattern":"^[A-Za-z0-9._-]{1,64}$","example":"w-1","description":"Proposed stable configuration version. Current engineering protection: letters, digits, dot, underscore or hyphen, up to 64 characters. Same version/body can be retried; different configuration under that version conflicts.","isRequired":true,"uniqueKey":"version","typeLabel":"string"},"weights":{"type":"object","properties":{"views":{"type":"number","minimum":0,"example":1,"description":"Weight on `p_views`.","isRequired":true,"uniqueKey":"weights.views","typeLabel":"number"},"comments":{"type":"number","minimum":0,"example":0,"description":"Weight on `p_comments`.","isRequired":true,"uniqueKey":"weights.comments","typeLabel":"number"},"up":{"type":"number","minimum":0,"example":0,"description":"Weight on `p_up`.","isRequired":true,"uniqueKey":"weights.up","typeLabel":"number"},"downvote_share":{"type":"number","minimum":0,"example":0,"description":"Weight on the predicted down-vote share. It is subtracted, so send it as a positive number.","isRequired":true,"uniqueKey":"weights.downvote_share","typeLabel":"number"},"hide":{"type":"integer","enum":[0],"example":0,"description":"Reserved for the later hide head. Must be 0 or left out.","uniqueKey":"weights.hide","typeLabel":"enum\u003cinteger>"},"deletion":{"type":"integer","enum":[0],"example":0,"description":"Reserved for the later deletion head. Must be 0 or left out.","uniqueKey":"weights.deletion","typeLabel":"enum\u003cinteger>"}},"required":["views","comments","up","downvote_share"],"description":"Publish-score weights. At least one of `views`, `comments` and `up` must be above 0.","isRequired":true,"uniqueKey":"weights","typeLabel":"object"},"note":{"type":"string","maxLength":500,"example":"first trial: views only","description":"Optional annotation; current implementation protection is 500 characters, not a client-agreed business limit.","uniqueKey":"note","typeLabel":"string"}},"required":["version","weights"],"uniqueKey":"","typeLabel":"object"},"example":{"version":"w-1","weights":{"views":1,"comments":0,"up":0,"downvote_share":0},"note":"first trial: views only"},"examples":{"Example":{"title":"Example","value":{"version":"w-1","weights":{"views":1,"comments":0,"up":0,"downvote_share":0},"note":"first trial: views only"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"335c4c78-6819-47d7-9c33-4cd1e3866cfb":{"description":"Accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"string","example":"w-1","description":"The accepted version, scheduled for first_cycle_time; not necessarily active at receipt time.","isRequired":true,"uniqueKey":"version","typeLabel":"string"},"first_cycle_time":{"type":"string","format":"date-time","description":"The first cycle the weights apply to, which is the next one.","example":"2026-09-29T02:10:00+09:00","pattern":"^\\d{4}-\\d{2}-\\d{2}[Tt]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:[Zz]|[+-]\\d{2}:\\d{2})$","isRequired":true,"uniqueKey":"first_cycle_time","typeLabel":"string\u003cdate-time>"}},"required":["version","first_cycle_time"],"uniqueKey":"","typeLabel":"object"},"example":{"version":"w-1","first_cycle_time":"2026-09-29T02:10:00+09:00"},"examples":{"Example":{"title":"Example","value":{"version":"w-1","first_cycle_time":"2026-09-29T02:10:00+09:00"}}},"exampleType":"examples"}},"exampleType":"examples"},"308f0af5-61e2-4f4a-9b30-fcf6ef2c173b":{"description":"Malformed JSON or a request-schema failure. Semantic checks may return only the first error; no exhaustive-error guarantee.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","description":"Machine-readable code. See Errors.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"2 fields failed validation","description":"Human-readable summary.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"candidates[0].created_at","description":"Path of the failing field.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"problem":{"type":"string","example":"timestamp must include an explicit offset","description":"Description of the validation failure.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].problem","typeLabel":"string"}},"required":["path","problem"],"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"Every failing field, when the error is about the body.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"bad_request","message":"2 fields failed validation","fields":[{"path":"candidates[0].created_at","problem":"timestamp must include an explicit offset"},{"path":"engagement[3].views","problem":"must be a non-negative integer or null"}]}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"bad_request","message":"2 fields failed validation","fields":[{"path":"candidates[0].created_at","problem":"timestamp must include an explicit offset"},{"path":"engagement[3].views","problem":"must be a non-negative integer or null"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"08c843ab-40b7-432d-ba3e-18302bfaa083":{"description":"The API key is missing or unknown.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","description":"Machine-readable code. See Errors.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"2 fields failed validation","description":"Human-readable summary.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"candidates[0].created_at","description":"Path of the failing field.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"problem":{"type":"string","example":"timestamp must include an explicit offset","description":"Description of the validation failure.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].problem","typeLabel":"string"}},"required":["path","problem"],"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"Every failing field, when the error is about the body.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unauthorized","message":"API key missing or unknown"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unauthorized","message":"API key missing or unknown"}}}},"exampleType":"examples"}},"exampleType":"examples"},"d9150d1b-c722-4298-8aff-08e2120350d8":{"description":"The id was already used with a different body. The first body stays.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","description":"Machine-readable code. See Errors.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"2 fields failed validation","description":"Human-readable summary.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"candidates[0].created_at","description":"Path of the failing field.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"problem":{"type":"string","example":"timestamp must include an explicit offset","description":"Description of the validation failure.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].problem","typeLabel":"string"}},"required":["path","problem"],"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"Every failing field, when the error is about the body.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"cycle_conflict","message":"cycle 20260929T0205 was already received with a different body"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"cycle_conflict","message":"cycle 20260929T0205 was already received with a different body"}}}},"exampleType":"examples"}},"exampleType":"examples"},"014e054b-1ed4-4a27-8f02-ccb26607378c":{"description":"The body is valid JSON and matches the schema, but the values are not acceptable. Nothing is stored.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","description":"Machine-readable code. See Errors.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"2 fields failed validation","description":"Human-readable summary.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"candidates[0].created_at","description":"Path of the failing field.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"problem":{"type":"string","example":"timestamp must include an explicit offset","description":"Description of the validation failure.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].problem","typeLabel":"string"}},"required":["path","problem"],"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"Every failing field, when the error is about the body.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"unprocessable","message":"cycle_time cannot be more than 60 seconds in the future","fields":[{"path":"cycle_time","problem":"must not exceed server time by more than 60 seconds"}]}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"unprocessable","message":"cycle_time cannot be more than 60 seconds in the future","fields":[{"path":"cycle_time","problem":"must not exceed server time by more than 60 seconds"}]}}}},"exampleType":"examples"}},"exampleType":"examples"},"adba1c00-cdd3-469e-8409-8d5308a42b5a":{"description":"Server failure. Skip late or unusable scores for the decision cycle, preserve unacknowledged data and reconcile delivery. Alert delivery must be verified separately.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","description":"Machine-readable code. See Errors.","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","example":"2 fields failed validation","description":"Human-readable summary.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"candidates[0].created_at","description":"Path of the failing field.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].path","typeLabel":"string"},"problem":{"type":"string","example":"timestamp must include an explicit offset","description":"Description of the validation failure.","isRequired":true,"uniqueKey":"error.fields.items.[INDEX].problem","typeLabel":"string"}},"required":["path","problem"],"uniqueKey":"error.fields.items.[INDEX]","typeLabel":"object"},"description":"Every failing field, when the error is about the body.","uniqueKey":"error.fields","typeLabel":"object[]"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"server_error","message":"internal error"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"server_error","message":"internal error"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"10858110-c05f-43f2-9504-99ddb0a1cf38":{"ApiKey":{"type":"apiKey","name":"Authorization","in":"header","description":"Proposed API key sent as the whole Authorization header value. One long-lived key, handed privately to the partner contact and rotated on either side's request. Per-endpoint scopes are not currently enforced.","scopes":[],"schemeName":"ApiKey"}}},"servers":{"d1723271-11ec-4bd0-a177-e7183babf553":{"url":"https://dcinside-rtb-api.stg.kr.ask.surf","description":"Planned rehearsal host. Cut over only after deployment and reachability verification; this specification does not declare the endpoint available."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","name":"Authorization","in":"header","description":"Proposed API key sent as the whole Authorization header value. One long-lived key, handed privately to the partner contact and rotated on either side's request. Per-endpoint scopes are not currently enforced.","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"Authorization","type":"string","description":"Proposed API key sent as the whole Authorization header value. One long-lived key, handed privately to the partner contact and rotated on either side's request. Per-endpoint scopes are not currently enforced.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"Authorization"}],"title":"ApiKey"}]},"originalFileLocation":"openapi.json"},"subdomain":"surfai-5f1034e6","siteName":"DCinside RTB API Documentation","title":"Set Weights - DCinside RTB API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T00:06:52.168Z","originalFileLocation":"set-weights.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Proposed configuration changes without retraining\">\u003cmeta data-mint-head name=\"application-name\" content=\"DCinside RTB API Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/surfai-5f1034e6/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/surfai-5f1034e6/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/surfai-5f1034e6/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/surfai-5f1034e6/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Set Weights - DCinside RTB API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Proposed configuration changes without retraining\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"DCinside RTB API Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://surf-dcinside-api.kr.ask.surf/set-weights\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://surfai-5f1034e6.mintlify.site/_mintlify/api/og/v2?division=Weights+and+Outcomes\u0026amp;title=Set+Weights\u0026amp;description=Proposed+configuration+changes+without+retraining\u0026amp;theme=21aace743e76edc6f913ef76\u0026amp;signature=80d49443631069c151e844274fb4ae6f71b12800db02f55ac3f5ee2850e42e13\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Set Weights - DCinside RTB API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Proposed configuration changes without retraining\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://surfai-5f1034e6.mintlify.site/_mintlify/api/og/v2?division=Weights+and+Outcomes\u0026amp;title=Set+Weights\u0026amp;description=Proposed+configuration+changes+without+retraining\u0026amp;theme=21aace743e76edc6f913ef76\u0026amp;signature=80d49443631069c151e844274fb4ae6f71b12800db02f55ac3f5ee2850e42e13\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/surfai-5f1034e6/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"DCinside RTB API Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://surf-dcinside-api.kr.ask.surf/set-weights\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/set-weights.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://surf-dcinside-api.kr.ask.surf/#organization\",\"name\":\"DCinside RTB API Documentation\",\"url\":\"https://surf-dcinside-api.kr.ask.surf\"},{\"@type\":\"WebSite\",\"@id\":\"https://surf-dcinside-api.kr.ask.surf#website\",\"name\":\"DCinside RTB API Documentation\",\"url\":\"https://surf-dcinside-api.kr.ask.surf\",\"publisher\":{\"@id\":\"https://surf-dcinside-api.kr.ask.surf/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://surf-dcinside-api.kr.ask.surf/set-weights#webpage\",\"url\":\"https://surf-dcinside-api.kr.ask.surf/set-weights\",\"name\":\"Set Weights\",\"description\":\"Proposed configuration changes without retraining\",\"dateModified\":\"2026-10-01T00:06:52.168Z\",\"isPartOf\":{\"@id\":\"https://surf-dcinside-api.kr.ask.surf#website\"},\"breadcrumb\":{\"@id\":\"https://surf-dcinside-api.kr.ask.surf/set-weights#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://surf-dcinside-api.kr.ask.surf/set-weights#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Weights and Outcomes\",\"item\":\"https://surf-dcinside-api.kr.ask.surf/outcomes\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Set Weights\",\"item\":\"https://surf-dcinside-api.kr.ask.surf/set-weights\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://surf-dcinside-api.kr.ask.surf/set-weights#apireference\",\"headline\":\"Set Weights\",\"name\":\"Set Weights\",\"description\":\"Proposed configuration changes without retraining\",\"url\":\"https://surf-dcinside-api.kr.ask.surf/set-weights\",\"mainEntityOfPage\":{\"@id\":\"https://surf-dcinside-api.kr.ask.surf/set-weights#webpage\"},\"dateModified\":\"2026-10-01T00:06:52.168Z\",\"publisher\":{\"@id\":\"https://surf-dcinside-api.kr.ask.surf/#organization\"},\"isPartOf\":{\"@id\":\"https://surf-dcinside-api.kr.ask.surf#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"DCinside RTB API Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"DCinside RTB API Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/set-weights.md","siteName":"DCinside RTB API Documentation","nav":{"global":null,"groups":[{"group":"Getting Started","pages":[{"title":"Overview","href":"/overview"},{"title":"Conventions","href":"/conventions"},{"title":"How Scoring Works","href":"/scoring"},{"title":"Rehearsal and Acceptance","href":"/rollout"},{"title":"Errors and Recovery","href":"/errors"}]},{"group":"Scoring API","pages":[{"title":"Score a Cycle","openapi":"openapi.json POST /v1/cycles","href":"/cycles"},{"title":"Retrieve Cycle Scores","openapi":"openapi.json GET /v1/scores/{cycle_id}","href":"/scores"},{"title":"Event Deduplication","href":"/deduplication"},{"title":"Calling from the DCinside Worker","href":"/client"}]},{"group":"Images API","pages":[{"title":"Upload an Image","openapi":"openapi.json PUT /v1/images/{gall_id}/{post_no}/{NN}","href":"/images"}]},{"group":"Weights and Outcomes","tag":"Not in scope for trial","pages":[{"title":"Operator Outcomes","description":"Not in scope for trial — outcomes endpoint reference","openapi":"openapi.json POST /v1/outcomes","href":"/outcomes"},{"title":"Set Weights","openapi":"openapi.json PUT /v1/weights","href":"/set-weights"},{"title":"Get Weights","description":"Inspect the configured score weights and their versions","openapi":"openapi.json GET /v1/weights","href":"/get-weights"}]},{"group":"Operations","pages":[{"title":"Health","openapi":"openapi.json GET /v1/health","href":"/health"}]}]},"basePath":"","title":"Set Weights - DCinside RTB API Documentation","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","Page-DTNSD-0M.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}