{"openapi":"3.1.0","info":{"title":"Lucid (BYOK) API","version":"0.1.0","description":"Lucid (BYOK) lets an AI assistant read your own Lucid data through the Lucid API with a key you supply (Lucid API key). Read-only: 9 tools (get_account, get_my_profile, list_users, get_user, search_documents, list_root_folder_contents, list_folder_contents, get_folder, list_teams). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-lucid.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-lucid/docs"},"termsOfService":"https://connectorbay.com/byok-lucid/terms"},"servers":[{"url":"https://byok-lucid.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-lucid/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_account":{"post":{"operationId":"get_account","summary":"Show the Lucid account the key belongs to: account id and name. Needs the AccountReadonly grant. Use for \"Which Lucid ac","description":"Show the Lucid account the key belongs to: account id and name. Needs the AccountReadonly grant. Use for \"Which Lucid account is my API key connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_accountArguments","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_my_profile":{"post":{"operationId":"get_my_profile","summary":"Show the key owner's Lucid profile: name, username, email and account id. Needs the User grant. Use for \"Who am I in Luc","description":"Show the key owner's Lucid profile: name, username, email and account id. Needs the User grant. Use for \"Who am I in Lucid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_my_profileArguments","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_users":{"post":{"operationId":"list_users","summary":"List users on the Lucid account with roles and enabled flag. Needs the AccountAdmin grant (account owner or admin). Use ","description":"List users on the Lucid account with roles and enabled flag. Needs the AccountAdmin grant (account owner or admin). Use for \"Who has a Lucid account on my team\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum users to return (up to 200).","title":"Page Size"}},"title":"list_usersArguments","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_user":{"post":{"operationId":"get_user","summary":"Get one Lucid user on the account by numeric user id. Needs the AccountReadonly grant. Use for \"Show Lucid user 12345\".","description":"Get one Lucid user on the account by numeric user id. Needs the AccountReadonly grant. Use for \"Show Lucid user 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Numeric Lucid user id (from list_users).","title":"User Id","type":"integer"}},"required":["user_id"],"title":"get_userArguments","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_documents":{"post":{"operationId":"search_documents","summary":"Search Lucid documents the key can see by keywords; returns title, links, product and timestamps. Needs the DocumentRead","description":"Search Lucid documents the key can see by keywords; returns title, links, product and timestamps. Needs the DocumentReadonly grant. Use for \"Find my Lucid diagrams about onboarding\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"keywords":{"anyOf":[{"maxLength":400,"type":"string"},{"type":"null"}],"default":null,"description":"Words to look for in titles and content (the API truncates at 400 characters).","title":"Keywords"},"exclude_trashed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to leave out trashed documents.","title":"Exclude Trashed"}},"title":"search_documentsArguments","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_root_folder_contents":{"post":{"operationId":"list_root_folder_contents","summary":"List the folders and documents in the key owner's root folder (My Documents). Needs the FolderReadonly grant. Use for \"W","description":"List the folders and documents in the key owner's root folder (My Documents). Needs the FolderReadonly grant. Use for \"What is in my top-level Lucid folder\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"only_folders":{"anyOf":[{"const":"type=folder","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'type=folder' to list only folders.","title":"Only Folders"}},"title":"list_root_folder_contentsArguments","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_folder_contents":{"post":{"operationId":"list_folder_contents","summary":"List the folders and documents inside one Lucid folder by id. Needs the FolderReadonly grant. Use for \"What is inside Lu","description":"List the folders and documents inside one Lucid folder by id. Needs the FolderReadonly grant. Use for \"What is inside Lucid folder 4567\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"folder_id":{"description":"Numeric folder id (from the root listing or another folder).","title":"Folder Id","type":"integer"},"only_folders":{"anyOf":[{"const":"type=folder","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'type=folder' to list only folders.","title":"Only Folders"}},"required":["folder_id"],"title":"list_folder_contentsArguments","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_folder":{"post":{"operationId":"get_folder","summary":"Get one Lucid folder: name, type (folder or team), parent, creation and trash dates. Use for \"Show Lucid folder 4567\".","description":"Get one Lucid folder: name, type (folder or team), parent, creation and trash dates. Use for \"Show Lucid folder 4567\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"folder_id":{"description":"Numeric folder id.","title":"Folder Id","type":"integer"}},"required":["folder_id"],"title":"get_folderArguments","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_teams":{"post":{"operationId":"list_teams","summary":"List Lucid teams the key owner can see with type, creation and archive dates. Use for \"Which teams exist in my Lucid acc","description":"List Lucid teams the key owner can see with type, creation and archive dates. Use for \"Which teams exist in my Lucid account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"members_only":{"anyOf":[{"const":"include=memberonly","type":"string"},{"type":"null"}],"default":null,"description":"Set to 'include=memberonly' to list only teams the owner belongs to.","title":"Members Only"}},"title":"list_teamsArguments","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}}}}