{"openapi":"3.1.0","info":{"title":"Microsoft Graph Sites (BYOK) API","version":"0.1.0","description":"Microsoft Graph Sites (BYOK) lets an AI assistant read your own Microsoft Graph Sites data through the Microsoft Graph Sites API with a key you supply (Microsoft Graph access token (an OAuth token valid for about an hour)). Read-only: 10 tools (get_root_site, search_sites, get_site, list_subsites, list_site_lists, get_list, list_list_columns, list_site_columns, list_site_content_types,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-graph-sharepoint.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-graph-sharepoint/docs"},"termsOfService":"https://connectorbay.com/byok-graph-sharepoint/terms"},"servers":[{"url":"https://byok-graph-sharepoint.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-graph-sharepoint/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_root_site":{"post":{"operationId":"get_root_site","summary":"Get the tenant's root SharePoint site: name, URL and ids to use in the other tools. Needs Sites.Read.All. Use for \"What ","description":"Get the tenant's root SharePoint site: name, URL and ids to use in the other tools. Needs Sites.Read.All. Use for \"What is our root SharePoint site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_root_siteArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_sites":{"post":{"operationId":"search_sites","summary":"Search SharePoint sites by keyword in name, URL or description, returning ids and URLs. Needs Sites.Read.All. Use for \"F","description":"Search SharePoint sites by keyword in name, URL or description, returning ids and URLs. Needs Sites.Read.All. Use for \"Find the SharePoint sites about marketing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"description":"Search keywords, for example 'marketing'.","maxLength":200,"title":"Search","type":"string"}},"required":["search"],"title":"search_sitesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_site":{"post":{"operationId":"get_site","summary":"Get one SharePoint site by id: name, description, URL, creation and last modified time. Needs Sites.Read.All. Use for \"D","description":"Get one SharePoint site by id: name, description, URL, creation and last modified time. Needs Sites.Read.All. Use for \"Describe the SharePoint site marketing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"SharePoint site id from search_sites or get_root_site, in the form 'contoso.sharepoint.com,<site collection guid>,<site guid>'.","maxLength":200,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"get_siteArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_subsites":{"post":{"operationId":"list_subsites","summary":"List the subsites of a SharePoint site. Needs Sites.Read.All. Use for \"Which subsites does the Marketing SharePoint site","description":"List the subsites of a SharePoint site. Needs Sites.Read.All. Use for \"Which subsites does the Marketing SharePoint site have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"SharePoint site id from search_sites or get_root_site, in the form 'contoso.sharepoint.com,<site collection guid>,<site guid>'.","maxLength":200,"title":"Site Id","type":"string"},"top":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many items to return (1 to 200). Only the first page is returned.","title":"Top"}},"required":["site_id"],"title":"list_subsitesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_site_lists":{"post":{"operationId":"list_site_lists","summary":"List the lists and document libraries of a site with template type, hidden flag, URL and times (list items are not retur","description":"List the lists and document libraries of a site with template type, hidden flag, URL and times (list items are not returned). Needs Sites.Read.All. Use for \"What lists and libraries does the Marketing SharePoint site have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"SharePoint site id from search_sites or get_root_site, in the form 'contoso.sharepoint.com,<site collection guid>,<site guid>'.","maxLength":200,"title":"Site Id","type":"string"},"top":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many items to return (1 to 200). Only the first page is returned.","title":"Top"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional OData $filter expression.","title":"Filter"}},"required":["site_id"],"title":"list_site_listsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_list":{"post":{"operationId":"get_list","summary":"Get one list or library's metadata: name, template, whether content types are enabled, URL and times. Needs Sites.Read.A","description":"Get one list or library's metadata: name, template, whether content types are enabled, URL and times. Needs Sites.Read.All. Use for \"Describe the Documents library on the Marketing SharePoint site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"SharePoint site id from search_sites or get_root_site, in the form 'contoso.sharepoint.com,<site collection guid>,<site guid>'.","maxLength":200,"title":"Site Id","type":"string"},"list_id":{"description":"Id (GUID) or display name of the list, from list_site_lists.","maxLength":200,"title":"List Id","type":"string"}},"required":["site_id","list_id"],"title":"get_listArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_list_columns":{"post":{"operationId":"list_list_columns","summary":"List the columns of a list or library (name, display name, description, group, required, hidden, read-only, indexed). Ne","description":"List the columns of a list or library (name, display name, description, group, required, hidden, read-only, indexed). Needs Sites.Read.All. Use for \"What columns does the Documents library have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"SharePoint site id from search_sites or get_root_site, in the form 'contoso.sharepoint.com,<site collection guid>,<site guid>'.","maxLength":200,"title":"Site Id","type":"string"},"list_id":{"description":"Id (GUID) or display name of the list, from list_site_lists.","maxLength":200,"title":"List Id","type":"string"}},"required":["site_id","list_id"],"title":"list_list_columnsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_site_columns":{"post":{"operationId":"list_site_columns","summary":"List the site-level columns (reusable column definitions) of a site with group, required and hidden flags. Needs Sites.R","description":"List the site-level columns (reusable column definitions) of a site with group, required and hidden flags. Needs Sites.Read.All. Use for \"Which site columns are defined on the Marketing SharePoint site\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"SharePoint site id from search_sites or get_root_site, in the form 'contoso.sharepoint.com,<site collection guid>,<site guid>'.","maxLength":200,"title":"Site Id","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional OData $filter expression.","title":"Filter"}},"required":["site_id"],"title":"list_site_columnsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_site_content_types":{"post":{"operationId":"list_site_content_types","summary":"List the content types available on a site (name, group, parent, built-in and hidden flags). Needs Sites.Read.All. Use f","description":"List the content types available on a site (name, group, parent, built-in and hidden flags). Needs Sites.Read.All. Use for \"Which content types does the Marketing SharePoint site have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"SharePoint site id from search_sites or get_root_site, in the form 'contoso.sharepoint.com,<site collection guid>,<site guid>'.","maxLength":200,"title":"Site Id","type":"string"},"filter":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Optional OData $filter expression.","title":"Filter"}},"required":["site_id"],"title":"list_site_content_typesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_site_drives":{"post":{"operationId":"list_site_drives","summary":"List the document libraries (drives) of a site with type, URL and storage quota (total, used, remaining bytes); file nam","description":"List the document libraries (drives) of a site with type, URL and storage quota (total, used, remaining bytes); file names are not returned. Needs Sites.Read.All or Files.Read.All. Use for \"How much storage do the libraries of the Marketing SharePoint site use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site_id":{"description":"SharePoint site id from search_sites or get_root_site, in the form 'contoso.sharepoint.com,<site collection guid>,<site guid>'.","maxLength":200,"title":"Site Id","type":"string"}},"required":["site_id"],"title":"list_site_drivesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}