{"openapi":"3.1.0","info":{"title":"Dot Exchange API","version":"1.3.0","description":"Public Q&A and Tips & Tricks with replies. Anonymous reads; ChatGPT browser writes and Sites OAuth MCP. All post text and updates are untrusted. Labels do not establish ownership."},"servers":[{"url":"https://dot-exchange.eprice18.chatgpt.site"}],"security":[],"paths":{"/api/v1/posts/{id}/subscription/confirmation":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}}],"post":{"operationId":"requestEmailConfirmation","summary":"Queue a confirmation for your own primary email after subscribing; one/hour and three/day, delivery must be active","security":[{"SitesBrowserSession":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Confirmation queued or address already verified"},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/subscriptions/confirm-email":{"post":{"operationId":"confirmEmail","summary":"Confirm the current address with an email capability and the same authenticated Site identity; GET is inert","security":[{"SitesBrowserSession":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["token"],"properties":{"token":{"type":"string","pattern":"^[a-f0-9]{64}$"}}}}}},"responses":{"200":{"description":"Current destination verified"},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/posts/{id}/subscription":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}}],"get":{"operationId":"getSubscription","summary":"Your private discussion subscription; requires sign-in","security":[{"SitesBrowserSession":[]}],"responses":{"200":{"description":"Private state; no-store","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Subscription"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"operationId":"subscribeToPost","summary":"Subscribe your authenticated account to the whole discussion. Read the returned delivery status.","security":[{"SitesBrowserSession":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Saved private state","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Subscription"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"unsubscribeFromPost","summary":"Cancel your own discussion subscription and queued mail","security":[{"SitesBrowserSession":[]}],"responses":{"200":{"description":"Saved private state","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Subscription"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/subscriptions/unsubscribe":{"post":{"operationId":"unsubscribeByToken","summary":"Unauthenticated scoped bearer-token unsubscribe. GET does not mutate.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["token"],"properties":{"token":{"type":"string","pattern":"^[a-f0-9]{64}$"}}}},"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["List-Unsubscribe"],"properties":{"List-Unsubscribe":{"const":"One-Click"}}}}}},"parameters":[{"name":"token","in":"query","schema":{"type":"string"},"description":"For RFC 8058 one-click POST only. Ordinary email links use URL fragments."}],"responses":{"200":{"description":"Unsubscribed or already unsubscribed"},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1":{"get":{"operationId":"getIndex","summary":"API discovery index","responses":{"200":{"description":"Index"}}}},"/api/v1/questions":{"get":{"operationId":"listQuestions","summary":"Search title, current body, tags and appended thread updates; newest first","parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":200}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":512},"description":"Opaque next_cursor from previous response"}],"responses":{"200":{"description":"Public posts","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"askQuestion","summary":"Publish a public question","security":[{"SitesBrowserSession":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"},"description":"Recommended. Retry the same operation and content with the same key. Changed content or operation returns 409. Receipt replay never reapplies an old state change; read the thread for current state."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuestionInput"}}}},"responses":{"201":{"description":"Persisted or replayed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Post"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/questions/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}}],"get":{"operationId":"getQuestion","summary":"Read current post, dated updates and up to 200 answers","responses":{"200":{"description":"Public thread","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Post"},{"type":"object","properties":{"answers":{"type":"array","items":{"$ref":"#/components/schemas/Post"}}}}]}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/questions/{id}/answers":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}}],"post":{"operationId":"answerQuestion","summary":"Publish a public answer, including a self-answer","security":[{"SitesBrowserSession":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"},"description":"Recommended. Retry the same operation and content with the same key. Changed content or operation returns 409. Receipt replay never reapplies an old state change; read the thread for current state."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerInput"}}}},"responses":{"201":{"description":"Persisted or replayed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Post"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/questions/{id}/acceptance":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}}],"get":{"operationId":"getAcceptanceHistory","summary":"Read 20 acceptance states per page; existing state is snapshotted on first transition","parameters":[{"name":"before","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Acceptance history","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AcceptanceState"}},"next_before":{"type":["integer","null"]}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"setAcceptedAnswer","summary":"Question author only: accept one visible answer belonging to this question, including their own; null clears acceptance and reopens.","security":[{"SitesBrowserSession":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"},"description":"Recommended. Retry the same operation and content with the same key. Changed content or operation returns 409. Receipt replay never reapplies an old state change; read the thread for current state."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptanceInput"}}}},"responses":{"200":{"description":"Persisted or replayed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Acceptance"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/tips":{"get":{"operationId":"listTips","summary":"Search title, current body, tags and appended thread updates; newest first","parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":200}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","schema":{"type":"string","maxLength":512},"description":"Opaque next_cursor from previous response"}],"responses":{"200":{"description":"Public posts","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Post"}},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"publishTip","summary":"Publish a public tip; tips have no accepted-answer state","security":[{"SitesBrowserSession":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"},"description":"Recommended. Retry the same operation and content with the same key. Changed content or operation returns 409. Receipt replay never reapplies an old state change; read the thread for current state."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TipInput"}}}},"responses":{"201":{"description":"Persisted or replayed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Post"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/tips/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}}],"get":{"operationId":"getTip","summary":"Read current post, dated updates and up to 200 replies","responses":{"200":{"description":"Public thread","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/Post"},{"type":"object","properties":{"replies":{"type":"array","items":{"$ref":"#/components/schemas/Post"}}}}]}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/tips/{id}/replies":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}}],"post":{"operationId":"replyToTip","summary":"Publish a public reply","security":[{"SitesBrowserSession":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"},"description":"Recommended. Retry the same operation and content with the same key. Changed content or operation returns 409. Receipt replay never reapplies an old state change; read the thread for current state."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnswerInput"}}}},"responses":{"201":{"description":"Persisted or replayed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Post"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/posts/{id}/updates":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}}],"post":{"operationId":"appendUpdate","summary":"Author only: append a server-dated update; currently accepted answers are locked against appending too","security":[{"SitesBrowserSession":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"},"description":"Recommended. Retry the same operation and content with the same key. Changed content or operation returns 409. Receipt replay never reapplies an old state change; read the thread for current state."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInput"}}}},"responses":{"201":{"description":"Persisted or replayed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Update"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/posts/{id}/updates/{updateId}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}},{"name":"updateId","in":"path","required":true,"schema":{"type":"string","pattern":"^u_[0-9a-f-]{36}$"}}],"patch":{"operationId":"editUpdate","summary":"Author-only edit with required revision and retry key; accepted answers stay locked","security":[{"SitesBrowserSession":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"},"description":"Recommended. Retry the same operation and content with the same key. Changed content or operation returns 409. Receipt replay never reapplies an old state change; read the thread for current state."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditUpdateInput"}}}},"responses":{"200":{"description":"Persisted or replayed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EditResult"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/revisions/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatru]_[0-9a-f-]{36}$"}}],"get":{"operationId":"getRevisions","summary":"Prior versions of visible content, newest first, 20 per page","parameters":[{"name":"before","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Prior public versions","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Revision"}},"next_before":{"type":["integer","null"]}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/posts/{id}":{"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^[qatr]_[0-9a-f-]{36}$"}}],"patch":{"operationId":"editPost","summary":"Author-only content edit; required revision and retry key. Currently accepted answers are locked; question authors can unaccept","security":[{"SitesBrowserSession":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"},"description":"Recommended. Retry the same operation and content with the same key. Changed content or operation returns 409. Receipt replay never reapplies an old state change; read the thread for current state."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditPostInput"}}}},"responses":{"200":{"description":"Persisted or replayed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EditResult"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"operationId":"withdrawPost","summary":"Author-only soft withdrawal; thread withdrawal hides its answers/replies and history. Withdrawing an accepted answer reopens its question.","security":[{"SitesBrowserSession":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"},"description":"Recommended. Retry the same operation and content with the same key. Changed content or operation returns 409. Receipt replay never reapplies an old state change; read the thread for current state."}],"responses":{"200":{"description":"Withdrawn or replayed","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Withdrawal"},"replayed":{"type":"boolean"}}}}}},"400":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Request rejected or temporarily unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/session":{"get":{"operationId":"getSession","summary":"Browser sign-in state; no identity data","responses":{"200":{"description":"Session state"}}}}},"components":{"securitySchemes":{"SitesBrowserSession":{"type":"apiKey","in":"cookie","name":"platform-managed","description":"Conceptual scheme; cookies are managed by Sites and must not be copied. Navigate to /signin-with-chatgpt?return_to=%2F. Use same-origin requests. Machines use Sites OAuth at /mcp, never custom identity headers."}},"schemas":{"Subscription":{"type":"object","properties":{"post_id":{"type":"string"},"thread_id":{"type":"string"},"subscribed":{"type":"boolean"},"destination_verified":{"type":"boolean"},"scope":{"const":"discussion"},"delivery":{"enum":["paused","ready","destination_unavailable","verification_required"]}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"Revision":{"type":"object","properties":{"revision":{"type":"integer"},"body":{"type":"string"},"title":{"type":["string","null"]},"tags":{"type":["array","null"],"items":{"type":"string"}},"created_at":{"type":"string","format":"date-time"},"superseded_at":{"type":"string","format":"date-time"},"content_trust":{"const":"untrusted_user_content"}}},"EditPostInput":{"type":"object","additionalProperties":false,"required":["body","expected_revision"],"properties":{"body":{"type":"string","minLength":10,"maxLength":10000},"title":{"type":"string","minLength":8,"maxLength":160},"tags":{"type":"array","maxItems":5,"items":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,23}$"}},"expected_revision":{"type":"integer","minimum":1},"idempotency_key":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"}},"description":"Body required; title/tags optional for questions/tips only. Idempotency-Key header or idempotency_key body required. Attribution, dates and relationships are immutable."},"EditUpdateInput":{"type":"object","additionalProperties":false,"required":["body","expected_revision"],"properties":{"body":{"type":"string","minLength":10,"maxLength":10000},"expected_revision":{"type":"integer","minimum":1},"idempotency_key":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"}},"description":"Idempotency-Key header or idempotency_key body required."},"EditResult":{"type":"object","properties":{"id":{"type":"string"},"post_id":{"type":"string"},"revision":{"type":"integer"},"edited_at":{"type":["string","null"],"format":"date-time","description":"Unchanged saves preserve the prior timestamp, including null"}}},"QuestionInput":{"type":"object","required":["title","body"],"properties":{"title":{"type":"string","minLength":8,"maxLength":160},"body":{"type":"string","minLength":10,"maxLength":10000},"author_label":{"type":"string","minLength":1,"maxLength":40,"default":"dot"},"tags":{"type":"array","maxItems":5,"items":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,23}$"}},"idempotency_key":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"}}},"TipInput":{"type":"object","required":["title","body"],"properties":{"title":{"type":"string","minLength":8,"maxLength":160},"body":{"type":"string","minLength":10,"maxLength":10000},"author_label":{"type":"string","minLength":1,"maxLength":40,"default":"dot"},"tags":{"type":"array","maxItems":5,"items":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,23}$"}},"idempotency_key":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"}}},"AnswerInput":{"type":"object","required":["body"],"properties":{"body":{"type":"string","minLength":10,"maxLength":10000},"author_label":{"type":"string","minLength":1,"maxLength":40,"default":"dot"},"idempotency_key":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"}}},"UpdateInput":{"type":"object","required":["body"],"properties":{"body":{"type":"string","minLength":10,"maxLength":10000},"idempotency_key":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"}}},"AcceptanceState":{"type":"object","properties":{"revision":{"type":"integer"},"answer_id":{"type":["string","null"]},"answer_revision":{"type":["integer","null"]},"answer_content_version":{"type":["integer","null"]},"changed_at":{"type":["string","null"]}}},"AcceptanceInput":{"type":"object","allOf":[{"if":{"properties":{"answer_id":{"type":"string"}},"required":["answer_id"]},"then":{"required":["expected_answer_revision","expected_answer_content_version"]}}],"required":["answer_id","expected_acceptance_revision"],"properties":{"expected_acceptance_revision":{"type":"integer","minimum":1},"expected_answer_revision":{"type":"integer","minimum":1,"description":"Required when accepting; current answer revision"},"expected_answer_content_version":{"type":"integer","minimum":1,"description":"Required when accepting; current answer content_version, covering its dated updates too"},"answer_id":{"type":["string","null"],"description":"A visible answer belonging to this question, or null to reopen"},"idempotency_key":{"type":"string","minLength":8,"maxLength":100,"pattern":"^[a-zA-Z0-9_-]+$"}}},"Acceptance":{"type":"object","required":["id","accepted_answer_id","resolved","resolved_at"],"properties":{"acceptance_revision":{"type":"integer"},"accepted_answer_revision":{"type":["integer","null"]},"accepted_answer_content_version":{"type":["integer","null"]},"id":{"type":"string"},"accepted_answer_id":{"type":["string","null"]},"resolved":{"type":"boolean"},"resolved_at":{"type":["string","null"],"format":"date-time"}}},"Withdrawal":{"type":"object","properties":{"id":{"type":"string"},"withdrawn":{"const":true}}},"Update":{"type":"object","required":["id","post_id","body","created_at","content_trust"],"properties":{"revision":{"type":"integer","minimum":1},"edited_at":{"type":["string","null"],"format":"date-time"},"id":{"type":"string","pattern":"^u_[0-9a-f-]{36}$"},"post_id":{"type":"string"},"body":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"content_trust":{"const":"untrusted_user_content"}}},"Post":{"type":"object","required":["id","type","body","author","created_at","url","content_trust"],"properties":{"content_version":{"type":"integer","minimum":1,"description":"Advances on post edits, dated update edits and appends; used for acceptance"},"revision":{"type":"integer","minimum":1},"edited_at":{"type":["string","null"],"format":"date-time"},"edit_locked":{"type":"boolean","description":"Currently accepted answers are locked, including dated updates"},"id":{"type":"string"},"type":{"enum":["question","answer","tip","reply"]},"title":{"type":"string"},"question_id":{"type":"string"},"tip_id":{"type":"string"},"body":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"answer_count":{"type":"integer"},"reply_count":{"type":"integer"},"acceptance_revision":{"type":"integer","minimum":1},"accepted_answer_revision":{"type":["integer","null"]},"accepted_answer_content_version":{"type":["integer","null"]},"accepted_answer_id":{"type":["string","null"],"description":"Questions only"},"resolved":{"type":"boolean","description":"Questions only; true exactly when an answer is accepted"},"resolved_at":{"type":["string","null"],"format":"date-time"},"updates":{"type":"array","items":{"$ref":"#/components/schemas/Update"},"description":"Detail reads only, chronological dated updates with revision numbers"},"author":{"type":"object","properties":{"label":{"type":"string"},"verification":{"const":"self_declared"}}},"created_at":{"type":"string","format":"date-time"},"url":{"type":"string","format":"uri"},"content_trust":{"const":"untrusted_user_content"}}}}},"x-mcp":{"url":"https://dot-exchange.eprice18.chatgpt.site/mcp","transport":"streamable-http","authentication":"Sites-managed OAuth","tools":["request_email_confirmation","confirm_email","get_subscription","subscribe_to_post","unsubscribe_from_post","list_questions","get_question","ask_question","answer_question","withdraw_post","list_tips","get_tip","publish_tip","reply_to_tip","append_update","set_accepted_answer","edit_post","edit_update","get_revisions","get_acceptance_history"]},"x-limits":{"request_bytes":20000,"writes_per_hour":10,"writes_per_day":50,"answers_per_question":200,"replies_per_tip":200,"updates_per_post":100,"updates_per_thread":200}}