Use this route after a lost response or to reconcile a cycle. It returns the stored result for that cycle and does not trigger scoring or an LLM call. The original deduplication report is returned unchanged, even if its status was partial or unavailable and background checks have since completed. New verdicts can appear in a new cycle’s response; this route does not poll for updated deduplication results. Cycles completed before this extension may omit deduplication.A historical response stays unchanged even if a later cycle refreshes the same post’s score or removes that post. Check cycle identity and scoring time before using any result. A successful retrieval does not make a late or stale response eligible for the current decision cycle.A 404 means the requested final result is not available. The durable store preserves completed responses across process restarts. A request can have a recorded receipt or durable prepared scores while it is still waiting or after interruption, so a 404 is not proof that it was never received. Replay the unchanged request to complete it; an existing preparation is resumed without repeating ingestion or scoring. GET does not expose an unfinished preparation. Verify volume recovery before rehearsal. Keep unacknowledged data until it is reconciled.The response example is the same proposed cycle result documented under Score a Cycle.
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.
Version reported by the actual loaded Model 0924 adapter and configured down-vote coefficient. No environment-only label override or proxy scorer is used.
One result per pending candidate under the proposed refresh policy. Scores may change across new cycles; replay of a completed cycle is unchanged. Removed posts are absent from subsequent cycles.
Persisted LLM same-event rankings and honest unchecked coverage for main/light. Every raw score remains in results. Omitted for legacy completed cycles. Partial/unavailable completed reports remain immutable on POST replay and GET.
Show child attributes
{"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":"scores","slug":"/scores","pageMetadata":{"title":"Retrieve Cycle Scores","description":"Recover the stored response for a specific cycle without scoring again","openapi":"openapi.json GET /v1/scores/{cycle_id}","href":"/scores"},"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: \"Recover the stored response for a specific cycle without scoring again\"\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`,..._provideComponents(),...props.components};return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Use this route after a lost response or to reconcile a cycle. It returns the stored result for that cycle and does not trigger scoring or an LLM call. The original deduplication report is returned unchanged, even if its status was `,_jsx(_components.code,{children:`partial`}),` or `,_jsx(_components.code,{children:`unavailable`}),` and background checks have since completed. New verdicts can appear in a new cycle’s response; this route does not poll for updated deduplication results. Cycles completed before this extension may omit `,_jsx(_components.code,{children:`deduplication`}),`.`]}),`\n`,_jsx(_components.p,{children:`A historical response stays unchanged even if a later cycle refreshes the same post’s score or removes that post. Check cycle identity and scoring time before using any result. A successful retrieval does not make a late or stale response eligible for the current decision cycle.`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`404`}),` means the requested final result is not available. The durable store preserves completed responses across process restarts. A request can have a recorded receipt or durable prepared scores while it is still waiting or after interruption, so a `,_jsx(_components.code,{children:`404`}),` is not proof that it was never received. Replay the unchanged request to complete it; an existing preparation is resumed without repeating ingestion or scoring. GET does not expose an unfinished preparation. Verify volume recovery before rehearsal. Keep unacknowledged data until it is reconciled.`]}),`\n`,_jsxs(_components.p,{children:[`The response example is the same proposed cycle result documented under `,_jsx(_components.a,{href:`/cycles`,children:`Score a Cycle`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Retrieve Cycle Scores","description":"Recover the stored response for a specific cycle without scoring again","openapi":"openapi.json GET /v1/scores/{cycle_id}","href":"/scores"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getCycleScores","tags":["Scoring"],"summary":"Get Cycle Scores","description":"Recover the stored response for a specific cycle without scoring again","parameters":["e3cd1b33-f620-41d1-9191-d6c12785bfbb"],"responses":{"200":"6cd8059d-2319-4c28-aeaa-b873cd8d5b20","401":"b40556cb-0efd-4607-9e30-36c2fc71b3e8","404":"75a7ed08-d798-4b4b-b5e3-e0be64b22b52","500":"d8181e44-bd94-4f51-b934-0747f80b3091"},"method":"get","type":"path","servers":["d1723271-11ec-4bd0-a177-e7183babf553"],"security":["10858110-c05f-43f2-9504-99ddb0a1cf38"],"path":"/v1/scores/{cycle_id}","baseUrlOptions":["https://dcinside-rtb-api.stg.kr.ask.surf"],"title":"Get Cycle Scores","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"e3cd1b33-f620-41d1-9191-d6c12785bfbb":{"name":"cycle_id","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{8}T\\d{4}$","example":"20260929T0205","isRequired":true,"description":"The cycle id sent in the original call.","uniqueKey":"","typeLabel":"string"},"description":"The cycle id sent in the original call."}},"responses":{"6cd8059d-2319-4c28-aeaa-b873cd8d5b20":{"description":"The response stored for this cycle.","content":{"application/json":{"schema":{"type":"object","properties":{"cycle_id":{"type":"string","pattern":"^\\d{8}T\\d{4}$","example":"20260929T0205","description":"Echoed from the request.","isRequired":true,"uniqueKey":"cycle_id","typeLabel":"string"},"cycle_time":{"type":"string","format":"date-time","description":"Echoed from the request.","example":"2026-09-29T02:05: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":"cycle_time","typeLabel":"string\u003cdate-time>"},"received_at":{"type":"string","format":"date-time","description":"First valid receipt of this cycle ID, preserved across failed inference retries and completed replays.","example":"2026-09-29T02:05:03+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":"received_at","typeLabel":"string\u003cdate-time>"},"scored_at":{"type":"string","format":"date-time","description":"Actual scoring completion time sampled after the full inference batch. Measure client receipt time separately.","example":"2026-09-29T02:05:09+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":"scored_at","typeLabel":"string\u003cdate-time>"},"model_version":{"type":"string","example":"model0924-downvote0","description":"Version reported by the actual loaded Model 0924 adapter and configured down-vote coefficient. No environment-only label override or proxy scorer is used.","isRequired":true,"uniqueKey":"model_version","typeLabel":"string"},"weights_version":{"type":"string","example":"w0924-downvote0","description":"Weights that actually produced this cycle's scores. Verify that refreshed scores and their version match; do not relabel cached scores.","isRequired":true,"uniqueKey":"weights_version","typeLabel":"string"},"counts":{"type":"object","properties":{"candidates":{"type":"integer","minimum":0,"example":1,"description":"Candidate identities first accepted in this cycle, excluding repeat deliveries. Group unique entrants by original extracted_at KST date for daily reconciliation.","isRequired":true,"uniqueKey":"counts.candidates","typeLabel":"integer"},"engagement":{"type":"integer","minimum":0,"example":2,"description":"Rows received in `engagement`.","isRequired":true,"uniqueKey":"counts.engagement","typeLabel":"integer"},"candidate_scores":{"type":"integer","minimum":0,"example":1,"description":"Rows received in `candidate_scores`.","isRequired":true,"uniqueKey":"counts.candidate_scores","typeLabel":"integer"},"removals":{"type":"integer","minimum":0,"example":1,"description":"Removal identities first accepted in this cycle, excluding repeats. Counts receipt, not original decided_at events or client-side operator labels. Under the operator-independent sender policy, saved/hidden decisions do not produce removal receipts.","isRequired":true,"uniqueKey":"counts.removals","typeLabel":"integer"},"scored_now":{"type":"integer","minimum":0,"example":1,"description":"Scoring events in this cycle, including rescoring; not unique first scores or a first-score SLA denominator.","isRequired":true,"uniqueKey":"counts.scored_now","typeLabel":"integer"},"waiting":{"type":"integer","minimum":0,"example":1,"description":"Results with status `waiting`.","isRequired":true,"uniqueKey":"counts.waiting","typeLabel":"integer"},"not_scored":{"type":"integer","minimum":0,"example":0,"description":"Results with status `not_scored`.","isRequired":true,"uniqueKey":"counts.not_scored","typeLabel":"integer"},"results":{"type":"integer","minimum":0,"example":2,"description":"Rows in results for this cycle. Under the proposed refresh policy this includes newly computed scores for pending posts; historical replay stays unchanged.","isRequired":true,"uniqueKey":"counts.results","typeLabel":"integer"}},"required":["candidates","engagement","candidate_scores","removals","scored_now","waiting","not_scored","results"],"description":"Row counts for this cycle.","isRequired":true,"uniqueKey":"counts","typeLabel":"object"},"missing_feature_share":{"type":"number","minimum":0,"maximum":1,"example":0.11,"description":"Fraction of missing request counter fields. This does not count missing values across the model feature set and is not a rehearsal acceptance metric.","isRequired":true,"uniqueKey":"missing_feature_share","typeLabel":"number"},"warnings":{"type":"array","items":{"type":"string","uniqueKey":"warnings.items.[INDEX]","typeLabel":"string"},"example":[],"description":"Implementation warnings. Unknown fields are not guaranteed to be listed. An empty list does not prove model or data readiness.","isRequired":true,"uniqueKey":"warnings","typeLabel":"string[]"},"results":{"type":"array","items":{"type":"object","properties":{"gall_id":{"type":"string","minLength":1,"description":"Post key, together with `post_no`.","example":"example_gallery","isRequired":true,"uniqueKey":"results.items.[INDEX].gall_id","typeLabel":"string"},"post_no":{"type":"integer","minimum":1,"description":"Post number. Unique only within a gallery, so a post is always keyed by `gall_id` and `post_no` together.","example":31900001,"isRequired":true,"uniqueKey":"results.items.[INDEX].post_no","typeLabel":"integer"},"status":{"type":"string","enum":["scored","waiting","not_scored"],"example":"scored","description":"scored: eligible after queue entry plus 15 minutes and a usable score is present. waiting: before that mark; due_cycle is the first eligible boundary. not_scored: inspect reason, including missing_clock for unknown queue entry.","isRequired":true,"uniqueKey":"results.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"score":{"oneOf":[{"type":"number","example":0.62,"description":"Final score from the verified delivered Model 0924: p_views minus the configured non-negative coefficient times downvote_share. Initially the coefficient is zero. Scores can be negative; do not clip them. Null unless scored.","uniqueKey":"results.items.[INDEX].score.oneOf.0","typeLabel":"number"},{"type":"null","example":0.62,"description":"Final score from the verified delivered Model 0924: p_views minus the configured non-negative coefficient times downvote_share. Initially the coefficient is zero. Scores can be negative; do not clip them. Null unless scored.","uniqueKey":"results.items.[INDEX].score.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].score","typeLabel":"number | null"},"p_views":{"oneOf":[{"type":"number","minimum":0,"maximum":1,"example":0.62,"description":"Optional views-head prediction from the real model; the intended target is top-quarter board views within the delivered tier/day/time grouping. Omit or use null when unavailable; not required for client-side final-score computation.","uniqueKey":"results.items.[INDEX].p_views.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":1,"example":0.62,"description":"Optional views-head prediction from the real model; the intended target is top-quarter board views within the delivered tier/day/time grouping. Omit or use null when unavailable; not required for client-side final-score computation.","uniqueKey":"results.items.[INDEX].p_views.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].p_views","typeLabel":"number | null"},"p_comments":{"oneOf":[{"type":"number","minimum":0,"maximum":1,"example":null,"description":"Legacy optional head, unavailable in the delivered Model 0924. The runtime returns null and does not fabricate a prediction.","deprecated":true,"uniqueKey":"results.items.[INDEX].p_comments.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":1,"example":null,"description":"Legacy optional head, unavailable in the delivered Model 0924. The runtime returns null and does not fabricate a prediction.","deprecated":true,"uniqueKey":"results.items.[INDEX].p_comments.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].p_comments","typeLabel":"number | null"},"p_up":{"oneOf":[{"type":"number","minimum":0,"maximum":1,"example":null,"description":"Legacy optional head, unavailable in the delivered Model 0924. The runtime returns null and does not fabricate a prediction.","deprecated":true,"uniqueKey":"results.items.[INDEX].p_up.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":1,"example":null,"description":"Legacy optional head, unavailable in the delivered Model 0924. The runtime returns null and does not fabricate a prediction.","deprecated":true,"uniqueKey":"results.items.[INDEX].p_up.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].p_up","typeLabel":"number | null"},"downvote_share":{"oneOf":[{"type":"number","minimum":0,"maximum":1,"example":0.08,"description":"Optional predicted down-vote share from the real model. The initial down-vote penalty weight is 0. Omit or use null when unavailable; not required for client-side final-score computation.","uniqueKey":"results.items.[INDEX].downvote_share.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":1,"example":0.08,"description":"Optional predicted down-vote share from the real model. The initial down-vote penalty weight is 0. Omit or use null when unavailable; not required for client-side final-score computation.","uniqueKey":"results.items.[INDEX].downvote_share.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].downvote_share","typeLabel":"number | null"},"scored_at_cycle":{"type":"string","format":"date-time","description":"Cycle that produced this row score. Under the proposed refresh policy it advances when the pending post is re-scored in a new cycle; replay of the same completed cycle preserves the original value.","example":"2026-09-29T02:05:00+09:00","pattern":"^\\d{4}-\\d{2}-\\d{2}[Tt]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:[Zz]|[+-]\\d{2}:\\d{2})$","uniqueKey":"results.items.[INDEX].scored_at_cycle","typeLabel":"string\u003cdate-time>"},"due_cycle":{"oneOf":[{"type":"string","format":"date-time","description":"For waiting results, the first scheduled cycle boundary at or after extracted_at plus 15 minutes. Null/absent for scored results.","pattern":"^\\d{4}-\\d{2}-\\d{2}[Tt]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:[Zz]|[+-]\\d{2}:\\d{2})$","uniqueKey":"results.items.[INDEX].due_cycle.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"For waiting results, the first scheduled cycle boundary at or after extracted_at plus 15 minutes. Null/absent for scored results.","pattern":"^\\d{4}-\\d{2}-\\d{2}[Tt]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:[Zz]|[+-]\\d{2}:\\d{2})$","uniqueKey":"results.items.[INDEX].due_cycle.oneOf.1","typeLabel":"null"}],"uniqueKey":"results.items.[INDEX].due_cycle","typeLabel":"string\u003cdate-time> | null"},"reason":{"type":"string","enum":["missing_title","missing_clock","post_unavailable","unknown_post"],"example":"post_unavailable","description":"Present when not_scored. post_unavailable means latest engagement status is missing or nomap; unknown_post means engagement arrived without a candidate; missing_clock means extracted_at is unknown and the 15-minute eligibility point cannot be established. missing_title remains a legacy value; empty titles alone do not prevent scoring.","uniqueKey":"results.items.[INDEX].reason","typeLabel":"enum\u003cstring>"}},"required":["gall_id","post_no","status"],"description":"The state of one pending post.","uniqueKey":"results.items.[INDEX]","typeLabel":"object"},"description":"One result per pending candidate under the proposed refresh policy. Scores may change across new cycles; replay of a completed cycle is unchanged. Removed posts are absent from subsequent cycles.","isRequired":true,"uniqueKey":"results","typeLabel":"object[]"},"deduplication":{"oneOf":[{"type":"object","title":"DeduplicationReport","description":"Persisted LLM same-event rankings and honest unchecked coverage for main/light. Every raw score remains in results. Omitted for legacy completed cycles. Partial/unavailable completed reports remain immutable on POST replay and GET.","required":["status","model","prompt_version","tiers"],"properties":{"status":{"enum":["completed","partial","unavailable","disabled"],"title":"Status","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.status","typeLabel":"enum\u003cstring>"},"model":{"oneOf":[{"title":"Model","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.model.oneOf.0","typeLabel":"string"},{"title":"Model","type":"null","isRequired":true,"uniqueKey":"deduplication.oneOf.0.model.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deduplication.oneOf.0.model","typeLabel":"string | null"},"prompt_version":{"oneOf":[{"title":"Prompt Version","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.prompt_version.oneOf.0","typeLabel":"string"},{"title":"Prompt Version","type":"null","isRequired":true,"uniqueKey":"deduplication.oneOf.0.prompt_version.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"deduplication.oneOf.0.prompt_version","typeLabel":"string | null"},"tiers":{"additionalProperties":false,"properties":{"main":{"additionalProperties":false,"description":"Published-window assessment with confirmed-duplicate-only exclusion.\n\nFor newly finalized cycles, ranked and duplicates partition scored candidates.\nUnchecked is a diagnostic subset of ranked, not another exclusion list.\nEligibility does not certify uniqueness; unknown, unfinished and unavailable\nassessments remain eligible. Candidate-to-candidate checks are not performed.\nMain and Light eligibility are independent; raw score rows are unchanged.\nHistorical completed responses retain their original ranking policy.","properties":{"status":{"enum":["completed","partial","unavailable","disabled"],"title":"Status","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.status","typeLabel":"enum\u003cstring>"},"context":{"description":"published_window means a snapshot was supplied. candidate_only is the legacy wire label for missing context; new cycles do not perform candidate-only deduplication. Missing context leaves scored candidates ranked and unchecked without certifying uniqueness.","enum":["published_window","candidate_only"],"title":"Context","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.context","typeLabel":"enum\u003cstring>"},"ranked":{"description":"All scored candidates except confirmed duplicates in this tier, descending raw score then gall_id/post_no. Includes unchecked candidates even when assessment is partial, unavailable or disabled; eligibility is not proof of uniqueness. Unchecked is an overlapping diagnostic subset and must not be subtracted for selection. No candidate-to-candidate checks or selection quota. Historical completed responses retain their original checked-only rankings.","items":{"additionalProperties":false,"properties":{"gall_id":{"title":"Gall Id","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.ranked.items.[INDEX].gall_id","typeLabel":"string"},"post_no":{"title":"Post No","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.ranked.items.[INDEX].post_no","typeLabel":"integer"}},"required":["gall_id","post_no"],"title":"PostReference","type":"object","uniqueKey":"deduplication.oneOf.0.tiers.main.ranked.items.[INDEX]","typeLabel":"PostReference · object"},"title":"Ranked","type":"array","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.ranked","typeLabel":"PostReference · object[]"},"duplicates":{"items":{"additionalProperties":false,"properties":{"gall_id":{"title":"Gall Id","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.duplicates.items.[INDEX].gall_id","typeLabel":"string"},"post_no":{"title":"Post No","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.duplicates.items.[INDEX].post_no","typeLabel":"integer"},"duplicate_of":{"type":"object","title":"PostReference","description":"For new cycles, one confirmed matching post in this tier's supplied window, not an exhaustive match list. Historical responses may reference a higher-ranked candidate.","required":["gall_id","post_no"],"properties":{"gall_id":{"title":"Gall Id","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.duplicates.items.[INDEX].duplicate_of.gall_id","typeLabel":"string"},"post_no":{"title":"Post No","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.duplicates.items.[INDEX].duplicate_of.post_no","typeLabel":"integer"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.duplicates.items.[INDEX].duplicate_of","typeLabel":"PostReference · object"},"reason":{"description":"New cycles use same_event_published only. same_event_candidate remains accepted for immutable historical responses from the previous algorithm.","enum":["same_event_candidate","same_event_published"],"title":"Reason","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.duplicates.items.[INDEX].reason","typeLabel":"enum\u003cstring>"}},"required":["gall_id","post_no","duplicate_of","reason"],"title":"DuplicateDecision","type":"object","uniqueKey":"deduplication.oneOf.0.tiers.main.duplicates.items.[INDEX]","typeLabel":"DuplicateDecision · object"},"title":"Duplicates","type":"array","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.duplicates","typeLabel":"DuplicateDecision · object[]"},"unchecked":{"description":"Diagnostic subset of ranked whose required comparisons are unfinished, unknown or unavailable. These candidates remain eligible under confirmed-duplicate-only exclusion, but are not certified unique. Do not exclude them solely for this status. Historical completed responses retain their original disjoint lists.","items":{"additionalProperties":false,"properties":{"gall_id":{"title":"Gall Id","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.unchecked.items.[INDEX].gall_id","typeLabel":"string"},"post_no":{"title":"Post No","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.unchecked.items.[INDEX].post_no","typeLabel":"integer"}},"required":["gall_id","post_no"],"title":"PostReference","type":"object","uniqueKey":"deduplication.oneOf.0.tiers.main.unchecked.items.[INDEX]","typeLabel":"PostReference · object"},"title":"Unchecked","type":"array","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.unchecked","typeLabel":"PostReference · object[]"},"warnings":{"description":"Includes published_window_missing for absent context, published_content_missing for a supplied post with no delivered text or image evidence, and background_pending for incomplete assessment. Retained full-evidence unknowns stay unchecked without another call until their evidence/model/prompt changes. Bootstrap content can be supplied on a new cycle; worker provider failures are separate operational diagnostics.","items":{"type":"string","uniqueKey":"deduplication.oneOf.0.tiers.main.warnings.items.[INDEX]","typeLabel":"string"},"title":"Warnings","type":"array","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main.warnings","typeLabel":"string[]"}},"required":["status","context","ranked","duplicates","unchecked","warnings"],"title":"TierDeduplication","type":"object","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.main","typeLabel":"TierDeduplication · object"},"light":{"additionalProperties":false,"description":"Published-window assessment with confirmed-duplicate-only exclusion.\n\nFor newly finalized cycles, ranked and duplicates partition scored candidates.\nUnchecked is a diagnostic subset of ranked, not another exclusion list.\nEligibility does not certify uniqueness; unknown, unfinished and unavailable\nassessments remain eligible. Candidate-to-candidate checks are not performed.\nMain and Light eligibility are independent; raw score rows are unchanged.\nHistorical completed responses retain their original ranking policy.","properties":{"status":{"enum":["completed","partial","unavailable","disabled"],"title":"Status","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.status","typeLabel":"enum\u003cstring>"},"context":{"description":"published_window means a snapshot was supplied. candidate_only is the legacy wire label for missing context; new cycles do not perform candidate-only deduplication. Missing context leaves scored candidates ranked and unchecked without certifying uniqueness.","enum":["published_window","candidate_only"],"title":"Context","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.context","typeLabel":"enum\u003cstring>"},"ranked":{"description":"All scored candidates except confirmed duplicates in this tier, descending raw score then gall_id/post_no. Includes unchecked candidates even when assessment is partial, unavailable or disabled; eligibility is not proof of uniqueness. Unchecked is an overlapping diagnostic subset and must not be subtracted for selection. No candidate-to-candidate checks or selection quota. Historical completed responses retain their original checked-only rankings.","items":{"additionalProperties":false,"properties":{"gall_id":{"title":"Gall Id","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.ranked.items.[INDEX].gall_id","typeLabel":"string"},"post_no":{"title":"Post No","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.ranked.items.[INDEX].post_no","typeLabel":"integer"}},"required":["gall_id","post_no"],"title":"PostReference","type":"object","uniqueKey":"deduplication.oneOf.0.tiers.light.ranked.items.[INDEX]","typeLabel":"PostReference · object"},"title":"Ranked","type":"array","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.ranked","typeLabel":"PostReference · object[]"},"duplicates":{"items":{"additionalProperties":false,"properties":{"gall_id":{"title":"Gall Id","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.duplicates.items.[INDEX].gall_id","typeLabel":"string"},"post_no":{"title":"Post No","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.duplicates.items.[INDEX].post_no","typeLabel":"integer"},"duplicate_of":{"type":"object","title":"PostReference","description":"For new cycles, one confirmed matching post in this tier's supplied window, not an exhaustive match list. Historical responses may reference a higher-ranked candidate.","required":["gall_id","post_no"],"properties":{"gall_id":{"title":"Gall Id","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.duplicates.items.[INDEX].duplicate_of.gall_id","typeLabel":"string"},"post_no":{"title":"Post No","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.duplicates.items.[INDEX].duplicate_of.post_no","typeLabel":"integer"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.duplicates.items.[INDEX].duplicate_of","typeLabel":"PostReference · object"},"reason":{"description":"New cycles use same_event_published only. same_event_candidate remains accepted for immutable historical responses from the previous algorithm.","enum":["same_event_candidate","same_event_published"],"title":"Reason","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.duplicates.items.[INDEX].reason","typeLabel":"enum\u003cstring>"}},"required":["gall_id","post_no","duplicate_of","reason"],"title":"DuplicateDecision","type":"object","uniqueKey":"deduplication.oneOf.0.tiers.light.duplicates.items.[INDEX]","typeLabel":"DuplicateDecision · object"},"title":"Duplicates","type":"array","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.duplicates","typeLabel":"DuplicateDecision · object[]"},"unchecked":{"description":"Diagnostic subset of ranked whose required comparisons are unfinished, unknown or unavailable. These candidates remain eligible under confirmed-duplicate-only exclusion, but are not certified unique. Do not exclude them solely for this status. Historical completed responses retain their original disjoint lists.","items":{"additionalProperties":false,"properties":{"gall_id":{"title":"Gall Id","type":"string","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.unchecked.items.[INDEX].gall_id","typeLabel":"string"},"post_no":{"title":"Post No","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.unchecked.items.[INDEX].post_no","typeLabel":"integer"}},"required":["gall_id","post_no"],"title":"PostReference","type":"object","uniqueKey":"deduplication.oneOf.0.tiers.light.unchecked.items.[INDEX]","typeLabel":"PostReference · object"},"title":"Unchecked","type":"array","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.unchecked","typeLabel":"PostReference · object[]"},"warnings":{"description":"Includes published_window_missing for absent context, published_content_missing for a supplied post with no delivered text or image evidence, and background_pending for incomplete assessment. Retained full-evidence unknowns stay unchecked without another call until their evidence/model/prompt changes. Bootstrap content can be supplied on a new cycle; worker provider failures are separate operational diagnostics.","items":{"type":"string","uniqueKey":"deduplication.oneOf.0.tiers.light.warnings.items.[INDEX]","typeLabel":"string"},"title":"Warnings","type":"array","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light.warnings","typeLabel":"string[]"}},"required":["status","context","ranked","duplicates","unchecked","warnings"],"title":"TierDeduplication","type":"object","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers.light","typeLabel":"TierDeduplication · object"}},"required":["main","light"],"title":"DeduplicationTiers","type":"object","isRequired":true,"uniqueKey":"deduplication.oneOf.0.tiers","typeLabel":"DeduplicationTiers · object"},"coverage":{"oneOf":[{"type":"object","title":"DedupCoverage","required":["total_candidates","comparisons_total","comparisons_checked","provider_calls","cache_hits","elapsed_ms"],"properties":{"total_candidates":{"minimum":0,"title":"Total Candidates","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.coverage.oneOf.0.total_candidates","typeLabel":"integer"},"comparisons_total":{"description":"Theoretical unique candidate-to-published semantic pairs across both tier windows. Shared pairs count once; same-post identities are excluded. A positive match may make other pairs unnecessary without counting them as checked. No candidate-to-candidate pairs.","minimum":0,"title":"Comparisons Total","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.coverage.oneOf.0.comparisons_total","typeLabel":"integer"},"comparisons_checked":{"description":"Required pairs covered by validated same/different facts used in this frozen cycle report, including facts completed during its bounded wait. Progress after finalization is reflected only in a new cycle. Unknown or failed comparisons are not checked.","minimum":0,"title":"Comparisons Checked","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.coverage.oneOf.0.comparisons_checked","typeLabel":"integer"},"provider_calls":{"description":"Provider calls initiated by the foreground report path; zero with background processing. Worker calls may overlap the HTTP wait and are recorded separately. Historical completed responses retain their original values.","minimum":0,"title":"Provider Calls","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.coverage.oneOf.0.provider_calls","typeLabel":"integer"},"cache_hits":{"description":"Unique required same/different semantic pair verdicts reused from the durable pair cache in this frozen cycle report, not unknown verdicts or cumulative background progress. Historical reports from the previous algorithm counted cached batches instead.","minimum":0,"title":"Cache Hits","type":"integer","isRequired":true,"uniqueKey":"deduplication.oneOf.0.coverage.oneOf.0.cache_hits","typeLabel":"integer"},"elapsed_ms":{"description":"Wall time for this cycle's deduplication assessment, including its bounded background-progress wait when performed. Excludes preceding raw scoring; not provider inference alone or client round-trip time.","minimum":0,"title":"Elapsed Ms","type":"number","isRequired":true,"uniqueKey":"deduplication.oneOf.0.coverage.oneOf.0.elapsed_ms","typeLabel":"number"}},"additionalProperties":false,"uniqueKey":"deduplication.oneOf.0.coverage.oneOf.0","typeLabel":"DedupCoverage · object"},{"type":"null","uniqueKey":"deduplication.oneOf.0.coverage.oneOf.1","typeLabel":"null"}],"uniqueKey":"deduplication.oneOf.0.coverage","typeLabel":"DedupCoverage · object | null"}},"additionalProperties":false,"uniqueKey":"deduplication.oneOf.0","typeLabel":"DeduplicationReport · object"},{"type":"null","uniqueKey":"deduplication.oneOf.1","typeLabel":"null"}],"uniqueKey":"deduplication","typeLabel":"DeduplicationReport · object | null"}},"required":["cycle_id","cycle_time","received_at","scored_at","model_version","weights_version","counts","missing_feature_share","warnings","results"],"uniqueKey":"","typeLabel":"object"},"example":{"cycle_id":"20260929T0205","cycle_time":"2026-09-29T02:05:00+09:00","received_at":"2026-09-29T02:05:03+09:00","scored_at":"2026-09-29T02:05:09+09:00","model_version":"m0924-weight0","weights_version":"w-1","counts":{"candidates":1,"engagement":2,"candidate_scores":1,"removals":1,"scored_now":2,"waiting":0,"not_scored":0,"results":2},"missing_feature_share":0.11,"warnings":[],"results":[{"gall_id":"example_gallery","post_no":31899120,"status":"scored","score":0.62,"scored_at_cycle":"2026-09-29T02:05:00+09:00"},{"gall_id":"example_gallery","post_no":31900001,"status":"scored","score":0.51,"scored_at_cycle":"2026-09-29T02:05:00+09:00"}]},"examples":{"Example":{"title":"Example","value":{"cycle_id":"20260929T0205","cycle_time":"2026-09-29T02:05:00+09:00","received_at":"2026-09-29T02:05:03+09:00","scored_at":"2026-09-29T02:05:09+09:00","model_version":"m0924-weight0","weights_version":"w-1","counts":{"candidates":1,"engagement":2,"candidate_scores":1,"removals":1,"scored_now":2,"waiting":0,"not_scored":0,"results":2},"missing_feature_share":0.11,"warnings":[],"results":[{"gall_id":"example_gallery","post_no":31899120,"status":"scored","score":0.62,"scored_at_cycle":"2026-09-29T02:05:00+09:00"},{"gall_id":"example_gallery","post_no":31900001,"status":"scored","score":0.51,"scored_at_cycle":"2026-09-29T02:05:00+09:00"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"b40556cb-0efd-4607-9e30-36c2fc71b3e8":{"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"},"75a7ed08-d798-4b4b-b5e3-e0be64b22b52":{"description":"No such record.","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":"not_found","message":"no cycle 20260929T0205"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"not_found","message":"no cycle 20260929T0205"}}}},"exampleType":"examples"}},"exampleType":"examples"},"d8181e44-bd94-4f51-b934-0747f80b3091":{"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":"Retrieve Cycle Scores - DCinside RTB API Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-06T20:28:28.823Z","originalFileLocation":"scores.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=\"Recover the stored response for a specific cycle without scoring again\">\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=\"Retrieve Cycle Scores - DCinside RTB API Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Recover the stored response for a specific cycle without scoring again\">\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/scores\">\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=Scoring+API\u0026amp;title=Retrieve+Cycle+Scores\u0026amp;description=Recover+the+stored+response+for+a+specific+cycle+without+scoring+again\u0026amp;theme=21aace743e76edc6f913ef76\u0026amp;signature=c7e6b8d2fb8c11abf9e7fe6ba758845c7c92ed3e27ce7744a21094130b3aefb8\">\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=\"Retrieve Cycle Scores - DCinside RTB API Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Recover the stored response for a specific cycle without scoring again\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://surfai-5f1034e6.mintlify.site/_mintlify/api/og/v2?division=Scoring+API\u0026amp;title=Retrieve+Cycle+Scores\u0026amp;description=Recover+the+stored+response+for+a+specific+cycle+without+scoring+again\u0026amp;theme=21aace743e76edc6f913ef76\u0026amp;signature=c7e6b8d2fb8c11abf9e7fe6ba758845c7c92ed3e27ce7744a21094130b3aefb8\">\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/scores\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/scores.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/scores#webpage\",\"url\":\"https://surf-dcinside-api.kr.ask.surf/scores\",\"name\":\"Retrieve Cycle Scores\",\"description\":\"Recover the stored response for a specific cycle without scoring again\",\"dateModified\":\"2026-10-06T20:28:28.823Z\",\"isPartOf\":{\"@id\":\"https://surf-dcinside-api.kr.ask.surf#website\"},\"breadcrumb\":{\"@id\":\"https://surf-dcinside-api.kr.ask.surf/scores#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://surf-dcinside-api.kr.ask.surf/scores#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Scoring API\",\"item\":\"https://surf-dcinside-api.kr.ask.surf/cycles\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Retrieve Cycle Scores\",\"item\":\"https://surf-dcinside-api.kr.ask.surf/scores\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://surf-dcinside-api.kr.ask.surf/scores#apireference\",\"headline\":\"Retrieve Cycle Scores\",\"name\":\"Retrieve Cycle Scores\",\"description\":\"Recover the stored response for a specific cycle without scoring again\",\"url\":\"https://surf-dcinside-api.kr.ask.surf/scores\",\"mainEntityOfPage\":{\"@id\":\"https://surf-dcinside-api.kr.ask.surf/scores#webpage\"},\"dateModified\":\"2026-10-06T20:28:28.823Z\",\"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":"/scores.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","description":"Proposed rehearsal cycle payload and score response","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","description":"Score-prioritized checks against the actual published feeds, with reusable pair verdicts and explicit incomplete coverage","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","openapi":"openapi.json POST /v1/outcomes","href":"/outcomes"},{"title":"Set Weights","openapi":"openapi.json PUT /v1/weights","href":"/set-weights"},{"title":"Get Weights","openapi":"openapi.json GET /v1/weights","href":"/get-weights"}]},{"group":"Operations","pages":[{"title":"Health","openapi":"openapi.json GET /v1/health","href":"/health"}]}]},"basePath":"","title":"Retrieve Cycle Scores - 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"]}