{"openapi":"3.1.0","jsonSchemaDialect":"https://spec.openapis.org/oas/3.1/dialect/base","info":{"title":"Threads for Claude","version":"0.1.0","summary":"Remote MCP server for one user's Threads (threads.com) account.","description":"Threads for Claude is a remote Model Context Protocol (MCP) server. Its only API is the MCP endpoint `POST https://threads-mcp.app/mcp` (JSON-RPC 2.0 over streamable HTTP, OAuth 2.1 bearer tokens). Tools are discovered at runtime with the MCP `tools/list` method and called with `tools/call`; their JSON schemas are also published in https://threads-mcp.app/.well-known/mcp/server-card.json. The other operations here are public, read-only discovery documents.\n\nTools that publish, reply, repost or delete act publicly on the user's behalf: show the user the exact text and get explicit confirmation before calling them.\n\nAuthentication guide: https://threads-mcp.app/auth.md. Agent overview: https://threads-mcp.app/llms.txt.","termsOfService":"https://threads-mcp.app/terms","contact":{"name":"Threads for Claude","url":"https://threads-mcp.app/developers"},"x-privacy-policy":"https://threads-mcp.app/privacy"},"externalDocs":{"description":"Developer docs","url":"https://threads-mcp.app/developers"},"servers":[{"url":"https://threads-mcp.app","description":"Production"}],"tags":[{"name":"MCP","description":"The Model Context Protocol endpoint (JSON-RPC 2.0 over streamable HTTP)."},{"name":"Discovery","description":"Machine-readable documents that describe the MCP server."},{"name":"Authorization","description":"OAuth 2.1 discovery metadata. The authorization server is Supabase Auth."}],"paths":{"/mcp":{"post":{"operationId":"mcpJsonRpc","tags":["MCP"],"summary":"Send an MCP JSON-RPC message","description":"Streamable HTTP transport of the Model Context Protocol (protocol version 2025-06-18). Send one JSON-RPC 2.0 request, e.g. `initialize`, `tools/list`, `tools/call`, `resources/list` or `resources/read`, with `Accept: application/json, text/event-stream`. The response is a JSON-RPC response, either as `application/json` or as a single `message` event on a `text/event-stream`.\n\nWithout a valid token the server answers `401` with `WWW-Authenticate: Bearer resource_metadata=\"https://threads-mcp.app/.well-known/oauth-protected-resource/mcp\"` (RFC 9728); follow it to start OAuth.\n\nAvailable tools (call via `tools/call` with `params.name`): `threads_list_accounts`, `threads_use_account`, `threads_get_profile`, `threads_list_posts`, `threads_get_post`, `threads_create_post`, `threads_create_carousel`, `threads_create_thread`, `threads_reply`, `threads_repost`, `threads_publish_container`, `threads_delete_post`, `threads_get_replies`, `threads_hide_reply`, `threads_get_mentions`, `threads_get_activity`, `threads_keyword_search`, `threads_profile_lookup`, `threads_get_profile_posts`, `threads_get_post_insights`, `threads_get_posts_insights`, `threads_get_account_insights`, `threads_get_publishing_limit`.","security":[{"oauth2":["openid","profile","email","offline_access"]}],"parameters":[{"name":"MCP-Protocol-Version","in":"header","required":false,"description":"MCP protocol version negotiated during `initialize`, sent on subsequent requests.","schema":{"type":"string","examples":["2025-06-18"]}}],"requestBody":{"required":true,"description":"A JSON-RPC 2.0 request or notification.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcRequest"},"examples":{"listTools":{"summary":"List tools","value":{"jsonrpc":"2.0","id":1,"method":"tools/list"}},"callTool":{"summary":"Call a tool","value":{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"threads_get_profile","arguments":{}}}}}}}},"responses":{"200":{"description":"JSON-RPC response (a tool failure is a result with `isError: true`, not an HTTP error).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}},"text/event-stream":{"schema":{"type":"string","description":"Server-sent events; each `message` event's data is a JSON-RPC response."}}}},"202":{"description":"Accepted: the request was a JSON-RPC notification, so there is no response body."},"400":{"description":"Malformed JSON-RPC message.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}},"401":{"description":"Missing, expired or invalid access token.","headers":{"WWW-Authenticate":{"description":"Bearer challenge with `resource_metadata` pointing to the protected resource metadata.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"406":{"description":"The Accept header does not include both application/json and text/event-stream.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcErrorResponse"}}}},"429":{"description":"Rate limited. Back off exponentially and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/oauth-protected-resource/mcp":{"get":{"operationId":"getProtectedResourceMetadata","tags":["Authorization"],"summary":"Get OAuth protected resource metadata for /mcp","description":"RFC 9728 protected resource metadata for the MCP endpoint: the resource identifier, its authorization server and the scopes to request. `/.well-known/oauth-protected-resource` returns the same document.","security":[],"responses":{"200":{"description":"Protected resource metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectedResourceMetadata"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"operationId":"getAuthorizationServerMetadata","tags":["Authorization"],"summary":"Get OAuth authorization server metadata","description":"RFC 8414 metadata of the authorization server (Supabase Auth), mirrored on this origin. `issuer` stays `https://xcrbqlttioslgdggfdit.supabase.co/auth/v1`. Returns 502 if the upstream document is unavailable.","security":[],"parameters":[{"name":"If-None-Match","in":"header","required":false,"description":"ETag from a previous response. If the document is unchanged the server answers `304 Not Modified` with no body.","schema":{"type":"string","examples":["\"3f2a9c1e0b7d\""]}}],"responses":{"200":{"description":"Authorization server metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizationServerMetadata"}}}},"304":{"description":"Not modified: the `If-None-Match` ETag still matches, so there is no body.","headers":{"ETag":{"description":"Current ETag of the document.","schema":{"type":"string"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The upstream authorization server metadata could not be fetched.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/openid-configuration":{"get":{"operationId":"getOpenIdConfiguration","tags":["Authorization"],"summary":"Get OpenID Connect discovery document","description":"OpenID Connect discovery document of the authorization server (Supabase Auth), mirrored on this origin.","security":[],"parameters":[{"name":"If-None-Match","in":"header","required":false,"description":"ETag from a previous response. If the document is unchanged the server answers `304 Not Modified` with no body.","schema":{"type":"string","examples":["\"3f2a9c1e0b7d\""]}}],"responses":{"200":{"description":"OpenID Connect provider metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizationServerMetadata"}}}},"304":{"description":"Not modified: the `If-None-Match` ETag still matches, so there is no body.","headers":{"ETag":{"description":"Current ETag of the document.","schema":{"type":"string"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"The upstream discovery document could not be fetched.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/mcp.json":{"get":{"operationId":"getMcpManifest","tags":["Discovery"],"summary":"Get the MCP server manifest","description":"Flat manifest of the MCP server: endpoint, transport, authentication and the full tool list with input schemas.","security":[],"responses":{"200":{"description":"MCP server manifest.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpManifest"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/mcp":{"get":{"operationId":"getMcpServerIndex","tags":["Discovery"],"summary":"List MCP servers on this origin","description":"Index of the MCP servers hosted on this origin, with their endpoint, transport and server card URL.","security":[],"responses":{"200":{"description":"MCP server index.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerIndex"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/mcp/server-card.json":{"get":{"operationId":"getMcpServerCard","tags":["Discovery"],"summary":"Get the MCP server card","description":"MCP server card: server info, capabilities, authentication and every tool and resource with its schema.","security":[],"responses":{"200":{"description":"MCP server card.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServerCard"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/agent-skills/index.json":{"get":{"operationId":"getAgentSkillsIndex","tags":["Discovery"],"summary":"List agent skills","description":"Agent Skills discovery index listing the SKILL.md files published by this site, with digests.","security":[],"responses":{"200":{"description":"Agent Skills index.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSkillsIndex"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/.well-known/agent-skills/threads/SKILL.md":{"get":{"operationId":"getThreadsSkill","tags":["Discovery"],"summary":"Get the Threads agent skill","description":"SKILL.md with instructions for agents on when and how to use the Threads tools.","security":[],"responses":{"200":{"description":"Skill instructions in Markdown.","content":{"text/markdown":{"schema":{"type":"string","description":"Skill instructions in Markdown."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","tags":["Discovery"],"summary":"Get llms.txt","description":"Plain-text overview for agents: when to use the server, how to connect and the tool list.","security":[],"responses":{"200":{"description":"llms.txt document.","content":{"text/plain":{"schema":{"type":"string","description":"llms.txt document."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/auth.md":{"get":{"operationId":"getAuthGuide","tags":["Authorization"],"summary":"Get the authentication guide","description":"Step-by-step OAuth 2.1 guide for agents (discovery, registration, PKCE, token exchange, errors).","security":[],"responses":{"200":{"description":"Authentication guide in Markdown.","content":{"text/markdown":{"schema":{"type":"string","description":"Authentication guide in Markdown."}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/openapi.json":{"get":{"operationId":"getOpenApiSpec","tags":["Discovery"],"summary":"Get this OpenAPI document","description":"This OpenAPI 3.1 document. Also served at /.well-known/openapi.json and /api/openapi.json.","security":[],"parameters":[{"name":"If-None-Match","in":"header","required":false,"description":"ETag from a previous response. If the document is unchanged the server answers `304 Not Modified` with no body.","schema":{"type":"string","examples":["\"3f2a9c1e0b7d\""]}}],"responses":{"200":{"description":"OpenAPI document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiDocument"}}}},"304":{"description":"Not modified: the `If-None-Match` ETag still matches, so there is no body.","headers":{"ETag":{"description":"Current ETag of the document.","schema":{"type":"string"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"oauth2":{"type":"oauth2","description":"OAuth 2.1 authorization code flow with PKCE (S256) and dynamic client registration (https://xcrbqlttioslgdggfdit.supabase.co/auth/v1/oauth/clients/register). The user signs in with Threads. These scopes identify the user; what the server may do on Threads is limited by the Threads permissions granted on Meta's consent screen: threads_basic, threads_content_publish, threads_read_replies, threads_manage_replies, threads_manage_insights, threads_delete, threads_manage_mentions, threads_keyword_search, threads_profile_discovery.","flows":{"authorizationCode":{"authorizationUrl":"https://xcrbqlttioslgdggfdit.supabase.co/auth/v1/oauth/authorize","tokenUrl":"https://xcrbqlttioslgdggfdit.supabase.co/auth/v1/oauth/token","refreshUrl":"https://xcrbqlttioslgdggfdit.supabase.co/auth/v1/oauth/token","scopes":{"openid":"Identify the signed-in user (OpenID Connect).","profile":"Read the user's basic profile (Threads username) on this server.","email":"Read the internal account email of the user on this server.","offline_access":"Receive a refresh token so the MCP client stays connected."}}}}},"schemas":{"Error":{"type":"object","description":"Error returned by this server for HTTP-level failures.","required":["error"],"properties":{"error":{"type":"string","description":"Machine-readable error code, e.g. `invalid_token`, `not_found`."},"error_description":{"type":"string","description":"Human-readable explanation (OAuth-style)."},"message":{"type":"string","description":"Human-readable explanation."},"status":{"type":"integer","description":"HTTP status code."},"hint":{"type":"string","description":"What to do next."},"documentation_url":{"type":"string","format":"uri","description":"Where to read more."}}},"JsonRpcRequest":{"type":"object","description":"JSON-RPC 2.0 request (with `id`) or notification (without `id`).","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","const":"2.0","description":"JSON-RPC version."},"id":{"type":["string","integer"],"description":"Request id, echoed in the response. Omit for notifications."},"method":{"type":"string","description":"MCP method.","examples":["initialize","notifications/initialized","tools/list","tools/call","resources/list","resources/read","ping"]},"params":{"type":"object","description":"Method parameters. For `tools/call`: `{ name, arguments }`.","properties":{"name":{"type":"string","description":"Tool name for `tools/call`.","enum":["threads_list_accounts","threads_use_account","threads_get_profile","threads_list_posts","threads_get_post","threads_create_post","threads_create_carousel","threads_create_thread","threads_reply","threads_repost","threads_publish_container","threads_delete_post","threads_get_replies","threads_hide_reply","threads_get_mentions","threads_get_activity","threads_keyword_search","threads_profile_lookup","threads_get_profile_posts","threads_get_post_insights","threads_get_posts_insights","threads_get_account_insights","threads_get_publishing_limit"]},"arguments":{"type":"object","description":"Tool arguments, matching the tool's input schema.","additionalProperties":true}},"additionalProperties":true}}},"JsonRpcResponse":{"type":"object","description":"JSON-RPC 2.0 response: `result` on success, `error` on protocol failure.","required":["jsonrpc"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","integer","null"],"description":"Id of the request this answers."},"result":{"type":"object","description":"Method result. For `tools/call`: `{ content, structuredContent?, isError? }`.","additionalProperties":true},"error":{"$ref":"#/components/schemas/JsonRpcError"}}},"JsonRpcErrorResponse":{"type":"object","description":"JSON-RPC 2.0 error response.","required":["jsonrpc","error"],"properties":{"jsonrpc":{"type":"string","const":"2.0"},"id":{"type":["string","integer","null"]},"error":{"$ref":"#/components/schemas/JsonRpcError"}}},"JsonRpcError":{"type":"object","description":"JSON-RPC 2.0 error object.","required":["code","message"],"properties":{"code":{"type":"integer","description":"JSON-RPC error code, e.g. -32600 (invalid request), -32601 (method not found)."},"message":{"type":"string","description":"Error message."},"data":{"description":"Additional error data."}}},"ProtectedResourceMetadata":{"type":"object","description":"RFC 9728 protected resource metadata.","required":["resource","authorization_servers"],"properties":{"resource":{"type":"string","format":"uri","description":"Resource identifier (the MCP endpoint)."},"authorization_servers":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorization server issuers."},"scopes_supported":{"type":"array","items":{"type":"string"},"description":"Scopes to request."},"bearer_methods_supported":{"type":"array","items":{"type":"string"},"description":"How to send the token."},"resource_name":{"type":"string"},"resource_documentation":{"type":"string","format":"uri"}},"additionalProperties":true},"AuthorizationServerMetadata":{"type":"object","description":"RFC 8414 / OpenID Connect discovery metadata of the authorization server.","required":["issuer","authorization_endpoint","token_endpoint"],"properties":{"issuer":{"type":"string","format":"uri"},"authorization_endpoint":{"type":"string","format":"uri"},"token_endpoint":{"type":"string","format":"uri"},"registration_endpoint":{"type":"string","format":"uri"},"jwks_uri":{"type":"string","format":"uri"},"userinfo_endpoint":{"type":"string","format":"uri"},"scopes_supported":{"type":"array","items":{"type":"string"}},"response_types_supported":{"type":"array","items":{"type":"string"}},"response_modes_supported":{"type":"array","items":{"type":"string"}},"grant_types_supported":{"type":"array","items":{"type":"string"}},"subject_types_supported":{"type":"array","items":{"type":"string"}},"id_token_signing_alg_values_supported":{"type":"array","items":{"type":"string"}},"token_endpoint_auth_methods_supported":{"type":"array","items":{"type":"string"}},"claims_supported":{"type":"array","items":{"type":"string"}},"code_challenge_methods_supported":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"McpTool":{"type":"object","description":"An MCP tool as listed by `tools/list`.","required":["name","inputSchema"],"properties":{"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"inputSchema":{"type":"object","description":"JSON Schema of the tool arguments.","additionalProperties":true},"annotations":{"type":"object","description":"MCP tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint).","additionalProperties":true}},"additionalProperties":true},"McpIcon":{"type":"object","description":"MCP `Icon`.","required":["src"],"properties":{"src":{"type":"string","format":"uri"},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string"}}}},"McpResource":{"type":"object","description":"An MCP resource as listed by `resources/list` (here: MCP Apps UI templates).","required":["uri","name"],"properties":{"uri":{"type":"string","description":"Resource URI, e.g. `ui://threads/posts-insights.html`."},"name":{"type":"string"},"description":{"type":"string"},"mimeType":{"type":"string"}},"additionalProperties":true},"McpAuthenticationRef":{"type":"object","description":"How to authenticate to the MCP endpoint.","properties":{"type":{"type":"string","const":"oauth2"},"protectedResourceMetadata":{"type":"string","format":"uri"},"documentation":{"type":"string","format":"uri"}},"additionalProperties":true},"McpManifest":{"type":"object","description":"MCP server manifest.","required":["name","url","transport","tools"],"properties":{"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"kind":{"type":"string","examples":["product"]},"version":{"type":"string"},"icons":{"type":"array","items":{"$ref":"#/components/schemas/McpIcon"}},"url":{"type":"string","format":"uri"},"transport":{"type":"string","const":"streamable-http"},"authentication":{"$ref":"#/components/schemas/McpAuthenticationRef"},"serverCard":{"type":"string","format":"uri"},"capabilities":{"type":"object","properties":{"tools":{"type":"boolean"},"resources":{"type":"boolean"},"extensions":{"type":"object","additionalProperties":true}},"additionalProperties":true},"tools":{"type":"array","items":{"$ref":"#/components/schemas/McpTool"}},"resources":{"type":"array","items":{"$ref":"#/components/schemas/McpResource"}}},"additionalProperties":true},"McpServerIndex":{"type":"object","description":"Index of MCP servers on this origin.","required":["mcpServers"],"properties":{"mcpServers":{"type":"array","items":{"type":"object","required":["name","url"],"properties":{"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","format":"uri"},"transport":{"type":"string"},"serverCard":{"type":"string","format":"uri"},"authentication":{"$ref":"#/components/schemas/McpAuthenticationRef"}},"additionalProperties":true}}}},"McpServerCard":{"type":"object","description":"MCP server card.","required":["name","serverUrl","tools"],"properties":{"$schema":{"type":"string","format":"uri"},"name":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"version":{"type":"string"},"icons":{"type":"array","items":{"$ref":"#/components/schemas/McpIcon"}},"iconUrl":{"type":"string","format":"uri"},"websiteUrl":{"type":"string","format":"uri"},"serverUrl":{"type":"string","format":"uri"},"protocolVersion":{"type":"string"},"serverInfo":{"type":"object","properties":{"name":{"type":"string"},"title":{"type":"string"},"version":{"type":"string"},"icons":{"type":"array","items":{"$ref":"#/components/schemas/McpIcon"}}},"additionalProperties":true},"documentationUrl":{"type":"string","format":"uri"},"transport":{"type":"object","properties":{"type":{"type":"string"},"endpoint":{"type":"string","format":"uri"}},"additionalProperties":true},"capabilities":{"type":"object","additionalProperties":true},"authentication":{"type":"object","properties":{"required":{"type":"boolean"},"schemes":{"type":"array","items":{"type":"string"}},"protectedResourceMetadata":{"type":"string","format":"uri"},"authorizationServers":{"type":"array","items":{"type":"string","format":"uri"}},"documentation":{"type":"string","format":"uri"}},"additionalProperties":true},"instructions":{"type":"string"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/McpTool"}},"resources":{"type":"array","items":{"$ref":"#/components/schemas/McpResource"}}},"additionalProperties":true},"AgentSkillsIndex":{"type":"object","description":"Agent Skills discovery index.","required":["skills"],"properties":{"$schema":{"type":"string","format":"uri"},"skills":{"type":"array","items":{"type":"object","required":["name","url"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"url":{"type":"string","description":"Path or URL of the SKILL.md file."},"digest":{"type":"string","description":"`sha256:<hex>` digest of the SKILL.md file."}},"additionalProperties":true}}}},"OpenApiDocument":{"type":"object","description":"An OpenAPI 3.1 document.","required":["openapi","info","paths"],"properties":{"openapi":{"type":"string"},"info":{"type":"object","additionalProperties":true},"paths":{"type":"object","additionalProperties":true}},"additionalProperties":true}}}}