{"openapi":"3.1.0","info":{"title":"Accord Multi-model API","version":"2026-09-01","description":"Ask any question and receive one answer researched across four independent AI providers and synthesized by Gemini."},"servers":[{"url":"https://askaccord.com/api/v1"}],"paths":{"/answer":{"post":{"operationId":"createAnswer","summary":"Answer any query with Accord","description":"Runs independent native research through OpenAI, Anthropic, DeepSeek, and Z.ai, then returns one Gemini-synthesized answer.","security":[{"accordKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"additionalProperties":false,"properties":{"query":{"type":"string","maxLength":40000,"description":"The complete question or coding task."},"context":{"type":"array","maxItems":20,"description":"Relevant text files for grounded generation. Supply only files needed for the task.","items":{"type":"object","required":["path","content"],"additionalProperties":false,"properties":{"path":{"type":"string","minLength":1,"maxLength":500},"content":{"type":"string","maxLength":40000}}}},"diff":{"type":"string","maxLength":80000,"description":"Optional current unified diff the generated answer must account for."},"strategy":{"type":"string","enum":["accord","deep","auto"],"description":"Answer strategy. Accord is the default four-provider panel; deep increases reasoning; auto selects one model."},"objective":{"type":"string","enum":["fast","balanced","thorough"],"default":"balanced"},"mode":{"type":"string","enum":["quick","deliberate"],"deprecated":true,"description":"Compatibility alias for objective."},"stream":{"type":"boolean","default":false},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"Reuse to prevent duplicate paid work after a retry."},"max_cost_micros":{"type":"integer","minimum":1,"description":"Hard caller cost envelope in micro-USD. Requests below the quoted plan maximum are rejected before paid work."},"deadline_ms":{"type":"integer","minimum":5000,"maximum":120000,"description":"Overall execution deadline in milliseconds."},"allow_partial":{"type":"boolean","default":true},"images":{"type":"array","maxItems":4,"items":{"type":"object","required":["mime_type","data_url"],"additionalProperties":false,"properties":{"name":{"type":"string"},"mime_type":{"type":"string","enum":["image/png","image/jpeg","image/webp","image/gif"]},"data_url":{"type":"string","description":"A matching base64 data URL."}}}}}}}}},"responses":{"200":{"description":"One blended answer, or an NDJSON event stream when stream=true","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Answer"}},"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/Event"}}}},"400":{"description":"Invalid query"},"401":{"description":"Missing or invalid Accord key"},"413":{"description":"Input too large"}}}},"/consensus":{"post":{"operationId":"createConsensus","summary":"Legacy streaming answer endpoint","deprecated":true,"security":[{"accordKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["question"],"properties":{"question":{"type":"string","maxLength":40000},"mode":{"type":"string","enum":["quick","deliberate"],"default":"quick"},"panelPreset":{"type":"string","enum":["auto","balanced","deep"]},"context":{"type":"array","maxItems":20,"description":"Relevant text files for grounded generation. Supply only files needed for the task.","items":{"type":"object","required":["path","content"],"additionalProperties":false,"properties":{"path":{"type":"string","minLength":1,"maxLength":500},"content":{"type":"string","maxLength":40000}}}},"diff":{"type":"string","maxLength":80000,"description":"Optional current unified diff the generated answer must account for."},"attachments":{"type":"array","maxItems":4,"items":{"type":"object"}},"max_cost_micros":{"type":"integer","minimum":1},"deadline_ms":{"type":"integer","minimum":5000,"maximum":120000},"allow_partial":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"A newline-delimited stream of panel activity and results","content":{"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/Event"}}}},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid Bearer credential"},"413":{"description":"Question too long"}}}},"/reviews":{"post":{"operationId":"createCodeReview","summary":"Review a code change with independent models and an adjudicator","security":[{"bearerKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["diff"],"additionalProperties":false,"properties":{"diff":{"type":"string","maxLength":80000,"description":"A unified text diff. Never include live credentials."},"task":{"type":"string","maxLength":4000},"context":{"type":"array","maxItems":20,"items":{"type":"object","required":["path","content"],"additionalProperties":false,"properties":{"path":{"type":"string","maxLength":500},"content":{"type":"string"}}}},"focus":{"type":"array","maxItems":8,"items":{"type":"string","maxLength":80},"default":["correctness","security","tests"]},"objective":{"type":"string","enum":["fast","balanced","thorough"],"default":"balanced"},"mode":{"type":"string","enum":["quick","deliberate"],"deprecated":true},"idempotency_key":{"type":"string","minLength":1,"maxLength":200,"description":"Reuse to prevent duplicate paid work after a retry."},"max_cost_micros":{"type":"integer","minimum":1},"deadline_ms":{"type":"integer","minimum":5000,"maximum":120000},"allow_partial":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"Reviewer progress, verified findings, and summary as NDJSON","content":{"application/x-ndjson":{"schema":{"$ref":"#/components/schemas/ReviewEvent"}}}},"400":{"description":"Invalid request"},"401":{"description":"Missing or invalid Bearer credential"},"413":{"description":"Input too large"},"415":{"description":"Binary content"},"422":{"description":"Suspected live credential"}}}},"/runs/{id}":{"get":{"operationId":"getRun","summary":"Inspect a run and resume its ordered event log","security":[{"accordKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"after_sequence","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"Durable run state and events after the requested sequence"},"401":{"description":"Missing or invalid Accord key"},"404":{"description":"Run not found"}}},"delete":{"operationId":"cancelRun","summary":"Request cancellation of an active run","security":[{"accordKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"202":{"description":"Cancellation was requested"},"409":{"description":"Run is already terminal"}}}},"/models":{"get":{"operationId":"listPanelModels","summary":"List the current panel and moderator for each mode","responses":{"200":{"description":"Current model roster"}}}}},"components":{"securitySchemes":{"accordKey":{"type":"http","scheme":"bearer","description":"An Accord API key beginning with accord_."},"bearerKey":{"type":"http","scheme":"bearer","description":"An Accord accord_ key or caller-owned OpenRouter sk-or- key."}},"schemas":{"Answer":{"type":"object","required":["id","object","query","answer","sources","artifacts","usage"],"properties":{"id":{"type":"string"},"object":{"type":"string","const":"accord.answer"},"created_at":{"type":"string","format":"date-time"},"query":{"type":"string"},"answer":{"type":"string"},"status":{"type":"string","enum":["succeeded","partial"]},"warnings":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}},"sources":{"type":"array","items":{"type":"object","required":["title","url"],"properties":{"title":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"artifacts":{"type":"array","items":{"type":"object","required":["id","type","title"],"properties":{"id":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"}},"additionalProperties":true}},"resolved_model":{"type":"string","description":"The model selected for an Auto request."},"usage":{"type":"object","properties":{"input_tokens":{"type":"integer"},"output_tokens":{"type":"integer"},"reasoning_tokens":{"type":"integer"},"cost_usd":{"type":"number"}}}}},"Event":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["phase","model","tokens","meter","warning","conversation","ready","resolved_model","model_delta","model_answer","delta","synthesis_done","memory","done","error"]},"delta":{"type":"string","description":"A streamed fragment of the consensus."},"total":{"type":"integer","description":"Approximate then reconciled output-token count."}}},"ReviewEvent":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["phase","reviewer","meter","warning","finding","summary","done","error"]},"finding":{"$ref":"#/components/schemas/ReviewFinding"},"verdict":{"type":"string","enum":["approved","changes_requested"]}}},"ReviewFinding":{"type":"object","required":["id","path","line","severity","title","explanation","evidence"],"properties":{"id":{"type":"string"},"path":{"type":"string"},"line":{"type":"integer","minimum":1},"severity":{"type":"string","enum":["critical","high","medium","low"]},"category":{"type":"string"},"title":{"type":"string"},"explanation":{"type":"string"},"evidence":{"type":"string"},"affectedAsset":{"type":"string","description":"Data or capability placed at risk."},"attackScenario":{"type":"string","description":"Concrete path from attacker capability to impact."},"preconditions":{"type":"string","description":"Conditions required for the finding to be reachable or exploitable."},"verification":{"type":"string","description":"A safe test or reproduction that can confirm the finding."},"dataFlow":{"type":"array","description":"Evidence-backed source-to-sink trace when applicable.","items":{"type":"object","required":["path","line","role"],"properties":{"path":{"type":"string"},"line":{"type":"integer","minimum":1},"role":{"type":"string","enum":["source","propagator","sink"]}}}},"suggestedFix":{"type":"string"},"supportingModels":{"type":"integer","minimum":1},"dissentingModels":{"type":"integer","minimum":0},"confidence":{"type":"number","minimum":0,"maximum":1}}}}}}