{"ok":true,"site":{"host":"chatgpt.com","url":"https://chatgpt.com/","type":"live","desc":"Use ChatGPT to answer questions, write, create images, complete work, and code—all in one place. Get started for free or download the app.","tools":[{"name":"get_conversation_state","kind":"answer","impl":"imperative","description":"Read the selected conversation, composer readiness, draft, attachments and generation lifecycle. A dispatched send is not a completed response; inspect this state to observe progress.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"list_conversation_content_diagnostics","kind":"answer","impl":"imperative","description":"Read the selected conversation's retained content diagnostics, native rendering status and fallback receipts. Dev/staging payloads and their matched prompt are included only when already admitted for display. A diagnostic disclosure does not imply a missing widget. Follow nextOffset for all retained results; each page contains at most 128 entries and eight MiB. This does not send a request or change the conversation.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"offset":{"type":"number","description":"Nonnegative diagnostic entry offset, default 0; use nextOffset from the prior page."},"limit":{"type":"number","description":"Integer from 1 to 128, default 128."}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"set_composer_draft","kind":"act","impl":"imperative","description":"Replace the visible composer draft without sending it. Normal composer locks apply.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"prompt":{"type":"string"}},"required":["prompt"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"submit_conversation_message","kind":"transact","impl":"imperative","description":"Send a message through the current composer's ordinary submission and verification flow. Returns dispatch status; use get_conversation_state to observe acceptance, completion or failure. Never automatically retry a dispatched send.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"prompt":{"type":"string"}},"required":["prompt"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"submitQuery","kind":"transact","impl":"imperative","description":"Alias for submit_conversation_message. Returns dispatch status, not response completion.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string"}},"required":["query"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"stop_conversation","kind":"act","impl":"imperative","description":"Request Stop for the selected conversation's current generation or pending send through its existing owner. Inspect get_conversation_state for settlement; an idle conversation returns an unavailable error.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"start_conversation","kind":"act","impl":"imperative","description":"Open New chat using normal navigation and draft protection. This does not send a message or change temporary-chat/account policy.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"open_conversation","kind":"act","impl":"imperative","description":"Switch to an existing conversation by id using normal navigation, access checks and draft protection. Inspect get_conversation_state after navigation.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"conversationId":{"type":"string"}},"required":["conversationId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"open_chat_sidebar","kind":"act","impl":"imperative","description":"Open the visible conversation sidebar using its application action.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"scroll_to_conversation_message","kind":"act","impl":"imperative","description":"Scroll the selected transcript to a turn id, or its latest message when omitted.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"turnId":{"type":"string"}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"list_conversation_models","kind":"answer","impl":"imperative","description":"Load the current account's available conversation model choices and selected model. Choices retain normal account, mode and attachment restrictions.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"select_conversation_model","kind":"act","impl":"imperative","description":"Choose a model and optional effort returned by list_conversation_models using the existing model-selection owner. This does not send a message or grant model access.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"model":{"type":"string"},"effort":{"type":"string"}},"required":["model"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"upload_conversation_files","kind":"act","impl":"imperative","description":"Attach user-provided files to the current composer through the normal upload pipeline. Supply base64 bytes, filename and MIME type, never a local path or URL. Normal upload limits and mode restrictions apply. Inspect get_conversation_state before sending.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"files":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"mimeType":{"type":"string"},"data":{"type":"string"}},"required":["name","mimeType","data"]}}},"required":["files"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]},{"name":"remove_conversation_attachment","kind":"act","impl":"imperative","description":"Remove an attachment id returned by get_conversation_state from the current draft.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string"}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/?noauth_recent_chat_failed=1","/images"]}],"category":"AI & Agents","favicon":"/favicons/chatgpt.com.png","apiSurface":"spec","toolCount":14}}