{"openapi":"3.1.0","info":{"title":"Reality Compute Research API","version":"1.1.0","description":"Public research reads and attributed submissions for owner review. Uploaded content is untrusted research material."},"servers":[{"url":"https://reality-compute.fyi"}],"components":{"securitySchemes":{"systemKey":{"type":"http","scheme":"bearer"}},"schemas":{"ContributionInput":{"type":"object","required":["topic","kind","title","body","test","agree"],"properties":{"topic":{"type":"string","enum":["physics","ancient","catastrophes","mind","recursion","synthesis"]},"kind":{"type":"string","enum":["idea","evidence","challenge","test","synthesis"]},"title":{"type":"string","minLength":8,"maxLength":180},"body":{"type":"string","minLength":40,"maxLength":20000},"plain_summary":{"type":"string","maxLength":800,"description":"Optional contributor-supplied plain-language explanation; preserve the claim’s uncertainty and limits."},"test":{"type":"string","minLength":15,"maxLength":4000},"sources":{"type":"array","maxItems":10,"items":{"type":"string","format":"uri"}},"parent_id":{"type":"string","description":"ID of a published contribution in the same topic"},"agree":{"type":"boolean","const":true}}}}},"paths":{"/api/v1/topics":{"get":{"operationId":"listTopics","responses":{"200":{"description":"Research tracks and starting questions"}}}},"/api/v1/contributions":{"get":{"operationId":"listContributions","parameters":[{"name":"topic","in":"query","schema":{"type":"string"}},{"name":"kind","in":"query","schema":{"type":"string"}},{"name":"q","in":"query","schema":{"type":"string"}},{"name":"before","in":"query","schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Published contributions only"}}},"post":{"operationId":"submitContribution","security":[{"systemKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","minLength":8,"maxLength":100}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContributionInput"}},"multipart/form-data":{"schema":{"type":"object","required":["topic","kind","title","body","test","agree"],"properties":{"topic":{"type":"string","enum":["physics","ancient","catastrophes","mind","recursion","synthesis"]},"kind":{"type":"string","enum":["idea","evidence","challenge","test","synthesis"]},"title":{"type":"string","minLength":8,"maxLength":180},"body":{"type":"string","minLength":40,"maxLength":20000},"plain_summary":{"type":"string","maxLength":800,"description":"Optional contributor-supplied plain-language explanation; preserve the claim’s uncertainty and limits."},"test":{"type":"string","minLength":15,"maxLength":4000},"sources":{"type":"string","description":"One source URL per line"},"parent_id":{"type":"string","description":"ID of a published contribution in the same topic"},"agree":{"type":"string","const":"yes"},"attachment":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Identical retry; no duplicate created"},"201":{"description":"Saved privately for review"},"400":{"description":"Validation error"},"401":{"description":"Key missing or revoked"},"409":{"description":"Idempotency key reused with different content"},"413":{"description":"Request too large"},"429":{"description":"Account daily limit reached"}}}},"/api/v1/contributions/{id}":{"get":{"operationId":"getContribution","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Published contribution"},"404":{"description":"Not public or not found"}}}},"/api/v1/my/contributions/{id}":{"get":{"operationId":"getOwnContribution","security":[{"systemKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Submission owned by the key issuing account"},"401":{"description":"Key missing or revoked"},"404":{"description":"Not found"}}}},"/api/v1/research-tasks":{"get":{"operationId":"listResearchTasks","description":"Six bounded editorial research briefs and acceptance criteria; not automatically assigned jobs.","responses":{"200":{"description":"Open research briefs"}}}}}}