{ "openapi": "3.1.0", "info": { "title": "opencode", "description": "opencode api", "version": "1.0.0" }, "paths": { "/session_create": { "post": { "responses": { "200": { "description": "Successfully created session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session.Info" } } } } }, "operationId": "postSession_create", "parameters": [], "description": "Create a new session" } }, "/session_share": { "post": { "responses": { "200": { "description": "Successfully shared session", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Session.Info" } } } } }, "operationId": "postSession_share", "parameters": [], "description": "Share the session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "sessionID": { "type": "string" } }, "required": [ "sessionID" ] } } } } } }, "/session_messages": { "post": { "responses": { "200": { "description": "Successfully created session", "content": { "application/json": { "schema": {} } } } }, "operationId": "postSession_messages", "parameters": [], "description": "Get messages for a session", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "sessionID": { "type": "string" } }, "required": [ "sessionID" ] } } } } } }, "/session_list": { "post": { "responses": { "200": { "description": "List of sessions", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^ses" }, "shareID": { "type": "string" }, "title": { "type": "string" }, "tokens": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "reasoning": { "type": "number" } }, "required": [ "input", "output", "reasoning" ] } }, "required": [ "id", "title", "tokens" ] } } } } } }, "operationId": "postSession_list", "parameters": [], "description": "List all sessions" } }, "/session_chat": { "post": { "responses": {}, "operationId": "postSession_chat", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "sessionID": { "type": "string" }, "providerID": { "type": "string" }, "modelID": { "type": "string" }, "parts": {} }, "required": [ "sessionID", "providerID", "modelID" ] } } } } } }, "/provider_list": { "post": { "responses": { "200": { "description": "List of providers", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/Provider.Info" } } } } } }, "operationId": "postProvider_list", "parameters": [], "description": "List all providers" } } }, "components": { "schemas": { "Session.Info": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^ses" }, "shareID": { "type": "string" }, "title": { "type": "string" }, "tokens": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "reasoning": { "type": "number" } }, "required": [ "input", "output", "reasoning" ] } }, "required": [ "id", "title", "tokens" ] }, "Provider.Info": { "type": "object", "properties": { "options": { "type": "object", "additionalProperties": {} }, "models": { "type": "object", "additionalProperties": { "type": "object", "properties": { "name": { "type": "string" }, "cost": { "type": "object", "properties": { "input": { "type": "number" }, "inputCached": { "type": "number" }, "output": { "type": "number" }, "outputCached": { "type": "number" } }, "required": [ "input", "inputCached", "output", "outputCached" ] }, "contextWindow": { "type": "number" }, "maxTokens": { "type": "number" }, "attachment": { "type": "boolean" } }, "required": [ "cost", "contextWindow", "maxTokens", "attachment" ] } } } } } } }