{"openapi":"3.0.3","info":{"title":"Lucid Rest API","description":"The Lucid REST API provides programmatic access to manage documents, users, folders, sharing, licensing, and audit logs across the Lucid Suite (Lucidchart, Lucidspark, and Lucidscale). Authenticate via OAuth 2.0 or API key.","termsOfService":"https://lucid.co/developer-terms","contact":{"name":"Lucid Software","url":"https://community.lucid.co/developer-community-6/"},"license":{"name":"Lucid","url":"https://lucid.co/developer-terms"},"version":"1.0.0"},"x-readme":{"explorer-enabled":true,"proxy-enabled":false},"servers":[{"url":"https://api.lucid.co"}],"tags":[{"name":"OAuth 2.0 Tokens","description":"Create, refresh, introspect, and revoke OAuth 2.0 access tokens used to authenticate API requests on behalf of a user."},{"name":"Mermaid","description":"Interact with Mermaid diagrams in your Lucidchart and Lucidspark documents: create new diagrams, list and retrieve existing ones, and update their markup."},{"name":"Accounts","description":"Retrieve information about the authenticated Lucid account."},{"name":"Legal Holds","description":"Create and manage legal holds on a Lucid account. Legal holds prevent documents from being permanently deleted for users placed on hold."},{"name":"Licenses","description":"View and manage product licenses assigned to users within a subscription."},{"name":"Documents Collaboration","description":"Manage user and team collaborator access on individual documents, including granting, updating, and revoking collaboration roles."},{"name":"Folders Collaboration","description":"Manage user, group, and team collaborator access on folders, including granting, updating, and revoking collaboration roles."},{"name":"Document Access","description":"Create, import, copy, retrieve, update, search, export, and trash documents across the Lucid Suite, and access their contents."},{"name":"Document Embedding","description":"Generate session tokens and render the embedded viewer iframe used to display Lucid documents in external applications."},{"name":"Folders","description":"Create, retrieve, update, search, trash, and restore folders. Includes listing folder contents and root folder navigation."},{"name":"Documents Sharing","description":"Create, retrieve, update, and delete share links for documents to control external access."},{"name":"Folders Sharing","description":"Create, retrieve, update, and delete share links for folders to control external access."},{"name":"Transfer Content","description":"Transfer ownership of a user's documents, folders, custom shape libraries, and Lucidscale objects to another user within the same account."},{"name":"Users","description":"Retrieve, create, and search for users within the authenticated account. Includes user profile access."},{"name":"Unfurling","description":"Retrieve metadata for Lucid document links to power rich previews, and serve direct iframe embeds for Lucid documents in external applications."},{"name":"Embedding Utils","description":"Create, retrieve, delete, and change the version of embed instances on a document."},{"name":"Document Picker","description":"Generate tokens and render an embedded document picker that lets users select Lucid documents from within your application."},{"name":"Audit Logs","description":"Retrieve audit log events that record user and admin activity across the Lucid account."},{"name":"Teams","description":"Create, retrieve, update, archive, and restore teams. Manage team membership by adding and removing users."},{"name":"Cloud","description":"Manage cloud infrastructure credentials, data sources, and architecture diagrams for AWS, Azure, and Google Cloud."},{"name":"Repositories","description":"Create and manage shared document repositories. Control repository membership by adding and removing users and groups."},{"name":"Subscriptions","description":"List and retrieve product subscriptions on the account."},{"name":"Document Comments","description":"Retrieve comment threads on a document, list comments within a thread, and post new comments to an existing thread."}],"paths":{"/v1/oauth2/token":{"post":{"summary":"Create or Refresh Access Token","operationId":"createOrRefreshAccessToken","tags":["OAuth 2.0 Tokens"],"security":[{"OAuth2":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["code","client_id","client_secret","grant_type","redirect_uri"],"properties":{"code":{"type":"string","description":"The authorization code."},"client_id":{"type":"string","description":"The client ID."},"client_secret":{"type":"string","description":"The client secret."},"grant_type":{"type":"string","description":"Value is always \"authorization_code\"."},"redirect_uri":{"type":"string","description":"The redirect URI used to get the authorization code."}}},{"type":"object","required":["refresh_token","client_id","client_secret","grant_type"],"properties":{"refresh_token":{"type":"string","description":"The current refresh token."},"client_id":{"type":"string","description":"The client ID."},"client_secret":{"type":"string","description":"The client secret."},"grant_type":{"type":"string","description":"Value is always \"refresh_token\"."}}}]}}}},"responses":{"200":{"description":"OK application/json with the access token and refresh token (if the offline_access scope was included for creating access token).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuth2Token"}}}},"401":{"description":"Unauthorized if the client credentials are invalid."}}}},"/v1/oauth2/token/introspect":{"post":{"summary":"Introspect Access Token","operationId":"introspectAccessToken","tags":["OAuth 2.0 Tokens"],"security":[{"OAuth2":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["client_id","client_secret","token"],"properties":{"client_id":{"type":"string","description":"The client ID."},"client_secret":{"type":"string","description":"The client secret."},"token":{"type":"string","description":"The token to inspect."}}}}}},"responses":{"200":{"description":"OK with information about the token, as specified in OAuth2 Introspect Token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuth2IntrospectToken"},"examples":{"inactive":{"summary":"Inactive token","value":{"active":false}},"user":{"summary":"Active user token","value":{"active":true,"user_id":1001,"client_id":"example-client","expires_in":3500,"expires":1605732868411,"scope":"user.profile","token_type":"bearer"}},"account":{"summary":"Active account token","value":{"active":true,"account_id":52,"client_id":"example-client","expires_in":3500,"expires":1605732868411,"scope":"account.user","token_type":"bearer"}}}}}},"401":{"description":"Unauthorized if the client credentials are invalid."}}}},"/v1/oauth2/token/revoke":{"post":{"summary":"Revoke Access Token","description":"Regardless of which token is revoked, all tokens from that authorization grant will become invalid.","operationId":"revokeAccessToken","tags":["OAuth 2.0 Tokens"],"security":[{"OAuth2":[]}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","required":["client_id","token"],"properties":{"client_id":{"type":"string","description":"The client ID."},"client_secret":{"type":"string","description":"Required for confidential clients. Registered public clients omit this field."},"token":{"type":"string","description":"The token to revoke."}}}}}},"responses":{"200":{"description":"OK if the client is permitted to revoke the token."},"401":{"description":"Unauthorized if the client credentials are invalid."}}}},"/v1/accounts/me":{"get":{"summary":"Get Account Information","description":"Retrieves basic information about the authenticated account.","operationId":"getAccountInformation","tags":["Accounts"],"security":[{"ApiKey":["AccountReadonly"]},{"OAuth2":["account.info"]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountInformationResource"}}}},"403":{"description":"Forbidden"}}}},"/v1/accounts/me/classifications":{"get":{"summary":"Get Classifications","description":"Returns the paginated list of classifications configured for the authenticated account. Deleted classifications are excluded from results.","operationId":"getClassifications","tags":["Accounts"],"security":[{"ApiKey":["AccountReadonly"]},{"OAuth2":["account.info"]}],"responses":{"200":{"description":"OK. Returns a list of classifications for the account.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Classification"}}}}},"403":{"description":"Forbidden. Token does not have the required scope."}}}},"/v2/accounts/me/documents/search":{"post":{"summary":"Search Account Documents","description":"Returns a list of all documents belonging to the requesting user's account, sorted by created date. This API is exclusive to Enterprise Shield accounts. The endpoint supports pagination. Search Documents and Search Account Documents share a limit of 300 requests per 5 seconds per account.","operationId":"SearchAccountDocuments","tags":["Document Access"],"security":[{"ApiKey":["DocumentAdmin"]},{"OAuth2":["lucidchart.document.content:admin.readonly","lucidspark.document.content:admin.readonly","lucidscale.document.content:admin.readonly"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-AccountDocuments"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userIds":{"type":"array","items":{"type":"number"},"description":"When provided, limit the search to documents that at least one specified user can access.\nIf no list is provided, search across the entire account.\n"},"ownedByUsers":{"type":"boolean","description":"When true, search results will only include documents owned by users specified by userIds. Ignored if no userIds are provided."},"documentIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of documentIds to filter by."},"classificationIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of classificationIds to filter by."},"statusIds":{"type":"array","items":{"type":"number"},"description":"List of statusIds to filter by."},"createdStartTime":{"type":"string","format":"date-time","description":"Start of range to filter documents by created time."},"createdEndTime":{"type":"string","format":"date-time","description":"End of range to filter documents by created time."},"lastModifiedStartTime":{"type":"string","format":"date-time","description":"Start of range to filter documents by last modified time."},"lastModifiedEndTime":{"type":"string","format":"date-time","description":"End of range to filter documents by last modified time."},"product":{"type":"array","items":{"$ref":"#/components/schemas/Product"},"description":"Array of Lucid Suite products to filter by. Default value assumes all valid products for the given scopes.","default":["lucidchart","lucidscale","lucidspark"]},"keywords":{"type":"string","description":"Keyword(s) to search against document content and titles. When provided, results will be sorted by relevance to keyword search. Use quotes to search for exact phrases (e.g. \"Project X\")"},"documentLocation":{"type":"string","enum":["team folders","users","deleted","repositories"],"description":"Specify to search for documents in team folders, owned by users, deleted, or contained within repositories"},"externalAccess":{"type":"string","enum":["any","external-collaborators","external-links"],"description":"Specify to search for documents with either “any” type of external access, “external-collaborators”, or \"external-links\""}}}}}},"responses":{"200":{"description":"With paginated list of Account Documents","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AccountDocumentV2"}}}}},"400":{"description":"Bad Request if incorrect format"},"403":{"description":"Forbidden if \"product\" query parameter is used and the token’s scopes do not contain the matching readonly scope for each product, or account does not have access to the API"},"429":{"description":"Too Many Requests if the account exceeds the shared limit of 300 document searches per 5 seconds.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/accounts/me/legalHolds":{"post":{"summary":"Create Legal Hold","description":"Creates a new legal hold on an Enterprise Shield account with specified parameters including title, description, keywords, and start/end times.","operationId":"createLegalHold","tags":["Legal Holds"],"security":[{"ApiKey":["LegalHoldEdit"]},{"OAuth2":["account.legalhold"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"Title":{"type":"string","description":"Title that should be given to the newly created legal hold. Max length of title is 80 characters."},"StartTime":{"type":"string","format":"date-time","description":"Time that the legal hold should start. Must not be in the past."},"EndTime":{"type":"string","format":"date-time","description":"Time that the legal hold should end. End time must be greater than or equal to 24 hours after the start time."},"Description":{"type":"string","description":"Description that should be given to the newly created legal hold. Max length of description is 256 characters."},"Keywords":{"type":"string","description":"Keyword(s) to search against document content and titles. Note: When provided, only relevant results will be added to the legal hold. Empty strings will be treated the same as when no keywords are provided. Max length of keywords is 400 characters."}},"required":["Title","StartTime","EndTime"]}}}},"responses":{"201":{"description":"With the newly created legal hold.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegalHold"}}}},"400":{"description":"Incorrect format or invalid parameters."},"403":{"description":"Account does not have permission to access the API."}}},"get":{"summary":"Get Legal Holds","description":"Retrieves all legal holds configured for the authenticated account. The results are paginated.","operationId":"getLegalHolds","tags":["Legal Holds"],"security":[{"ApiKey":["LegalHoldReadonly"]},{"OAuth2":["account.legalhold","account.legalhold:readonly"]}],"responses":{"200":{"description":"With paginated list of legal holds.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LegalHold"}}}}},"403":{"description":"Account does not have permission to access the API."}}}},"/v1/accounts/me/legalHolds/{legalHoldId}/users/add":{"post":{"summary":"Add Legal Hold Users","description":"Adds users to a specified legal hold. This action can only be performed for legal holds that have not yet started.","operationId":"addLegalHoldUsers","tags":["Legal Holds"],"security":[{"ApiKey":["LegalHoldEdit"]},{"OAuth2":["account.legalhold","account.legalhold.users"]}],"parameters":[{"$ref":"#/components/parameters/LegalHoldIdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"Users":{"type":"array","items":{"type":"number"},"description":"List of user ids for users to be put on the specified legal hold. Users must belong to the admin’s account. Max number of users per request is 200."}},"required":["Users"]}}}},"responses":{"204":{"description":"Users were correctly added to the legal hold."},"400":{"description":"Incorrect format or invalid parameters."},"403":{"description":"Account does not have permission to access the API."},"404":{"description":"The specified legal hold id was not found."}}}},"/v1/accounts/me/legalHolds/{legalHoldId}/users/remove":{"post":{"summary":"Remove Legal Hold Users","description":"Removes users from a specified legal hold. This action can only be performed for legal holds that have not yet started.","operationId":"removeLegalHoldUsers","tags":["Legal Holds"],"security":[{"ApiKey":["LegalHoldEdit"]},{"OAuth2":["account.legalhold","account.legalhold.users"]}],"parameters":[{"$ref":"#/components/parameters/LegalHoldIdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"Users":{"type":"array","items":{"type":"number"},"description":"List of user ids for users to be removed from the specified legal hold. Users must belong to the admin’s account. Max number of users per request is 200."}},"required":["Users"]}}}},"responses":{"204":{"description":"Users were correctly removed from the legal hold."},"400":{"description":"Incorrect format or invalid parameters."},"403":{"description":"Account does not have permission to access the API."},"404":{"description":"The specified legal hold id was not found."}}}},"/v1/accounts/me/legalHolds/{legalHoldId}":{"patch":{"summary":"Edit Legal Hold","description":"Modifies an existing legal hold, allowing changes to the title, description, and end time. If the legal hold has not yet started, the start time and keywords can also be updated.","operationId":"editLegalHold","tags":["Legal Holds"],"security":[{"ApiKey":["LegalHoldEdit"]},{"OAuth2":["account.legalhold"]}],"parameters":[{"$ref":"#/components/parameters/LegalHoldIdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"Title":{"type":"string","description":"The new title for the legal hold (the existing one will be replaced). Max length of title is 80 characters."},"StartTime":{"type":"string","format":"date-time","description":"The new time that the legal hold will begin. Must be at least 24 hours before the end time and cannot be in the past. Cannot be changed if the legal hold has already started."},"EndTime":{"type":"string","format":"date-time","description":"The new time that the legal hold will end and documents on the legal hold will be released. Must be at least 24 hours after the start time and cannot be in the past."},"Description":{"type":"string","description":"The new description for the legal hold (the existing one will be replaced). Max length of description is 256 characters."},"Keywords":{"type":"string","description":"The new keywords for the legal hold (any existing ones will be replaced). Max length of keywords is 400 characters. Cannot be changed if the legal hold has already started."}}}}}},"responses":{"200":{"description":"With the legal hold that was successfully modified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegalHold"}}}},"400":{"description":"Incorrect format or invalid parameters."},"403":{"description":"Account does not have permission to access the API."},"404":{"description":"The specified legal hold id was not found."}}}},"/v1/accounts/me/legalHolds/{legalHoldId}/release":{"post":{"summary":"Release Legal Hold","description":"Releases a legal hold specified by the legalHoldId. Once released, it may take up to 24 hours for the documents to be fully removed from the legal hold restriction.","operationId":"releaseLegalHold","tags":["Legal Holds"],"security":[{"ApiKey":["LegalHoldEdit"]},{"OAuth2":["account.legalhold"]}],"parameters":[{"$ref":"#/components/parameters/LegalHoldIdPath"}],"responses":{"200":{"description":"With the legal hold that was released.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegalHold"}}}},"403":{"description":"Account does not have permission to access the API."},"404":{"description":"The specified legal hold id was not found."}}}},"/v1/accounts/me/legalHolds/{legalHoldId}/users":{"get":{"summary":"Get Legal Hold Users","description":"Retrieves a paginated list of all users associated with a specified legal hold.","operationId":"getLegalHoldUsers","tags":["Legal Holds"],"security":[{"ApiKey":["LegalHoldReadonly"]},{"OAuth2":["account.legalhold","account.legalhold:readonly","account.legalhold.users","account.legalhold.users:readonly"]}],"parameters":[{"$ref":"#/components/parameters/LegalHoldIdPath"}],"responses":{"200":{"description":"With paginated list of Users.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}},"403":{"description":"Account does not have permission to access the API."},"404":{"description":"The specified legal hold id was not found."}}}},"/v1/accounts/me/legalHoldDocuments/{legalHoldId}":{"get":{"summary":"Get Legal Hold Documents","description":"Retrieves a paginated list of all documents associated with a specified legal hold. Documents may continue to appear for up to 24 hours after users are removed from the legal hold, as the system processes the release asynchronously.","operationId":"getLegalHoldDocuments","tags":["Legal Holds"],"security":[{"ApiKey":["LegalHoldReadonly"]},{"OAuth2":["account.legalhold","account.legalhold:readonly"]}],"parameters":[{"$ref":"#/components/parameters/LegalHoldIdPath"}],"responses":{"200":{"description":"With paginated list of Documents.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}},"403":{"description":"Account does not have permission to access the API."},"404":{"description":"The specified legal hold id was not found."}}}},"/v1/documents/{id}/shares/users/{userId}":{"get":{"summary":"Get Document User Collaborator","description":"Retrieves information about a specific user's collaboration access level for a given document, including the sharing permissions and role that the user has been granted.","operationId":"getDocumentUserCollaborators","tags":["Documents Collaboration"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.content.share.collaborator:readonly","lucidchart.document.app.picker.share.collaborator:readonly","lucidchart.document.app.folder","lucidscale.document.content.share.collaborator:readonly","lucidscale.document.app.picker.share.collaborator:readonly","lucidscale.document.app.folder","lucidspark.document.content.share.collaborator:readonly","lucidspark.document.app.picker.share.collaborator:readonly","lucidspark.document.app.folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the document.","schema":{"type":"string","format":"uuid"},"example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"in":"path","name":"userId","required":true,"description":"ID of the user to retrieve collaborator settings for.","schema":{"type":"number"}}],"responses":{"200":{"description":"OK with a Document User Collaborator Resource containing information about the user's collaboration settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentUserCollaborator"}}}},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document has been deleted, or does not exist."},"404":{"description":"Not Found when a user with the specified ID can not be found or does not have collaborator access to the document."}}},"put":{"summary":"Create/Update Document User Collaborator","description":"Updates the collaborator role for a user on a document. If the user did not previously have access to the document, they will be granted access and a new collaborator record will be created.","operationId":"putDocumentUserCollaborators","tags":["Documents Collaboration"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content.share.collaborator","lucidchart.document.app.picker.share.collaborator","lucidchart.document.app.folder","lucidscale.document.content.share.collaborator","lucidscale.document.app.picker.share.collaborator","lucidscale.document.app.folder","lucidspark.document.content.share.collaborator","lucidspark.document.app.picker.share.collaborator","lucidspark.document.app.folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the document.","schema":{"type":"string","format":"uuid"},"example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"in":"path","name":"userId","required":true,"description":"ID of the user to retrieve collaborator settings for.","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["editandshare","edit","comment","view"],"example":"comment","description":"The Collaborator Role to assign to the user for this document."}}}}}},"responses":{"200":{"description":"OK when updating an existing Document User Collaborator. Contains the updated Document User Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentUserCollaborator"}}}},"201":{"description":"Created when creating a new Document User Collaborator. Contains the new Document User Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentUserCollaborator"}}}},"403":{"description":"Forbidden if the token does not have permission to the document, or if the document has been deleted or does not exist."}}},"delete":{"summary":"Delete Document User Collaborator","description":"Revokes all collaborator access to a document for the given user. The user may still have access to the document through other means such as shared folders. Cannot be used to remove the document owner's access.","operationId":"deleteDocumentUserCollaborators","tags":["Documents Collaboration"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content.share.collaborator","lucidchart.document.app.picker.share.collaborator","lucidchart.document.app.folder","lucidscale.document.content.share.collaborator","lucidscale.document.app.picker.share.collaborator","lucidscale.document.app.folder","lucidspark.document.content.share.collaborator","lucidspark.document.app.picker.share.collaborator","lucidspark.document.app.folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the document.","schema":{"type":"string","format":"uuid"},"example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"in":"path","name":"userId","required":true,"description":"ID of the user to retrieve collaborator settings for.","schema":{"type":"number"}}],"responses":{"204":{"description":"No Content when the user's collaborator record on the document was successfully deleted."},"403":{"description":"Forbidden * if the token does not have permission to the document, or if the document has been deleted or does not exist. * when attempting to revoke the collaboration for the document owner."}}}},"/v1/documents/{id}/shares/users":{"get":{"summary":"List Document User Collaborators","description":"Retrieves information about all collaborators on the provided document. Supports pagination for managing large result sets.","operationId":"listDocumentUserCollaborators","tags":["Documents Collaboration"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.content.share.collaborator:readonly","lucidchart.document.app.picker.share.collaborator:readonly","lucidchart.document.app.folder","lucidscale.document.content.share.collaborator:readonly","lucidscale.document.app.picker.share.collaborator:readonly","lucidscale.document.app.folder","lucidspark.document.content.share.collaborator:readonly","lucidspark.document.app.picker.share.collaborator:readonly","lucidspark.document.app.folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the document.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK with an array of Document User Collaborator Resources for the document's collaborators.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DocumentUserCollaborator"}}}}},"403":{"description":"Forbidden if the token does not have permission to the document, or if the document has been deleted or does not exist."}}}},"/v2/documents/{id}/shares/teams/{teamId}":{"get":{"summary":"Get Document Team Collaborator","description":"Returns information about the given team's collaboration on the given document, including the team's access and collaboration permissions.","operationId":"getDocumentTeamCollaborator","tags":["Documents Collaboration"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.app.folder","lucidchart.document.app.picker.share.collaborator:readonly","lucidchart.document.content.share.collaborator:readonly","lucidscale.document.app.folder","lucidscale.document.app.picker.share.collaborator:readonly","lucidscale.document.content.share.collaborator:readonly","lucidspark.document.app.folder","lucidspark.document.app.picker.share.collaborator:readonly","lucidspark.document.content.share.collaborator:readonly"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the document.","schema":{"type":"string","format":"uuid"},"example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"in":"path","name":"teamId","required":true,"description":"ID of the team to retrieve collaborator settings for, prefixed with `team_`. The legacy numeric team ID is also accepted.","schema":{"type":"string"},"example":"team_99"}],"responses":{"200":{"description":"OK. Returns a Document Team Collaborator Resource containing information about the team's collaboration settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentTeamCollaboratorV2"}}}},"403":{"description":"Forbidden. Occurs if the app making the request does not have permission for the document, or if the document has been deleted or does not exist."},"404":{"description":"Not Found. Occurs when a team with the specified ID can not be found or does not have collaborator access to the document."}}},"put":{"summary":"Create/Update Document Team Collaborator","description":"Updates the details of the given team's collaboration on the given document, or adds the team as a collaborator on the document if it isn't already a collaborator.","operationId":"putDocumentTeamCollaborator","tags":["Documents Collaboration"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.app.folder","lucidchart.document.app.picker.share.collaborator","lucidchart.document.content.share.collaborator","lucidscale.document.app.folder","lucidscale.document.app.picker.share.collaborator","lucidscale.document.content.share.collaborator","lucidspark.document.app.folder","lucidspark.document.app.picker.share.collaborator","lucidspark.document.content.share.collaborator"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the document.","schema":{"type":"string","format":"uuid"},"example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"in":"path","name":"teamId","required":true,"description":"ID of the team to retrieve collaborator settings for, prefixed with `team_`. The legacy numeric team ID is also accepted.","schema":{"type":"string"},"example":"team_99"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["editandshare","edit","comment","view"],"example":"comment","description":"The Collaborator Role to assign to the user for this document."}}}}}},"responses":{"200":{"description":"OK when updating an existing Document Team Collaborator. Contains the updated Document Team Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentTeamCollaboratorV2"}}}},"201":{"description":"Created when creating a new Document Team Collaborator. Contains the new Document Team Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentTeamCollaboratorV2"}}}},"403":{"description":"Forbidden if the token does not have permission to the document, or if the document has been deleted or does not exist."}}},"delete":{"summary":"Delete Document Team Collaborator","description":"Removes the given team as a collaborator on the given document.","operationId":"deleteDocumentTeamCollaborator","tags":["Documents Collaboration"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.app.folder","lucidchart.document.app.picker.share.collaborator","lucidchart.document.content.share.collaborator","lucidscale.document.app.folder","lucidscale.document.app.picker.share.collaborator","lucidscale.document.content.share.collaborator","lucidspark.document.app.folder","lucidspark.document.app.picker.share.collaborator","lucidspark.document.content.share.collaborator"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the document.","schema":{"type":"string","format":"uuid"},"example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"in":"path","name":"teamId","required":true,"description":"ID of the team to retrieve collaborator settings for, prefixed with `team_`. The legacy numeric team ID is also accepted.","schema":{"type":"string"},"example":"team_99"}],"responses":{"204":{"description":"No Content. The team's collaborator record on the document was successfully deleted."},"403":{"description":"Forbidden * if the token does not have permission to the document, or if the document has been deleted or does not exist. * when attempting to revoke the collaboration for the document owner."}}}},"/v1/folders/{id}/shares/users/{userId}":{"get":{"summary":"Get Folder User Collaborator","description":"Retrieves information about a specific user's direct collaborator access to a given folder. A user having access to a folder through one of the folder's ancestors will not be shown through this API.","operationId":"getFolderUserCollaborators","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderReadonly"]},{"OAuth2":["folder:readonly"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}},{"in":"path","name":"userId","required":true,"description":"ID of the user to retrieve collaborator settings for.","schema":{"type":"number"}}],"responses":{"200":{"description":"OK with a Folder User Collaborator Resource containing information about the user's collaboration settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderUserCollaborator"}}}},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, or if the folder has been deleted, or does not exist."},"404":{"description":"Not Found when a user with the specified ID cannot be found or does not have collaborator access to the folder."}}},"put":{"summary":"Create/Update Folder User Collaborator","description":"Updates or establishes a user's collaborator access to a given folder. If the user does not already have access, a new Folder User Collaborator Resource is created. Collaborators cannot be given the role \"owner\", and the role of the folder's owner cannot be modified.","operationId":"putFolderUserCollaborator","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}},{"in":"path","name":"userId","required":true,"description":"ID of the user whose role to create or modify.","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["editandshare","edit","comment","view"],"example":"comment","description":"The Collaborator Role to assign to the user for this folder."}}}}}},"responses":{"200":{"description":"OK when updating an existing Folder User Collaborator. Contains the updated Folder User Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderUserCollaborator"}}}},"201":{"description":"Created when creating a new Folder User Collaborator. Contains the new Folder User Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderUserCollaborator"}}}},"400":{"description":"Bad Request when trying to add or update a Folder User Collaborator to have the \"owner\" role."},"403":{"description":"Forbidden if the token does not have permission to the folder, or if the folder has been deleted or does not exist."}}},"delete":{"summary":"Delete Folder User Collaborator","description":"Revokes a user's direct collaborator access to a given folder. The user may still have access to the folder through other means such as shared folders. This action cannot be used to revoke access from the folder owner.","operationId":"deleteFolderUserCollaborator","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}},{"in":"path","name":"userId","required":true,"description":"ID of the user to delete collaborator settings for.","schema":{"type":"number"}}],"responses":{"204":{"description":"No Content when the user's collaborator record on the folder was successfully deleted."},"400":{"description":"Bad Request when removing the user would leave a project folder without an owner. Promote another user to owner on the project first, then retry."},"403":{"description":"Forbidden * if the token does not have permission to the folder, or if the folder has been deleted or does not exist. * when attempting to revoke the collaboration for the folder owner."}}}},"/v1/folders/{id}/shares/users":{"get":{"summary":"List Folder User Collaborators","description":"Retrieves all users who have direct collaborator access to a given folder. A user having access to a folder through one of the folder's ancestors will not be shown through this API. Results are paginated.","operationId":"listFolderUserCollaborators","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderReadonly"]},{"OAuth2":["folder:readonly"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}}],"responses":{"200":{"description":"OK with an array of Folder User Collaborator Resources for the folder's collaborators.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FolderUserCollaborator"}}}}},"403":{"description":"Forbidden if the token does not have permission to the folder, or if the folder has been deleted or does not exist."}}}},"/v1/folders/{id}/shares/groups/{groupId}":{"get":{"summary":"Get Folder Group Collaborator","description":"Retrieves information about a group's direct collaborator access to a given folder. A group having access to a folder through one of the folder's ancestors will not be shown through this API.","operationId":"getFolderGroupCollaborator","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderReadonly"]},{"OAuth2":["folder","folder:readonly"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"Folder ID.","schema":{"type":"number"}},{"in":"path","name":"groupId","required":true,"description":"Group ID.","schema":{"type":"number"}}],"responses":{"200":{"description":"OK with a Folder Group Collaborator Resource containing information about the group's collaboration access on the folder.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderGroupCollaborator"}}}},"403":{"description":"Forbidden if the token does not have access to the folder, or if the folder has been deleted or does not exist."},"404":{"description":"Not Found when the group does not have direct collaborator access to the folder."}}},"put":{"summary":"Create/Update Folder Group Collaborator","description":"Grants a group direct collaborator access to a given folder, or updates the group's role on the folder if it is already a collaborator.","operationId":"updateFolderGroupCollaborator","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"Folder ID.","schema":{"type":"number"}},{"in":"path","name":"groupId","required":true,"description":"Group ID.","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["editandshare","edit","comment","view"],"example":"comment","description":"The Collaborator Role to assign to the group for this folder."}}}}}},"responses":{"200":{"description":"OK when updating an existing Folder Group Collaborator. Contains the updated Folder Group Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderGroupCollaborator"}}}},"201":{"description":"Created when creating a new Folder Group Collaborator. Contains the new Folder Group Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderGroupCollaborator"}}}},"400":{"description":"Bad Request when trying to add or update a Folder Group Collaborator to have the \"owner\" role."},"403":{"description":"Forbidden if the token does not have permission to the folder, or if the folder or group have been deleted or do not exist."}}},"delete":{"summary":"Delete Folder Group Collaborator","description":"Revokes any direct collaborator access a group has to the given folder.","operationId":"deleteFolderGroupCollaborator","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"Folder ID.","schema":{"type":"number"}},{"in":"path","name":"groupId","required":true,"description":"Group ID.","schema":{"type":"number"}}],"responses":{"204":{"description":"No Content when the group's collaborator record on the folder was successfully deleted."},"400":{"description":"Bad Request when removing the group would leave a project folder without an owner."},"403":{"description":"Forbidden if the token does not have permission to the folder, or if the folder has been deleted or does not exist."}}}},"/v1/folders/{id}/shares/groups":{"get":{"summary":"List Folder Group Collaborators","description":"Retrieves all groups that have been granted direct collaborator access to a given folder. A group having access to a folder through one of the folder's ancestors will not be shown through this API. Results are paginated.","operationId":"listFolderGroupCollaborators","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderReadonly"]},{"OAuth2":["folder","folder:readonly"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"Folder ID.","schema":{"type":"number"}}],"responses":{"200":{"description":"OK with an array of Folder Group Collaborator Resources containing the folder's collaborators, as well as Pagination headers.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FolderGroupCollaborator"}}}}},"403":{"description":"Forbidden if the token does not have access to the folder, or if the folder has been deleted or does not exist."}}}},"/v2/folders/{id}/shares/teams/{teamId}":{"get":{"summary":"Get Folder Team Collaborator","description":"Returns information about the given team's collaboration on the given folder.","operationId":"getFolderTeamCollaborator","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderReadonly"]},{"OAuth2":["folder:readonly"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}},{"in":"path","name":"teamId","required":true,"description":"ID of the team to retrieve collaborator settings for, prefixed with `team_`. The legacy numeric team ID is also accepted.","schema":{"type":"string"},"example":"team_99"}],"responses":{"200":{"description":"OK with a Folder Team Collaborator Resource containing information about the team's collaboration access on the folder.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderTeamCollaboratorV2"}}}},"403":{"description":"Forbidden when the app making the request does not have permission for the folder, or if the folder has been deleted or does not exist."},"404":{"description":"Not Found when a team with the specified ID cannot be found or does not have collaborator access to the folder."}}},"put":{"summary":"Create/Update Folder Team Collaborator","description":"Updates the details of the given team's collaboration on the given folder, or adds the team as a collaborator on the folder if it is not already a collaborator.","operationId":"putFolderTeamCollaborator","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}},{"in":"path","name":"teamId","required":true,"description":"ID of the team whose role is to be created or modified, prefixed with `team_`. The legacy numeric team ID is also accepted.","schema":{"type":"string"},"example":"team_99"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["editandshare","edit","comment","view"],"example":"comment","description":"The Collaborator Role to assign to the team for this folder."}}}}}},"responses":{"200":{"description":"OK when updating an existing Folder Team Collaborator. Contains the updated Folder Team Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderTeamCollaboratorV2"}}}},"201":{"description":"Created when creating a new Folder Team Collaborator. Contains the new Folder Team Collaborator Resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderTeamCollaboratorV2"}}}},"400":{"description":"Bad Request when trying to add or update a collaborator to have the \"owner\" role."},"403":{"description":"Forbidden when the token does not have permission for the folder, or if the folder has been deleted or does not exist."}}},"delete":{"summary":"Delete Folder Team Collaborator","description":"Revokes a team's direct collaborator access to the given folder.","operationId":"deleteFolderTeamCollaborator","tags":["Folders Collaboration"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}},{"in":"path","name":"teamId","required":true,"description":"ID of the team to delete collaborator settings for, prefixed with `team_`. The legacy numeric team ID is also accepted.","schema":{"type":"string"},"example":"team_99"}],"responses":{"204":{"description":"No Content when the team's collaborator record on the folder was successfully deleted."},"400":{"description":"Bad Request when removing the team would leave a project folder without an owner."},"403":{"description":"Forbidden if the token does not have permission to the folder, or if the folder has been deleted or does not exist."}}}},"/v1/documents":{"post":{"summary":"Create from JSON","description":"Creates a new document for the requesting user, with the specified title. Requires `title` and `product`. Optionally, a `parent` folder, `extensionBootstrapData`, or Lucid Standard Import `content` can be provided to customize the new document.\n\n> 📘\n>\n> This endpoint can only create a new Lucidchart or Lucidspark document. It cannot modify an existing document's contents.\n\n> 📘 ##### Document Creation Location\n>\n> When there is no `parent` field on the request, the new document will be created in a default location depending on the authorizing token's scopes.\n>\n> - If the token authorizing the request uses one of the `document.app` scopes, then the document will be created in an `app-specific folder`.\n> - If one of the `document.content` scopes is used, the document will be created in the user's 'My Documents folder'.\n> - If both types of scopes are authorized on the token, the `document.content` behavior will take priority and the document will be created in the user's 'My Documents' folder.\n\n> 📘 ##### Bootstrap Data for Create Document\n>\n> Bootstrap data can be attached to the created document to be consumed by a specific [Extension Package](https://lucid.readme.io/docs/lucid-extension-api). See [Bootstrap Data for documents created via API](https://lucid.readme.io/docs/editor-extension-data#bootstrap-data-for-documents-created-via-api) for usage.\n\n> 📘 Standard Import\n>\n> When `content` is provided, it must conform to the Lucid Standard Import schema. For more information on how to use the Standard Import, refer to the extensive reference documentation [here](doc:overview-si).\n>\n> For examples of how to use the Standard Import, refer to the `/standard-import` folder in Lucid's repository of [Sample Lucid REST Applications](https://github.com/lucidsoftware/sample-lucid-rest-applications/tree/main/standard-import). This repo also contains some example `.zip` Standard Import files you can reference or use in your own projects.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentEdit`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"createDocument","tags":["Document Access"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title","product"],"properties":{"title":{"type":"string","description":"Title that should be given to the newly created document."},"product":{"$ref":"#/components/schemas/CreatableProduct"},"parent":{"type":"number","description":"Folder ID for the new document."},"extensionBootstrapData":{"$ref":"#/components/schemas/BootstrapData"},"content":{"$ref":"#/components/schemas/LucidStandardImportContent"}}}}}},"responses":{"201":{"description":"Created with Document resource containing information about the newly created document.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"400":{"description":"Bad Request. * `'content' and 'extensionBootstrapData' cannot both be provided` — the `content` field is mutually exclusive with `extensionBootstrapData`. * Invalid `content` JSON — the provided content does not conform to the Lucid Standard Import schema."},"403":{"description":"Forbidden. * if the user doesn't have access to or permissions to create within the specified parent folder. * if the token authorizing the request has the document.app scope with a specified parent folder that is outside the app folder's folder tree."}}}},"/v1/documents/create":{"post":{"summary":"Create from Standard Import File","description":"Creates a new document from a Lucid Standard Import file (`.zip` archive) uploaded as multipart/form-data. Requires `file`, `type`, and `product`. Optionally, a `title` and `parent` folder can be provided. If no `title` is provided, the new document's title will be the imported filename.\n\n> 📘\n>\n> This endpoint can only create a new Lucidchart or Lucidspark document. It cannot modify an existing document's contents.\n\n> 📘 ##### Document Creation Location\n>\n> When there is no `parent` field on the request, the new document will be created in a default location depending on the authorizing token's scopes.\n>\n> - If the token authorizing the request uses one of the `document.app` scopes, then the document will be created in an `app-specific folder`.\n> - If one of the `document.content` scopes is used, the document will be created in the user's 'My Documents folder'.\n> - If both types of scopes are authorized on the token, the `document.content` behavior will take priority and the document will be created in the user's 'My Documents' folder.\n\n> 📘 Standard Import\n>\n> For more information on how to use the Standard Import, refer to the extensive reference documentation [here](doc:overview-si).\n>\n> For examples of how to use the Standard Import, refer to the `/standard-import` folder in Lucid's repository of [Sample Lucid REST Applications](https://github.com/lucidsoftware/sample-lucid-rest-applications/tree/main/standard-import). This repo also contains some example `.zip` Standard Import files you can reference or use in your own projects.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentEdit`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"createDocumentWithStandardImport","tags":["Document Access"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file","type","product"],"properties":{"file":{"type":"string","format":"binary","description":"The Lucid Standard Import specification (`.zip` archive) from which to create the document."},"type":{"type":"string","enum":["x-application/vnd.lucid.standardImport"]},"product":{"$ref":"#/components/schemas/CreatableProduct"},"title":{"type":"string","description":"Title that should be given to the newly created document. If no title is specified, the document will be automatically assigned the file name."},"parent":{"type":"number","description":"Folder ID for the new document."}}}}}},"responses":{"201":{"description":"Created with Document resource containing information about the newly created document.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"400":{"description":"Bad Request.\n* Invalid request body — the provided payload does not conform to the Lucid Standard Import schema.\n"},"403":{"description":"Forbidden.\n* if the user doesn't have access to or permissions to create within the specified parent folder.\n* if the token authorizing the request has the document.app scope with a specified parent folder that is outside the app folder's folder tree.\n* if the token does not have the correct scope for the import type.\n"},"415":{"description":"Unsupported Media Type. The file type provided is not supported."}}}},"/v1/documents/import":{"post":{"summary":"Create from External File","description":"Imports an external non-Lucid file as a new document within Lucid. The file is uploaded as multipart/form-data. Requires `file`, `type`, and `product`. Optionally, a `title` and `parent` folder can be provided. If no `title` is provided, the new document's title will be the imported filename.\n\n> 📘\n>\n> This endpoint can only create a new Lucidchart or Lucidspark document. It cannot modify an existing document's contents.\n\n> 📘 ##### Document Creation Location\n>\n> When there is no `parent` field on the request, the new document will be created in a default location depending on the authorizing token's scopes.\n>\n> - If the token authorizing the request uses one of the `document.app` scopes, then the document will be created in an `app-specific folder`.\n> - If one of the `document.content` scopes is used, the document will be created in the user's 'My Documents folder'.\n> - If both types of scopes are authorized on the token, the `document.content` behavior will take priority and the document will be created in the user's 'My Documents' folder.\n\n> 📘 Board import\n>\n> - The `board` import type only accepts pdfs that are exports of digital whiteboards.\n> - The `board` import type can only be authorized by users with a Lucidspark Enterprise license.\n> - The `board` import type is experimental and importing the same board may produce varying results over time.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentEdit`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n\n\nSynchronous and asynchronous file imports share a per-account rate limit.","operationId":"importDocument","tags":["Document Access"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file","type","product"],"properties":{"file":{"type":"string","format":"binary","description":"The file from which to import the document."},"type":{"type":"string","enum":["x-application/vnd.lucid.bpmn","x-application/vnd.lucid.drawio","x-application/vnd.lucid.visio","x-application/vnd.lucid.gliffy","x-application/vnd.lucid.board"],"description":"The type of file provided for import. Supported types:\n* `x-application/vnd.lucid.bpmn` — BPMN files (.bpmn, .xpdl) for Lucidchart\n* `x-application/vnd.lucid.drawio` — draw.io files (.drawio, .xml) for Lucidchart\n* `x-application/vnd.lucid.visio` — Visio files (.vsdx, .vdx) for Lucidchart\n* `x-application/vnd.lucid.gliffy` — Gliffy files (.gliffy, .gon, .gxml) for Lucidchart\n* `x-application/vnd.lucid.board` — Board files (.pdf) for Lucidspark\n"},"product":{"$ref":"#/components/schemas/CreatableProduct"},"title":{"type":"string","description":"Title that should be given to the newly imported document. If no title is specified, the document will be automatically assigned the file name."},"parent":{"type":"number","description":"Folder ID for the new document."}}}}}},"responses":{"201":{"description":"Created with Document resource containing information about the newly imported document.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"403":{"description":"Forbidden.\n* if the user doesn't have access to or permissions to create within the specified parent folder.\n* if the token authorizing the request has the document.app scope with a specified parent folder that is outside the app folder's folder tree.\n* if the token does not have the correct scope for the import type.\n* if the token requesting a board import does not have a Lucidspark Enterprise License.\n"},"415":{"description":"Unsupported Media Type. The file type provided is not supported."},"429":{"description":"Too Many Requests. The account exceeded the shared file import limit of 50 requests per minute.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/documents/import/jobs":{"post":{"summary":"Create Asynchronously","description":"Starts an asynchronous import of a document file. This endpoint will immediately reserve a document ID, but the document is not necessarily created nor populated until the job has succeeded.\n\n\nThe uploaded file must not exceed 50 MB.\n\nSynchronous and asynchronous file imports share a per-account rate limit.","operationId":"importDocumentLongRunning","tags":["Document Access"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Distinguishing key for duplicate job requests. Use a different value if intending to run the same job twice.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file","type"],"properties":{"file":{"type":"string","format":"binary","description":"The file to import. Maximum size is 50 MB."},"type":{"type":"string","enum":["x-application/vnd.lucid.board","x-application/vnd.lucid.bpmn","x-application/vnd.lucid.confluence-onprem","x-application/vnd.lucid.drawio","x-application/vnd.lucid.gliffy","x-application/vnd.lucid.graffle","x-application/vnd.lucid.lucidArchive","x-application/vnd.lucid.miro","x-application/vnd.lucid.mural","x-application/vnd.lucid.standardImport","x-application/vnd.lucid.visio"],"description":"MIME type describing the supplied import file."},"product":{"$ref":"#/components/schemas/CreatableProduct","description":"Required for Lucid Standard Import files. Selects the product in which to create the document."},"title":{"type":"string","description":"Title for the imported document. Defaults to the file name without its extension."},"parent":{"type":"integer","description":"Folder ID in which to create the imported document. Cannot be provided with `team`."},"team":{"type":"string","description":"Team ID whose folder should contain the imported document. Cannot be provided with `parent`."}}}}}},"responses":{"200":{"description":"OK. Returns the queued or existing import job and the ID reserved for the imported document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportDocumentJobEnqueueResponse"}}}},"400":{"description":"Bad Request. The request is malformed, does not include exactly one file, or contains invalid import parameters."},"403":{"description":"Forbidden. The caller lacks permission to create the requested document or use the requested destination."},"415":{"description":"Unsupported Media Type. The supplied import type is not supported."},"429":{"description":"Too Many Requests. The account exceeded the shared file import limit of 50 requests per minute.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/documents/import/jobs/{jobId}":{"get":{"summary":"Get Document Creation Job Status","description":"Retrieves the status of an asynchronous document import. When the job succeeds, `response.document` contains the imported document resource.","operationId":"importDocumentLongRunningStatus","tags":["Document Access"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"parameters":[{"name":"jobId","in":"path","required":true,"description":"Identifier returned when the import job was created.","schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status and, after a successful import, the imported document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportDocumentJobStatusResponse"}}}},"400":{"description":"Bad Request. The job ID is malformed."},"403":{"description":"Forbidden. The caller does not have permission to access the import job."},"404":{"description":"Not Found. The import job does not exist."}}}},"/v1/documents/copy":{"post":{"summary":"Copy Document","description":"Copies one of the requesting user's existing documents, with the specified title. Requires `title` and `template` (the ID of the document to copy). Optionally, a `parent` folder can be provided. Note that collaborator permissions are not transferred to the copied document.\n\n> 📘\n>\n> This endpoint can only create a new Lucidchart or Lucidspark document. It cannot modify an existing document's contents.\n\n> 📘 ##### Document Creation Location\n>\n> When there is no `parent` field on the request, the new document will be created in a default location depending on the authorizing token's scopes.\n>\n> - If the token authorizing the request uses one of the `document.app` scopes, then the document will be created in an `app-specific folder`.\n> - If one of the `document.content` scopes is used, the document will be created in the user's 'My Documents folder'.\n> - If both types of scopes are authorized on the token, the `document.content` behavior will take priority and the document will be created in the user's 'My Documents' folder.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentEdit`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"copyDocument","tags":["Document Access"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title","template"],"properties":{"title":{"type":"string","description":"Title that should be given to the copied document."},"template":{"type":"string","format":"uuid","description":"ID of the document to copy."},"parent":{"type":"number","description":"Folder ID for the new document."}}}}}},"responses":{"201":{"description":"Created with Document resource containing information about the newly copied document.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"403":{"description":"Forbidden.\n* if the user doesn't have access to or permissions to create within the specified parent folder.\n* if the user doesn't have permissions to access the specified template to copy from.\n* if the token authorizing the request has the document.app scope with a specified parent folder that is outside the app folder's folder tree.\n"}}}},"/v1/documents/{id}":{"patch":{"summary":"Update Document","description":"Updates properties of an existing document. Supports partial updates via JSON for title, parent, and classification.\n\nSupports moving documents into (but not out of) repositories by providing a repo_-prefixed repository ID as the parent.\n","operationId":"updateDocument","tags":["Document Access"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.picker","lucidchart.document.app.folder","lucidscale.document.content","lucidscale.document.app.picker","lucidscale.document.app.folder","lucidspark.document.content","lucidspark.document.app.picker","lucidspark.document.app.folder"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document to update.","example":"110808fd-4553-4316-bccf-4f25ff59a532"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchDocumentRequestBody"}}}},"responses":{"200":{"description":"OK with Document resource containing information about the updated document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"400":{"description":"Bad Request. * Title must be non-empty when included. * Title must be at most 300 characters. * Title must not start or end with whitespace. * Invalid parent ID. Must be either a string prefixed with repo_ (for repositories) or a number. * Custom tag values must be non-empty when included. * Custom tag values must not start or end with whitespace. * Classification ID must either be null or an existing classification ID."},"403":{"description":"Forbidden. The app making the request does not have permission to the document, or the document does not exist."},"409":{"description":"Conflict. A conflict occurred when saving the document."}}},"get":{"summary":"Get/Export Document","description":"Retrieves information about the requested document or exports it as an image.\n\n**Get Document:** Requires at least read-only access. Document owner information is only returned if the requesting user has view access and the document is unpublished. If published, the user must be at least a collaborator.\n\n**Export Document:** Exports a given document in a specified image format. When exporting oversized images, the resolution may be automatically scaled down to enable performant API requests.\n\nSynchronous and asynchronous exports share a per-account rate limit. This endpoint-specific limit applies to exports, not to retrieving document metadata.\n\n","operationId":"getOrExportDocument","tags":["Document Access"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.content:readonly","lucidchart.document.app.picker:readonly","lucidchart.document.app.folder","lucidscale.document.content:readonly","lucidscale.document.app.picker:readonly","lucidscale.document.app.folder","lucidspark.document.content:readonly","lucidspark.document.app.picker:readonly","lucidspark.document.app.folder"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document to be retrieved or exported.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"name":"Accept","in":"header","description":"When using the Export Document API, the format of the exported document is set via the `Accept` header. This header contains up to two parts, separated by a semicolon:\n  * A prefix stating which type of image you would like the document exported as. Options are:\n    * `image/jpeg`\n    * `image/png`\n  * Optionally, you can also supply the dots per inch (DPI) you want the exported image to have. If this value is not provided, a default of 160 will be used. For example:\n    * `image/png;dpi=256`\n    * `image/jpeg;dpi=64`","required":false,"schema":{"type":"string","example":"image/png"}},{"name":"page","in":"query","description":"1-based page index of the document to export. Defaults to the first page. Only a single page is allowed. Optional for export operation. Cannot be provided when pageId is provided.","required":false,"schema":{"type":"number","default":1}},{"name":"pageId","in":"query","description":"Specific page of the document to export. Only a single page is allowed. Optional for export operation. Cannot be provided when page is provided.","example":"J~65X_X714o2","required":false,"schema":{"type":"string"}},{"name":"crop","in":"query","description":"Specifies the crop settings for the document export. Optional for export operation. Possible values are\n  * Default (no crop parameter) - Exports the entire page canvas area that contains your content. Automatically adjusts to include all items on the page, including the space between them and maintains the relative positioning and spacing of your document elements\n  * `x, y, width, height` - Crop to the specified region (in pixels) on the page. Example crop=1000,300,30,7\n    * Note: The region (in pixels) is accurate to the number of pixels on the canvas. The number of pixels of the outputted image will only match the crop window at a DPI of 160.\n  * `content` - Crop to page content. Example crop=content","required":false,"schema":{"type":"string"}},{"name":"includePageFill","in":"query","description":"Whether PNG exports include the page background. Defaults to true.","required":false,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK with Document resource containing information about the requested document or the binary data in the response body for exports. The Accept header specifies the type of image for exports.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}},"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Bad Request. More than one page and/or pageId was provided for export."},"403":{"description":"Forbidden. The app making the request does not have permission to the document, or if the document has been deleted or does not exist."},"404":{"description":"Not Found. The specified page or pageID could not be found for export."},"406":{"description":"Not Acceptable. The specified image type is not supported for export."},"429":{"description":"Too Many Requests. The account exceeded the shared export limit of 75 requests per 5 seconds.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/documents/{id}/trash":{"post":{"summary":"Trash Document","description":"Moves the specified document to the trash for the requesting user.\n\nIf the document is shared or part of a team folder, other users will still have access to the document. Requires the user to be the owner of the requested document or have the appropriate team folder permissions.\n","operationId":"trashDocument","tags":["Document Access"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidchart.document.app.folder","lucidscale.document.content","lucidscale.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document to be moved to the trash.","example":"110808fd-4553-4316-bccf-4f25ff59a532"}],"responses":{"204":{"description":"No Content when the document is successfully moved into the trash or is already trashed."},"403":{"description":"Forbidden. if the app making the request does not have permission to the document, or if the document has been deleted or does not exist."}}}},"/v1/documents/search":{"post":{"summary":"Search Documents","description":"Search Documents and Search Account Documents share a per-account rate limit.","operationId":"searchDocuments","tags":["Document Access"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.content:readonly","lucidscale.document.content:readonly","lucidspark.document.content:readonly"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"product":{"type":"array","items":{"$ref":"#/components/schemas/Product"},"description":"Array of Lucid Suite products to filter by. Default value assumes all valid products for the given scopes.","default":["lucidchart","lucidscale","lucidspark"]},"createdStartTime":{"type":"string","format":"date-time","default":"0001-01-01T00:00:00Z","description":"Date and time to filter documents that have been created after. Default value assumes the beginning of time."},"createdEndTime":{"type":"string","format":"date-time","default":"9999-12-31T23:59:59Z","description":"Date and time to filter documents that have been created before. Default value assumes the current instant of time."},"lastModifiedAfter":{"type":"string","format":"date-time","default":"0001-01-01T00:00:00Z","description":"Date and time to filter documents that have been modified after. Default value assumes the beginning of time."},"lastModifiedBefore":{"type":"string","format":"date-time","description":"Date and time to filter documents that have been modified before. When omitted, results are not bounded by an upper modified-time limit."},"keywords":{"type":"string","description":"Keywords to search against document content and titles. This field is truncated to 400 characters. When provided, results will be sorted by relevance to keyword search."},"excludeTrashed":{"type":"boolean","description":"When set to true, excludes trashed/deleted documents from search results. When set to false or omitted, trashed documents are included in results with their trashedTimestamp populated.","default":false},"documentLocation":{"type":"string","enum":["repositories"],"description":"When provided, restricts search results to documents contained within repositories the authenticated user can access. Only the value \"repositories\" is supported on this endpoint."},"owners":{"type":"array","items":{"type":"number"},"description":"When provided, limit the search to documents owned by at least one of the specified users. Results are still restricted to documents the authenticated user can access. A maximum of 10000 users may be specified."},"externalAccess":{"type":"string","enum":["any","external-collaborators","external-links"],"description":"Specify to search for documents with either “any” type of external access, “external-collaborators”, or \"external-links\""},"statusIds":{"type":"array","items":{"type":"number"},"description":"List of statusIds to filter by."},"documentIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of documentIds to filter by. A maximum of 10000 documents may be specified."}}}}}},"responses":{"200":{"description":"OK with an array of Document Resource objects containing information about documents the authenticated user has access to.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Document"}}}}},"400":{"description":"Bad Request if the request does not contain a body."},"403":{"description":"Forbidden if the product query parameter is used and the token's scopes do not contain the matching readonly scope for each product."},"429":{"description":"Too Many Requests if the account exceeds the shared limit of 300 document searches per 5 seconds.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/documents/{id}/contents":{"get":{"summary":"Document Contents","description":"Retrieves information about the contents of the requested Lucidchart or Lucidspark document.\n\nDue to the evolving nature of Lucid documents, an unchanged document may produce varying results over time.\n","operationId":"getDocumentContent","tags":["Document Access"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.content:readonly","lucidchart.document.app.picker:readonly","lucidchart.document.app.folder"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document to have contents retrieved.","example":"110808fd-4553-4316-bccf-4f25ff59a532"}],"responses":{"200":{"description":"OK with Document Content resource containing information about the requested document's content.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentContent"}}}},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document has been deleted or does not exist."},"429":{"description":"Too Many Requests if the account makes more than 100 requests in 5 seconds."}}}},"/v1/embeds":{"get":{"servers":[{"url":"https://lucid.app"}],"summary":"Embed Viewer","description":"Display an embed within an iframe. If no embed id was included when creating the token, the iframe first displays a document picker where the user can create and configure a new embed. If an embed id was included, the iframe displays either an embedded document viewer, an embedded editor, or an embed configuration page depending on the token request body and embed settings.","operationId":"documentEmbeds","tags":["Document Embedding"],"security":[{"OAuth2":[]}],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"},"description":"The embed session token retrieved from the Generate Embed Session Token endpoint."}],"responses":{"200":{"description":"The iframe content displaying the embedded document picker or viewer.","content":{"text/html":{"schema":{"type":"string"}}}},"401":{"description":"Unauthorized. The token is missing or invalid."},"403":{"description":"Forbidden. The access to the embed is forbidden."},"404":{"description":"Not Found. The embed id is not found."}}}},"/v1/embeds/token":{"post":{"summary":"Generate Embed Session Token","description":"Generates a short-lived, limited-scope temporary access token to allow your app to display embedded Lucid documents in an iframe. The token allows the embedding website to load the document picker and document viewer, but does not grant access to any additional resource within Lucid.","operationId":"documentEmbedsToken","tags":["Document Embedding"],"security":[{"OAuth2":["lucidchart.document.app.picker.share.embed","lucidscale.document.app.picker.share.embed","lucidspark.document.app.picker.share.embed"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"embedId":{"type":"string","format":"uuid","description":"ID of the document embed. This is needed for viewing an existing embed."},"origin":{"type":"string","description":"The URL (including protocol) of the webpage that will host the embed. Must use the `https://` scheme (e.g., `https://example.com`, `http://localhost`).","example":"https://example.com"},"sessionConfig":{"$ref":"#/components/schemas/SessionConfig"}},"required":["origin"]}}}},"responses":{"200":{"description":"Valid token that can be used to embed a document picker or a document viewer.","content":{"application/jwt":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request. Occurs when `origin` is missing a protocol, uses an unsupported scheme, or is not a valid URL."},"401":{"description":"Access token is missing or invalid."},"403":{"description":"Access to the embed is forbidden."},"404":{"description":"The embed id in the parameter is not found."}}}},"/v2/folders/{id}":{"get":{"summary":"Get Folder","description":"Retrieves information about the requested folder.","operationId":"getFolder","tags":["Folders"],"security":[{"ApiKey":["FolderReadonly"]},{"OAuth2":["folder:readonly"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"},"description":"ID of the folder to be retrieved."}],"responses":{"200":{"description":"OK with a Folder resource containing information about the requested folder.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderWithRepositoryV2"}}}},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, or if the folder has been deleted (trashed is okay) or does not exist."}}},"patch":{"summary":"Update Folder","description":"Allows the requester to modify certain fields on a folder.\n\nWhen updating the parent field, the folder moves to the new parent location while its contents remain intact. The requesting user must have both edit and share access to both the old and new parent folders, or the entire update will fail.\n\nIt is not permitted to update the parent field on Team Folders. Moving folders into or out of Team Folders may encounter permission-related errors, but once a folder is within a Team Folder, reorganization among descendants within that Team Folder can proceed without permission issues.\n","operationId":"updateFolder","tags":["Folders"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"},"description":"ID of the folder to be updated."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"New name for the folder being updated."},"parent":{"oneOf":[{"type":"number","nullable":true,"description":"Numeric folder ID."},{"type":"string","description":"Team ID prefixed with `team_`."}],"example":12345,"description":"New parent for the folder being updated. Causes the folder to be moved into another folder if a numeric folder ID is provided, into the root of a Team if a `team_`-prefixed Team ID is provided, or into the user's root folder (\"My Documents\") if `null` is provided. If the parent field is not included in the request, the folder will not be moved. Cannot be provided for Team Folders."}}}}}},"responses":{"200":{"description":"OK with a Folder resource containing information about the updated folder.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderWithRepositoryV2"}}}},"400":{"description":"Bad Request if invalid input types are provided for id or name, if the parent is not a number (for folders) or a string prefixed with team_ (for Teams), or if a repository parent (a string prefixed with repo_) is provided, which this endpoint does not currently support."},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, the folder has been deleted or does not exist, the Team given as `parent` does not exist, the request was not authorized to move the folder, or the parent field is included in a request for a team folder."}}}},"/v2/folders":{"post":{"summary":"Create Folder","description":"Creates a new folder.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `FolderEdit`\n\n**OAuth 2.0 User Token Scopes:**\n- `folder`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.app.folder`\n- `lucidscale.document.app.folder`\n","operationId":"createFolder","tags":["Folders"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder","lucidchart.document.app.folder","lucidspark.document.app.folder","lucidscale.document.app.folder"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the folder being created."},"type":{"$ref":"#/components/schemas/FolderType"},"parent":{"description":"Destination folder, repository, or Team to create the new folder in. For repositories, use the repository ID prefixed with `repo_` (e.g., `repo_12345`). For Teams, use the Team ID prefixed with `team_` (e.g., `team_99`), which creates the folder in the root of that Team. For folders, use the numeric folder ID. If it is not provided, the folder will be created in the root of the user's folder manager (\"My Documents\"). Ignored when `appFolder` is set to `true`. With only app-folder scope, an explicit parent must be inside the authenticated user's app project.","oneOf":[{"type":"integer","nullable":true,"description":"Numeric folder ID."},{"type":"string","description":"Repository ID prefixed with `repo_`, or Team ID prefixed with `team_`."}],"example":12345},"team":{"type":"string","deprecated":true,"description":"Deprecated. Team whose root should contain the new folder, as an ID prefixed with `team_`; the legacy numeric team ID is also accepted. Use `parent` with a `team_`-prefixed Team ID instead. Cannot be provided together with a Team `parent`.","example":"team_99"},"appFolder":{"type":"boolean","description":"When set to `true`, the folder is created inside the OAuth2 client's app project folder, overriding the `parent` field. With only a `document.app.folder` scope, omit this field or set it to `false` and supply a parent inside the app project to create a nested folder.\n"}},"required":["name","type"]}}}},"responses":{"201":{"description":"Created with a Folder resource containing information about the newly created folder.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderWithRepositoryV2"}}}},"400":{"description":"Bad Request. * A team folder cannot be created within another folder or team. * Both a Team `parent` and a `team` were provided. * Invalid parent ID. Must be a number (for folders), a string prefixed with repo_ (for repositories), or a string prefixed with team_ (for Teams). * When using a `document.app.folder` scope, `appFolder` cannot be false without a `parent`, a `team` cannot be supplied, the folder type must be `folder`, and an explicit `parent` must be a folder ID rather than a repository."},"403":{"description":"Forbidden if the request is not authorized to create in the specified `parent` folder, repository, or Team, if the specified Team does not exist, or when using a `document.app.folder` scope without either `appFolder: true` or a parent inside the app project.\n"}}}},"/v1/folders/{id}/trash":{"post":{"summary":"Trash Folder","description":"Moves the given folder and all of its contents into the trash. With only a `document.app.folder` scope, the folder must be inside the app project folder, and the app project folder itself cannot be trashed.","operationId":"trashFolder","tags":["Folders"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder","lucidchart.document.app.folder","lucidspark.document.app.folder","lucidscale.document.app.folder"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"},"description":"ID of the folder to be moved to the trash."}],"responses":{"204":{"description":"No Content when the folder is successfully moved into the trash or is already trashed."},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, if the folder has been deleted or does not exist, or if a request with only a `document.app.folder` scope names the app project folder or a folder outside it."}}}},"/v1/folders/{id}/restore":{"post":{"summary":"Restore Folder","description":"Moves a trashed folder and all of its contents back to their original pre-trash locations.","operationId":"restoreFolder","tags":["Folders"],"security":[{"ApiKey":["FolderEdit"]},{"OAuth2":["folder"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"},"description":"ID of the folder to be restored from the trash."}],"responses":{"204":{"description":"No Content when the folder is successfully moved out of the trash or is already not in the trash."},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, or if the folder has been deleted or does not exist."}}}},"/v1/folders/search":{"post":{"summary":"Search Folders","description":"Retrieves information about folders the authenticated user has at least read-only access to. Admin requests using the `Lucid-Request-As: admin` header return all account folders; this capability is exclusive to Enterprise Shield accounts. Results are sorted by creation date and paginated. Rate limited to 300 requests per 5 seconds per account.","operationId":"searchFolders","tags":["Folders"],"security":[{"ApiKey":["FolderReadonly","FolderAdmin"]},{"OAuth2":["folder:readonly","folder:admin.readonly","lucidchart.document.app.folder","lucidspark.document.app.folder","lucidscale.document.app.folder"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Folders"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/FolderType","description":"Note: This endpoint only accepts the folder type"},"userIds":{"type":"array","items":{"type":"number"},"description":"If provided, limit the search to folders that at least one specified user can access.\nWithout a list, the system searches the entire account (admin-level) or only folders the authenticated user can access (user-level).\n"},"ownedByUsers":{"type":"boolean","description":"When true, search results will only include folders owned by users specified by userIds. Ignored if no userIds are provided."},"keywords":{"type":"string","description":"Keywords to search against folder content and titles. This field is truncated to 400 characters. When provided, results will be sorted by relevance to keyword search."},"appFolder":{"type":"boolean","description":"When set to `true`, restricts search results to folders within the OAuth2 client's app project folder. Required when using a `document.app.folder` scope without a `folder:readonly` scope.\n"}}}}}},"responses":{"200":{"description":"OK with an array of Folder Resource objects containing information about folders the authenticated user has access to.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Folder"}}}}},"400":{"description":"Bad Request.\n* The request does not contain a body.\n* When using a `document.app.folder` scope, `appFolder` must be set to `true`.\n"},"403":{"description":"Forbidden.\n* User requests with admin scope and without Lucid-Request-As=admin header.\n* User requests without an admin scope and includes Lucid-Request-As=admin header.\n* Account does not have access to the API.\n* When using a `document.app.folder` scope without setting `appFolder` to `true`.\n"},"429":{"description":"Too Many Requests if the account makes more than 300 requests in 5 seconds."}}}},"/v1/folders/{id}/contents":{"get":{"summary":"List Folder Contents","description":"Retrieves basic information about the contents of a given folder. Results are paginated. With only a `document.app.folder` scope, the folder must be the app project folder or inside it, and `root` is not available.","operationId":"listFolderContents","tags":["Folders"],"security":[{"ApiKey":["FolderReadonly"]},{"OAuth2":["folder:readonly","lucidchart.document.app.folder","lucidspark.document.app.folder","lucidscale.document.app.folder"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"oneOf":[{"type":"number"},{"type":"string","enum":["root"]}]},"description":"ID of the folder or `root` to retrieve contents of the authenticated user's root directory (\"My Documents\")."},{"name":"filter","in":"query","required":false,"schema":{"type":"string","enum":["type=folder"]},"description":"Restricts the listing to one kind of entry. The only supported filter is \"type=folder\", which returns only folders. If no filter is provided, both folders and documents are returned. The filter is kept in the next page link.","example":"type=folder"}],"responses":{"200":{"description":"OK with an array of Folder Content Resources containing information about the contents of the requested folder.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FolderContent"}}}}},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, if the folder has been deleted or does not exist, or if a request with only a `document.app.folder` scope names a folder outside the app project folder."}}}},"/v1/folders/root/contents":{"get":{"summary":"List Root Folder Contents","description":"Retrieves basic information about the contents of the root folder. Results are paginated.","operationId":"listRootFolderContents","tags":["Folders"],"security":[{"ApiKey":["FolderReadonly"]},{"OAuth2":["folder:readonly"]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"type":"string","enum":["type=folder"]},"description":"Restricts the listing to one kind of entry. The only supported filter is \"type=folder\", which returns only folders. If no filter is provided, both folders and documents are returned. The filter is kept in the next page link.","example":"type=folder"}],"responses":{"200":{"description":"OK with an array of Folder Content Resources containing information about the contents of the requested folder.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FolderContent"}}}}},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, or if the folder has been deleted or does not exist."}}}},"/v1/folders/app/contents":{"get":{"summary":"List App Folder Contents","operationId":"listAppFolderContents","tags":["Folders"],"description":"Lists the contents of the OAuth2 client's app project folder for the authenticated user. The app project folder is automatically resolved from the OAuth2 client ID associated with the access token. Results are paginated.\n\n## Valid Authentication Methods\n\n**OAuth 2.0 User Token Scopes:**\n- `folder:readonly`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.app.folder`\n- `lucidscale.document.app.folder`","security":[{"OAuth2":["folder:readonly","lucidchart.document.app.folder","lucidspark.document.app.folder","lucidscale.document.app.folder"]}],"parameters":[{"name":"filter","in":"query","required":false,"schema":{"type":"string","enum":["type=folder"]},"description":"Restricts the listing to one kind of entry. The only supported filter is \"type=folder\", which returns only folders. If no filter is provided, both folders and documents are returned. The filter is kept in the next page link.","example":"type=folder"}],"responses":{"200":{"description":"OK with an array of Folder Content Resources containing information about the contents of the app project folder.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FolderContent"}}}}},"403":{"description":"Forbidden if the authenticated user does not have permission to the app project folder."},"404":{"description":"Not Found if no app project folder can be resolved for the OAuth2 client."}}}},"/v1/documents/{id}/shares/shareLinks/{shareLinkId}":{"get":{"summary":"Get Document Share Link","description":"Retrieves information about a share link on the specified document. This endpoint will only retrieve information about share links created by the same OAuth2.0 client.","operationId":"getDocumentShareLink","tags":["Documents Sharing"],"security":[{"OAuth2":["lucidchart.document.content.share.link:readonly","lucidchart.document.app.picker.share.link:readonly","lucidchart.document.app.folder","lucidscale.document.content.share.link:readonly","lucidscale.document.app.picker.share.link:readonly","lucidscale.document.app.folder","lucidspark.document.content.share.link:readonly","lucidspark.document.app.picker.share.link:readonly","lucidspark.document.app.folder"]}],"parameters":[{"$ref":"#/components/parameters/DocumentShareLinkDocumentId"},{"$ref":"#/components/parameters/DocumentShareLinkShareLinkId"}],"responses":{"200":{"description":"OK with a Document Share Link resource containing information about the requested share link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentShareLink"}}}},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document has been deleted, or does not exist."},"404":{"description":"Not Found if the share link id with the specified document id does not belong to the document, does not exist, or the requesting app did not create the share link."}}},"patch":{"summary":"Update Document Share Link","description":"Updates an existing share link's configuration settings on a document. Share links will only be updatable by the OAuth2.0 client that created them. All fields are optional; omitted settings retain their existing values.","operationId":"updateDocumentShareLink","tags":["Documents Sharing"],"security":[{"OAuth2":["lucidchart.document.content.share.link","lucidchart.document.app.picker.share.link","lucidchart.document.app.folder","lucidscale.document.content.share.link","lucidscale.document.app.picker.share.link","lucidscale.document.app.folder","lucidspark.document.content.share.link","lucidspark.document.app.picker.share.link","lucidspark.document.app.folder"]}],"parameters":[{"$ref":"#/components/parameters/DocumentShareLinkDocumentId"},{"$ref":"#/components/parameters/DocumentShareLinkShareLinkId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/SharingRole"},"linkSecurity":{"$ref":"#/components/schemas/DocumentLinkSecurity"}}}}}},"responses":{"200":{"description":"OK with a Document Share Link resource containing information about the updated share link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentShareLink"}}}},"400":{"description":"Bad Request if the the document does not belong to an enterprise account and the restrictToAccount is set to true, defines a passcode, or defines an expiration or the allowAnonymous field is set to true on non-Lucidspark/Lucidchart documents."},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document has been deleted, or does not exist."},"404":{"description":"Not Found if the share link id with the specified document id does not belong to the document, does not exist, or the requesting app did not create the share link."}}},"delete":{"summary":"Delete Document Share Link","description":"Deletes a share link on a document. This endpoint will only delete share links that were created by the same OAuth2.0 client making the request.","operationId":"deleteDocumentShareLink","tags":["Documents Sharing"],"security":[{"OAuth2":["lucidchart.document.content.share.link","lucidchart.document.app.picker.share.link","lucidchart.document.app.folder","lucidscale.document.content.share.link","lucidscale.document.app.picker.share.link","lucidscale.document.app.folder","lucidspark.document.content.share.link","lucidspark.document.app.picker.share.link","lucidspark.document.app.folder"]}],"parameters":[{"$ref":"#/components/parameters/DocumentShareLinkDocumentId"},{"$ref":"#/components/parameters/DocumentShareLinkShareLinkId"}],"responses":{"204":{"description":"No Content if the share link was deleted successfully."},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document has been deleted, or does not exist."},"404":{"description":"Not Found if the share link id with the specified document id does not belong to the document, does not exist, or the requesting app did not create the share link."}}}},"/v1/documents/{id}/shares/shareLinks":{"post":{"summary":"Create Document Share Link","description":"Creates a new share link on the provided document with the provided settings. The linkSecurity parameter is configurable only for enterprise license accounts but remains required for team accounts.","operationId":"createDocumentShareLink","tags":["Documents Sharing"],"security":[{"OAuth2":["lucidchart.document.content.share.link","lucidchart.document.app.picker.share.link","lucidchart.document.app.folder","lucidscale.document.content.share.link","lucidscale.document.app.picker.share.link","lucidscale.document.app.folder","lucidspark.document.content.share.link","lucidspark.document.app.picker.share.link","lucidspark.document.app.folder"]}],"parameters":[{"$ref":"#/components/parameters/DocumentShareLinkDocumentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/SharingRole"},"linkSecurity":{"$ref":"#/components/schemas/DocumentLinkSecurity"}},"required":["linkSecurity","role"]}}}},"responses":{"201":{"description":"Created with a Document Share Link resource containing information about the created share link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentShareLink"}}}},"400":{"description":"Bad Request if the document does not belong to an enterprise account and the `restrictToAccount` is set to true, defines a passcode, or defines an expiration or the `allowAnonymous` field is set to true on non-Lucidspark/Lucidchart documents."},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document has been deleted, or does not exist."}}}},"/v1/folders/{id}/shares/shareLinks/{shareLinkId}":{"get":{"summary":"Get Folder Share Link","description":"Retrieves information about a share link on a given folder. This endpoint will only retrieve information about share links created by the same OAuth2.0 client.","operationId":"getFolderShareLink","tags":["Folders Sharing"],"security":[{"OAuth2":["folder:readonly"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}},{"in":"path","name":"shareLinkId","required":true,"description":"Id of the share link to retrieve information for.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK with a Folder Share Link resource containing information about the requested share link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderShareLink"}}}},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, or if the folder has been deleted, or does not exist."},"404":{"description":"Not Found if the share link id with the specified folder id does not belong to the folder, does not exist, or the requesting app did not create the share link."}}},"patch":{"summary":"Update Folder Share Link","description":"Updates an existing share link to the provided settings. If any settings are omitted, the existing settings are preserved. Share links are only updatable by the OAuth2.0 client that created them. If an expiration is provided outside the account-defined limits, it will be clamped to the maximum allowed time.","operationId":"updateFolderShareLink","tags":["Folders Sharing"],"security":[{"OAuth2":["folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}},{"in":"path","name":"shareLinkId","required":true,"description":"ID of the share link belonging to the folder.","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/SharingRole"},"linkSecurity":{"$ref":"#/components/schemas/FolderLinkSecurity"}}}}}},"responses":{"200":{"description":"OK with a Folder Share Link resource containing information about the updated share link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderShareLink"}}}},"400":{"description":"Bad Request if the folder does not belong to an enterprise account and the restrictToAccount is set to true, defines a passcode, or defines an expiration."},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, or if the folder has been deleted, or does not exist."},"404":{"description":"Not Found if the share link id with the specified folder id does not belong to the folder, does not exist, or the requesting app did not create the share link."}}},"delete":{"summary":"Delete Folder Share Link","description":"Deletes a share link from a folder. This endpoint will only delete share links created by the same OAuth2.0 client.","operationId":"deleteFolderShareLink","tags":["Folders Sharing"],"security":[{"OAuth2":["folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}},{"in":"path","name":"shareLinkId","required":true,"description":"Id of the share link to delete.","schema":{"type":"string"}}],"responses":{"204":{"description":"No Content if the share link was deleted successfully."},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, or if the folder has been deleted, or does not exist."},"404":{"description":"Not Found if the share link id with the specified folder id does not belong to the folder, does not exist, or the requesting app did not create the share link."}}}},"/v1/folders/{id}/shares/shareLinks":{"post":{"summary":"Create Folder Share Link","description":"Creates a new share link on the provided folder with the provided settings. The `linkSecurity` parameter is only configurable for enterprise license users but is still required for team accounts. If an expiration is provided outside account-defined limits, it will be clamped to the maximum allowed time.","operationId":"createFolderShareLink","tags":["Folders Sharing"],"security":[{"OAuth2":["folder"]}],"parameters":[{"in":"path","name":"id","required":true,"description":"ID of the folder.","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/SharingRole"},"linkSecurity":{"$ref":"#/components/schemas/FolderLinkSecurity"}},"required":["linkSecurity","role"]}}}},"responses":{"201":{"description":"Created with a Folder Share Link resource containing information about the created share link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderShareLink"}}}},"400":{"description":"Bad Request if the folder does not belong to an enterprise account and the `restrictToAccount` is set to true, defines a passcode, or defines an expiration."},"403":{"description":"Forbidden if the app making the request does not have permission to the folder, or if the folder has been deleted, or does not exist."}}}},"/v1/shareLink/{shareLinkId}/accept":{"post":{"summary":"Accept Share Links","description":"Accepts a share link for a document or folder on behalf of the authenticated user, granting them access to the shared resource.","operationId":"acceptShareLink","tags":["Sharing"],"security":[{"ApiKey":["ShareLinkAccept"]},{"OAuth2":["invitation.accept"]}],"parameters":[{"$ref":"#/components/parameters/DocumentShareLinkShareLinkId"}],"responses":{"200":{"description":"OK with an Accept Share Link result containing information about the accepted document or folder.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptShareLinkResult"}}}},"403":{"description":"Forbidden if the app making the request does not have permission to accept the share link, if the document/folder has been deleted, or the invitation requires a passcode (unsupported)."},"404":{"description":"Not Found if the share link has expired or does not exist."}}}},"/v1/transferUserContent":{"post":{"summary":"Transfer User Content","description":"Transfers ownership of a user's Lucid documents, folders, custom shape libraries, and Lucidscale objects to another user on the same account. The recipient gains ownership and edit/share permissions for team folders the original owner could access. Notification emails are sent to both users upon completion.","operationId":"transferUserContent","tags":["Transfer Content"],"security":[{"ApiKey":["AccountUserTransferContent"]},{"OAuth2":["account.user.transfercontent"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fromUser":{"type":"string","format":"email","description":"Email of the user whose content will be transferred."},"toUser":{"type":"string","format":"email","description":"Email of the user the content will be transferred to."}},"required":["fromUser","toUser"]}}}},"responses":{"204":{"description":"No Content when ownership is successfully transferred."},"400":{"description":"Bad Request when the `fromUser` and `toUser` are the same."},"403":{"description":"Forbidden when the users do not exist or are not on the authenticated account."},"429":{"description":"Too Many Requests when the account exceeds the limit of 60 content transfers per 5 seconds.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}},"x-rate-limit":{"description":"This endpoint has a per account rate limit of 60 requests per 5 seconds."}}},"/v1/users/{id}":{"get":{"summary":"Get User","description":"Retrieves information about the requested user. The requested user must be on the authenticated account.","operationId":"getUser","tags":["Users"],"security":[{"ApiKey":["AccountReadonly"]},{"OAuth2":["account.user:readonly"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"number"},"description":"ID of the user to be retrieved.","example":204}],"responses":{"200":{"description":"OK. Returns with a User resource containing information about the user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"403":{"description":"Forbidden. Occurs if the user does not belong to the authenticated account or if the user does not exist."}}}},"/v1/users":{"get":{"summary":"List Users","description":"Retrieves information about all users on the authenticated account.","operationId":"listUsers","tags":["Users"],"security":[{"ApiKey":["AccountAdmin"]},{"OAuth2":["account.user:readonly","account.users:admin.readonly"]}],"responses":{"200":{"description":"OK. Returns a list of User resources containing information about users on the account.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}},"404":{"description":"Not Found"}}},"post":{"summary":"Create User","description":"Creates a new user and adds them to the authenticated account. Licenses are automatically assigned to the new user based on the account's auto-licensing configuration. Only available to Enterprise accounts.","operationId":"createUser","tags":["Users"],"security":[{"OAuth2":["account.user"]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserBody"}}}},"responses":{"201":{"description":"Created. Returns a User resource containing information about the created user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Bad Request. Occurs if any input field is invalid."},"403":{"description":"Forbidden. Occurs if the app making the request does not have permission to create users, if the email domain is under domain control by a different account, or if the token requesting to create a user is not on an Enterprise account."},"409":{"description":"Conflict. Occurs if a user with the same email or username already exists."}}}},"/v1/users/searchByEmail":{"post":{"summary":"Search Users By Email","description":"Retrieves information about all users on the authenticated account whose email is provided. Matching is case-insensitive and requires an exact match; emails that do not correspond to a user on the account are excluded from results.","operationId":"userEmailSearch","tags":["Users"],"security":[{"ApiKey":["AccountReadonly"]},{"OAuth2":["account.user:readonly"]}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"emails":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"OK. Returns a list of Profile resources containing information about users on the account. Emails that could not be matched are not included.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Profile"}}}}},"400":{"description":"Bad Request. Occurs if the request body emails exceed 200 items or if any of the strings in the request body can not be parsed into the email format."}}}},"/v1/users/me/profile":{"get":{"summary":"Get Profile","description":"Retrieves basic information about the authenticated user.","operationId":"getUserProfile","tags":["Users"],"security":[{"ApiKey":["User"]},{"OAuth2":["user.profile"]}],"responses":{"200":{"description":"OK. Returns a Profile resource containing information about the requesting user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Profile"}}}},"404":{"description":"Not Found"}}}},"/v1/describeLink":{"post":{"summary":"Describe Link","description":"Retrieve metadata about a Lucid document from its URL, including the document title, product, and type. Use this to generate rich link previews (unfurling) in external applications.\n","operationId":"describeLink","tags":["Unfurling"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL of the Lucid document link to parse information from."}}}}}},"responses":{"200":{"description":"Successfully retrieved information about the document link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkResource"}}}},"403":{"description":"The URL is not a valid Lucid link."}},"security":[{"ApiKey":[]},{"OAuth2":[]}]}},"/v1/embeds/link":{"get":{"summary":"Direct Embed","description":"Display an embed within an iframe. If the clientId is valid with the registered embed domain in the developer portal, the iframe will show either a login page or an embedded document viewer depending on the user's authorization status via browser cookies.","operationId":"directEmbed","tags":["Unfurling"],"parameters":[{"name":"document","in":"query","required":true,"schema":{"type":"string"},"description":"The URL of the Lucid document link or the documentId retrieved from the Describe Link endpoint."},{"name":"clientId","in":"query","required":true,"schema":{"type":"string"},"description":"The client ID obtained during App registration."}],"responses":{"200":{"description":"OK - The iframe content displaying the embedded document picker or viewer."},"400":{"description":"Bad Request"}}}},"/v1/documents/{documentId}/embeds/{embedId}":{"get":{"summary":"Get Document Embed","description":"Retrieves limited metadata about the embedded document. If the embed is a snapshot-version embed, the metadata will be drawn from the state of the document at the time that the snapshot was created.","operationId":"getEmbedInformation","tags":["Embedding Utils"],"security":[{"OAuth2":["lucidchart.document.content.share.embed:readonly","lucidchart.document.app.picker.share.embed:readonly","lucidscale.document.content.share.embed:readonly","lucidscale.document.app.picker.share.embed:readonly","lucidspark.document.content.share.embed:readonly","lucidspark.document.app.picker.share.embed:readonly"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the embedded document to retrieve.","example":"001bd56d-1b10-4196-8ac6-45e3c22bd1c6"},{"name":"embedId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document embed to retrieve.","example":"ec890631-c150-461c-992f-b96533aa05f4"}],"responses":{"200":{"description":"OK. Returns a Document Embed Resource containing information about the requested document embed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbedInformation"}}}},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access the requested document or embed, or when the requested document or embed does not exist."}}},"delete":{"summary":"Delete Document Embed","description":"Deletes an existing document embed. This will cause the document viewer to fail when attempting to load this document embed.","operationId":"deleteEmbed","tags":["Embedding Utils"],"security":[{"OAuth2":["account.info"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the embedded document to retrieve.","example":"001bd56d-1b10-4196-8ac6-45e3c22bd1c6"},{"name":"embedId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document embed to retrieve.","example":"298f9a4a-09b5-440c-b95e-4d5c2d1aaf49"}],"responses":{"204":{"description":"OK. Occurs when the document embed is deleted successfully."},"403":{"description":"Forbidden. Occurs when the access token isn't allowed to delete the embed."}}}},"/v1/documents/{documentId}/embeds/{embedId}/document":{"get":{"summary":"Get Document Embed Document","description":"Retrieves limited metadata about an embedded document. If the embed is a snapshot-version embed, the metadata will be drawn from the state of the document at the time that the snapshot was created.","operationId":"getEmbedDocument","tags":["Embedding Utils"],"security":[{"OAuth2":["lucidchart.document.content.share.embed:readonly","lucidchart.document.app.picker.share.embed:readonly","lucidscale.document.content.share.embed:readonly","lucidscale.document.app.picker.share.embed:readonly","lucidspark.document.content.share.embed:readonly","lucidspark.document.app.picker.share.embed:readonly"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the embedded document to retrieve.","example":"001bd56d-1b10-4196-8ac6-45e3c22bd1c6"},{"name":"embedId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document embed to retrieve.","example":"ec890631-c150-461c-992f-b96533aa05f4"}],"responses":{"200":{"description":"OK. Returns a Document Embed Resource containing information about the requested document embed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbedDocument"}}}},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access the requested document or embed, or when the requested document or embed does not exist."}}}},"/v1/documents/{id}/embeds":{"post":{"summary":"Create Document Embed","description":"Creates an embed resource associated with a particular document. The request must be authenticated with an OAuth 2.0 token that has access to the document being embedded.","operationId":"createEmbed","tags":["Embedding Utils"],"security":[{"OAuth2":["lucidchart.document.content.share.embed","lucidchart.document.app.picker.share.embed","lucidscale.document.content.share.embed","lucidscale.document.app.picker.share.embed","lucidspark.document.content.share.embed","lucidspark.document.app.picker.share.embed"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document to be embedded.","example":"001bd56d-1b10-4196-8ac6-45e3c22bd1c6"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"embedVersion":{"type":"string","enum":["latest-version","snapshot-version"],"example":"snapshot-version","description":"Determines what version of the document will be loaded in the document viewer."}},"required":["embedVersion"]}}}},"responses":{"201":{"description":"OK. Returns a Document Embed Resource containing information about the newly created document embed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbedInformation"}}}},"400":{"description":"Bad Request. Occurs if the embed version provided in the request body is invalid."},"403":{"description":"Forbidden. Occurs when the access token isn't allowed to create an embed for this document."}}}},"/v1/documents/{documentId}/embeds/{embedId}/changeVersion":{"post":{"summary":"Change Document Embed Version","description":"Updates the version type of an existing document embed. When called with an embedVersion of \"snapshot-version\", the endpoint associates the existing embed with a snapshot of the document's current state. Updating an embed's version to snapshot-version cannot be reversed.","operationId":"changeEmbedVersion","tags":["Embedding Utils"],"security":[{"OAuth2":["lucidchart.document.content.share.embed","lucidchart.document.app.picker.share.embed","lucidscale.document.content.share.embed","lucidscale.document.app.picker.share.embed","lucidspark.document.content.share.embed","lucidspark.document.app.picker.share.embed"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the embedded document to retrieve.","example":"001bd56d-1b10-4196-8ac6-45e3c22bd1c6"},{"name":"embedId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document embed to retrieve.","example":"298f9a4a-09b5-440c-b95e-4d5c2d1aaf49"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"embedVersion":{"type":"string","enum":["latest-version","snapshot-version"],"example":"snapshot-version","description":"Determines what version of the document will be loaded in the document viewer."}},"required":["embedVersion"]}}}},"responses":{"200":{"description":"OK. Returns a Document Embed Resource containing information about the updated document embed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbedInformation"}}}},"400":{"description":"Bad Request. Occurs if the embed version provided in the request body is invalid."},"403":{"description":"Forbidden. Occurs when the access token isn't allowed to change the embed version."}}}},"/v1/documents/pickerToken":{"post":{"summary":"Generate Document Picker Token","description":"Generates a token that can be used to embed a document picker for the specified product. Only documents for the specified product are shown in the picker.","operationId":"generateDocumentPickerToken","tags":["Document Picker"],"security":[{"OAuth2":["lucidchart.document.app.picker","lucidscale.document.app.picker","lucidspark.document.app.picker"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["product","targetOrigin"],"properties":{"product":{"type":"string","description":"Determines which product is used for the document picker. Only documents for this product are shown.","enum":["lucidchart","lucidscale","lucidspark"],"example":"lucidchart"},"targetOrigin":{"type":"string","description":"The domain that will be used to host the webpage in which the document picker will be embedded. This will be used as the targetOrigin parameter in a call to window.postMessage when the user selects a document.","example":"https://example.com"}}}}}},"responses":{"200":{"description":"OK - with valid token that can be used to embed a document picker.","content":{"application/jwt":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request - when parameters are missing or invalid."},"403":{"description":"Forbidden - when the access token is not allowed to generate a document picker token for the provided product."}}}},"/v1/documents/picker":{"get":{"servers":[{"url":"https://lucid.app"}],"summary":"Embedded Document Picker","description":"Displays an embedded document picker within an iframe, allowing users to browse and select documents. Supports optional document creation and auto-selection of newly created documents.","operationId":"embeddedDocumentPicker","tags":["Document Picker"],"security":[{"OAuth2":[]}],"parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"},"description":"The document picker token retrieved from the Generate Document Picker Token endpoint."},{"name":"allowDocumentCreation","in":"query","required":false,"schema":{"type":"boolean"},"description":"Enables the document picker user to create new documents. By default, created documents are not auto selected unless autoSelectCreatedDocument is set to true."},{"name":"autoSelectCreatedDocument","in":"query","required":false,"schema":{"type":"boolean"},"description":"Enables the document picker to automatically select newly created documents."},{"name":"newDocumentTitleSuggestion","in":"query","required":false,"schema":{"type":"string"},"description":"When create button is enabled, it suggests a default title for the new document."},{"name":"hideCancelButton","in":"query","required":false,"schema":{"type":"boolean"},"description":"Determines whether the document picker hides the cancel button."},{"name":"onErrorRedirect","in":"query","required":false,"schema":{"type":"string"},"description":"The URL to redirect the user back to if the document picker raises an error."}],"responses":{"200":{"description":"The iframe content displaying the embedded document picker.","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/v2/auditLogs":{"get":{"summary":"Get Audit Logs","description":"Retrieves audit log events for the account.\n\nThis API is exclusive to Enterprise Shield accounts.\n\nFor a complete list of audit log event types and their schemas, see\n[Audit Log Events](https://developer.lucid.co/reference/audit-log-events). For a complete list of actor and\ntarget types, see [Actors and Targets](https://developer.lucid.co/reference/actors-and-targets).\n\nThis endpoint is paginated. For more information, see\n[Pagination](https://developer.lucid.co/reference/reference-rest#pagination).\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `AccountRead`\n\n**OAuth 2.0 User Token and Account Token Scopes:**\n- `account.audit.logs`\n","operationId":"getAuditLogs","tags":["Audit Logs"],"security":[{"ApiKey":["AccountRead"]},{"OAuth2":["account.audit.logs"]}],"parameters":[{"name":"from","in":"query","required":false,"schema":{"type":"string","format":"date-time"},"description":"The timestamp from which the audit logs will be returned. Defaults to 180 days prior to the current timestamp.","example":"2021-01-01T00:00:00Z"},{"name":"to","in":"query","required":false,"schema":{"type":"string","format":"date-time"},"description":"The timestamp to which the logs will be returned. Defaults to the current timestamp.","example":"2021-01-01T00:00:00Z"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","default":200},"description":"The number of audit logs to return per request.","example":100},{"name":"pageToken","in":"query","required":false,"schema":{"type":"string"},"description":"A token used for pagination to retrieve the next page of results when polling audit logs.","example":"eyJvIjoiMjAyNC0wOS0wNFQxNzoxNDoyOS4zNjA5NzhaXzU4ODk4NTkxNCJ9"}],"responses":{"200":{"description":"OK. Returns an array of audit log events.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditLogV2"}}}}},"400":{"description":"Bad request. Occurs when the query parameters are invalid."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access audit logs."},"429":{"description":"Too Many Requests if the account makes more than 250 requests in 1 minute."}}}},"/v2/auditLogs/query":{"post":{"summary":"Query Audit Logs","description":"Queries audit log events for the account using filter criteria specified in the request body.\n\nThis API is exclusive to Enterprise Shield accounts.\n\nFor a complete list of audit log event types and their schemas, see\n[Audit Log Events](https://developer.lucid.co/reference/audit-log-events). For a complete list of actor and\ntarget types, see [Actors and Targets](https://developer.lucid.co/reference/actors-and-targets).\n\nThis endpoint is paginated. For more information, see\n[Pagination](https://developer.lucid.co/reference/reference-rest#pagination).\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `AccountRead`\n\n**OAuth 2.0 User Token and Account Token Scopes:**\n- `account.audit.logs`\n","operationId":"queryAuditLogs","tags":["Audit Logs"],"security":[{"ApiKey":["AccountRead"]},{"OAuth2":["account.audit.logs"]}],"parameters":[{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","default":200},"description":"The number of audit logs to return per request.","example":100},{"name":"pageToken","in":"query","required":false,"schema":{"type":"string"},"description":"A token used for pagination to retrieve the next page of results when polling audit logs.","example":"eyJvIjoiMjAyNC0wOS0wNFQxNzoxNDoyOS4zNjA5NzhaXzU4ODk4NTkxNCJ9"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuditLogQueryRequestBody"}}}},"responses":{"200":{"description":"OK. Returns an array of audit log events matching the query.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditLogV2"}}}}},"400":{"description":"Bad request. Occurs when the query parameters are invalid."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access audit logs."},"429":{"description":"Too Many Requests if the account makes more than 250 requests in 1 minute."}}}},"/v2/teams":{"get":{"summary":"List Teams","description":"Retrieves information about teams the authenticated user has at least read-only access to.\n\nThe list of teams returned depends on whether the request was made using user or admin permissions. User permissions return teams the requesting user has access to. Admin permissions return all teams belonging to the account.\n\nThis endpoint is paginated.\n","operationId":"listTeams","tags":["Teams"],"security":[{"ApiKey":["TeamsReadonly","TeamsAdmin"]},{"OAuth2":["teams:readonly","teams:admin"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Teams"},{"name":"filter","in":"query","required":false,"schema":{"type":"string","enum":["include=memberonly"]},"description":"The filter to apply to the returned teams. The only supported filter is \"include=memberonly\", which returns only teams that the requesting user is a member of. If no filter is provided, all `open` and `closed` teams on the account are returned, along with `hidden` teams that the requesting user is a member of.","example":"include=memberonly"}],"responses":{"200":{"description":"OK. Returns a list of Team resources containing information about teams directly accessible to the authenticated user. If requesting as admin, the list includes all teams on the account. If a filter is specified, only teams matching the filter are returned.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TeamV2"}}}}}}},"post":{"summary":"Create Team","description":"Creates a new team for the authenticated user, populated with the given team members. Hidden teams cannot be created via the REST API.\n\nWhether the requesting user is automatically added to the team depends on the permission type. With user permissions, the user is automatically added to the team. With admin permissions, the user is not automatically added.\n","operationId":"createTeam","tags":["Teams"],"security":[{"ApiKey":["TeamsEdit","TeamsAdmin"]},{"OAuth2":["teams","teams:admin"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Teams"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTeamBody"}}}},"responses":{"201":{"description":"Created. Returns a Team resource containing information about the created team. If requesting as admin, the user making the request will not have been automatically included as a user on the team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamV2"}}}},"400":{"description":"Bad Request. Occurs if the name in the request body is empty or exceeds the maximum allowed length."},"403":{"description":"Forbidden. Occurs if the user making the request does not have permission to create teams."},"409":{"description":"Conflict. Occurs if a team already exists with an identical name."}}}},"/v2/teams/{teamId}":{"get":{"summary":"Get Team","description":"Retrieves information about a requested team. The response depends on the permission type used: user permissions require that the authenticated user has access to the team, while admin permissions allow access to any team belonging to the account. The team's ID is returned as `teamId`, prefixed with `team_`.","operationId":"getTeam","tags":["Teams"],"security":[{"ApiKey":["TeamsReadonly","TeamsAdmin"]},{"OAuth2":["teams:readonly","teams:admin"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Teams"},{"name":"teamId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the team to get, prefixed with `team_`. The legacy numeric team ID is also accepted.","example":"team_99"}],"responses":{"200":{"description":"OK. Returns a Team resource containing information about the specified team. If requesting as admin, a Team resource may be returned even if the authenticated user does not have direct access to the specified team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamV2"}}}},"403":{"description":"Forbidden. * if the user making the request does not have access to the specified team. * if the team is not directly accessible by the authenticated user or does not exist."}}},"patch":{"summary":"Update Team","description":"Updates the properties of an existing team, such as its name or type. With user permissions, the team must be one the requesting user has edit access to. With admin permissions, any team belonging to the account can be updated.","operationId":"updateTeam","tags":["Teams"],"security":[{"ApiKey":["TeamsEdit","TeamsAdmin"]},{"OAuth2":["teams","teams:admin"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Teams"},{"name":"teamId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the team to update, prefixed with `team_`. The legacy numeric team ID is also accepted.","example":"team_99"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTeamBody"}}}},"responses":{"200":{"description":"OK. Returns a Team resource containing information about the updated team.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamV2"}}}},"400":{"description":"Bad Request. Occurs if the name in the request body is empty or exceeds the maximum allowed length."},"403":{"description":"Forbidden. * if the user making the request does not have access to the specified team. * if the team is not directly accessible by the authenticated user or does not exist. * if the team is managed via SCIM. Use the SCIM Groups API to modify SCIM-managed teams."},"409":{"description":"Conflict. Occurs if a team already exists with an identical name."}}}},"/v2/teams/{teamId}/users":{"get":{"summary":"List Users on Team","description":"Retrieves basic information about users on a specified team. With user permissions, the authenticated user must have access to the team. With admin permissions, users from any team belonging to the account can be retrieved.\n\nThis endpoint is paginated.\n","operationId":"listUsersOnTeam","tags":["Teams"],"security":[{"ApiKey":["TeamsReadonly","TeamsAdmin"]},{"OAuth2":["teams:readonly","teams:admin"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Teams"},{"name":"teamId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the team to be queried, prefixed with `team_`. The legacy numeric team ID is also accepted.","example":"team_99"}],"responses":{"200":{"description":"OK. Returns a list of Profile resources containing basic information about users on the specified team. If requesting as admin, Profile resources may be returned even if the authenticated user does not have direct access to the specified team.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Profile"}}}}},"403":{"description":"Forbidden. * if the user making the request does not have access to the specified team. * if the team has been archived, is not directly accessible by the authenticated user, or does not exist."}}}},"/v2/teams/{teamId}/users/add":{"post":{"summary":"Add Users to Team","description":"Adds users to a specified team with assigned roles. With user permissions, the team must be one the requesting user has edit access to. With admin permissions, users can be added to any team belonging to the account.","operationId":"addUsersToTeam","tags":["Teams"],"security":[{"ApiKey":["TeamsEdit","TeamsAdmin"]},{"OAuth2":["teams","teams:admin"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Teams"},{"name":"teamId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the team to which to add users, prefixed with `team_`. The legacy numeric team ID is also accepted.","example":"team_99"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddUsersToTeamBody"}}}},"responses":{"204":{"description":"No Content. The users were successfully added to the team with their assigned roles. If requesting as admin, users may have been added even though the authenticated user does not have direct access to the specified team."},"403":{"description":"Forbidden. * if not all the specified users are on the authenticated account. * if the user making the request does not have permission to edit teams. * if the user making the request does not have access to the specified team. * if the team is managed via SCIM. Use the SCIM Groups API to modify SCIM-managed teams."}}}},"/v2/teams/{teamId}/users/remove":{"post":{"summary":"Remove Users from Team","description":"Removes users from a specified team. With user permissions, the team must be one the requesting user has edit access to. With admin permissions, users can be removed from any team belonging to the account.","operationId":"removeUsersFromTeam","tags":["Teams"],"security":[{"ApiKey":["TeamsEdit","TeamsAdmin"]},{"OAuth2":["teams","teams:admin"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Teams"},{"name":"teamId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the team from which to remove users, prefixed with `team_`. The legacy numeric team ID is also accepted.","example":"team_99"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveUsersFromTeamBody"}}}},"responses":{"204":{"description":"No Content. The users were successfully removed from the team. If requesting as admin, users may be have been removed even if the authenticated user does not have direct access to the specified team."},"400":{"description":"Bad Request. * if the user making the request attempts to remove all users from the team. * if not all the specified users are members of the team."},"403":{"description":"Forbidden. * if the user making the request does not have permission to edit teams. * if the user making the request does not have access to the specified team. * if the team is managed via SCIM. Use the SCIM Groups API to modify SCIM-managed teams."}}}},"/v2/teams/{teamId}/archive":{"post":{"summary":"Archive Team","description":"Archives a team, making it inactive. With user permissions, the team must be one the requesting user has edit access to. With admin permissions, any team belonging to the account can be archived.","operationId":"archiveTeam","tags":["Teams"],"security":[{"ApiKey":["TeamsEdit","TeamsAdmin"]},{"OAuth2":["teams","teams:admin"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Teams"},{"name":"teamId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the team to be archived, prefixed with `team_`. The legacy numeric team ID is also accepted.","example":"team_99"}],"responses":{"204":{"description":"No Content. The team was successfully archived. If requesting as admin, the specified team may have been archived even though the authenticated user did not have direct access to it."},"403":{"description":"Forbidden. * if the user making the request does not have permission to edit teams. * if the user making the request does not have access to the specified team. * if the team is managed via SCIM. Use the SCIM Groups API to modify SCIM-managed teams."}}}},"/v2/teams/{teamId}/restore":{"post":{"summary":"Restore Team","description":"Restores a previously archived team. With user permissions, the team must be one the requesting user has edit access to. With admin permissions, any team belonging to the account can be restored.","operationId":"restoreTeam","tags":["Teams"],"security":[{"ApiKey":["TeamsEdit","TeamsAdmin"]},{"OAuth2":["teams","teams:admin"]}],"parameters":[{"$ref":"#/components/parameters/RequestAs-Teams"},{"name":"teamId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the team to be restored, prefixed with `team_`. The legacy numeric team ID is also accepted.","example":"team_99"}],"responses":{"204":{"description":"No Content. The team was successfully restored. If requesting as admin, the specified team may have been restored even though the authenticated user did not have direct access to it."},"403":{"description":"Forbidden. * if the user making the request does not have permission to edit teams. * if the user making the request does not have access to the specified team. * if the team is managed via SCIM. Use the SCIM Groups API to modify SCIM-managed teams."}}}},"/v1/credentials/aws/externalId":{"get":{"summary":"Get AWS External ID","description":"Get the user AWS External ID. A user should use this external ID to create a trust relationship with AWS, which is required to create a credential.","operationId":"getAwsExternalId","tags":["Cloud"],"security":[{"ApiKey":["CloudReadonly"]},{"OAuth2":["cloud.credential:readonly"]}],"responses":{"200":{"description":"OK. Returns the AWS external ID required for cross-account role setup.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsCredentialExternalId"}}}}}}},"/v1/credentials/aws":{"post":{"summary":"Create AWS Credential","description":"Create a new credential for AWS. The external ID generated in the request to Get AWS External ID will be retrieved and included in the request to AWS automatically.","operationId":"createAwsCredential","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.credential"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAwsCredentialRequest"}}}},"responses":{"201":{"description":"Created. Returns the newly created AWS credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsCredentialObject"}}}},"400":{"description":"Bad Request. Occurs when the ARN or request parameters are invalid."}}}},"/v1/credentials/aws/{awsCredentialId}":{"patch":{"summary":"Update AWS Credential","description":"Update an existing credential for AWS.","operationId":"updateAwsCredential","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.credential"]}],"parameters":[{"name":"awsCredentialId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AwsCredentialId"},"description":"The ID of the AWS credential to update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAwsCredentialRequest"}}}},"responses":{"200":{"description":"OK. Returns the updated AWS credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsCredentialObject"}}}},"403":{"description":"Forbidden. Occurs when the credential was not found or the user does not have access to it."}}}},"/v1/credentials/azure":{"post":{"summary":"Create Azure Credential","description":"Create a new credential for Azure.","operationId":"createAzureCredential","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.credential"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAzureCredentialRequest"}}}},"responses":{"201":{"description":"Created. Returns the newly created Azure credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureCredentialObject"}}}},"409":{"description":"Conflict. Occurs when a credential with the given client ID already exists."}}}},"/v1/credentials/azure/{azureCredentialId}":{"patch":{"summary":"Update Azure Credential","description":"Update an existing credential for Azure.","operationId":"updateAzureCredential","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.credential"]}],"parameters":[{"name":"azureCredentialId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AzureCredentialId"},"description":"The ID of the Azure credential to update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAzureCredentialRequest"}}}},"responses":{"200":{"description":"OK. Returns the updated Azure credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureCredentialObject"}}}},"403":{"description":"Forbidden. Occurs when the credential was not found or the user does not have access to it."}}}},"/v1/credentials/googleCloud":{"post":{"summary":"Create Google Cloud Credential","description":"Create a new credential for Google Cloud.","operationId":"createGoogleCloudCredential","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.credential"]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"service-account-key-file":{"type":"string","format":"binary","description":"The Google-Cloud-CLI-generated JSON file from which to create the new credential"},"displayName":{"type":"string","description":"When provided, the name to give the created credential"}},"required":["service-account-key-file"]}}}},"responses":{"201":{"description":"Created. Returns the newly created Google Cloud credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleCloudCredentialObject"}}}},"400":{"description":"Bad Request. Occurs when no file is found or the file is invalid."},"409":{"description":"Conflict. Occurs when the credentials are already in use."}}}},"/v1/credentials/googleCloud/{googleCloudCredentialId}":{"patch":{"summary":"Update Google Cloud Credential","description":"Update an existing credential for Google Cloud.","operationId":"updateGoogleCloudCredential","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.credential"]}],"parameters":[{"name":"googleCloudCredentialId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/GoogleCloudCredentialId"},"description":"The ID of the Google Cloud credential to update"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"service-account-key-file":{"type":"string","format":"binary","description":"When provided, the Google-Cloud-CLI-generated JSON file from which to update the credential"},"displayName":{"type":"string","description":"When provided, the name to give the updated credential"}}}}}},"responses":{"200":{"description":"OK. Returns the updated Google Cloud credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleCloudCredentialObject"}}}},"400":{"description":"Bad Request. Occurs when no file is found or the file is invalid."},"403":{"description":"Forbidden. Occurs when the credential was not found or the user does not have access to it."},"409":{"description":"Conflict. Occurs when the credentials are already in use."}}}},"/v1/credentials":{"get":{"summary":"List Credentials","description":"List all credentials on your Lucid account.","operationId":"listCredentials","tags":["Cloud"],"security":[{"ApiKey":["CloudReadonly"]},{"OAuth2":["cloud.credential:readonly"]}],"responses":{"200":{"description":"OK. Returns a list of credentials that the user has access to.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CredentialObject"}}}}}}}},"/v1/credentials/{credentialId}":{"get":{"summary":"Get Credential","description":"Get details about a specific credential.","operationId":"getCredential","tags":["Cloud"],"security":[{"ApiKey":["CloudReadonly"]},{"OAuth2":["cloud.credential:readonly"]}],"parameters":[{"name":"credentialId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/CloudCredentialId"},"description":"The ID of the credential to retrieve"}],"responses":{"200":{"description":"OK. Returns the specified credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialObject"}}}},"400":{"description":"Bad Request. Occurs when the credential ID is malformatted."},"403":{"description":"Forbidden. Occurs when the credential does not exist or the user does not have access to it."}}},"delete":{"summary":"Delete Credential","description":"Delete the specified credential.","operationId":"deleteCredential","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.credential"]}],"parameters":[{"name":"credentialId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/CloudCredentialId"},"description":"The ID of the credential to delete"}],"responses":{"204":{"description":"No Content. Occurs when the credential is successfully deleted."},"400":{"description":"Bad Request. Occurs when the credential ID is malformatted."},"403":{"description":"Forbidden. Occurs when the credential does not exist or the user does not have access to it."}}}},"/v1/dataSources/aws/resources":{"get":{"summary":"Get Fully Supported AWS Resources","description":"Get a list of all AWS resources fully supported by Lucid Cloud.","operationId":"getFullySupportedAwsResources","tags":["Cloud"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK. Returns a list of the AWS resources fully supported by the REST API.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"},"example":[{"resource":"AWS::ECS::Cluster"},{"resource":"AWS::S3::Bucket","subResources":[{"resource":"AWS::S3::Bucket--Additional-Metadata"}]},{"resource":"AWS::SNS::Topic","subResources":[{"resource":"AWS::SNS::Topic--Additional-Metadata"},{"resource":"AWS::SNS::Subscription","subResources":[{"resource":"AWS::SNS::Subscription--Additional-Metadata"}]}]}]}}}}}}},"/v2/dataSources/aws/regions":{"get":{"summary":"Get Supported AWS Regions","description":"Get a list of all AWS regions supported by Lucid Cloud.","operationId":"getSupportedAwsRegions","tags":["Cloud"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK. Returns a list of AWS regions supported by the REST API, including both default and opt-in regions. Each region is annotated with its type to indicate whether it requires explicit enablement in the AWS account.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The AWS region identifier"},"type":{"type":"string","enum":["default","optin"],"description":"The region type - \"default\" for standard regions, \"optin\" for regions that require explicit enablement"}},"required":["name","type"]},"example":[{"name":"us-east-1","type":"default"},{"name":"eu-west-1","type":"default"},{"name":"ap-east-1","type":"optin"},{"name":"me-south-1","type":"optin"}]}}}}}}},"/v1/dataSources/azure/resources":{"get":{"summary":"Get Fully Supported Azure Resources","description":"Get a list of all Azure resources fully supported by Lucid Cloud.","operationId":"getFullySupportedAzureResources","tags":["Cloud"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK. Returns a list of the Azure resources fully supported by the REST API.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"},"example":[{"resource":"Microsoft.Web/serverFarms"},{"resource":"Microsoft.Network/dnszones","subResources":[{"resource":"Microsoft.Network/dnszones/recordsets"}]},{"resource":"Microsoft.Cdn/profiles","subResources":[{"resource":"Microsoft.Cdn/profiles/endpoints"},{"resource":"Microsoft.Cdn/profiles/endpoints/originGroups","subResources":[{"resource":"Microsoft.Cdn/profiles/endpoints/origins"}]}]}]}}}}}}},"/v1/dataSources/googleCloud/resources":{"get":{"summary":"Get Fully Supported Google Cloud Resources","description":"Get a list of all Google Cloud resources fully supported by Lucid Cloud.","operationId":"getFullySupportedGoogleCloudResources","tags":["Cloud"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK. Returns a list of the Google Cloud resources fully supported by the REST API.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"},"example":[{"resource":"container.googleapis.com/NodePool"},{"resource":"compute.googleapis.com/Firewall"},{"resource":"compute.googleapis.com/VpnTunnel"}]}}}}}}},"/v1/dataSources/aws":{"post":{"summary":"Create AWS Data Source","description":"Create a new data source from AWS data. Returns a jobId that can be used to retrieve the status from the Get \"Create AWS Data Source\" Job Status endpoint.","operationId":"createAwsDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAwsDataSourceRequest"}}}},"responses":{"202":{"description":"Accepted. Occurs when the creation job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when no file is found or the file is invalid."}}}},"/v1/dataSources/aws/{jobReferenceId}/status":{"get":{"summary":"Get \"Create AWS Data Source\" Job Status","description":"Get the status of a data source creation request started by Create AWS Data Source.","operationId":"getCreateAwsDataSourceJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsDataSourceJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/dataSources/aws/{awsDataSourceId}":{"post":{"summary":"Update AWS Data Source","description":"Update an existing AWS data source to reflect the latest state of data in AWS. Optionally updates the resources and regions included in the data source as well. Returns a jobId that can be used to check the status via the Get \"Update AWS Data Source\" Job Status endpoint.","operationId":"updateAwsDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"awsDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AwsDataSourceId"},"description":"The ID of the AWS data source to update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAwsDataSourceRequest"}}}},"responses":{"202":{"description":"Accepted. Occurs when the update job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when the data source ID is malformatted."},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when an update job is already in progress for this data source."}}},"patch":{"summary":"Edit AWS Data Source","description":"Edit the metadata of an AWS data source. Metadata refers to any property of the data source that is not related to the data source's cloud data itself.","operationId":"editAwsDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"awsDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AwsDataSourceId"},"description":"The ID of the AWS data source to edit"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditAwsDataSourceRequest"}}}},"responses":{"200":{"description":"OK. Returns the edited AWS data source.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsDataSourceObject"}}}},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."}}}},"/v1/dataSources/aws/{awsDataSourceId}/upload":{"post":{"summary":"Update AWS Data Source from File","description":"Update an existing AWS data source to reflect the state represented in a JSON file exported from AWS directly via the AWS CLI. Returns a jobId that can be used to monitor progress through the Get \"Update AWS Data Source\" Job Status endpoint.","operationId":"updateAwsDataSourceFromFile","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"awsDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AwsDataSourceId"},"description":"The ID of the AWS data source to update"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"awsclijson":{"type":"string","format":"binary","description":"The AWS-CLI-generated JSON file from which to update the data source"}},"required":["awsclijson"]}}}},"responses":{"202":{"description":"Accepted. Occurs when the update job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when no file is found or the file is invalid."},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when an update job is already in progress for this data source."}}}},"/v1/dataSources/aws/{awsDataSourceId}/{jobReferenceId}/status":{"get":{"summary":"Get \"Update AWS Data Source\" Job Status","description":"Get the status of a data source update request started by Update AWS Data Source or Update AWS Data Source from File.","operationId":"getUpdateAwsDataSourceJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"awsDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AwsDataSourceId"},"description":"The ID of the AWS data source associated with the job"},{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsDataSourceJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/dataSources/azure":{"post":{"summary":"Create Azure Data Source","description":"Create a new data source from Azure data. Returns a jobId that can be used to check the status of the operation through the Get \"Create Azure Data Source\" Job Status endpoint.","operationId":"createAzureDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAzureDataSourceRequest"}}}},"responses":{"202":{"description":"Accepted. Occurs when the creation job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when no file is found or the file is invalid."}}}},"/v1/dataSources/azure/{jobReferenceId}/status":{"get":{"summary":"Get \"Create Azure Data Source\" Job Status","description":"Get the status of a data source creation request started by Create Azure Data Source.","operationId":"getCreateAzureDataSourceJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureDataSourceJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/dataSources/azure/{azureDataSourceId}":{"post":{"summary":"Update Azure Data Source","description":"Update an existing Azure data source to reflect the latest state of data in Azure. Optionally updates the resources included in the data source as well. Returns a jobId that can be used to monitor progress through the Get \"Update Azure Data Source\" Job Status endpoint.","operationId":"updateAzureDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"azureDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AzureDataSourceId"},"description":"The ID of the Azure data source to update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAzureDataSourceRequest"}}}},"responses":{"202":{"description":"Accepted. Occurs when the update job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when the data source ID is malformatted."},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when an update job is already in progress for this data source."}}},"patch":{"summary":"Edit Azure Data Source","description":"Edit the metadata of an Azure data source. Metadata refers to any property of the data source that is not related to the data source's cloud data itself.","operationId":"editAzureDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"azureDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AzureDataSourceId"},"description":"The ID of the Azure data source to edit"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditAzureDataSourceRequest"}}}},"responses":{"200":{"description":"OK. Returns the edited Azure data source.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureDataSourceObject"}}}}}}},"/v1/dataSources/azure/{azureDataSourceId}/upload":{"post":{"summary":"Update Azure Data Source from File","description":"Update an existing Azure data source to reflect the state represented in a JSON file exported from Azure directly via the Azure CLI. Returns a jobId that can be used to monitor progress through the Get \"Update Azure Data Source\" Job Status endpoint.","operationId":"updateAzureDataSourceFromFile","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"azureDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AzureDataSourceId"},"description":"The ID of the Azure data source to update"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"azureclijson":{"type":"string","format":"binary","description":"The Azure-CLI-generated JSON file from which to update the data source"}},"required":["azureclijson"]}}}},"responses":{"202":{"description":"Accepted. Occurs when the update job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when no file is found or the file is invalid."},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when an update job is already in progress for this data source."}}}},"/v1/dataSources/azure/{azureDataSourceId}/{jobReferenceId}/status":{"get":{"summary":"Get \"Update Azure Data Source\" Job Status","description":"Get the status of a data source update request started by Update Azure Data Source or Update Azure Data Source from File.","operationId":"getUpdateAzureDataSourceJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"azureDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/AzureDataSourceId"},"description":"The ID of the Azure data source associated with the job"},{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureDataSourceJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/dataSources/googleCloud":{"post":{"summary":"Create Google Cloud Data Source","description":"Create a new data source from Google Cloud data. Returns a jobId that can be used to check the status of the operation through the Get \"Create Google Cloud Data Source\" Job Status endpoint.","operationId":"createGoogleCloudDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGoogleCloudDataSourceRequest"}}}},"responses":{"202":{"description":"Accepted. Occurs when the creation job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when no file is found or the file is invalid."}}}},"/v1/dataSources/googleCloud/{jobReferenceId}/status":{"get":{"summary":"Get \"Create Google Cloud Data Source\" Job Status","description":"Get the status of a data source creation request started by Create Google Cloud Data Source.","operationId":"getCreateGoogleCloudDataSourceJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleCloudDataSourceJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/dataSources/googleCloud/{googleCloudDataSourceId}":{"post":{"summary":"Update Google Cloud Data Source","description":"Update an existing Google Cloud data source to reflect the latest state of data in Google Cloud. Optionally updates the resources included in the data source as well. Returns a jobId that can be used to monitor progress through the Get \"Update Google Cloud Data Source\" Job Status endpoint.","operationId":"updateGoogleCloudDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"googleCloudDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/GoogleCloudDataSourceId"},"description":"The ID of the Google Cloud data source to update"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGoogleCloudDataSourceRequest"}}}},"responses":{"202":{"description":"Accepted. Occurs when the update job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when the data source ID is malformatted."},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when an update job is already in progress for this data source."}}},"patch":{"summary":"Edit Google Cloud Data Source","description":"Edit the metadata of a Google Cloud data source. Metadata refers to any property of the data source that is not related to the data source's cloud data itself.","operationId":"editGoogleCloudDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"googleCloudDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/GoogleCloudDataSourceId"},"description":"The ID of the Google Cloud data source to edit"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditGoogleCloudDataSourceRequest"}}}},"responses":{"200":{"description":"OK. Returns the edited Google Cloud data source.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleCloudDataSourceObject"}}}},"400":{"description":"Bad Request. Occurs when the data source ID is malformatted."},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."}}}},"/v1/dataSources/googleCloud/{googleCloudDataSourceId}/upload":{"post":{"summary":"Update Google Cloud Data Source from File","description":"Update an existing Google Cloud data source to reflect the state represented in a JSON file exported from Google Cloud directly via the Google Cloud CLI. Returns a jobId that can be used to monitor progress through the Get \"Update Google Cloud Data Source\" Job Status endpoint.","operationId":"updateGoogleCloudDataSourceFromFile","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"googleCloudDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/GoogleCloudDataSourceId"},"description":"The ID of the Google Cloud data source to update"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"googlecloudclijson":{"type":"string","format":"binary","description":"The Google-Cloud-CLI-generated JSON file from which to update the data source"}},"required":["googlecloudclijson"]}}}},"responses":{"202":{"description":"Accepted. Occurs when the update job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when no file is found or the file is invalid."},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when an update job is already in progress for this data source."}}}},"/v1/dataSources/googleCloud/{googleCloudDataSourceId}/{jobReferenceId}/status":{"get":{"summary":"Get \"Update Google Cloud Data Source\" Job Status","description":"Get the status of a data source update request started by Update Google Cloud Data Source or Update Google Cloud Data Source from File.","operationId":"getUpdateGoogleCloudDataSourceJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"googleCloudDataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/GoogleCloudDataSourceId"},"description":"The ID of the Google Cloud data source associated with the job"},{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleCloudDataSourceJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/dataSources":{"get":{"summary":"List Data Sources","description":"List all data sources on your Lucid account.","operationId":"listDataSources","tags":["Cloud"],"security":[{"ApiKey":["CloudReadonly"]},{"OAuth2":["cloud.datasource:readonly"]}],"responses":{"200":{"description":"OK. Returns a list of data sources.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataSourceObject"}}}}}}}},"/v1/dataSources/{dataSourceId}":{"get":{"summary":"Get Data Source","description":"Gets a specific existing data source. If the creator of the data source is the user making the request, the link parameters will be returned with the data source.","operationId":"getDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudReadonly"]},{"OAuth2":["cloud.datasource:readonly"]}],"parameters":[{"name":"dataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DataSourceId"},"description":"The ID of the data source to retrieve"}],"responses":{"200":{"description":"OK. Returns the specified data source.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataSourceObject"}}}},"400":{"description":"Bad Request. Occurs when the data source ID is malformatted."},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."}}},"delete":{"summary":"Delete Data Source","description":"Delete the specified data source and all related data (collections, schema, items, link parameters). Once deleted, none of the information can be recovered.","operationId":"deleteDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.datasource"]}],"parameters":[{"name":"dataSourceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/DataSourceId"},"description":"The ID of the data source to delete"}],"responses":{"204":{"description":"No Content. Occurs when the data source is successfully deleted."},"400":{"description":"Bad Request. Occurs when the data source ID is malformatted."},"403":{"description":"Forbidden. Occurs when the data source does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when deletion is attempted while jobs are running."}}}},"/v1/documents/cloud/aws/viewTemplates":{"get":{"summary":"Get Supported AWS View Templates","description":"Get a list of all AWS view templates fully supported by Lucid Cloud.","operationId":"getSupportedAwsViewTemplates","tags":["Cloud"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK. Returns a list of the AWS view templates supported by the REST API.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"},"example":["compliance-insights","cost-saving-insights","ecs"]}}}}}}},"/v1/documents/cloud/azure/viewTemplates":{"get":{"summary":"Get Supported Azure View Templates","description":"Get a list of all Azure view templates fully supported by Lucid Cloud.","operationId":"getSupportedAzureViewTemplates","tags":["Cloud"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK. Returns a list of the Azure view templates supported by the REST API.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"},"example":["compliance-insights","cost-saving-insights","infrastructure"]}}}}}}},"/v1/documents/cloud/googleCloud/viewTemplates":{"get":{"summary":"Get Supported Google Cloud View Templates","description":"Get a list of all Google Cloud view templates fully supported by Lucid Cloud.","operationId":"getSupportedGoogleCloudViewTemplates","tags":["Cloud"],"security":[{"ApiKey":[]}],"responses":{"200":{"description":"OK. Returns a list of the Google Cloud view templates supported by the REST API.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"},"example":["compliance-insights","cost-saving-insights","gke-clusters"]}}}}}}},"/v1/documents/cloud/aws":{"post":{"summary":"Create Model from AWS Data Source","description":"Create a new model containing the visualization of data from an AWS data source. Returns a jobId that can be used to retrieve the status from the Get \"Create Model from AWS Data Source\" Job Status endpoint.","operationId":"createModelFromAwsDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateModelFromAwsDataSourceRequest"}}}},"responses":{"202":{"description":"Accepted. Occurs when the model creation job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}}}}},"/v1/documents/cloud/aws/{jobReferenceId}/status":{"get":{"summary":"Get \"Create Model from AWS Data Source\" Job Status","description":"Get the status of a model creation request started by Create Model from AWS Data Source.","operationId":"getAwsModelCreationJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"parameters":[{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsModelJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/documents/cloud/aws/{documentId}/sync":{"post":{"summary":"Sync Model with AWS Data Source","description":"Sync an existing model containing the visualization of data from an AWS data source, so that it is up-to-date with the data in that data source. Returns a jobId that can be used to get the status from Get \"Sync Model with AWS Data Source\" Job Status.","operationId":"syncModelFromAwsDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The document ID of the cloud model to sync"}],"responses":{"202":{"description":"Accepted. Occurs when the model sync job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when the document ID is malformatted."},"403":{"description":"Forbidden. Occurs when the document does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when a sync is already in progress for this document."}}}},"/v1/documents/cloud/aws/{documentId}/sync/{jobReferenceId}/status":{"get":{"summary":"Get \"Sync Model with AWS Data Source\" Job Status","description":"Get the status of a model sync request started by Sync Model with AWS Data Source.","operationId":"getAwsModelSyncJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The document ID of the cloud model associated with the job"},{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AwsModelJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/documents/cloud/azure":{"post":{"summary":"Create Model from Azure Data Source","description":"Create a new model containing the visualization of data from an Azure data source. Returns a jobId that can be used to retrieve the status from the Get \"Create Model from Azure Data Source\" Job Status endpoint.","operationId":"createModelFromAzureDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateModelFromAzureDataSourceRequest"}}}},"responses":{"202":{"description":"Accepted. Occurs when the model creation job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}}}}},"/v1/documents/cloud/azure/{jobReferenceId}/status":{"get":{"summary":"Get \"Create Model from Azure Data Source\" Job Status","description":"Get the status of a model creation request started by Create Model from Azure Data Source.","operationId":"getAzureModelCreationJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"parameters":[{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureModelJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/documents/cloud/azure/{documentId}/sync":{"post":{"summary":"Sync Model with Azure Data Source","description":"Sync an existing model containing the visualization of data from an Azure data source, so that it is up-to-date with the data in that data source. Returns a jobId that can be used to get the status from Get \"Sync Model with Azure Data Source\" Job Status.","operationId":"syncModelFromAzureDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The document ID of the cloud model to sync"}],"responses":{"202":{"description":"Accepted. Occurs when the model sync job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when the document ID is malformatted."},"403":{"description":"Forbidden. Occurs when the document does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when a sync is already in progress for this document."}}}},"/v1/documents/cloud/azure/{documentId}/sync/{jobReferenceId}/status":{"get":{"summary":"Get \"Sync Model with Azure Data Source\" Job Status","description":"Get the status of a model sync request started by Sync Model with Azure Data Source.","operationId":"getAzureModelSyncJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The document ID of the cloud model associated with the job"},{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AzureModelJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/documents/cloud/googleCloud":{"post":{"summary":"Create Model from Google Cloud Data Source","description":"Create a new model containing the visualization of data from a Google Cloud data source. Returns a jobId that can be used to retrieve the status from the Get \"Create Model from Google Cloud Data Source\" Job Status endpoint.","operationId":"createModelFromGoogleCloudDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateModelFromGoogleCloudDataSourceRequest"}}}},"responses":{"202":{"description":"Accepted. Occurs when the model creation job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}}}}},"/v1/documents/cloud/googleCloud/{jobReferenceId}/status":{"get":{"summary":"Get \"Create Model from Google Cloud Data Source\" Job Status","description":"Get the status of a model creation request started by Create Model from Google Cloud Data Source.","operationId":"getGoogleCloudModelCreationJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"parameters":[{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleCloudModelJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/documents/cloud/googleCloud/{documentId}/sync":{"post":{"summary":"Sync Model with Google Cloud Data Source","description":"Sync an existing model containing the visualization of data from a Google Cloud data source, so that it is up-to-date with the data in that data source. Returns a jobId that can be used to get the status from Get \"Sync Model with Google Cloud Data Source\" Job Status.","operationId":"syncModelFromGoogleCloudDataSource","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The document ID of the cloud model to sync"}],"responses":{"202":{"description":"Accepted. Occurs when the model sync job has been queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. Occurs when the document ID is malformatted."},"403":{"description":"Forbidden. Occurs when the document does not exist or the user does not have access to it."},"409":{"description":"Conflict. Occurs when a sync is already in progress for this document."}}}},"/v1/documents/cloud/googleCloud/{documentId}/sync/{jobReferenceId}/status":{"get":{"summary":"Get \"Sync Model with Google Cloud Data Source\" Job Status","description":"Get the status of a model sync request started by Sync Model with Google Cloud Data Source.","operationId":"getGoogleCloudModelSyncJobStatus","tags":["Cloud"],"security":[{"ApiKey":["CloudEdit"]},{"OAuth2":["cloud.model"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"The document ID of the cloud model associated with the job"},{"name":"jobReferenceId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleCloudModelJobStatusResponse"}}}},"400":{"description":"Bad Request. Occurs when the job reference ID is malformatted."},"403":{"description":"Forbidden. Occurs when the job does not exist or the user does not have access to it."}}}},"/v1/repositories":{"get":{"summary":"List Repositories","description":"Retrieves basic information for all repositories the authenticated user has permission to view.","operationId":"listRepositories","tags":["Repositories"],"security":[{"ApiKey":["RepositoryRead"]},{"OAuth2":["repository:readonly"]}],"responses":{"200":{"description":"OK. Returns a list of repositories the user has access to.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryObject"}}}}},"403":{"description":"Forbidden. Occurs when the user does not have access to view any repository."}}},"post":{"summary":"Create Repository","description":"Creates a new repository on the account.","operationId":"createRepository","tags":["Repositories"],"security":[{"ApiKey":["RepositoryEdit"]},{"OAuth2":["repository"]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRepositoryRequest"}}}},"responses":{"201":{"description":"Created. Returns the newly created repository.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryObject"}}}},"400":{"description":"Bad Request. Occurs when no owner is provided, members or groups are added to an UNRESTRICTED repository, or invalid user/group IDs."},"403":{"description":"Forbidden. Occurs when the user does not have permission to create a repository."}}}},"/v1/repositories/{repositoryId}":{"get":{"summary":"Get Repository","description":"Retrieves basic information for the requested repository, provided the user has at least read-only access.","operationId":"getRepository","tags":["Repositories"],"security":[{"ApiKey":["RepositoryRead"]},{"OAuth2":["repository:readonly"]}],"parameters":[{"name":"repositoryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/RepositoryId"},"description":"The unique identifier of the repository"}],"responses":{"200":{"description":"OK. Returns the repository object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryObject"}}}},"403":{"description":"Forbidden. Occurs when the user does not have access to the repository."}}}},"/v1/repositories/{repositoryId}/users":{"get":{"summary":"List Repository User Collaborators","operationId":"listRepositoryUsers","tags":["Repositories"],"description":"List users with roles on a repository.","security":[{"ApiKey":["RepositoryRead"]},{"OAuth2":["repository:readonly"]}],"parameters":[{"name":"repositoryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/RepositoryId"},"description":"The unique identifier of the repository"}],"responses":{"200":{"description":"OK. Returns a list of users and their roles on the repository.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryUser"}}}}},"403":{"description":"Forbidden. Occurs when the user does not have access to view repository owners or members."}}}},"/v1/repositories/{repositoryId}/users/add":{"post":{"summary":"Create or Update Repository User Roles","operationId":"addRepositoryUsers","tags":["Repositories"],"description":"Manages user roles on a repository, allowing for updating of existing repository users or adding roles for new users on the repository.","security":[{"ApiKey":["RepositoryEdit"]},{"OAuth2":["repository"]}],"parameters":[{"name":"repositoryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/RepositoryId"},"description":"The unique identifier of the repository"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRepositoryUsersRequest"}}}},"responses":{"204":{"description":"No Content. User and group roles have been successfully added or updated."},"400":{"description":"Bad Request. Occurs when duplicate or invalid user IDs are provided, or REPOSITORY_MEMBERs are added to an UNRESTRICTED repository."},"403":{"description":"Forbidden. Occurs when the user does not have permission to modify the repository."}}}},"/v1/repositories/{repositoryId}/users/remove":{"post":{"summary":"Remove Users from Repository","operationId":"removeRepositoryUsers","tags":["Repositories"],"description":"Removes one or more users from a repository.","security":[{"ApiKey":["RepositoryEdit"]},{"OAuth2":["repository"]}],"parameters":[{"name":"repositoryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/RepositoryId"},"description":"The unique identifier of the repository"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"users":{"type":"array","items":{"type":"integer","description":"User ID to remove from the repository","example":123321},"minItems":1,"description":"Array of user IDs to remove from the repository"}},"required":["users"]}}}},"responses":{"204":{"description":"No Content. Users have been successfully removed from the repository."},"403":{"description":"Forbidden. Occurs when the user does not have permission to modify the repository."}}}},"/v1/repositories/{repositoryId}/groups":{"get":{"summary":"List Repository Groups","operationId":"listRepositoryGroups","tags":["Repositories"],"description":"List groups with repository member access.","security":[{"ApiKey":["RepositoryRead"]},{"OAuth2":["repository:readonly"]}],"parameters":[{"name":"repositoryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/RepositoryId"},"description":"The unique identifier of the repository"}],"responses":{"200":{"description":"OK. Returns a list of groups with access to the repository.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RepositoryGroupCollaborator"}}}}},"400":{"description":"Bad Request. Occurs when attempting to list groups on an UNRESTRICTED repository."},"403":{"description":"Forbidden. Occurs when the user does not have access to the repository."}}}},"/v1/repositories/{repositoryId}/groups/add":{"post":{"summary":"Add Groups as Members on Repository","operationId":"addRepositoryGroups","tags":["Repositories"],"description":"Add Groups to a repository. Users in the Group will have repository member access to the specified repository.","security":[{"ApiKey":["RepositoryEdit"]},{"OAuth2":["repository"]}],"parameters":[{"name":"repositoryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/RepositoryId"},"description":"The unique identifier of the repository"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryGroupsRequest"}}}},"responses":{"204":{"description":"No Content. Groups have been successfully added."},"400":{"description":"Bad Request. Occurs when groups are added to an UNRESTRICTED repository, or invalid group IDs are provided."},"403":{"description":"Forbidden. Occurs when the user does not have permission to modify the repository."}}}},"/v1/repositories/{repositoryId}/groups/remove":{"post":{"summary":"Remove Groups from Repository","operationId":"removeRepositoryGroups","tags":["Repositories"],"description":"Removes one or more groups from a restricted repository.","security":[{"ApiKey":["RepositoryEdit"]},{"OAuth2":["repository"]}],"parameters":[{"name":"repositoryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/RepositoryId"},"description":"The unique identifier of the repository"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepositoryGroupsRequest"}}}},"responses":{"204":{"description":"No Content. Groups have been successfully removed from the repository."},"400":{"description":"Bad Request. Occurs when attempting to remove groups from an UNRESTRICTED repository."},"403":{"description":"Forbidden. Occurs when the user does not have permission to modify the repository."}}}},"/v1/documents/{documentId}/threads":{"get":{"summary":"List Document Threads","description":"Retrieves all comment threads for the specified document. Each thread includes its ID, creation timestamp, and status (open or closed).\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentReadonly`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content:readonly`\n- `lucidscale.document.content:readonly`\n- `lucidspark.document.content:readonly`\n- `lucid.document.content:readonly`\n","operationId":"listDocumentThreads","tags":["Document Comments"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.content:readonly","lucidscale.document.content:readonly","lucidspark.document.content:readonly","lucid.document.content:readonly"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document to retrieve comment threads for.","example":"110808fd-4553-4316-bccf-4f25ff59a532"}],"responses":{"200":{"description":"OK with an array of Document Thread resources for the document's comment threads.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DocumentThread"}}}}},"400":{"description":"Bad Request if the document ID is malformed."},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document does not exist."}}},"post":{"summary":"Post Document Thread","description":"Creates a document-level comment thread with an initial comment. The thread is not attached to a\ndocument item or canvas location. The comment text must be non-empty and cannot exceed 10,000 characters.\n\nOpen the document in the editor at least once before creating a thread. Thread creation is not supported\nwhile the document is awaiting its initial editor setup.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n\n- `DocumentEdit`\n\n**OAuth 2.0 User Token Scopes:**\n\n- `lucidchart.document.content`\n- `lucidscale.document.content`\n- `lucidspark.document.content`\n- `lucid.document.content`","operationId":"postDocumentThread","tags":["Document Comments"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidscale.document.content","lucidspark.document.content","lucid.document.content"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document on which to create the thread.","example":"110808fd-4553-4316-bccf-4f25ff59a532"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCommentRequestBody"}}}},"responses":{"201":{"description":"Created with the new open Document Thread resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentThread"}}}},"400":{"description":"Bad Request.\n\n* Document must have completed its initial editor setup. Open the document in the editor and retry.\n* Comment must be non-empty.\n* Comment must not exceed 10,000 characters."},"403":{"description":"Forbidden if the app making the request does not have write permission to the document, or if the document does not exist."}}}},"/v1/documents/{documentId}/threads/{threadId}/comments":{"get":{"summary":"List Thread Comments","description":"Retrieves all comments within a specific thread of a document. Each comment includes the author, comment text, creation timestamp, and any assigned users.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentReadonly`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content:readonly`\n- `lucidscale.document.content:readonly`\n- `lucidspark.document.content:readonly`\n- `lucid.document.content:readonly`\n","operationId":"listDocumentThreadComments","tags":["Document Comments"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.content:readonly","lucidscale.document.content:readonly","lucidspark.document.content:readonly","lucid.document.content:readonly"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document containing the thread.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"name":"threadId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the comment thread to retrieve comments for.","example":"abc123"}],"responses":{"200":{"description":"OK with an array of Document Comment resources for the thread's comments.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DocumentComment"}}}}},"400":{"description":"Bad Request if the document ID is malformed."},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document does not exist."},"404":{"description":"Not Found if the specified thread does not exist on the document."}}},"post":{"summary":"Post Thread Comment","description":"Posts a new comment to an existing thread on a document. The comment text must be non-empty and cannot exceed 10,000 characters.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentEdit`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content`\n- `lucidscale.document.content`\n- `lucidspark.document.content`\n- `lucid.document.content`\n","operationId":"postDocumentThreadComment","tags":["Document Comments"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidscale.document.content","lucidspark.document.content","lucid.document.content"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document containing the thread.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"name":"threadId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the comment thread to post a comment to.","example":"abc123"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostCommentRequestBody"}}}},"responses":{"204":{"description":"No Content when the comment is successfully posted."},"400":{"description":"Bad Request.\n* Comment must be non-empty.\n* Comment must not exceed 10,000 characters.\n* Comment cannot be posted to a closed thread.\n"},"403":{"description":"Forbidden if the app making the request does not have write permission to the document, or if the document does not exist."},"404":{"description":"Not Found if the specified thread does not exist on the document."}}}},"/v1/subscriptions":{"get":{"summary":"List Subscriptions","description":"Lists all subscriptions on the authenticated user's Lucid account. This endpoint is paginated.","operationId":"listSubscriptions","tags":["Subscriptions"],"security":[{"ApiKey":["LicensesAdmin"]},{"OAuth2":["licenses:admin.readonly","licenses:admin"]}],"responses":{"200":{"description":"OK. Returns an array of subscriptions on the account.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Subscription"}}}}},"403":{"description":"Forbidden. Occurs when the user is not authorized to view subscriptions."}}}},"/v1/subscriptions/{id}":{"get":{"summary":"Get Subscription","description":"Retrieves details about a specific subscription on the account.","operationId":"getSubscription","tags":["Subscriptions"],"security":[{"ApiKey":["LicensesAdmin"]},{"OAuth2":["licenses:admin.readonly","licenses:admin"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Subscription ID","example":"8e8cf611-d74c-4a2f-8b61-754b22328fbb"}],"responses":{"200":{"description":"OK. Returns the subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Subscription"}}}},"403":{"description":"Forbidden. Occurs when the user is not authorized to view subscriptions or the subscription does not exist."}}}},"/v1/subscriptions/{id}/licenses":{"get":{"summary":"List Licenses for Subscription","description":"Lists all licenses associated with a specific subscription. This endpoint is paginated.","operationId":"listSubscriptionLicenses","tags":["Licenses"],"security":[{"ApiKey":["LicensesAdmin"]},{"OAuth2":["licenses:admin.readonly","licenses:admin"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Subscription ID","example":"8e8cf611-d74c-4a2f-8b61-754b22328fbb"}],"responses":{"200":{"description":"OK. Returns an array of licenses associated with the specified subscription.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/License"}}}}},"403":{"description":"Forbidden. Occurs when the user is not authorized to view licenses or the subscription does not exist."}}}},"/v1/users/{id}/licenses":{"get":{"summary":"List User Licenses","description":"Retrieves all licenses that have been granted to a specific user on the account.","operationId":"listUserLicenses","tags":["Licenses"],"security":[{"ApiKey":["LicensesAdmin"]},{"OAuth2":["licenses:admin.readonly","licenses:admin"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"User ID","example":123}],"responses":{"200":{"description":"OK. Returns an array of licenses granted to the specified user.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/License"}}}}},"403":{"description":"Forbidden. Occurs when the user is not authorized to view licenses or the user does not exist."}}},"post":{"summary":"Grant User License","description":"Grants a license to a user from a specified subscription. If the user already has a license on the given subscription, the existing license is returned.","operationId":"grantUserLicense","tags":["Licenses"],"security":[{"ApiKey":["LicensesAdmin"]},{"OAuth2":["licenses:admin"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"},"description":"User ID","example":123}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantLicenseRequest"}}}},"responses":{"201":{"description":"Created. Returns the granted license, or the existing license if the user already has one on this subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/License"}}}},"403":{"description":"Forbidden. Occurs when the user is not authorized to grant licenses."},"409":{"description":"Conflict. Occurs when there are no available licenses to grant, or the user is restricted from being granted a license."},"429":{"description":"Too Many Requests. Occurs when the account exceeds the limit of 60 license grant requests per 30 seconds.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/documents/{id}/export/jobs":{"post":{"summary":"Export Document Asynchronously","description":"Starts an asynchronous export of one or more document pages. Use the returned job ID with the Get Document Export Job Status endpoint to check progress and obtain a download URL after the export succeeds.\n\nThe `Accept` header selects the export format. The `Idempotency-Key` header marks a job as unique: using a different idempotency key will trigger a new job request, even if the request is identical to a previous one\n\n**Admin flow:** Account owners and document admins can export any document in their account by setting `Lucid-Request-As: admin` and authenticating with an admin scope or `DocumentAdmin` API key grant.\n\nSynchronous and asynchronous exports share a per-account rate limit.","operationId":"exportDocumentLongRunning","tags":["Document Access"],"security":[{"ApiKey":["DocumentReadonly","DocumentAdmin"]},{"OAuth2":["lucidchart.document.content:readonly","lucidchart.document.content:admin.readonly","lucidchart.document.app.picker:readonly","lucidchart.document.app.folder","lucidscale.document.content:readonly","lucidscale.document.content:admin.readonly","lucidscale.document.app.picker:readonly","lucidscale.document.app.folder","lucidspark.document.content:readonly","lucidspark.document.content:admin.readonly","lucidspark.document.app.picker:readonly","lucidspark.document.app.folder"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the document to export.","schema":{"type":"string","format":"uuid"},"example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"name":"Lucid-Request-As","in":"header","required":false,"description":"Make the request with account-admin permissions. Requires a valid admin scope or `DocumentAdmin` API key grant.","schema":{"type":"string","enum":["admin"]}},{"name":"Accept","in":"header","required":false,"description":"Export format. Defaults to `image/png`. Image formats may include a `dpi` parameter, for example `image/png;dpi=256`.","schema":{"type":"string","default":"image/png"},"examples":{"png":{"value":"image/png"},"jpeg":{"value":"image/jpeg"},"pdf":{"value":"application/pdf"}}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Distinguishing key for duplicate job requests. Use a different value if intending to run the same job twice.","schema":{"type":"string"},"example":"abc"},{"name":"pageId","in":"query","required":false,"description":"ID of a document page to export. Provide multiple `pageId` query parameters to export multiple pages. Cannot be provided with `page`.","schema":{"type":"array","items":{"type":"string"}},"example":["J~65X_X714o2"]},{"name":"page","in":"query","required":false,"description":"One-based index of a document page to export. Provide multiple `page` query parameters to export multiple pages. Cannot be provided with `pageId`.","schema":{"type":"array","items":{"type":"integer","minimum":1}},"example":[1,2]},{"name":"crop","in":"query","required":false,"description":"Specifies the crop settings for the document export. Optional for export operation. Possible values are\n  * Default (no crop parameter) - Exports the entire page canvas area that contains your content. Automatically adjusts to include all items on the page, including the space between them and maintains the relative positioning and spacing of your document elements\n  * `x, y, width, height` - Crop to the specified region (in pixels) on the page. Example crop=1000,300,30,7\n    * Note: The region (in pixels) is accurate to the number of pixels on the canvas. The number of pixels of the outputted image will only match the crop window at a DPI of 160.\n  * `content` - Crop to page content. Example crop=content","schema":{"type":"string"},"example":"content"},{"name":"dpi","in":"query","required":false,"description":"Output resolution in dots per inch.","schema":{"type":"integer"}},{"name":"width","in":"query","required":false,"description":"Output width in pixels.","schema":{"type":"integer"}},{"name":"aspectRatio","in":"query","required":false,"description":"Aspect-ratio handling for the exported image.","schema":{"type":"string","enum":["inherit","1:1"]}}],"responses":{"200":{"description":"OK. Returns the identifier of the queued or existing export job.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobReferenceIdResponse"}}}},"400":{"description":"Bad Request. A parameter is invalid, or `page` and `pageId` were both provided."},"403":{"description":"Forbidden. The caller does not have permission to export the document."},"404":{"description":"Not Found. The document or a requested page does not exist."},"406":{"description":"Not Acceptable. The requested export format is not supported."},"429":{"description":"Too Many Requests. The account exceeded the shared export limit of 75 requests per 5 seconds.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/documents/{id}/export/jobs/{jobId}":{"get":{"summary":"Get Document Export Job Status","description":"Retrieves the status of an asynchronous document export. When the job succeeds, `response.downloadUrl` contains a temporary URL for downloading the export.","operationId":"exportDocumentLongRunningStatus","tags":["Document Access"],"security":[{"ApiKey":["DocumentReadonly","DocumentAdmin"]},{"OAuth2":["lucidchart.document.content:readonly","lucidchart.document.content:admin.readonly","lucidchart.document.app.picker:readonly","lucidchart.document.app.folder","lucidscale.document.content:readonly","lucidscale.document.content:admin.readonly","lucidscale.document.app.picker:readonly","lucidscale.document.app.folder","lucidspark.document.content:readonly","lucidspark.document.content:admin.readonly","lucidspark.document.app.picker:readonly","lucidspark.document.app.folder"]}],"parameters":[{"name":"id","in":"path","required":true,"description":"ID of the document being exported.","schema":{"type":"string","format":"uuid"},"example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"name":"jobId","in":"path","required":true,"description":"Identifier returned when the export job was created.","schema":{"$ref":"#/components/schemas/JobReferenceId"}}],"responses":{"200":{"description":"OK. Returns the job status and, after a successful export, the download URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportDocumentJobStatusResponse"}}}},"400":{"description":"Bad Request. The job reference ID is malformed."},"403":{"description":"Forbidden. The caller does not have permission to access the document or export job."},"404":{"description":"Not Found. The document or export job does not exist."}}}},"/v1/shapeLibraries/custom/{libraryId}/shapes/{shapeId}":{"get":{"summary":"Get Custom Shape","description":"Retrieves the details of a single custom shape identified by its library and ID, including its default\nsize and colors.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentRead`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucid.document.content`\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"getCustomShape","tags":["Shape Libraries"],"security":[{"ApiKey":["DocumentRead"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShapeLibraryId"},"description":"ID of the custom shape library."},{"name":"shapeId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShapeLibraryShapeId"},"description":"ID of the shape."}],"responses":{"200":{"description":"OK. Returns the details of the specified custom shape.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShapeLibraryShapeDetails"}}}},"400":{"description":"Bad Request. Occurs when the libraryId or shapeId is invalid or malformed."},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access shape libraries."},"404":{"description":"Not Found. Occurs when no custom shape library with the given libraryId exists, or when no shape with the given shapeId exists within that library."}}}},"/v1/shapeLibraries/custom":{"get":{"summary":"List Custom Shape Libraries","description":"Retrieves a paginated list of the custom shape libraries available to the authenticated user. Each entry\ncontains only the library's ID.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentRead`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucid.document.content`\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"listCustomShapeLibraries","tags":["Shape Libraries"],"security":[{"ApiKey":["DocumentRead"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"responses":{"200":{"description":"OK. Returns an array of custom shape libraries.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShapeLibrary"}}}}},"400":{"description":"Bad Request. Occurs when the pageToken is invalid or malformed."},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access shape libraries."}}}},"/v1/shapeLibraries/custom/{libraryId}/shapes":{"get":{"summary":"List Shapes in a Custom Shape Library","description":"Retrieves a paginated list of the shapes available within a specific custom shape library. The libraryId\nand shapeId values together uniquely identify a shape.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentRead`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucid.document.content`\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"listCustomShapes","tags":["Shape Libraries"],"security":[{"ApiKey":["DocumentRead"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShapeLibraryId"},"description":"ID of the custom shape library."}],"responses":{"200":{"description":"OK. Returns an array of shapes available within the specified custom shape library.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShapeLibraryShape"}}}}},"400":{"description":"Bad Request. Occurs when the pageToken or libraryId is invalid or malformed."},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access shape libraries."},"404":{"description":"Not Found. No custom shape library with the given libraryId exists."}}}},"/v1/shapeLibraries/installed/{libraryId}/shapes/{shapeId}":{"get":{"summary":"Get Installed Shape","description":"Retrieves the details of a single installed shape identified by its library and ID, including its default\nsize and colors.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentRead`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucid.document.content`\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"getInstalledShape","tags":["Shape Libraries"],"security":[{"ApiKey":["DocumentRead"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShapeLibraryId"},"description":"ID of the installed shape library."},{"name":"shapeId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShapeLibraryShapeId"},"description":"ID of the shape."}],"responses":{"200":{"description":"OK. Returns the details of the specified installed shape.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShapeLibraryShapeDetails"}}}},"400":{"description":"Bad Request. Occurs when the libraryId or shapeId is invalid or malformed."},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access shape libraries."},"404":{"description":"Not Found. Occurs when no installed shape library with the given libraryId exists, or when no shape with the given shapeId exists within that library."}}}},"/v1/shapeLibraries/installed":{"get":{"summary":"List Installed Shape Libraries","description":"Retrieves a paginated list of the shape libraries installed for the authenticated user. Each entry contains\nonly the library's ID.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentRead`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucid.document.content`\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"listInstalledShapeLibraries","tags":["Shape Libraries"],"security":[{"ApiKey":["DocumentRead"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"responses":{"200":{"description":"OK. Returns an array of installed shape libraries.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShapeLibrary"}}}}},"400":{"description":"Bad Request. Occurs when the pageToken is invalid or malformed."},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access shape libraries."}}}},"/v1/shapeLibraries/installed/{libraryId}/shapes":{"get":{"summary":"List Shapes in an Installed Shape Library","description":"Retrieves a paginated list of the shapes available within a specific installed shape library. The libraryId\nand shapeId values together uniquely identify a shape.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentRead`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucid.document.content`\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"listInstalledShapes","tags":["Shape Libraries"],"security":[{"ApiKey":["DocumentRead"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShapeLibraryId"},"description":"ID of the installed shape library."}],"responses":{"200":{"description":"OK. Returns an array of shapes available within the specified installed shape library.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShapeLibraryShape"}}}}},"400":{"description":"Bad Request. Occurs when the pageToken or libraryId is invalid or malformed."},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access shape libraries."},"404":{"description":"Not Found. No installed shape library with the given libraryId exists."}}}},"/v1/shapeLibraries/standard/{libraryId}/shapes/{shapeId}":{"get":{"summary":"Get Standard Shape","description":"Retrieves the details of a single standard shape identified by its library and ID, including its default\nsize and colors.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentRead`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucid.document.content`\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"getStandardShape","tags":["Shape Libraries"],"security":[{"ApiKey":["DocumentRead"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShapeLibraryId"},"description":"ID of the standard shape library.","example":"flowchart"},{"name":"shapeId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShapeLibraryShapeId"},"description":"ID of the shape.","example":"ProcessBlock"}],"responses":{"200":{"description":"OK. Returns the details of the specified standard shape.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShapeLibraryShapeDetails"}}}},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access shape libraries."},"404":{"description":"Not Found. Occurs when no standard shape library with the given libraryId exists, or when no shape with the given shapeId exists within that library."}}}},"/v1/shapeLibraries/standard":{"get":{"summary":"List Standard Shape Libraries","description":"Retrieves a paginated list of the built-in Lucid shape libraries that are available to use on documents\n(for example, flowchart, UML, and network). Each entry contains only the library's ID.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentRead`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucid.document.content`\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"listStandardShapeLibraries","tags":["Shape Libraries"],"security":[{"ApiKey":["DocumentRead"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"responses":{"200":{"description":"OK. Returns an array of standard shape libraries.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShapeLibrary"}}}}},"400":{"description":"Bad Request. Occurs when the pageToken is invalid or malformed."},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access shape libraries."}}}},"/v1/shapeLibraries/standard/{libraryId}/shapes":{"get":{"summary":"List Shapes in a Standard Shape Library","description":"Retrieves a paginated list of the shapes available within a specific standard shape library. The libraryId\nand shapeId values together uniquely identify a shape.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentRead`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucid.document.content`\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n","operationId":"listStandardShapes","tags":["Shape Libraries"],"security":[{"ApiKey":["DocumentRead"]},{"OAuth2":["lucid.document.content","lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder"]}],"parameters":[{"name":"libraryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/ShapeLibraryId"},"description":"ID of the standard shape library.","example":"flowchart"}],"responses":{"200":{"description":"OK. Returns an array of shapes available within the specified standard shape library.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ShapeLibraryShape"}}}}},"400":{"description":"Bad Request. Occurs when the pageToken is invalid or malformed."},"401":{"description":"Missing or invalid authentication credentials."},"403":{"description":"Forbidden. Occurs when the authorized token does not have permission to access shape libraries."},"404":{"description":"Not Found. No standard shape library with the given libraryId exists."}}}},"/v1/accounts/me/statuses":{"get":{"summary":"Get Statuses","description":"Returns the paginated list of statuses configured for the authenticated account. Deleted statuses are excluded from results.","operationId":"getStatuses","tags":["Accounts"],"security":[{"ApiKey":["AccountReadonly"]},{"OAuth2":["account.info"]}],"responses":{"200":{"description":"OK. Returns a list of statuses for the account.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Status"}}}}},"403":{"description":"Forbidden. Token does not have the required scope."}}}},"/v1/documents/{documentId}/mermaidDiagrams":{"post":{"summary":"Create Mermaid Diagram","description":"Creates a Mermaid diagram in a document from Mermaid markup.\n\nCreating, retrieving, listing, and updating Mermaid diagrams in existing documents share a per-account rate limit.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentEdit`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content`\n- `lucidspark.document.content`\n- `lucid.document.content`","operationId":"createMermaidDiagram","tags":["Mermaid"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidspark.document.content","lucid.document.content"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document in which to create the Mermaid diagram.","example":"110808fd-4553-4316-bccf-4f25ff59a532"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMermaidDiagramRequest"}}}},"responses":{"201":{"description":"Created. Returns the ID of the new Mermaid diagram.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MermaidDiagramIdResponse"}}}},"400":{"description":"Bad Request if the request body is invalid, the markup exceeds 100,000 characters, or the page ID is unknown."},"403":{"description":"Forbidden if the app making the request does not have write permission to the document, or if the document does not exist."},"404":{"description":"Not Found if a resource required to create the Mermaid diagram does not exist."},"409":{"description":"Conflict if the Mermaid diagram cannot be created because of a conflicting document change."},"429":{"description":"Too Many Requests if the account exceeds the shared limit of 60 Mermaid diagram requests per minute.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}},"get":{"summary":"List Mermaid Diagrams","description":"Returns a paginated list of Mermaid diagrams in a Lucidchart or Lucidspark document.\n\nCreating, retrieving, listing, and updating Mermaid diagrams in existing documents share a per-account rate limit.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentReadonly`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content:readonly`\n- `lucidspark.document.content:readonly`\n- `lucid.document.content:readonly`","operationId":"listMermaidDiagrams","tags":["Mermaid"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.content:readonly","lucidspark.document.content:readonly","lucid.document.content:readonly"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document containing the Mermaid diagrams.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":200},"description":"Number of Mermaid diagrams to return. Values of 0 or greater than 200 return up to 200 diagrams.","example":100},{"name":"pageToken","in":"query","required":false,"schema":{"type":"string"},"description":"Token from the previous response's Link header used to retrieve the next page."}],"responses":{"200":{"description":"OK. Returns the requested page of Mermaid diagrams.","headers":{"Link":{"description":"Link to the next page when more Mermaid diagrams are available.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["diagrams"],"properties":{"diagrams":{"type":"array","items":{"$ref":"#/components/schemas/MermaidDiagram"}}}}}}},"400":{"description":"Bad Request if the document ID, page size, or page token is invalid, or if the document is not a Lucidchart or Lucidspark document."},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document does not exist."},"404":{"description":"Not Found if Mermaid diagram data cannot be found for the document."},"429":{"description":"Too Many Requests if the account exceeds the shared limit of 60 Mermaid diagram requests per minute.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/documents/{documentId}/mermaidDiagrams/{mermaidId}":{"get":{"summary":"Get Mermaid Diagram","description":"Returns a Mermaid diagram in a Lucidchart or Lucidspark document, including its markup.\n\nCreating, retrieving, listing, and updating Mermaid diagrams in existing documents share a per-account rate limit.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentReadonly`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content:readonly`\n- `lucidspark.document.content:readonly`\n- `lucid.document.content:readonly`","operationId":"getMermaidDiagram","tags":["Mermaid"],"security":[{"ApiKey":["DocumentReadonly"]},{"OAuth2":["lucidchart.document.content:readonly","lucidspark.document.content:readonly","lucid.document.content:readonly"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document containing the Mermaid diagram.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"name":"mermaidId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the Mermaid diagram to retrieve.","example":"mermaid_123456789"}],"responses":{"200":{"description":"OK. Returns the Mermaid diagram.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MermaidDiagram"}}}},"400":{"description":"Bad Request if the document ID or Mermaid diagram ID is malformed, or if the document is not a Lucidchart or Lucidspark document."},"403":{"description":"Forbidden if the app making the request does not have permission to the document, or if the document does not exist."},"404":{"description":"Not Found if the Mermaid diagram does not exist in the document."},"429":{"description":"Too Many Requests if the account exceeds the shared limit of 60 Mermaid diagram requests per minute.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}},"patch":{"summary":"Update Mermaid Diagram","description":"Replaces the markup of an existing Mermaid diagram in a document.\n\nCreating, retrieving, listing, and updating Mermaid diagrams in existing documents share a per-account rate limit.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentEdit`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content`\n- `lucidspark.document.content`\n- `lucid.document.content`","operationId":"updateMermaidDiagram","tags":["Mermaid"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidspark.document.content","lucid.document.content"]}],"parameters":[{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document containing the Mermaid diagram.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"name":"mermaidId","in":"path","required":true,"schema":{"type":"string"},"description":"ID of the Mermaid diagram to update.","example":"mermaid_123456789"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMermaidDiagramRequest"}}}},"responses":{"200":{"description":"OK. Returns the ID of the updated Mermaid diagram.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MermaidDiagramIdResponse"}}}},"400":{"description":"Bad Request if the request body is invalid or the markup exceeds 100,000 characters."},"403":{"description":"Forbidden if the app making the request does not have write permission to the document, or if the document does not exist."},"404":{"description":"Not Found if the Mermaid diagram does not exist."},"409":{"description":"Conflict if the Mermaid diagram cannot be updated because of a conflicting document change."},"429":{"description":"Too Many Requests if the account exceeds the shared limit of 60 Mermaid diagram requests per minute.","headers":{"Retry-After":{"$ref":"#/components/headers/RetryAfter"}}}}}},"/v1/documents/{id}/requestAccess":{"post":{"summary":"Request Document Access","description":"Sends a request on behalf of the authenticated user asking the document's owner to grant them the provided role on the document.","operationId":"createDocumentPermissionRequest","tags":["Documents Collaboration"],"security":[{"ApiKey":["DocumentAccessRequest"]},{"OAuth2":["lucid.document.accessRequest","lucidchart.document.accessRequest","lucidspark.document.accessRequest","lucidscale.document.accessRequest"]}],"parameters":[{"$ref":"#/components/parameters/DocumentShareLinkDocumentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/SharingRole"},"message":{"type":"string","description":"Message to include with the access request sent to the document's owner."}},"required":["message","role"]}}}},"responses":{"204":{"description":"No Content. The access request was successfully sent."},"403":{"description":"Forbidden if the app making the request does not have permission to request access to the document, or if the document has been deleted, or does not exist."},"429":{"description":"Too Many Requests if the user has sent too many access requests for the document. The `Retry-After` header indicates how long to wait before retrying."}}}},"/v1/documents/mermaidDiagrams":{"post":{"summary":"Create Mermaid Diagram in New Document","description":"Creates a new Lucidchart or Lucidspark document containing one Mermaid diagram.\nThe diagram is placed on the document's first page. This is a shortcut for\ncreating a document with Lucid Standard Import content. When `product` is omitted,\nthe document is a Lucidchart document.\n\n## Valid Authentication Methods\n\n**API Key Grants:**\n- `DocumentEdit`\n\n**OAuth 2.0 User Token Scopes:**\n- `lucidchart.document.content`\n- `lucidchart.document.app.folder`\n- `lucidspark.document.content`\n- `lucidspark.document.app.folder`\n- `lucid.document.content`","operationId":"createDocumentWithMermaid","tags":["Mermaid"],"security":[{"ApiKey":["DocumentEdit"]},{"OAuth2":["lucidchart.document.content","lucidchart.document.app.folder","lucidspark.document.content","lucidspark.document.app.folder","lucid.document.content"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title","markup"],"properties":{"title":{"type":"string","maxLength":300,"description":"Title of the new document."},"pageTitle":{"type":"string","description":"Title of the first page. Defaults to Page 1."},"markup":{"type":"string","minLength":1,"maxLength":50000,"description":"Mermaid markup to place in the new document.","example":"graph TD; A-->B;"},"svg":{"type":"boolean","description":"When true, renders the diagram as SVG. When omitted, rendering follows the native Mermaid feature flag."},"product":{"$ref":"#/components/schemas/CreatableProduct"},"parent":{"type":"number","description":"Folder ID for the new document."},"position":{"allOf":[{"$ref":"#/components/schemas/MermaidDiagramPosition"}],"description":"Position on the first page. Defaults to the page origin."}}}}}},"responses":{"201":{"description":"Created. Returns the new Document resource and Mermaid diagram ID.","content":{"application/json":{"schema":{"type":"object","required":["document","mermaidId"],"properties":{"document":{"$ref":"#/components/schemas/Document"},"mermaidId":{"type":"string","description":"ID of the created Mermaid diagram.","example":"mermaid_123456789"}}}}}},"400":{"description":"Bad Request if the body or Mermaid markup is invalid."},"403":{"description":"Forbidden if the token cannot create the requested document."}}}},"/v1/accounts/me/documents/{id}":{"get":{"summary":"Get/Export Document","description":"Retrieves information about a document or exports it as an image for an account owner or document admin. The document must belong to the requesting admin's account. A direct share is not required. Authenticate with an admin OAuth2 scope or a `DocumentAdmin` API key grant.\n\n**Get Document:** Returns document metadata, including owner information.\n\n**Export Document:** Exports a given document in a specified image format. When exporting oversized images, the resolution may be automatically scaled down to enable performant API requests.\n","operationId":"accountAdminGetOrExportDocument","tags":["Document Access"],"security":[{"ApiKey":["DocumentAdmin"]},{"OAuth2":["lucid.document.content:admin.readonly","lucidchart.document.content:admin.readonly","lucidscale.document.content:admin.readonly","lucidspark.document.content:admin.readonly"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document to be retrieved or exported.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},{"name":"Accept","in":"header","description":"When using the Export Document API, the format of the exported document is set via the `Accept` header. This header contains up to two parts, separated by a semicolon:\n  * A prefix stating which type of image you would like the document exported as. Options are:\n    * `image/jpeg`\n    * `image/png`\n  * Optionally, you can also supply the dots per inch (DPI) you want the exported image to have. If this value is not provided, a default of 160 will be used. For example:\n    * `image/png;dpi=256`\n    * `image/jpeg;dpi=64`","required":false,"schema":{"type":"string","example":"image/png"}},{"name":"page","in":"query","description":"1-based page index of the document to export. Defaults to the first page. Only a single page is allowed. Optional for export operation. Cannot be provided when pageId is provided.","required":false,"schema":{"type":"number","default":1}},{"name":"pageId","in":"query","description":"Specific page of the document to export. Only a single page is allowed. Optional for export operation. Cannot be provided when page is provided.","example":"J~65X_X714o2","required":false,"schema":{"type":"string"}},{"name":"crop","in":"query","description":"Specifies the crop settings for the document export. Optional for export operation. Possible values are\n  * Default (no crop parameter) - Exports the entire page canvas area that contains your content. Automatically adjusts to include all items on the page, including the space between them and maintains the relative positioning and spacing of your document elements\n  * `x, y, width, height` - Crop to the specified region (in pixels) on the page. Example crop=1000,300,30,7\n    * Note: The region (in pixels) is accurate to the number of pixels on the canvas. The number of pixels of the outputted image will only match the crop window at a DPI of 160.\n  * `content` - Crop to page content. Example crop=content","required":false,"schema":{"type":"string"}},{"name":"includePageFill","in":"query","description":"Whether PNG exports include the page background. Defaults to true.","required":false,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"OK with Document resource containing information about the requested document or the binary data in the response body for exports. The Accept header specifies the type of image for exports.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}},"image/png":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Bad Request. More than one page and/or pageId was provided for export."},"403":{"description":"Forbidden. The app making the request does not have permission to the document, or if the document has been deleted or does not exist."},"404":{"description":"Not Found. The specified page or pageID could not be found for export."},"406":{"description":"Not Acceptable. The specified image type is not supported for export."},"429":{"description":"Too Many Requests. If the account makes more than 75 requests in 5 seconds."}}},"patch":{"summary":"Admin Update Document","description":"Allows account admins to update custom tags and classification on any document in their account.","operationId":"accountAdminUpdateDocument","tags":["Document Access"],"security":[{"ApiKey":["DocumentAdmin"]},{"OAuth2":["lucidchart.document.content:admin","lucidscale.document.content:admin","lucidspark.document.content:admin","lucid.document.content:admin"]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document to update.","example":"110808fd-4553-4316-bccf-4f25ff59a532"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminPatchDocumentRequestBody"}}}},"responses":{"200":{"description":"OK with Document resource containing information about the updated document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Document"}}}},"400":{"description":"Bad Request. Only custom tags and classification ID are supported. Custom tags must be non-empty with no leading or trailing whitespace. Classification ID must be null or identify an existing classification."},"403":{"description":"Forbidden. The app making the request does not have permission to the document, or the document does not exist."},"409":{"description":"Conflict. A conflict occurred when saving the document."}}}}},"components":{"schemas":{"AdminPatchDocumentRequestBody":{"type":"object","additionalProperties":false,"description":"Request body for updating document custom tags and classification using account admin permissions.","properties":{"customTags":{"type":"array","items":{"type":"string"},"description":"List of custom tags to assign to the document. Including this field overwrites all existing tags on the document with the provided values. Each tag must be non-empty and must not start or end with whitespace. Omitting this field leaves existing tags unchanged; set to an empty array to clear all tags.","example":["in progress"]},"classificationId":{"type":"string","format":"uuid","nullable":true,"description":"ID of the classification to assign to the document. Omitting this field leaves the existing classification unchanged; set to null to remove the classification.","example":"1cdad938-bf0f-4a0c-a2f8-bf4eb94225ce"}}},"AccountInformationResource":{"type":"object","properties":{"id":{"type":"number","description":"The unique ID for the authenticated account."},"name":{"type":"string","nullable":true,"description":"The name assigned to the account. This field is null if no name has been assigned. Names are usually set by an admin and can be a helpful way to orient a user by informing them about which account an app will interact with."}},"required":["id","name"]},"Classification":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique ID of the classification.","example":"b7db4f07-5225-4a0c-8313-0fe199eec844"},"label":{"type":"string","description":"Display name of the classification.","example":"private"},"priority":{"type":"integer","description":"Priority of the classification.","example":1},"description":{"type":"string","nullable":true,"description":"Optional description of the classification.","example":"For documents with sensitive customer data"},"guidelineUrl":{"type":"string","nullable":true,"description":"Optional URL linking to classification guidelines.","example":"https://lucid.app/lucidspark/classification-guidelines"}},"required":["id","label","priority"]},"Role":{"type":"string","enum":["owner","editandshare","edit","comment","view"],"description":"The Collaborator Role on the document or folder"},"Product":{"type":"string","enum":["lucidchart","lucidscale","lucidspark"],"description":"The Lucid Suite product that a document was created in.","example":"lucidchart"},"CreatableProduct":{"type":"string","enum":["lucidchart","lucidspark"],"description":"The Lucid Suite product types that can be created.","example":"lucidchart"},"DocumentUserCollaborator":{"type":"object","properties":{"documentId":{"type":"string","format":"uuid","description":"Document ID"},"userId":{"type":"integer","description":"User ID"},"role":{"$ref":"#/components/schemas/Role"},"created":{"type":"string","format":"date-time","description":"Date and time when the collaboration was created"}},"required":["documentId","userId","role","created"]},"FolderUserCollaborator":{"type":"object","properties":{"folderId":{"type":"integer","description":"Folder ID"},"userId":{"type":"integer","description":"User ID"},"role":{"$ref":"#/components/schemas/Role"},"created":{"type":"string","format":"date-time","description":"Date and time when the collaboration was created"}},"required":["folderId","userId","role","created"]},"FolderGroupCollaborator":{"type":"object","properties":{"folderId":{"type":"integer","description":"Folder ID"},"groupId":{"type":"integer","description":"Group ID"},"role":{"$ref":"#/components/schemas/Role"},"created":{"type":"string","format":"date-time","description":"Date and time when the collaboration was created"}},"required":["folderId","groupId","role","created"]},"CustomAttribute":{"type":"object","properties":{"type":{"type":"string","enum":["singleLineText","multiLineText","singleSelectDropdown","multiSelectDropdown","webLink","numericalRange","hierarchyDropdown"],"description":"The custom attribute type","example":"singleLineText"},"name":{"type":"string","nullable":true,"description":"Title of the custom attribute. hierarchyDropdown attributes do not have names.","example":"Sample Label"},"value":{"nullable":true,"oneOf":[{"type":"string"},{"type":"number"},{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/DataPair"},{"type":"string"}]}}],"description":"The value assigned to the custom attribute. The type of this value is determined by the Attribute Type.","example":null}},"description":"Object representing a custom attribute value for a document.","required":["type"]},"DataPair":{"type":"object","properties":{"name":{"type":"string","description":"Custom data key"},"value":{"type":"string","nullable":true,"description":"Custom data value"}},"description":"Object representing a key-value pair of data.","required":["name","value"],"example":{"name":"City","value":"New York"}},"PatchDocumentRequestBody":{"type":"object","description":"Request body for updating a document. At least one field should be provided.","properties":{"title":{"type":"string","description":"New title for the document. Must be non-empty, at most 300 characters, and must not start or end with whitespace.","example":"My Updated Document"},"parent":{"nullable":true,"description":"ID of the folder or repository to move the document into. Set to null to move the document to the root folder.\nFor repositories, use the repository ID prefixed with `repo_` (e.g., `repo_12345`). For folders, use the numeric folder ID.\n","oneOf":[{"type":"integer","description":"Numeric folder ID."},{"type":"string","description":"Repository ID prefixed with `repo_`."}],"example":12345},"customTags":{"type":"array","items":{"type":"string"},"description":"List of custom tags to assign to the document. Including this field overwrites all existing tags on the document with the provided values. Each tag must be non-empty and must not start or end with whitespace. Omitting this field leaves existing tags unchanged; set to an empty array to clear all tags.","example":["in progress"]},"classificationId":{"type":"string","format":"uuid","nullable":true,"description":"ID of the classification to assign to the document. Omitting this field leaves the existing classification unchanged; set to null to remove the classification.","example":"1cdad938-bf0f-4a0c-a2f8-bf4eb94225ce"}}},"Document":{"type":"object","properties":{"documentId":{"type":"string","format":"uuid","description":"Unique ID of the document","example":"110808fd-4553-4316-bccf-4f25ff59a532"},"title":{"type":"string","description":"Title of the document","example":"document title"},"editUrl":{"type":"string","format":"uri","description":"Link to edit the document","example":"https://lucid.app/lucidchart/110808fd-4553-4316-bccf-4f25ff59a532/edit"},"viewUrl":{"type":"string","format":"uri","description":"Link to view the document","example":"https://lucid.app/lucidchart/110808fd-4553-4316-bccf-4f25ff59a532/view"},"version":{"type":"integer","description":"Most recent version","example":101},"pageCount":{"type":"integer","description":"Number of pages within the document","example":5},"canEdit":{"type":"boolean","description":"If requesting user can edit the document","example":false},"created":{"type":"string","format":"date-time","description":"Date and time of when the document was created","example":"2019-04-22T13:47:23Z"},"creatorId":{"type":"integer","description":"ID of user who created and owns the document","example":12345},"lastModified":{"type":"string","format":"date-time","description":"Date and time of when the document was last modified","example":"2020-06-26T16:29:37Z"},"lastModifiedUserId":{"type":"integer","description":"ID of user who most recently modified the document","example":54321},"customAttributes":{"type":"array","items":{"$ref":"#/components/schemas/CustomAttribute"},"description":"List of any custom attributes belonging to the document. Populated for Enterprise Accounts only.","example":[]},"customTags":{"type":"array","items":{"type":"string"},"description":"List of any custom tags assigned to the document","example":["in progress"]},"product":{"$ref":"#/components/schemas/Product"},"status":{"type":"string","nullable":true,"description":"Current assigned status of the document","example":"Complete"},"classification":{"type":"string","nullable":true,"description":"Current assigned classification of the document","example":"Private"},"classificationId":{"type":"string","format":"uuid","nullable":true,"description":"Current assigned classification ID of the document.","example":"b7db4f07-5225-4a0c-8313-0fe199eec844"},"trashed":{"type":"string","format":"date-time","nullable":true,"description":"If defined, the timestamp when the document was moved to the trash","example":null},"parent":{"type":"integer","nullable":true,"description":"ID of the parent folder","example":null},"repository":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Repository"}]},"accountId":{"type":"integer","nullable":true,"description":"ID of Lucid account that owns the document"},"owner":{"$ref":"#/components/schemas/DocumentOwner"}},"required":["documentId","title","editUrl","viewUrl","version","pageCount","canEdit","created","creatorId","lastModified","lastModifiedUserId","customAttributes","customTags","product","accountId"],"example":{"documentId":"110808fd-4553-4316-bccf-4f25ff59a532","title":"document title","editUrl":"https://lucid.app/lucidchart/110808fd-4553-4316-bccf-4f25ff59a532/edit","viewUrl":"https://lucid.app/lucidchart/110808fd-4553-4316-bccf-4f25ff59a532/view","version":101,"pageCount":5,"canEdit":false,"created":"2019-04-22T13:47:23Z","creatorId":12345,"lastModified":"2020-06-26T16:29:37Z","lastModifiedUserId":54321,"customAttributes":[],"customTags":["in progress"],"product":"lucidchart","status":"Complete","classification":"Private","trashed":null,"parent":null,"repository":null,"owner":{"id":123456,"type":"user","name":"John Doe"},"accountId":1234}},"DocumentContent":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Document ID","example":"8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"title":{"type":"string","description":"Title of the document","example":"document title"},"product":{"$ref":"#/components/schemas/Product"},"pages":{"type":"array","items":{"$ref":"#/components/schemas/Page"},"description":"Array of Page resources on the document"},"accountId":{"type":"integer","nullable":false,"description":"ID of Lucid account that owns the document"},"data":{"$ref":"#/components/schemas/Data","description":"Data contained on the document"}},"description":"Object representing the contents of a Lucidchart document","required":["id","title","product","pages","accountId","data"],"example":{"id":"8e7b19ec-27ff-40e3-beb8-03f51b1661b2","title":"document title","product":"lucidchart","pages":[],"accountId":1234,"data":{"collections":[]}}},"DocumentOwner":{"type":"object","properties":{"id":{"type":"number","description":"Id of either the user or the account, depending on the type of the document user resource.","example":123456},"type":{"type":"string","description":"Specifies if the owner resource is referring to a user or an account. Value will be either \"user\" or \"account\".","example":"user"},"name":{"type":"string","description":"Full name of the user that owns this document. This field is excluded if this document is owned by an account.","example":"John Doe"}}},"Repository":{"type":"object","properties":{"repositoryId":{"type":"string","description":"the ID of the repository","example":"repo_2000008"}}},"Page":{"type":"object","properties":{"id":{"type":"string","description":"Page ID","example":"YGcM5DNywbTK"},"title":{"type":"string","description":"Title of the page","example":"document page title"},"index":{"type":"integer","description":"0-Based index of the page in the document","example":0},"items":{"$ref":"#/components/schemas/Items","description":"Shapes, Lines, Groups, and Layers on the page"},"customData":{"type":"array","items":{"$ref":"#/components/schemas/DataPair"},"description":"Array of Data Pair resources linked to the page"},"linkedData":{"type":"array","items":{"$ref":"#/components/schemas/LinkedData"},"description":"Array of Linked Data resources linked to the page"}},"description":"Object representing a single page of a Lucidchart document.","required":["id","title","index","items","customData","linkedData"],"example":{"id":"YGcM5DNywbTK","title":"document page title","index":0,"items":{"shapes":[],"lines":[],"groups":[],"layers":[]},"customData":[],"linkedData":[]}},"Items":{"type":"object","properties":{"shapes":{"type":"array","items":{"$ref":"#/components/schemas/Shape"},"description":"Array of Shape resources"},"lines":{"type":"array","items":{"$ref":"#/components/schemas/Line"},"description":"Array of Line resources"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/Group"},"description":"Array of Group resources"},"layers":{"type":"array","items":{"$ref":"#/components/schemas/Layer"},"description":"Array of Layer resources"}},"description":"Individual shapes, lines, groups, and layers all contain a unique ItemId identifying the object.","required":["shapes","lines","groups","layers"]},"Shape":{"type":"object","properties":{"id":{"type":"string","description":"Shape ID","example":"VTAu-oQASzul"},"class":{"type":"string","description":"A unique string representing the type of the shape (e.g., ProcessBlock)","example":"ProcessBlock"},"textAreas":{"type":"array","items":{"$ref":"#/components/schemas/TextArea"}},"customData":{"type":"array","items":{"$ref":"#/components/schemas/DataPair"}},"linkedData":{"type":"array","items":{"$ref":"#/components/schemas/LinkedData"}},"contains":{"$ref":"#/components/schemas/Contains","description":"If the shape is a container (e.g., a frame), lists the IDs of shapes, lines, and groups contained within it"},"image":{"$ref":"#/components/schemas/Image","description":"If the shape has an image fill, describes the image"},"linkUrl":{"type":"string","description":"The external website or destination URL attached to the shape, if configured.","example":"https://example.com"},"note":{"type":"string","description":"Plain text of the note attached to the shape, without rich-text formatting. Omitted when the note is absent or empty.","example":"Review this step before approval."}},"required":["id","class","textAreas","customData","linkedData"],"description":"Object representing a shape placed on a page of a document. Note that the ItemId of a shape is unique across all groups, layers, shapes, and lines."},"Contains":{"type":"object","properties":{"shapes":{"type":"array","items":{"type":"string"},"description":"Array of IDs of shapes contained within the container","example":["VTAuCB8~evzW"]},"lines":{"type":"array","items":{"type":"string"},"description":"Array of IDs of lines contained within the container","example":["VTAuo_Y56.q~"]},"groups":{"type":"array","items":{"type":"string"},"description":"Array of IDs of groups contained within the container","example":["VTAu-dl6qtyx"]}},"required":["shapes","lines","groups"],"description":"Object listing the IDs of items contained within a container shape (e.g., a frame)."},"Image":{"type":"object","properties":{"type":{"type":"string","enum":["resource","user"],"description":"Whether the image is a Lucid resource image (`resource`) or a user-uploaded image (`user`)","example":"resource"},"id":{"type":"string","description":"The ID of the resource image. Present when type is `resource`.","example":"T2VkijPHy1qh"},"url":{"type":"string","description":"The URL of the user-uploaded image. Present when type is `user`.","example":"https://example.com/image.png"}},"required":["type"],"description":"Object describing the image fill on a shape."},"Line":{"type":"object","properties":{"id":{"type":"string","description":"Line ID","example":"VTAuwAeC0_R1"},"endpoint1":{"$ref":"#/components/schemas/Endpoint"},"endpoint2":{"$ref":"#/components/schemas/Endpoint"},"textAreas":{"type":"array","items":{"$ref":"#/components/schemas/TextArea"}},"customData":{"type":"array","items":{"$ref":"#/components/schemas/DataPair"}},"linkedData":{"type":"array","items":{"$ref":"#/components/schemas/LinkedData"}}},"description":"Object representing a line on the page of a document. Note that the ItemId of a line is unique across all groups, layers, shapes, and lines.","required":["id","endpoint1","endpoint2","textAreas","customData","linkedData"]},"Group":{"type":"object","properties":{"id":{"type":"string","description":"Group ID","example":"VTAu-dl6qtyx"},"members":{"type":"array","items":{"type":"string"},"description":"Array of IDs of shapes, lines, & groups contained within the group","example":["VTAuCB8~evzW","VTAuo_Y56.q~"]},"customData":{"type":"array","items":{"$ref":"#/components/schemas/DataPair"}},"linkedData":{"type":"array","items":{"$ref":"#/components/schemas/LinkedData"}}},"description":"Object representing a group on the page of a document. Note that the ItemId of a group is unique across all groups, layers, shapes, and lines.","required":["id","members"]},"Layer":{"type":"object","properties":{"id":{"type":"string","description":"Layer ID","example":"VTAu-dl6qtyx"},"name":{"type":"string","description":"The name of the layer","example":"Layer 1"},"members":{"type":"array","items":{"type":"string"},"description":"Array of IDs of shapes, lines, & groups contained within the layer","example":["VTAuCB8~evzW","VTAuo_Y56.q~"]},"customData":{"type":"array","items":{"$ref":"#/components/schemas/DataPair"}},"linkedData":{"type":"array","items":{"$ref":"#/components/schemas/LinkedData"}}},"description":"Object representing a layer on the page of a document. Note that the ItemId of a layer is unique across all groups, layers, shapes, and lines.","required":["id","name","members","customData","linkedData"]},"LinkedData":{"type":"object","properties":{"collection_id":{"type":"string","description":"Id of the collection containing the data","example":"ABAuwlf2BTy8"},"data":{"type":"array","items":{"$ref":"#/components/schemas/DataPair"},"description":"Key-value pairs from the dataset"},"primaryKeyValue":{"type":"string","description":"The value of the primary key of the dataset","example":"Pkey Value"}},"description":"Object representing data linked to a resource on a document.","required":["data","primaryKeyValue"]},"Endpoint":{"type":"object","properties":{"style":{"type":"string","description":"Line end style","example":"Arrow"},"connectedTo":{"type":"string","nullable":true,"description":"Id of shape or line the line is connected to","example":null}},"description":"Object representing the endpoint of a Line.","required":["style","connectedTo"]},"TextArea":{"type":"object","properties":{"label":{"type":"string","description":"Text area label","example":"Text"},"text":{"type":"string","description":"Text displayed in the text area. This is plain text. All formatting has been removed & formulas evaluated.","example":"Start here"}},"description":"Object representing a text area on a Shape or Line.","required":["label","text"]},"Data":{"type":"object","properties":{"collections":{"type":"array","items":{"$ref":"#/components/schemas/Collection"},"description":"Array of collections"}},"required":["collections"],"description":"Object representing an array of Collections on a document."},"Collection":{"type":"object","properties":{"id":{"type":"string","description":"Id of the collection","example":"ABAuwlf2BTy8"},"name":{"type":"string","description":"Collection name","example":"Collection 1"},"primaryKey":{"type":"array","items":{"type":"string"},"description":"The primary key column name","example":["PKey 1"]}},"required":["id","name","primaryKey"],"description":"A collection is a container inside of a source of data. A data source can have many collections, but a collection can only belong to one data source. A collection can be thought of as a tab or individual sheet in a spreadsheet file."},"BootstrapData":{"type":"object","properties":{"packageId":{"type":"string","description":"Id of the extension package which will consume this data","example":"74672098-cf36-492c-b8e6-2c4233549cd3"},"extensionName":{"type":"string","description":"Name of the editor extension which will consume this data. Note this is the name field of an editor extension found in your manifest.json file.","example":"sheets-adapter"},"minimumVersion":{"type":"string","description":"Minimum version of the extension package which will consume this data","example":"1.4.0"},"data":{"type":"object","additionalProperties":{"type":"string"},"description":"Data to provide to the extension package","example":{"a":1,"b":2}}},"required":["packageId","extensionName","minimumVersion","data"],"description":"Bootstrap data can be attached to the created document to be consumed by a specific Extension Package."},"LinkResource":{"type":"object","properties":{"document":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/LinkDocument"}]},"invitation":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/LinkInvitation"}]}},"description":"Resource representing information contained in a Lucid link."},"LinkDocument":{"type":"object","properties":{"documentId":{"type":"string","format":"uuid","example":"110808fd-4553-4316-bccf-4f25ff59a532","description":"Unique identifier of the document."},"page":{"type":"string","nullable":true,"description":"Page information of the document, if applicable."},"product":{"type":"string","example":"lucidspark","description":"The Lucid product the document belongs to."}},"description":"Information about the Document contained in the link if it exists."},"LinkInvitation":{"type":"object","properties":{"invitationId":{"type":"string","example":"inv_288b9365-685b-4bf2-9f6f-8aa9e2082542","description":"Unique identifier of the invitation."}},"description":"Information about the Invitation contained in the link if it exists."},"EmbedInformation":{"type":"object","properties":{"embedId":{"type":"string","format":"uuid","example":"ec890631-c150-461c-992f-b96533aa05f4","description":"Unique identifier of the embed."},"documentId":{"type":"string","format":"uuid","example":"001bd56d-1b10-4196-8ac6-45e3c22bd1c6","description":"Unique identifier of the document."},"embedVersion":{"type":"string","example":"snapshot-version","description":"The version of the embed."},"created":{"type":"string","format":"date-time","example":"2021-10-01T20:49:36.169Z","description":"When the embed was created."},"modified":{"type":"string","format":"date-time","example":"2021-10-01T20:49:36.169Z","description":"When the embed was last modified."}},"description":"Information about the requested Embed."},"EmbedDocument":{"type":"object","properties":{"embedId":{"type":"string","format":"uuid","example":"ec890631-c150-461c-992f-b96533aa05f4","description":"Unique identifier of the embed."},"documentId":{"type":"string","format":"uuid","example":"001bd56d-1b10-4196-8ac6-45e3c22bd1c6","description":"Unique identifier of the document."},"pageCount":{"type":"number","example":5,"description":"The number of pages on the document"},"title":{"type":"string","example":"Documentation example document","description":"The title of the document."}},"description":"Information about the docuement correlated to the requested Embed."},"SessionConfig":{"type":"object","properties":{"products":{"type":"array","items":{"$ref":"#/components/schemas/Product"},"description":"A list of Products that a user can choose a document from to be embedded. Defaults to all products."},"viewerType":{"type":"object","properties":{"default":{"$ref":"#/components/schemas/ViewerType"}},"description":"What type of viewer to load by defaults. If not specified, defaults to rich. Users can change this later."},"ui":{"$ref":"#/components/schemas/UI"},"customSettings":{"$ref":"#/components/schemas/ViewerCustomSettings"}}},"ViewerType":{"type":"string","enum":["rich","simple"],"description":"- rich: The standard Lucid viewer experience. A fully interactive viewer with zoom, panning, and support for hotspots and other interactive elements.\n- simple: A basic Lucid viewer experience that can be used in place of the rich viewer if there are performance or load time concerns. The simple viewer renders non-interactive raster images instead of a high-fidelity vector experience and is a poorer fit for viewing larger documents.\n"},"UI":{"type":"string","enum":["viewer","settings"],"description":"- viewer: When loading an existing embed, go directly to the standard embedded view of the document.\n- settings: When loading an existing embed, show the user the embed settings interface before taking them to the standard embed view of the document.\n"},"ViewerCustomSettings":{"type":"string","enum":["postMessage","none"],"description":"- postMessage: Display a \"Settings for <app>\" link in the embed settings view where users can update the settings. When clicked, the OpenCustomSettings postMessage event would be fired so the app can display its own customized settings view.\n- none: \"Settings for <app>\" link would not be available in the settings editor.\n"},"FolderAttribute":{"type":"object","description":"An attribute assigned to the folder.","properties":{"name":{"type":"string","description":"Name of the attribute","example":"Sample Label"},"value":{"description":"Value of the attribute. Can be any type, but attributes with the same name will always have the same type.","example":"Sample Value"}}},"Folder":{"type":"object","description":"A standard representation of a folder.","properties":{"id":{"type":"number","description":"Unique ID of the folder","example":123456789},"type":{"$ref":"#/components/schemas/FolderType"},"name":{"type":"string","description":"Name of the folder","example":"Folder Name"},"parent":{"type":"number","description":"ID of the parent folder.","example":123456788,"nullable":true},"created":{"type":"string","format":"date-time","description":"Date and time of when the folder was created","example":"2020-06-26T16:29:37Z"},"trashed":{"type":"string","format":"date-time","nullable":true,"description":"Date and time of when the folder was trashed. Null when the folder is not trashed.","example":"2022-01-20T12:14:18Z"},"attributes":{"type":"array","description":"An array of attributes assigned to the folder. Can be null or empty.","items":{"$ref":"#/components/schemas/FolderAttribute"}}},"required":["id","type","name","created"]},"FolderType":{"type":"string","description":"* folder - Folders can live in other folders, team folders, or the root of a user’s folder manager (\"My Documents\"). A folder in \"My Documents\" will have a null parent field.\n* team   - Team folders can never live in another folder and are always located in the \"Team Folders\" section of a user's folder manager. Team folders will not have a parent field. Learn more\n","enum":["folder","team"],"example":"folder"},"FolderContent":{"type":"object","description":"A representation of a single item contained in a folder.","properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"number"}],"description":"Unique ID of the folder or document being referred to. This field will be a Number for folders and a UUID for documents.","example":123456789},"type":{"$ref":"#/components/schemas/FolderContentType"},"name":{"type":"string","description":"Name of the folder or document","example":"Folder Name"},"isShortcut":{"type":"boolean","description":"A boolean value indicating whether or not the folder or document is a shortcut.","example":false},"accountId":{"type":"integer","nullable":true,"description":"ID of the Lucid account that owns the Folder Content Resource.","example":1234},"product":{"$ref":"#/components/schemas/Product"}},"required":["id","type","name","isShortcut","accountId"]},"FolderContentType":{"type":"string","description":"* folder  -  Type denoting that the Folder Content Resource is a folder and will have a Number id field and no product field.\n* document  -  Type denoting that the Folder Content Resource is a document and will have a UUID id field and will contain a product field.\n","enum":["folder","document"],"example":"document"},"DocumentLinkSecurity":{"type":"object","properties":{"restrictToAccount":{"type":"boolean","description":"Whether or not users outside the document's account can accept the share link. Changing this value to true will immediately revoke access for any external users who previously gained access through this link."},"expires":{"type":"string","format":"date-time","nullable":true,"description":"The date and time the share link expires, or null when it does not expire."},"passcode":{"type":"string","description":"If defined, the required passcode to accept the share link. The passcode length must be between 1 – 80 characters.","minLength":1,"maxLength":80},"allowAnonymous":{"type":"boolean","description":"Whether or not the share link allows for anonymous guests."}},"required":["restrictToAccount","allowAnonymous"],"example":{"restrictToAccount":false,"expires":"2023-12-11T21:48:35.293Z","passcode":"password","allowAnonymous":false}},"SharingRole":{"type":"string","enum":["editandshare","edit","comment","view"],"description":"Roles determine what actions an invitation will grant on a document. Invitations to a document only grant the specified level of access to just that one document. If a link's role is changed, the new role applies immediately to all users who accessed via that link.\n- `editandshare`: View, comment on, edit, and control which users can access the document.\n- `edit`: View, comment on, and edit the document.\n- `comment`: View the document. Leave comments on the document.\n- `view`: View the document.\n"},"DocumentShareLink":{"type":"object","properties":{"shareLinkId":{"type":"string","description":"Id of the share link.","example":"inv_8a38797a-e5fc-4479-8492-e000dc93cb60"},"documentId":{"type":"string","format":"uuid","description":"Id of the document the share link belongs to.","example":"f6bf19b5-d109-4ef5-92b2-cdaf0de43001"},"role":{"$ref":"#/components/schemas/SharingRole"},"linkSecurity":{"$ref":"#/components/schemas/DocumentLinkSecurity"},"created":{"type":"string","format":"date-time","description":"The date and time the share link was created.","example":"2022-11-11T21:48:35.293Z"},"createdBy":{"type":"number","description":"User Id of the user that created the share link.","example":1280},"lastModified":{"type":"string","format":"date-time","description":"The date and time the share link was last modified.","example":"2022-11-11T21:48:35.293Z"},"acceptUrl":{"type":"string","format":"uri","description":"Link to accept the share link invitation.","example":"https://lucid.app/lucidchart/f6bf19b5-d109-4ef5-92b2-cdaf0de43001/edit?invitationId=inv_8a38797a-e5fc-4479-8492-e000dc93cb60"}},"required":["shareLinkId","documentId","role","linkSecurity","created","createdBy","lastModified","acceptUrl"]},"Avatar":{"type":"object","properties":{"type":{"type":"string","enum":["url"],"example":"url","description":"The kind of avatar. Currently always `url`, indicating the avatar is referenced by a link. Additional avatar kinds may be introduced in the future."},"link":{"type":"string","example":"https://www.gravatar.com/avatar/00000000000000000000000000000000?s=200&d=404","description":"A URL pointing to the user's avatar image."}},"required":["type","link"],"description":"A reference to a user's avatar image. When the user has no uploaded avatar, this falls back to their Gravatar image."},"User":{"type":"object","properties":{"accountId":{"type":"number","example":100,"description":"The unique ID for the user's account."},"enabled":{"type":"boolean","example":true,"description":"Whether the user can authenticate to Lucid. Corresponds to the SCIM active attribute."},"email":{"type":"string","example":"john-doe@example.com","description":"The user's email."},"name":{"type":"string","example":"John Doe","description":"The user's full name."},"userId":{"type":"number","example":101,"description":"The unique ID for the user."},"username":{"type":"string","example":"johndoe","description":"The user's username."},"roles":{"type":"array","items":{"$ref":"#/components/schemas/UserRole"},"example":["billing-admin","team-admin"],"description":"A list of administrative roles assigned to the user."},"avatar":{"description":"A reference to the user's avatar image, falling back to their Gravatar image. Null when the user has no avatar.","oneOf":[{"$ref":"#/components/schemas/Avatar"},{"type":"object","nullable":true,"enum":[null]}]}},"description":"A standard representation of a user."},"UserRole":{"type":"string","enum":["account-owner","billing-admin","enterprise-shield-admin","developer","document-admin","group-admin","organizational-group-admin","team-admin","team-manager","template-admin","unknown-role"],"description":"Allows various administrative actions."},"CreateUserBody":{"type":"object","properties":{"email":{"type":"string","example":"john-doe@example.com","description":"The user's email."},"firstName":{"type":"string","example":"John","description":"The user's first name."},"lastName":{"type":"string","example":"Doe","description":"The user's last name."},"username":{"type":"string","example":"john-doe@example.com","description":"The user's username. If not provided the email will be used as the username."},"password":{"type":"string","example":"`.~b\"J<CA95m`bV@","description":"The user's password."},"roles":{"type":"array","items":{"$ref":"#/components/schemas/UserRole"},"example":["billing-admin","team-admin"],"description":"A list of roles assigned to the user."}},"required":["email","firstName","lastName"]},"Profile":{"type":"object","properties":{"accountId":{"type":"number","example":100,"description":"The unique ID for the user's account."},"username":{"type":"string","example":"johndoe","description":"Username of the user."},"email":{"type":"string","example":"john-doe@example.com","description":"Email of the user."},"fullName":{"type":"string","example":"John Doe","description":"Full name of the user."},"id":{"type":"number","example":101,"description":"ID of the user."},"avatar":{"description":"A reference to the user's avatar image, falling back to their Gravatar image. Null when the user has no avatar.","oneOf":[{"$ref":"#/components/schemas/Avatar"},{"type":"object","nullable":true,"enum":[null]}]}},"description":"The Profile resource contains basic profile information about a user."},"OAuth2Token":{"type":"object","properties":{"access_token":{"type":"string","description":"Token to be used when making requests with OAuth 2.0 authentication.","example":"oauth2-Yzh4Y2Q3ZTVhY2FjYjkwOGJlZGNjNjU5NDM2NjgzZmUwMmNmMjkzM..."},"client_id":{"type":"string","description":"The client ID.","example":"30VYbvlkqZv-SmJd7fTdpH9B9et2yqZA6Wvi5NY_"},"expires_in":{"type":"number","description":"The lifetime in seconds of the access token.","example":3600},"expires":{"type":"number","format":"int64","description":"Time until this token expires (expressed in milliseconds since Unix epoch).","example":1605732868411},"refresh_token":{"type":"string","description":"If the token includes the scope `offline_access`, then a refresh token will be provided.","example":"oauth2-AVU=-yPcwtzLkusIEnT7D9slQH4g8Ur0MdpUmpT0Z6BSMf6lmesRpTTSBGNniKd"},"scopes":{"type":"array","items":{"type":"string"},"description":"Scopes granted on this token.","example":["lucidchart.document.app","offline_access"]},"token_type":{"type":"string","description":"Value is always \"bearer\".","example":"bearer"},"user_id":{"type":"number","description":"ID of the user this token is on behalf of. Only returned when the token was granted on behalf of a user. Mutually exclusive with `account_id`.","example":341},"account_id":{"type":"number","description":"ID of the account this token is on behalf of. Only returned when the token was granted on behalf of an account. Mutually exclusive with `user_id`.","example":52}},"required":["access_token","user_id","account_id","client_id","expires_in","expires","scopes","token_type"]},"OAuth2IntrospectToken":{"type":"object","description":"Information about an OAuth access or refresh token. Inactive tokens return only `active: false`.\nOther fields are returned when applicable to an active token. User and account tokens have\n`user_id` or `account_id`, respectively.\n","example":{"active":false},"properties":{"active":{"type":"boolean","description":"A boolean value indicating whether or not the token is active.","example":true},"client_id":{"type":"string","description":"The client ID.","example":"30VYbvlkqZv-SmJd7fTdpH9B9et2yqZA6Wvi5NY_"},"expires_in":{"type":"number","description":"The remaining lifetime in seconds of the access token.","example":3500},"expires":{"type":"number","format":"int64","description":"Timestamp for when this token expires (expressed in milliseconds since Unix epoch).","example":1605732868411},"scope":{"type":"string","description":"Space-separated list of scopes allowed on this token.","example":"document.app offline_access"},"token_type":{"type":"string","description":"The type of token returned (currently, always \"bearer\").","example":"bearer"},"user_id":{"type":"number","description":"ID of the user this token is on behalf of. Only returned when the token was granted on behalf of a user. Mutually exclusive with `account_id`.","example":1001},"account_id":{"type":"number","description":"ID of the account this token is on behalf of. Only returned when the token was granted on behalf of an account. Mutually exclusive with `user_id`.","example":52}},"required":["active"]},"LegalHold":{"type":"object","properties":{"LegalHoldId":{"type":"string","format":"uuid","description":"Unique ID of the legal hold.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},"AccountId":{"type":"number","description":"Unique ID for the creating admin’s account.","example":100},"StartTime":{"type":"string","format":"date-time","description":"Start time of the legal hold.","example":"2025-01-01T16:18:26Z"},"EndTime":{"type":"string","format":"date-time","description":"End time of the legal hold.","example":"2025-12-01T16:18:26Z"},"Title":{"type":"string","description":"Title of the legal hold.","example":"New Legal Hold"},"Description":{"type":"string","description":"Description of the legal hold.","example":"Legal hold example"},"Keywords":{"type":"string","description":"Keyword(s) of the legal hold.","example":"alpha"},"Created":{"type":"string","format":"date-time","description":"Time that the legal hold was created.","example":"2024-12-01T16:25:44Z"},"Modified":{"type":"string","format":"date-time","description":"Time that the legal hold was last modified.","example":"2024-12-01T16:25:44Z"}},"required":["LegalHoldId","AccountId","StartTime","EndTime","Title","Created","Modified"]},"AcceptShareLinkResult":{"type":"object","properties":{"InvitationType":{"type":"string","enum":["document","folder"],"description":"The kind of share link that was accepted.","example":"document"},"DocumentIdOpt":{"type":"string","format":"uuid","nullable":true,"description":"The ID of the document whose share link was accepted. Null when the accepted share link is for a folder.","example":"f6bf19b5-d109-4ef5-92b2-cdaf0de43001"},"FolderIdOpt":{"type":"string","format":"integer","nullable":true,"description":"The ID of the folder whose share link was accepted. Null when the accepted share link is for a document.","example":null}},"required":["InvitationType"]},"TeamType":{"type":"string","enum":["hidden","closed","open"],"description":"The type of the team","example":"open"},"CreateTeamBody":{"type":"object","properties":{"name":{"type":"string","description":"The team's name. Max length of name is 80 characters.","example":"Team Name"},"type":{"$ref":"#/components/schemas/TeamType"},"users":{"type":"array","items":{"type":"integer"},"description":"Array of IDs of users to be on the team.","example":[321,654,987]}},"required":["name","type","users"]},"UpdateTeamBody":{"type":"object","properties":{"name":{"type":"string","description":"The team's name. Max length of name is 80 characters.","example":"Team Name"}},"required":["name"]},"TeamRole":{"type":"string","enum":["TEAM_MANAGER","EDIT_SHARE_MEMBER","EDIT_MEMBER","COMMENT_MEMBER","VIEW_MEMBER"],"description":"The role to assign to a user on a team. Team roles determine what permissions a user has on documents shared with the team:\n- `TEAM_MANAGER`: Can manage team settings, members, and has full access to team content\n- `EDIT_SHARE_MEMBER`: Can view, comment on, edit, and share team documents\n- `EDIT_MEMBER`: Can view, comment on, and edit team documents\n- `COMMENT_MEMBER`: Can view and comment on team documents\n- `VIEW_MEMBER`: Can only view team documents\n","example":"EDIT_MEMBER"},"TeamUser":{"type":"object","properties":{"userId":{"type":"integer","description":"The ID of the user to add to the team","example":321},"role":{"$ref":"#/components/schemas/TeamRole"}},"required":["userId","role"],"description":"A user with a specific role to add to a team"},"AddUsersToTeamBody":{"type":"object","properties":{"users":{"description":"Users to add to the team, given either as plain user IDs or as users each carrying an explicit role. A single request must use one form or the other; the two cannot be mixed.","oneOf":[{"type":"array","description":"IDs of the users to add to the team.","items":{"type":"integer"},"example":[321,654,987]},{"type":"array","description":"Users to add to the team, each with an assigned role. Duplicate users are rejected.","items":{"$ref":"#/components/schemas/TeamUser"}}]}},"required":["users"]},"RemoveUsersFromTeamBody":{"type":"object","properties":{"users":{"type":"array","items":{"type":"integer"},"description":"Array of IDs of users to remove from the team.","example":[321,654,987]}},"required":["users"]},"FolderLinkSecurity":{"type":"object","properties":{"restrictToAccount":{"type":"boolean","description":"Whether the share link is restricted to users within the folder's account. Changing this value to true will immediately revoke access for any external users who previously gained access through this link.","example":true},"expires":{"type":"string","format":"date-time","nullable":true,"description":"The date and time the share link expires, or null when it does not expire.","example":"2025-11-11T21:48:35.293Z"},"passcode":{"type":"string","description":"If defined, the required passcode to accept the share link. The passcode length must be between 1 – 80 characters.","minLength":1,"maxLength":80,"example":"passcode"}},"required":["restrictToAccount"]},"FolderShareLink":{"type":"object","properties":{"shareLinkId":{"type":"string","description":"Id of the share link.","example":"inv_8a38797a-e5fc-4479-8492-e000dc93cb60"},"folderId":{"type":"number","description":"Id of the folder the share link belongs to.","example":123456},"role":{"$ref":"#/components/schemas/SharingRole"},"linkSecurity":{"$ref":"#/components/schemas/FolderLinkSecurity"},"created":{"type":"string","format":"date-time","description":"The date and time the share link was created.","example":"2022-11-11T21:48:35.293Z"},"createdBy":{"type":"number","description":"User Id of the user that created the share link.","example":1280},"lastModified":{"type":"string","format":"date-time","description":"The date and time the share link was last modified.","example":"2022-11-11T21:48:35.293Z"},"acceptUrl":{"type":"string","format":"uri","description":"Link to accept the share link invitation.","example":"https://lucid.app/folder/invitations/accept/inv_8a38797a-e5fc-4479-8492-e000dc93cb60"}},"required":["shareLinkId","folderId","role","linkSecurity","created","createdBy","lastModified","acceptUrl"]},"CloudCredentialId":{"type":"string","description":"Cloud credential ID with provider prefix","pattern":"^(aws_|azure_|googlecloud_)[0-9]+$","example":"aws_12345"},"AwsCredentialId":{"type":"string","description":"AWS credential ID","pattern":"^aws_[0-9]+$","example":"aws_12345"},"AzureCredentialId":{"type":"string","description":"Azure credential ID","pattern":"^azure_[0-9]+$","example":"azure_34567"},"GoogleCloudCredentialId":{"type":"string","description":"Google Cloud credential ID","pattern":"^googlecloud_[0-9]+$","example":"googlecloud_56789"},"AwsCredentialExternalId":{"type":"object","properties":{"externalId":{"type":"string","format":"uuid","description":"External ID to be provided to AWS when creating the trust relationship","example":"31981475-0021-444e-9aa0-68c1456025ab"}},"required":["externalId"]},"AzureCredentialLinkType":{"type":"string","enum":["global","government"],"description":"The type of Azure environment the credential is for","example":"global"},"CredentialObject":{"oneOf":[{"$ref":"#/components/schemas/AwsCredentialObject"},{"$ref":"#/components/schemas/AzureCredentialObject"},{"$ref":"#/components/schemas/GoogleCloudCredentialObject"}],"discriminator":{"propertyName":"type","mapping":{"aws":"#/components/schemas/AwsCredentialObject","azure":"#/components/schemas/AzureCredentialObject","googleCloud":"#/components/schemas/GoogleCloudCredentialObject"}}},"AwsCredentialObject":{"type":"object","properties":{"credentialId":{"$ref":"#/components/schemas/AwsCredentialId"},"type":{"type":"string","enum":["aws"]},"params":{"type":"object","properties":{"name":{"type":"string","description":"Name of the credential","example":"Example AWS Credential"},"arn":{"type":"string","description":"The AWS resource identifier corresponding to the credential","example":"arn:aws:iam::123456789012:role/lucidimport"},"orgMemberAccountRoleName":{"type":"string","nullable":true,"description":"If not null, then the IAM role that exists in each of your AWS member accounts that was included by Lucid when making requests on your behalf to create or update the credential","example":"LucidCloudMemberAccountRole"}},"required":["name","arn","orgMemberAccountRoleName"]}},"required":["credentialId","type","params"]},"AzureCredentialObject":{"type":"object","properties":{"credentialId":{"$ref":"#/components/schemas/AzureCredentialId"},"type":{"type":"string","enum":["azure"]},"params":{"type":"object","properties":{"name":{"type":"string","description":"Name of the credential","example":"Example Azure Credential"},"clientId":{"type":"string","format":"uuid","description":"The ID of the application from which resource metadata was imported for your subscriptions","example":"76cd2065-b065-43fa-ad55-316927945439"},"tenantId":{"type":"string","format":"uuid","description":"The ID of the directory that was used during authentication","example":"de991a0e-5765-429a-bc8e-1a053bb61911"},"linkType":{"$ref":"#/components/schemas/AzureCredentialLinkType"}},"required":["name","clientId","tenantId","linkType"]}},"required":["credentialId","type","params"]},"GoogleCloudCredentialObject":{"type":"object","properties":{"credentialId":{"$ref":"#/components/schemas/GoogleCloudCredentialId"},"type":{"type":"string","enum":["googleCloud"]},"params":{"type":"object","properties":{"name":{"type":"string","description":"Name of the credential","example":"Example Google Cloud Credential"},"keyType":{"type":"string","description":"The type of the credential","example":"service_account"},"projectId":{"type":"string","description":"The ID of the Google Cloud project from which the credential was created","example":"some-project-id-13579"}},"required":["name","keyType","projectId"]}},"required":["credentialId","type","params"]},"AddAwsCredentialRequest":{"type":"object","properties":{"name":{"type":"string","description":"The name to give the created credential","example":"Example AWS Credential"},"arn":{"type":"string","description":"The AWS resource identifier with which the trust relationship was formed via the external ID","example":"arn:aws:iam::123456789012:role/LucidCloudRole"},"orgMemberAccountRoleName":{"type":"string","description":"When provided, the IAM role that exists in each of your AWS member accounts to be included by Lucid when making requests on your behalf","example":"OrganizationAccountAccessRole"}},"required":["name","arn"]},"UpdateAwsCredentialRequest":{"type":"object","properties":{"arn":{"type":"string","description":"When provided, the AWS resource identifier with which the trust relationship was formed via the externalId","example":"arn:aws:iam::123456789012:role/LucidCloudRole"},"name":{"type":"string","description":"When provided, the name to give the credential","example":"Example AWS Credential - Updated"},"orgMemberAccountRoleName":{"type":"string","description":"When provided, the IAM role that exists in each of your AWS member accounts to be included by Lucid when making requests on your behalf","example":"OrganizationAccountAccessRole"}}},"AddAzureCredentialRequest":{"type":"object","properties":{"name":{"type":"string","description":"The name to give the created credential","example":"Example Azure Credential"},"clientId":{"type":"string","format":"uuid","description":"The ID of the application from which to import resource metadata for your subscriptions","example":"76cd2065-b065-43fa-ad55-316927945439"},"tenantId":{"type":"string","format":"uuid","description":"The ID of the directory to be used during authentication","example":"de991a0e-5765-429a-bc8e-1a053bb61911"},"clientSecret":{"type":"string","description":"The secret to be used for authentication","example":"example-azure-secret"},"linkType":{"$ref":"#/components/schemas/AzureCredentialLinkType","description":"When provided, the type of credential to create"}},"required":["name","clientId","tenantId","clientSecret"]},"UpdateAzureCredentialRequest":{"type":"object","properties":{"name":{"type":"string","description":"When provided, the name to give the updated credential","example":"Example Azure Credential - Updated"},"clientId":{"type":"string","format":"uuid","description":"When provided, the ID of the application from which to import resource metadata for your subscriptions","example":"76cd2065-b065-43fa-ad55-316927945439"},"tenantId":{"type":"string","format":"uuid","description":"When provided, the ID of the directory to be used during authentication","example":"de991a0e-5765-429a-bc8e-1a053bb61911"},"clientSecret":{"type":"string","description":"When provided, the secret to be used for authentication","example":"example-azure-secret"},"linkType":{"$ref":"#/components/schemas/AzureCredentialLinkType"}}},"DataSourceId":{"type":"string","description":"Cloud data source ID","pattern":"^(awsds_|azureds_|googlecloudds_)[0-9]+$","example":"awsds_12345"},"AwsDataSourceId":{"type":"string","description":"AWS data source ID","pattern":"^awsds_[0-9]+$","example":"awsds_12345"},"AzureDataSourceId":{"type":"string","description":"Azure data source ID","pattern":"^azureds_[0-9]+$","example":"azureds_34567"},"GoogleCloudDataSourceId":{"type":"string","description":"Google Cloud data source ID","pattern":"^googlecloudds_[0-9]+$","example":"googlecloudds_56789"},"DataSourceObject":{"oneOf":[{"$ref":"#/components/schemas/AwsDataSourceObject"},{"$ref":"#/components/schemas/AzureDataSourceObject"},{"$ref":"#/components/schemas/GoogleCloudDataSourceObject"}],"discriminator":{"propertyName":"type","mapping":{"aws":"#/components/schemas/AwsDataSourceObject","azure":"#/components/schemas/AzureDataSourceObject","googleCloud":"#/components/schemas/GoogleCloudDataSourceObject"}}},"AwsDataSourceObject":{"type":"object","properties":{"dataSourceId":{"$ref":"#/components/schemas/AwsDataSourceId"},"type":{"type":"string","enum":["aws"]},"params":{"type":"object","properties":{"name":{"type":"string","example":"Example AWS Data Source"},"importType":{"type":"string","enum":["crossAccount","cliJson"],"example":"crossAccount"},"awsAccountId":{"type":"string","description":"The ID of the linked AWS account (only for crossAccount import types)","example":"123456789012"},"regions":{"type":"array","items":{"type":"string"},"description":"List of AWS regions selected for the data source (only for crossAccount import types)","example":["us-east-1","us-west-2"]},"resourceSelection":{"type":"array","items":{"type":"string"},"description":"List of AWS resources included in the data source (only for crossAccount import types)","example":["AWS::EC2::Instance","AWS::S3::Bucket"]}},"required":["name","importType"]}},"required":["dataSourceId","type","params"]},"AzureDataSourceObject":{"type":"object","properties":{"dataSourceId":{"$ref":"#/components/schemas/AzureDataSourceId"},"type":{"type":"string","enum":["azure"]},"params":{"type":"object","properties":{"name":{"type":"string","example":"Example Azure Data Source"},"importType":{"type":"string","enum":["adApp","cliJson"],"example":"adApp"},"subscriptionId":{"type":"string","description":"The ID of the linked Azure subscription (only for adApp import types)","example":["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]},"resourceSelection":{"type":"array","items":{"type":"string"},"description":"List of Azure resources included in the data source (only for adApp import types)","example":["Microsoft.Compute/virtualMachines"]}},"required":["name","importType"]}},"required":["dataSourceId","type","params"]},"GoogleCloudDataSourceObject":{"type":"object","properties":{"dataSourceId":{"$ref":"#/components/schemas/GoogleCloudDataSourceId"},"type":{"type":"string","enum":["googleCloud"]},"params":{"type":"object","properties":{"name":{"type":"string","example":"Example Google Cloud Data Source"},"importType":{"type":"string","enum":["serviceAccount","cliJson"],"example":"serviceAccount"},"projectIds":{"type":"array","items":{"type":"string"},"description":"The ID of the linked Google Cloud project (only for serviceAccount import types)","example":["my-google-cloud-project-123"]},"resourceSelection":{"type":"array","items":{"type":"string"},"description":"List of Google Cloud resources included in the data source (only for serviceAccount import types)","example":["compute.googleapis.com/Instance"]}},"required":["name","importType"]}},"required":["dataSourceId","type","params"]},"AwsDataSourceForModelCreation":{"type":"object","properties":{"dataSourceId":{"$ref":"#/components/schemas/AwsDataSourceId"},"filter":{"$ref":"#/components/schemas/AwsDataSourceFilter","description":"Filter to apply when creating a model with the AWS data source"}},"required":["dataSourceId"]},"AzureDataSourceForModelCreation":{"type":"object","properties":{"dataSourceId":{"$ref":"#/components/schemas/AzureDataSourceId"},"filter":{"$ref":"#/components/schemas/AzureDataSourceFilter","description":"Filter to apply when creating a model with the Azure data source"}},"required":["dataSourceId"]},"GoogleCloudDataSourceForModelCreation":{"type":"object","properties":{"dataSourceId":{"$ref":"#/components/schemas/GoogleCloudDataSourceId"},"filter":{"$ref":"#/components/schemas/GoogleCloudDataSourceFilter","description":"Filter to apply when creating a model with the Google Cloud data source"}},"required":["dataSourceId"]},"AwsDataSourceFilter":{"type":"object","properties":{"awsTags":{"type":"array","items":{"$ref":"#/components/schemas/TagOrLabel"}},"includeUntaggedResources":{"type":"boolean","description":"Whether to include resources that do not have any tags","example":true},"resourceGroups":{"type":"array","items":{"type":"string"},"description":"The AWS resource groups to include in the model","example":["Some-AWS-Resource::Some-AWS-Server"]}}},"AzureDataSourceFilter":{"type":"object","properties":{"azureTags":{"type":"array","items":{"$ref":"#/components/schemas/TagOrLabel"}},"includeUntaggedResources":{"type":"boolean","description":"Whether to include resources that do not have any tags","example":true},"resourceGroups":{"type":"array","items":{"type":"string"},"description":"The Azure resource groups to include in the model","example":["Some-Azure-Resource::Some-Azure-Server"]}}},"GoogleCloudDataSourceFilter":{"type":"object","properties":{"googleCloudLabels":{"type":"array","items":{"$ref":"#/components/schemas/TagOrLabel"}},"includeUnlabeledResources":{"type":"boolean","description":"Whether to include resources that do not have any labels","example":true}}},"TagOrLabel":{"type":"object","properties":{"key":{"type":"string","description":"The tag or label key","example":"Environment"},"value":{"type":"string","description":"The tag or label value","example":"Production"}},"required":["key"],"description":"An AWS or Azure tag, or a Google Cloud label","example":{"key":"Environment","value":"Production"}},"CreateAwsDataSourceRequest":{"type":"object","properties":{"name":{"type":"string","description":"The name to give the data source","example":"Example AWS Data Source"},"awsCredentialId":{"$ref":"#/components/schemas/AwsCredentialId","description":"The ID of the existing AWS credential to use to create the data source"},"awsAccountId":{"type":"string","description":"The ID of the AWS account which contains the data from which to create the data source","example":"123456789012"},"regions":{"type":"array","items":{"type":"string"},"description":"The AWS regions which contain the data from which to create the data source. Use the \"Get Supported AWS Regions\" endpoint to see a list of all supported regions.","example":["us-east-1","us-west-2"]},"resourceSelection":{"type":"array","items":{"type":"string"},"description":"The AWS resources to include in the data source. Use the \"Get Fully Supported AWS Resources\" endpoint to see a list of all supported resources.","example":["AWS::EC2::Instance","AWS::S3::Bucket"]}},"required":["name","awsCredentialId","awsAccountId","regions"]},"EditAwsDataSourceRequest":{"type":"object","properties":{"name":{"type":"string","description":"The new display name to give to the AWS data source","example":"Example AWS Data Source - Updated"}}},"UpdateAwsDataSourceRequest":{"type":"object","properties":{"regions":{"type":"array","items":{"type":"string"},"description":"The AWS regions which contain the data from which to update the data source. Use the \"Get Supported AWS Regions\" endpoint to see a list of all supported regions.","example":["us-east-1","us-west-2"]},"resourceSelection":{"type":"array","items":{"type":"string"},"description":"The AWS resources to include in the data source. Use the \"Get Fully Supported AWS Resources\" endpoint to see a list of all supported resources.","example":["AWS::EC2::Instance","AWS::S3::Bucket"]}}},"CreateAzureDataSourceRequest":{"type":"object","properties":{"name":{"type":"string","description":"The name to give the data source","example":"Example Azure Data Source"},"azureCredentialId":{"$ref":"#/components/schemas/AzureCredentialId","description":"The ID of the existing Azure credential to use to create the data source"},"tenantId":{"type":"string","format":"uuid","description":"The ID of the Azure directory which contains the data from which to create the data source","example":"de991a0e-5765-429a-bc8e-1a053bb61911"},"subscriptionIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the subscriptions which contain the data from which to create the data source","example":["a1b2c3d4-e5f6-7890-abcd-ef1234567890"]},"resourceSelection":{"type":"array","items":{"type":"string"},"description":"The Azure resources to include in the data source. Use the \"Get Fully Supported Azure Resources\" endpoint to see a list of all supported resources.","example":["Microsoft.Compute/virtualMachines","Microsoft.Storage/storageAccounts"]}},"required":["name","azureCredentialId","tenantId","subscriptionIds","resourceSelection"]},"EditAzureDataSourceRequest":{"type":"object","properties":{"name":{"type":"string","description":"The new display name to give to the Azure data source","example":"Example Azure Data Source - Updated"}}},"UpdateAzureDataSourceRequest":{"type":"object","properties":{"resourceSelection":{"type":"array","items":{"type":"string"},"description":"The Azure resources to include in the data source. Use the \"Get Fully Supported Azure Resources\" endpoint to see a list of all supported resources.","example":["Microsoft.Compute/virtualMachines","Microsoft.Storage/storageAccounts"]}}},"CreateGoogleCloudDataSourceRequest":{"type":"object","properties":{"name":{"type":"string","description":"The name to give the data source","example":"Example Google Cloud Data Source"},"googleCloudCredentialId":{"$ref":"#/components/schemas/GoogleCloudCredentialId","description":"The ID of the existing Google Cloud credential to use to create the data source"},"projectIds":{"type":"array","items":{"type":"string"},"description":"The IDs of the Google Cloud projects which contain the data from which to create the data source","example":["my-gcp-project-123"]},"resourceSelection":{"type":"array","items":{"type":"string"},"description":"The Google Cloud resources to include in the data source. Use the \"Get Fully Supported Google Cloud Resources\" endpoint to see a list of all supported resources.","example":["compute.googleapis.com/Instance","storage.googleapis.com/Bucket"]}},"required":["name","googleCloudCredentialId","projectIds","resourceSelection"]},"EditGoogleCloudDataSourceRequest":{"type":"object","properties":{"name":{"type":"string","description":"The new display name to give to the Google Cloud data source","example":"Example Google Cloud Data Source - Updated"}}},"UpdateGoogleCloudDataSourceRequest":{"type":"object","properties":{"resourceSelection":{"type":"array","items":{"type":"string"},"description":"The Google Cloud resources to include in the data source. Use the \"Get Fully Supported Google Cloud Resources\" endpoint to see a list of all supported resources.","example":["compute.googleapis.com/Instance","storage.googleapis.com/Bucket"]}}},"CreateModelFromAwsDataSourceRequest":{"type":"object","properties":{"title":{"type":"string","description":"The name to give the created model","example":"AWS Infrastructure Diagram"},"dataSources":{"type":"array","items":{"$ref":"#/components/schemas/AwsDataSourceForModelCreation"},"description":"The AWS Data Sources to include in the model"},"autoSync":{"type":"boolean","description":"Whether this model should automatically update with changes to its data source(s)","example":true},"viewTemplates":{"type":"array","items":{"type":"string"},"description":"The view templates to create in the generated model. Use the \"Get Supported AWS View Templates\" endpoint to see a list of all supported view templates.","example":["vpc-topology","ecs"]}},"required":["title","dataSources","autoSync"]},"CreateModelFromAzureDataSourceRequest":{"type":"object","properties":{"title":{"type":"string","description":"The name to give the created model","example":"Azure Infrastructure Diagram"},"dataSources":{"type":"array","items":{"$ref":"#/components/schemas/AzureDataSourceForModelCreation"},"description":"The Azure Data Sources to include in the model"},"autoSync":{"type":"boolean","description":"Whether this model should automatically update with changes to its data source(s)","example":true},"viewTemplates":{"type":"array","items":{"type":"string"},"description":"The view templates to create in the generated model. Use the \"Get Supported Azure View Templates\" endpoint to see a list of all supported view templates.","example":["virtual-network-topology","resources"]}},"required":["title","dataSources","autoSync"]},"CreateModelFromGoogleCloudDataSourceRequest":{"type":"object","properties":{"title":{"type":"string","description":"The name to give the created model","example":"Google Cloud Infrastructure Diagram"},"dataSources":{"type":"array","items":{"$ref":"#/components/schemas/GoogleCloudDataSourceForModelCreation"},"description":"The Google Cloud Data Sources to include in the model"},"autoSync":{"type":"boolean","description":"Whether this model should automatically update with changes to its data source(s)","example":true},"viewTemplates":{"type":"array","items":{"type":"string"},"description":"The view templates to create in the generated model. Use the \"Get Supported Google Cloud View Templates\" endpoint to see a list of all supported view templates.","example":["summarized-infrastructure","gke-clusters"]}},"required":["title","dataSources","autoSync"]},"JobReferenceId":{"type":"string","description":"Unique identifier for an asynchronous job","pattern":"^jobr_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$","example":"jobr_2f5e5b82-6f1d-4c9f-932a-14e43cf30454"},"JobReferenceIdResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"}},"required":["jobId"]},"JobStatus":{"type":"string","enum":["PENDING","RUNNING","SUCCEEDED","FAILED"],"description":"Status of an asynchronous job","example":"SUCCEEDED"},"AwsDataSourceJobStatusResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"},"status":{"$ref":"#/components/schemas/JobStatus"},"response":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/AwsDataSourceJobResponse"},{"$ref":"#/components/schemas/JobErrorResponse"}]}},"required":["jobId","status"]},"AzureDataSourceJobStatusResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"},"status":{"$ref":"#/components/schemas/JobStatus"},"response":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/AzureDataSourceJobResponse"},{"$ref":"#/components/schemas/JobErrorResponse"}]}},"required":["jobId","status"]},"GoogleCloudDataSourceJobStatusResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"},"status":{"$ref":"#/components/schemas/JobStatus"},"response":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/GoogleCloudDataSourceJobResponse"},{"$ref":"#/components/schemas/JobErrorResponse"}]}},"required":["jobId","status"]},"AwsDataSourceJobResponse":{"type":"object","properties":{"name":{"type":"string","example":"Example AWS Data Source","description":"The name of the AWS data source affected by the job"},"dataSourceId":{"$ref":"#/components/schemas/AwsDataSourceId","description":"The ID of the AWS data source affected by the job"},"message":{"type":"string","example":""}},"required":["name","dataSourceId","message"]},"AzureDataSourceJobResponse":{"type":"object","properties":{"name":{"type":"string","example":"Example Azure Data Source","description":"The name of the Azure data source affected by the job"},"dataSourceId":{"$ref":"#/components/schemas/AzureDataSourceId","description":"The ID of the Azure data source affected by the job"},"message":{"type":"string","example":""}},"required":["name","dataSourceId","message"]},"GoogleCloudDataSourceJobResponse":{"type":"object","properties":{"name":{"type":"string","example":"Example Google Cloud Data Source","description":"The name of the Google Cloud data source affected by the job"},"dataSourceId":{"$ref":"#/components/schemas/GoogleCloudDataSourceId","description":"The ID of the Google Cloud data source affected by the job"},"message":{"type":"string","example":""}},"required":["name","dataSourceId","message"]},"AwsModelJobStatusResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"},"status":{"$ref":"#/components/schemas/JobStatus"},"response":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/AwsModelJobResponse"},{"$ref":"#/components/schemas/JobErrorResponse"}],"description":"Job result (present when status is completed or failed)"}},"required":["jobId","status"]},"AzureModelJobStatusResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"},"status":{"$ref":"#/components/schemas/JobStatus"},"response":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/AzureModelJobResponse"},{"$ref":"#/components/schemas/JobErrorResponse"}],"description":"Job result (present when status is completed or failed)"}},"required":["jobId","status"]},"GoogleCloudModelJobStatusResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"},"status":{"$ref":"#/components/schemas/JobStatus"},"response":{"nullable":true,"oneOf":[{"$ref":"#/components/schemas/GoogleCloudModelJobResponse"},{"$ref":"#/components/schemas/JobErrorResponse"}],"description":"Job result (present when status is completed or failed)"}},"required":["jobId","status"]},"AwsModelJobResponse":{"type":"object","properties":{"viewURL":{"type":"string","format":"uri","description":"URL to view the created document","example":"https://lucid.app/documents/view/8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"editURL":{"type":"string","format":"uri","description":"URL to edit the created document","example":"https://lucid.app/documents/edit/8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"documentId":{"type":"string","format":"uuid","description":"ID of the created document","example":"8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"dataSources":{"type":"array","items":{"type":"string"},"description":"List of AWS data source IDs used in the model","example":["awsds_12345"]}},"required":["viewURL","editURL","documentId","dataSources"]},"AzureModelJobResponse":{"type":"object","properties":{"viewURL":{"type":"string","format":"uri","description":"URL to view the created document","example":"https://lucid.app/documents/view/8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"editURL":{"type":"string","format":"uri","description":"URL to edit the created document","example":"https://lucid.app/documents/edit/8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"documentId":{"type":"string","format":"uuid","description":"ID of the created document","example":"8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"dataSources":{"type":"array","items":{"type":"string"},"description":"List of Azure data source IDs used in the model","example":["azureds_34567"]}},"required":["viewURL","editURL","documentId","dataSources"]},"GoogleCloudModelJobResponse":{"type":"object","properties":{"viewURL":{"type":"string","format":"uri","description":"URL to view the created document","example":"https://lucid.app/documents/view/8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"editURL":{"type":"string","format":"uri","description":"URL to edit the created document","example":"https://lucid.app/documents/edit/8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"documentId":{"type":"string","format":"uuid","description":"ID of the created document","example":"8e7b19ec-27ff-40e3-beb8-03f51b1661b2"},"dataSources":{"type":"array","items":{"type":"string"},"description":"List of Google Cloud data source IDs used in the model","example":["googlecloudds_56789"]}},"required":["viewURL","editURL","documentId","dataSources"]},"JobErrorResponse":{"type":"object","properties":{"message":{"type":"string","description":"Error message describing what went wrong","example":"Failed to authenticate with cloud provider"}},"required":["message"]},"AuditLogQueryRequestBody":{"type":"object","properties":{"from":{"type":"string","format":"date-time","description":"The start date for the audit log query range.","example":"2024-01-01T00:00:00Z"},"to":{"type":"string","format":"date-time","description":"The end date for the audit log query range.","example":"2024-01-31T23:59:59Z"},"userIds":{"type":"array","items":{"type":"integer"},"description":"Array of user IDs who initiated the logged events.","example":[1111111,2222222,123123123]},"eventTypes":{"type":"array","items":{"type":"string"},"description":"Array of event types to filter the audit logs.","example":["content.document.documentFolderEntrypointUpdated","login.user.successfulUserLogin"]},"actorIsExternal":{"type":"boolean","description":"Whether the actor is external to the organization.","example":true},"actorTypes":{"type":"array","items":{"type":"string"},"description":"Array of actor types to filter the audit logs. See [Actors and Targets](https://developer.lucid.co/reference/actors-and-targets) for more details.","example":["Anonymous User","Normal User","Internal User","Token User","Unknown User"]}}},"RepositoryId":{"type":"string","description":"Unique identifier for a repository folder, prefixed with `repo_`","example":"repo_1234321"},"RepositoryRole":{"type":"string","enum":["REPOSITORY_OWNER","REPOSITORY_MEMBER"],"description":"Role of a user on a repository","example":"REPOSITORY_OWNER"},"RepositoryAccessType":{"type":"string","enum":["UNRESTRICTED","RESTRICTED"],"description":"Determines repository visibility. UNRESTRICTED repositories are visible to all users on the account, RESTRICTED are visible to specific authorized groups and individuals.","example":"UNRESTRICTED"},"CreateRepositoryRequest":{"type":"object","properties":{"name":{"type":"string","description":"Display name for the repository","example":"Example Process Repository"},"accessType":{"$ref":"#/components/schemas/RepositoryAccessType","description":"Optional. Determines repository visibility. Defaults to UNRESTRICTED."},"users":{"type":"array","items":{"$ref":"#/components/schemas/AddRepositoryUserRequest"},"description":"List of users to add to the repository. Must contain at least one owner."},"groups":{"type":"array","items":{"type":"integer"},"description":"Optional. Group Ids of groups whose members should have access to this repository. Only applicable to RESTRICTED repositories.","example":[123456,789123]}},"required":["name","users"]},"RepositoryObject":{"type":"object","properties":{"repositoryId":{"$ref":"#/components/schemas/RepositoryId"},"name":{"type":"string","description":"Display name of the repository","example":"My Business Process Repository"},"accessType":{"$ref":"#/components/schemas/RepositoryAccessType"},"created":{"type":"string","format":"date-time","description":"The date and time the repository was created","example":"2022-11-11T21:48:35.293Z"}}},"AddRepositoryUserRequest":{"type":"object","properties":{"userId":{"type":"integer","description":"Unique identifier of the user to add or update","example":1234567},"role":{"$ref":"#/components/schemas/RepositoryRole"}},"required":["userId","role"]},"AddRepositoryUsersRequest":{"type":"object","properties":{"users":{"type":"array","items":{"$ref":"#/components/schemas/AddRepositoryUserRequest"},"description":"Array of users and their roles to add or update on the repository"}},"required":["users"]},"RepositoryGroupsRequest":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"integer"},"description":"Array of group IDs.","example":[123456,789123]}},"required":["groups"]},"RepositoryUser":{"type":"object","properties":{"repositoryId":{"type":"string","description":"Unique identifier of the repository","example":"repo_2000719"},"userId":{"type":"integer","description":"Unique identifier of the user","example":1234567},"role":{"$ref":"#/components/schemas/RepositoryRole"},"created":{"type":"string","format":"date-time","description":"Date and time when the user was added to the repository","example":"2026-01-21T01:10:41Z"}}},"RepositoryGroupCollaborator":{"type":"object","properties":{"repositoryId":{"type":"string","description":"Unique identifier of the repository","example":"repo_987654"},"groupId":{"type":"integer","description":"Unique identifier of the group","example":123456}}},"Subscription":{"type":"object","description":"A subscription resource representing a Lucid product subscription","properties":{"id":{"type":"string","format":"uuid","description":"Subscription ID","example":"8e8cf611-d74c-4a2f-8b61-754b22328fbb"},"licenseTotal":{"type":"integer","description":"Total number of available licenses on the subscription and its addons.\nIf there are unlimited licenses, this field will not be returned.\n","example":100},"licensesUsed":{"type":"integer","description":"Number of licenses currently assigned to users on the subscription","example":50},"trial":{"type":"boolean","description":"Whether this is a trial subscription","example":false},"start":{"type":"string","format":"date-time","description":"Date and time when subscription started","example":"2024-08-08T22:21:48.612Z"},"end":{"type":"string","format":"date-time","description":"Date and time when subscription ends","example":"2024-08-08T22:21:48.612Z"},"renewal":{"type":"string","format":"date-time","description":"Date and time when subscription renewal happens","example":"2024-08-08T22:21:48.612Z"}},"required":["id","licensesUsed","trial","start","end","renewal"]},"License":{"type":"object","description":"A license resource representing a user's license on a subscription","properties":{"userId":{"type":"integer","description":"User ID","example":123},"subscriptionId":{"type":"string","format":"uuid","description":"Subscription ID","example":"8e8cf611-d74c-4a2f-8b61-754b22328fbb"},"created":{"type":"string","format":"date-time","description":"Date and time when the license was granted","example":"2024-08-08T22:21:48.612Z"}},"required":["userId","subscriptionId","created"]},"GrantLicenseRequest":{"type":"object","description":"Request body for granting a license to a user","properties":{"subscriptionId":{"type":"string","format":"uuid","description":"The subscription ID to grant the license from","example":"8e8cf611-d74c-4a2f-8b61-754b22328fbb"}},"required":["subscriptionId"]},"DocumentThread":{"type":"object","description":"A comment thread on a document.","properties":{"documentId":{"type":"string","format":"uuid","description":"The ID of the document containing the comment thread.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},"threadId":{"type":"string","description":"The unique ID of the comment thread.","example":"abc123"},"created":{"type":"string","format":"date-time","description":"The date and time when the thread was created.","example":"2024-01-01T00:00:00Z"},"status":{"$ref":"#/components/schemas/ThreadStatus"}},"required":["documentId","threadId","created","status"]},"ThreadStatus":{"type":"string","enum":["OPEN","CLOSED"],"description":"The status of a comment thread. OPEN indicates an unresolved thread, CLOSED indicates a resolved thread."},"DocumentComment":{"type":"object","description":"A comment within a comment thread on a document.","properties":{"threadId":{"type":"string","description":"The ID of the thread this comment belongs to.","example":"abc123"},"userId":{"type":"integer","description":"The ID of the user who posted the comment."},"comment":{"type":"string","description":"The text content of the comment.","example":"This is a comment"},"created":{"type":"string","format":"date-time","description":"The date and time when the comment was created.","example":"2024-01-01T00:00:00Z"},"assignees":{"type":"array","nullable":true,"items":{"type":"integer"},"description":"List of user IDs assigned to this comment, or null if no users are assigned."}},"required":["threadId","userId","comment","created"]},"PostCommentRequestBody":{"type":"object","description":"Request body for posting a comment to a thread.","properties":{"comment":{"type":"string","description":"The text content of the comment. Must be non-empty and at most 10,000 characters.","example":"This is a comment"}},"required":["comment"]},"LucidStandardImportContent":{"type":"object","description":"Defines the content of a document using the Lucid Standard Import format, including pages, shapes, and lines.\nMutually exclusive with `extensionBootstrapData`.\n","properties":{"version":{"type":"integer","description":"The version of the Lucid Standard Import format.","enum":[1],"example":1},"pages":{"type":"array","description":"List of pages to create in the document. At least one page is required.","minItems":1,"items":{"$ref":"#/components/schemas/LucidStandardImportPage"}},"collections":{"type":"array","description":"List of data collections to associate with the document.","items":{"$ref":"#/components/schemas/LucidStandardImportCollection"}},"documentSettings":{"$ref":"#/components/schemas/LucidStandardImportDocumentSettings"}},"required":["version","pages"]},"LucidStandardImportPage":{"type":"object","description":"A page definition within a Lucid Standard Import document.","properties":{"id":{"type":"string","description":"Unique identifier for the page within the import.","example":"page1"},"title":{"type":"string","description":"The title of the page.","example":"Page 1"},"shapes":{"type":"array","description":"List of shapes to place on the page.","items":{"$ref":"#/components/schemas/LucidStandardImportShape"}},"lines":{"type":"array","description":"List of lines to place on the page.","items":{"$ref":"#/components/schemas/LucidStandardImportLine"}},"groups":{"type":"array","description":"List of groups to create on the page.","items":{"$ref":"#/components/schemas/LucidStandardImportGroup"}},"layers":{"type":"array","description":"List of layers to create on the page.","items":{"$ref":"#/components/schemas/LucidStandardImportLayer"}},"customData":{"type":"array","description":"Custom key-value data to attach to the page.","items":{"$ref":"#/components/schemas/LucidStandardImportCustomPageDatum"}},"dataBackedShapes":{"type":"array","description":"List of data-backed shape generators (e.g., org charts, mind maps).","items":{"$ref":"#/components/schemas/LucidStandardImportGenerator"}},"settings":{"$ref":"#/components/schemas/LucidStandardImportPageSettings"}},"required":["id","title"]},"LucidStandardImportShape":{"type":"object","description":"A shape definition within a page. The `type` field determines which kind of shape to create.\nCommon shape types include `rectangle`, `circle`, `diamond`, `cloud`, `process`, `document`,\n`database`, `hexagon`, `octagon`, `pill`, `roundedRectangle`, `triangle`, `isoscelesTriangle`,\n`stickyNote`, `image`, `table`, `swimLanes`, and many more including BPMN shapes.\n","properties":{"id":{"type":"string","description":"Unique identifier for the shape within the import. Used to reference this shape from lines and groups.","example":"shape1"},"type":{"type":"string","description":"The type of shape to create.","enum":["bpmnActivity","bpmnBlackBoxPool","bpmnChoreography","bpmnConversation","bpmnDataObject","bpmnDataStore","bpmnEvent","bpmnGateway","bpmnGroup","bpmnPool","bpmnTextAnnotation","braceContainer","braceNote","bracketContainer","circle","circleContainer","cloud","connector","cross","namedContainer","namedShape","data","database","decision","delay","diamond","diamondContainer","directAccessStorage","display","document","doubleArrow","flexiblePolygon","freehandBlock","freehandDrawing","hexagon","hotspot","image","internalStorage","isoscelesTriangle","lucidCard","manualInput","manualOperation","merge","multipleDocuments","note","octagon","offPageLink","or","paperTape","pentagon","pillContainer","polyStar","predefinedProcess","preparation","process","rectangle","rectangleContainer","rightTriangle","roundedRectangleContainer","singleArrow","sparkCalloutSquare","sparkContainer","sparkFrame","stickyNote","storedData","summingJunction","swimLanes","table","terminator","text","umlClass"],"example":"rectangle"},"boundingBox":{"$ref":"#/components/schemas/BoundingBox"},"text":{"type":"string","description":"Text content to display inside the shape.","example":"Hello World"},"opacity":{"type":"integer","description":"Opacity of the shape, from 0 (fully transparent) to 100 (fully opaque).","minimum":0,"maximum":100},"note":{"type":"string","description":"A note to attach to the shape."},"zIndex":{"type":"integer","description":"The z-order of the shape on the page."},"customData":{"type":"array","description":"Custom key-value data to attach to the shape.","items":{"$ref":"#/components/schemas/LucidStandardImportCustomDatum"}},"style":{"$ref":"#/components/schemas/LucidStandardImportStyle"},"actions":{"type":"array","description":"Interactive actions attached to the shape (e.g., navigate to a URL or page).","items":{"$ref":"#/components/schemas/LucidStandardImportAction"}},"linkedData":{"type":"array","description":"Links to data collection entries.","items":{"$ref":"#/components/schemas/LucidStandardImportLinkedDatum"}}},"required":["id","type","boundingBox"]},"BoundingBox":{"type":"object","description":"The bounding box that defines a shape's position and size on the page.","properties":{"x":{"type":"number","description":"The x-coordinate of the top-left corner.","example":0},"y":{"type":"number","description":"The y-coordinate of the top-left corner.","example":0},"w":{"type":"number","description":"The width of the bounding box.","example":100},"h":{"type":"number","description":"The height of the bounding box.","example":50}},"required":["x","y","w","h"]},"LucidStandardImportLine":{"type":"object","description":"A line definition within a page.","properties":{"id":{"type":"string","description":"Unique identifier for the line within the import.","example":"line1"},"lineType":{"type":"string","description":"The type of line routing.","enum":["straight","elbow","curved"],"example":"elbow"},"stroke":{"$ref":"#/components/schemas/LucidStandardImportStroke"},"endpoint1":{"$ref":"#/components/schemas/LucidStandardImportEndpoint"},"endpoint2":{"$ref":"#/components/schemas/LucidStandardImportEndpoint"},"text":{"type":"array","description":"Text labels to display along the line.","items":{"$ref":"#/components/schemas/LucidStandardImportLineText"}},"customData":{"type":"array","description":"Custom key-value data to attach to the line.","items":{"$ref":"#/components/schemas/LucidStandardImportCustomDatum"}},"linkedData":{"type":"array","description":"Links to data collection entries.","items":{"$ref":"#/components/schemas/LucidStandardImportLinkedDatum"}},"joints":{"type":"array","description":"Control points for straight lines.","items":{"$ref":"#/components/schemas/AbsolutePoint"}},"elbowControlPoints":{"type":"array","description":"Control points for elbow lines.","items":{"$ref":"#/components/schemas/AbsolutePoint"}},"cornerRadius":{"type":"number","description":"Corner radius for elbow line bends."},"zIndex":{"type":"integer","description":"The z-order of the line on the page."},"lineJumps":{"type":"boolean","description":"Whether this line draws a small hump where it crosses other lines.\nWhen set, overrides the page-level `lineJumps` setting for this\nline only.\n"}},"required":["id","lineType","endpoint1","endpoint2"]},"LucidStandardImportStyle":{"type":"object","description":"Visual style properties for a shape.","properties":{"fill":{"$ref":"#/components/schemas/LucidStandardImportFill"},"stroke":{"$ref":"#/components/schemas/LucidStandardImportStroke"},"rounding":{"type":"number","description":"Corner rounding radius for the shape. Must be between 0 and 720, inclusive.","default":6,"minimum":0,"maximum":720},"textColor":{"type":"string","description":"Text color as a hex color string.","example":"#000000"}}},"LucidStandardImportFill":{"description":"Fill style for a shape. The `type` field determines the fill kind.\n- `color`: A solid color fill.\n- `image`: An image fill, either by URL or by reference to an image in the import archive.\n","discriminator":{"propertyName":"type","mapping":{"color":"#/components/schemas/LucidStandardImportColorFill","image":"#/components/schemas/LucidStandardImportImageFill"}},"oneOf":[{"$ref":"#/components/schemas/LucidStandardImportColorFill"},{"$ref":"#/components/schemas/LucidStandardImportImageFill"}]},"LucidStandardImportColorFill":{"type":"object","description":"A solid color fill.","properties":{"type":{"type":"string","enum":["color"]},"color":{"type":"string","description":"Fill color as a hex color string.","example":"#ffffff"}},"required":["type","color"]},"LucidStandardImportImageFill":{"type":"object","description":"An image fill, either by URL or by reference to an image in the import archive.","properties":{"type":{"type":"string","enum":["image"]},"url":{"type":"string","description":"URL of the image. Use this or `ref`, not both.","example":"https://example.com/image.png"},"ref":{"type":"string","description":"Reference to an image in the import archive. Use this or `url`, not both."},"imageScale":{"type":"string","description":"How the image should be scaled within the shape.","enum":["fill","page","shape"]}},"required":["type"]},"LucidStandardImportAction":{"type":"object","description":"An interactive action attached to a shape. The `type` field determines the action kind.\n","discriminator":{"propertyName":"type","mapping":{"url":"#/components/schemas/LucidStandardImportUrlAction","gotoPage":"#/components/schemas/LucidStandardImportGotoPageAction","gotoDocument":"#/components/schemas/LucidStandardImportGotoDocumentAction","toggleLayer":"#/components/schemas/LucidStandardImportToggleLayerAction","showLayer":"#/components/schemas/LucidStandardImportShowLayerAction","hideLayer":"#/components/schemas/LucidStandardImportHideLayerAction"}},"oneOf":[{"$ref":"#/components/schemas/LucidStandardImportUrlAction"},{"$ref":"#/components/schemas/LucidStandardImportGotoPageAction"},{"$ref":"#/components/schemas/LucidStandardImportGotoDocumentAction"},{"$ref":"#/components/schemas/LucidStandardImportToggleLayerAction"},{"$ref":"#/components/schemas/LucidStandardImportShowLayerAction"},{"$ref":"#/components/schemas/LucidStandardImportHideLayerAction"}]},"LucidStandardImportUrlAction":{"type":"object","description":"Navigate to an external URL.","properties":{"type":{"type":"string","enum":["url"]},"url":{"type":"string","description":"The target URL.","example":"https://example.com"},"newWindow":{"type":"boolean","description":"Whether to open in a new window."}},"required":["type","url"]},"LucidStandardImportGotoPageAction":{"type":"object","description":"Navigate to a page in the current document.","properties":{"type":{"type":"string","enum":["gotoPage"]},"pageId":{"type":"string","description":"The ID of the target page.","example":"page2"}},"required":["type","pageId"]},"LucidStandardImportGotoDocumentAction":{"type":"object","description":"Navigate to a page in another document.","properties":{"type":{"type":"string","enum":["gotoDocument"]},"documentId":{"type":"string","description":"The ID of the target document."},"pageId":{"type":"string","description":"The ID of the target page within the document."},"newWindow":{"type":"boolean","description":"Whether to open in a new window."}},"required":["type","documentId","pageId"]},"LucidStandardImportToggleLayerAction":{"type":"object","description":"Toggle visibility of layers.","properties":{"type":{"type":"string","enum":["toggleLayer"]},"layers":{"type":"array","description":"List of layer names to toggle.","items":{"type":"string"}}},"required":["type","layers"]},"LucidStandardImportShowLayerAction":{"type":"object","description":"Show layers.","properties":{"type":{"type":"string","enum":["showLayer"]},"layers":{"type":"array","description":"List of layer names to show.","items":{"type":"string"}}},"required":["type","layers"]},"LucidStandardImportHideLayerAction":{"type":"object","description":"Hide layers.","properties":{"type":{"type":"string","enum":["hideLayer"]},"layers":{"type":"array","description":"List of layer names to hide.","items":{"type":"string"}}},"required":["type","layers"]},"LucidStandardImportStroke":{"type":"object","description":"Stroke styling for a line.","properties":{"color":{"type":"string","description":"Hex color string for the stroke.","default":"#000000","example":"#000000"},"width":{"type":"number","description":"Stroke thickness. Must be between 0 and 10, inclusive.","default":2,"minimum":0,"maximum":10,"example":2},"style":{"type":"string","description":"The stroke dash style.","enum":["solid","dotted","dashed"],"default":"solid","example":"solid"}}},"LucidStandardImportEndpoint":{"type":"object","description":"An endpoint of a line. The `type` field determines how the endpoint is positioned.\n- `shapeEndpoint`: Connects to a shape by its ID.\n- `positionEndpoint`: Connects to an absolute position on the page.\n- `lineEndpoint`: Connects to another line at a relative position.\n","discriminator":{"propertyName":"type","mapping":{"shapeEndpoint":"#/components/schemas/LucidStandardImportShapeEndpoint","positionEndpoint":"#/components/schemas/LucidStandardImportPositionEndpoint","lineEndpoint":"#/components/schemas/LucidStandardImportLineEndpoint"}},"oneOf":[{"$ref":"#/components/schemas/LucidStandardImportShapeEndpoint"},{"$ref":"#/components/schemas/LucidStandardImportPositionEndpoint"},{"$ref":"#/components/schemas/LucidStandardImportLineEndpoint"}]},"LucidStandardImportShapeEndpoint":{"type":"object","description":"An endpoint connected to a shape.","properties":{"type":{"type":"string","enum":["shapeEndpoint"]},"style":{"$ref":"#/components/schemas/EndpointStyle"},"shapeId":{"type":"string","description":"The ID of the shape to connect to.","example":"shape1"},"position":{"$ref":"#/components/schemas/RelativePoint","description":"Optional relative position on the shape to connect to. If omitted, uses smart auto-linking."}},"required":["type","style","shapeId"]},"LucidStandardImportPositionEndpoint":{"type":"object","description":"An endpoint at an absolute position on the page.","properties":{"type":{"type":"string","enum":["positionEndpoint"]},"style":{"$ref":"#/components/schemas/EndpointStyle"},"position":{"$ref":"#/components/schemas/AbsolutePoint"}},"required":["type","style","position"]},"LucidStandardImportLineEndpoint":{"type":"object","description":"An endpoint connected to another line.","properties":{"type":{"type":"string","enum":["lineEndpoint"]},"style":{"$ref":"#/components/schemas/EndpointStyle"},"lineId":{"type":"string","description":"The ID of the line to connect to.","example":"line1"},"position":{"type":"number","description":"Relative position along the line (0 to 1 inclusive).","minimum":0,"maximum":1}},"required":["type","style","lineId","position"]},"EndpointStyle":{"type":"string","description":"The visual style of a line endpoint.","enum":["none","aggregation","arrow","hollowArrow","openArrow","async1","async2","closedSquare","openSquare","bpmnConditional","bpmnDefault","closedCircle","openCircle","composition","exactlyOne","generalization","many","nesting","one","oneOrMore","zeroOrMore","zeroOrOne"],"example":"arrow"},"LucidStandardImportLineText":{"type":"object","description":"A text label on a line.","properties":{"text":{"type":"string","description":"The text content."},"position":{"type":"number","description":"Relative position along the line (0 to 1 inclusive).","default":0.5,"minimum":0,"maximum":1},"side":{"type":"string","description":"Which side of the line the text appears on.","enum":["top","middle","bottom"],"default":"middle"}},"required":["text"]},"AbsolutePoint":{"type":"object","description":"An absolute point on the page canvas.","properties":{"x":{"type":"number","description":"The x-coordinate. Must be between -1200000 and 1200000, inclusive."},"y":{"type":"number","description":"The y-coordinate. Must be between -1200000 and 1200000, inclusive."}},"required":["x","y"]},"RelativePoint":{"type":"object","description":"A relative point with coordinates between 0 and 1, inclusive.","properties":{"x":{"type":"number","description":"The relative x-coordinate (0 to 1).","minimum":0,"maximum":1},"y":{"type":"number","description":"The relative y-coordinate (0 to 1).","minimum":0,"maximum":1}},"required":["x","y"]},"LucidStandardImportGroup":{"type":"object","description":"A group of items on a page.","properties":{"id":{"type":"string","description":"Unique identifier for the group.","example":"group1"},"items":{"type":"array","description":"List of item IDs (shapes, lines, groups) contained in this group. An item can belong to only one group. If an item ID is specified in multiple groups, it is assigned to the first group encountered, and all subsequent references to that item ID are ignored.\n","items":{"type":"string"}},"customData":{"type":"array","description":"Custom key-value data to attach to the group.","items":{"$ref":"#/components/schemas/LucidStandardImportCustomDatum"}},"linkedData":{"type":"array","description":"Links to data collection entries.","items":{"$ref":"#/components/schemas/LucidStandardImportLinkedDatum"}},"note":{"type":"string","description":"A note to attach to the group."},"zIndex":{"type":"integer","description":"The z-order of the group on the page."}},"required":["id"]},"LucidStandardImportLayer":{"type":"object","description":"A layer on a page. Layers can contain shapes, lines, and groups.","properties":{"id":{"type":"string","description":"Unique identifier for the layer.","example":"layer1"},"title":{"type":"string","description":"The display name of the layer.","example":"Background"},"items":{"type":"array","description":"List of item IDs (shapes, lines, groups) contained in this layer. An item can belong to only one layer. If an item ID is specified in multiple layers, it is assigned to the first layer encountered, and all subsequent references to that item ID are ignored.\n","items":{"type":"string"}},"customData":{"type":"array","description":"Custom key-value data to attach to the layer.","items":{"$ref":"#/components/schemas/LucidStandardImportCustomDatum"}},"linkedData":{"type":"array","description":"Links to data collection entries.","items":{"$ref":"#/components/schemas/LucidStandardImportLinkedDatum"}},"note":{"type":"string","description":"A note to attach to the layer."},"layerIndex":{"type":"integer","description":"The index order of the layer."}},"required":["id","title"]},"LucidStandardImportDocumentSettings":{"type":"object","description":"Document-level settings for a Lucid Standard Import.","properties":{"units":{"type":"string","description":"The measurement unit for the document. Defaults to inches (`in`) if not specified.","enum":["in","cm","px","pt"],"default":"in","example":"in"}}},"LucidStandardImportPageSettings":{"type":"object","description":"Page-level settings for a Lucid Standard Import page.","properties":{"fillColor":{"type":"string","description":"Background fill color for the page as a hex color string.","example":"#ffffff"},"infiniteCanvas":{"type":"boolean","description":"Whether the page uses an infinite canvas."},"size":{"$ref":"#/components/schemas/LucidStandardImportPageSize"},"autoTiling":{"type":"boolean","description":"Whether auto-tiling is enabled for the page."},"lineJumps":{"type":"boolean","description":"Whether lines on this page draw small humps where they cross\nother lines. Individual lines may override this with their own\n`lineJumps` setting.\n"}}},"LucidStandardImportPageSize":{"description":"Page size configuration. Either a standard page size with an optional format, or a custom size with explicit dimensions.\n","oneOf":[{"$ref":"#/components/schemas/LucidStandardImportStandardPageSize"},{"$ref":"#/components/schemas/LucidStandardImportCustomPageSize"}]},"LucidStandardImportStandardPageSize":{"type":"object","description":"A standard named page size.","properties":{"type":{"type":"string","description":"The standard page size name.","enum":["letter","legal","executive","a3","a4","a5","tabloid","folio","statement"],"example":"letter"},"format":{"type":"string","description":"Page orientation.","enum":["landscape","portrait"],"default":"portrait"}},"required":["type"]},"LucidStandardImportCustomPageSize":{"type":"object","description":"A custom page size with explicit dimensions.","properties":{"w":{"type":"number","description":"Width of the page. Must be between 1.0 and 20000.0, inclusive.","minimum":1,"maximum":20000},"h":{"type":"number","description":"Height of the page. Must be between 1.0 and 20000.0, inclusive.","minimum":1,"maximum":20000}},"required":["w","h"]},"LucidStandardImportCollection":{"type":"object","description":"A data collection to associate with the document. Exactly one of `dataSource` or `values` must be provided — providing both or neither is an error.\n","properties":{"id":{"type":"string","description":"Unique identifier for the collection."}},"required":["id"],"oneOf":[{"title":"Data source reference","required":["dataSource"],"properties":{"dataSource":{"type":"string","description":"The data source this collection belongs to."}}},{"title":"Inline values","required":["values"],"properties":{"values":{"type":"array","description":"Inline JSON data for the collection. Each element is an object whose keys become the column headers and whose values become the row data.\n","items":{"type":"object","additionalProperties":true}}}}]},"LucidStandardImportCustomDatum":{"type":"object","description":"A custom key-value pair attached to an item.","properties":{"key":{"type":"string","description":"The data key."},"value":{"type":"string","description":"The data value."}},"required":["key","value"]},"LucidStandardImportCustomPageDatum":{"type":"object","description":"A custom key-value pair attached to a page, optionally globally inherited.","properties":{"key":{"type":"string","description":"The data key."},"value":{"type":"string","description":"The data value."},"global":{"type":"boolean","description":"When true, this data is globally inherited.","default":false}},"required":["key","value"]},"LucidStandardImportLinkedDatum":{"type":"object","description":"A reference linking an item to a data collection entry.","properties":{"collectionId":{"type":"string","description":"The ID of the collection containing the data."},"key":{"type":"string","description":"The key identifying the data entry within the collection."}},"required":["collectionId","key"]},"LucidStandardImportGenerator":{"type":"object","description":"A data-backed shape generator that automatically creates shapes from data.\nThe `type` field determines which generator is used.\n","properties":{"type":{"type":"string","description":"The type of generator.","enum":["orgChart","mindMap","assistedLayout","umlSequence"]}},"required":["type"]},"DocumentOpened":{"type":"object","description":"Audit event for when a document is opened.","properties":{"eventType":{"type":"string","description":"The event type.","example":"content.document.documentOpened"},"documentId":{"type":"string","format":"uuid","description":"The ID of the document opened.","example":"110808fd-4553-4316-bccf-4f25ff59a532"},"product":{"type":"string","description":"The product of the document.","example":"lucidchart"},"documentOpenedMethod":{"type":"object","description":"The method used to open the document.","properties":{"methodType":{"type":"string","description":"The method used to open the document.","example":"InApp"}}}}},"ShapeLibraryId":{"type":"string","description":"Unique identifier for a shape library."},"ShapeLibrary":{"type":"object","properties":{"libraryId":{"$ref":"#/components/schemas/ShapeLibraryId"}},"required":["libraryId"],"description":"Object representing a shape library available to use on Lucid documents."},"ShapeLibraryShapeId":{"type":"string","description":"Unique identifier of a shape within its library."},"ShapeLibraryShape":{"type":"object","properties":{"shapeId":{"$ref":"#/components/schemas/ShapeLibraryShapeId"}},"required":["shapeId"],"description":"Object representing a shape available within a shape library."},"ShapeLibraryShapeDetails":{"type":"object","properties":{"shapeId":{"$ref":"#/components/schemas/ShapeLibraryShapeId"},"libraryId":{"$ref":"#/components/schemas/ShapeLibraryId"},"defaultWidth":{"type":"number","description":"Default width, in pixels, of the shape when placed on a document.","example":160},"defaultHeight":{"type":"number","description":"Default height, in pixels, of the shape when placed on a document.","example":120},"fillColor":{"type":"string","nullable":true,"description":"Default fill color of the shape, as a hex color code. Null if the shape has no default fill color.","example":"#ffffff00"},"lineColor":{"type":"string","nullable":true,"description":"Default line color of the shape, as a hex color code. Null if the shape has no default line color.","example":"#e7157bff"}},"required":["shapeId","libraryId","defaultWidth","defaultHeight"],"description":"Object representing the details of a single shape identified by its library and ID."},"MermaidDiagramPosition":{"type":"object","description":"Absolute page coordinates at which to place a Mermaid diagram.","properties":{"x":{"type":"number","format":"double","description":"Horizontal page coordinate."},"y":{"type":"number","format":"double","description":"Vertical page coordinate."}},"required":["x","y"]},"MermaidDiagram":{"type":"object","description":"A Mermaid diagram contained in a Lucidchart or Lucidspark document.","properties":{"mermaidId":{"type":"string","description":"ID of the Mermaid diagram.","example":"mermaid_123456789"},"name":{"type":"string","description":"Name of the Mermaid diagram."},"markup":{"type":"string","description":"Mermaid markup used to render the diagram."}},"required":["mermaidId","name","markup"]},"MermaidDiagramIdResponse":{"type":"object","properties":{"mermaidId":{"type":"string","description":"ID of the created or updated Mermaid diagram.","example":"mermaid_123456789"}},"required":["mermaidId"]},"CreateMermaidDiagramRequest":{"type":"object","properties":{"markup":{"type":"string","maxLength":100000,"description":"Mermaid markup used to create the diagram.","example":"graph TD; A-->B;"},"svg":{"type":"boolean","default":false,"description":"When true, renders the diagram as SVG. When false or omitted, renders the diagram using native Lucid shapes."},"pageId":{"type":"string","description":"ID of the page on which to place the diagram. When omitted, the diagram is placed on the first page."},"position":{"allOf":[{"$ref":"#/components/schemas/MermaidDiagramPosition"}],"description":"Position at which to place the diagram. When omitted, the diagram is placed at the page origin (`x: 0`, `y: 0`)."}},"required":["markup"]},"UpdateMermaidDiagramRequest":{"type":"object","properties":{"markup":{"type":"string","maxLength":100000,"description":"Mermaid markup that replaces the diagram's existing markup.","example":"graph TD; A-->C;"}},"required":["markup"]},"Status":{"type":"object","properties":{"id":{"type":"integer","description":"Unique ID of the status.","example":0},"label":{"type":"string","description":"Display name of the status.","example":"draft"},"locksContent":{"type":"boolean","description":"Whether the status locks the content of a document.","example":false},"isDefault":{"type":"boolean","description":"Whether the status is the default status for new documents.","example":true}},"required":["id","label","locksContent","isDefault"]},"ImportDocumentImmediate":{"type":"object","properties":{"documentId":{"type":"string","format":"uuid","description":"ID reserved for the document that will be created by the import job."}},"required":["documentId"]},"ImportDocumentJobEnqueueResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"},"response":{"$ref":"#/components/schemas/ImportDocumentImmediate"}},"required":["jobId","response"]},"ImportDocumentResult":{"type":"object","properties":{"document":{"$ref":"#/components/schemas/Document"}},"required":["document"]},"ImportDocumentJobStatusResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"},"status":{"type":"string","description":"Current status of the import job.","enum":["PENDING","RUNNING","SUCCEEDED","FAILED"]},"response":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ImportDocumentResult"}]}},"required":["jobId","status"]},"ExportDocumentResult":{"type":"object","properties":{"downloadUrl":{"type":"string","format":"uri","description":"URL for downloading the completed export, valid for 1 hour after the request is made.","example":"https://download.example/exported-url"}},"required":["downloadUrl"]},"ExportDocumentJobStatusResponse":{"type":"object","properties":{"jobId":{"$ref":"#/components/schemas/JobReferenceId"},"status":{"type":"string","description":"Current status of the export job.","enum":["PENDING","RUNNING","SUCCEEDED","FAILED"]},"response":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/ExportDocumentResult"}]}},"required":["jobId","status"]},"TeamV2":{"type":"object","description":"A standard representation of a team, using the prefixed Team ID.","properties":{"teamId":{"type":"string","description":"The unique ID for the team, prefixed with `team_`.","example":"team_123456789"},"name":{"type":"string","description":"The team's name.","example":"Team Name"},"type":{"$ref":"#/components/schemas/TeamType"},"created":{"type":"string","format":"date-time","description":"Date and time when the team was created.","example":"2024-01-30T16:29:37Z"},"archived":{"type":"string","format":"date-time","description":"Date and time when the team was archived (if it has been archived).","nullable":true,"example":null}}},"DocumentTeamCollaboratorV2":{"type":"object","description":"A Team collaborator, using the prefixed Team ID.","properties":{"documentId":{"type":"string","format":"uuid","description":"Document ID"},"teamId":{"type":"string","description":"Team ID prefixed with `team_`.","example":"team_99"},"role":{"$ref":"#/components/schemas/Role"},"created":{"type":"string","format":"date-time","description":"Date and time when the collaboration was created"}},"required":["documentId","teamId","role","created"]},"FolderTeamCollaboratorV2":{"type":"object","description":"A Team collaborator, using the prefixed Team ID.","properties":{"folderId":{"type":"integer","description":"Folder ID"},"teamId":{"type":"string","description":"Team ID prefixed with `team_`.","example":"team_99"},"role":{"$ref":"#/components/schemas/Role"},"created":{"type":"string","format":"date-time","description":"Date and time when the collaboration was created"}},"required":["folderId","teamId","role","created"]},"AccountDocumentV2":{"type":"object","description":"An account document, using prefixed Team IDs.","properties":{"documentId":{"type":"string","format":"uuid","description":"Unique ID of the document","example":"110808fd-4553-4316-bccf-4f25ff59a532"},"title":{"type":"string","description":"Title of the document","example":"document title"},"adminViewUrl":{"type":"string","format":"uri","description":"Link to view the document","example":"https://lucid.app/lucidchart/110808fd-4553-4316-bccf-4f25ff59a532/adminView"},"created":{"type":"string","format":"date-time","description":"Date and time of when the document was created","example":"2019-04-22T13:47:23Z"},"owner":{"type":"object","properties":{"ownerType":{"type":"string","description":"user or account"},"id":{"type":"number","description":"userId or accountId"},"resourceType":{"type":"string","nullable":true,"description":"For account-owned documents, the type of resource that owns the document.","enum":["team","teamFolder","repository"]},"resourceId":{"type":"string","nullable":true,"description":"ID of the owning resource, prefixed to match `resourceType` - `team_` for `team` and `repo_` for `repository`. `teamFolder` resource IDs are numeric, as folders have no prefixed ID.","example":"team_99"}}},"lastModified":{"type":"string","format":"date-time","description":"Date and time of when the document was last modified","example":"2020-06-26T16:29:37Z"},"trashed":{"type":"string","format":"date-time","nullable":true,"description":"If defined, the timestamp when the document was moved to the trash","example":null},"customTags":{"type":"array","items":{"type":"string"},"description":"List of any custom tags assigned to the document","example":["in progress"]},"product":{"$ref":"#/components/schemas/Product"},"status":{"type":"string","nullable":true,"description":"Current assigned status of the document","example":"Complete"},"classification":{"type":"string","nullable":true,"description":"Current assigned classification of the document","example":"Private"},"parent":{"type":"integer","nullable":true,"description":"ID of the parent folder","example":123456788},"userCollaboratorIds":{"type":"array","items":{"type":"integer"},"description":"List of IDs of users that are collaborators on the document","example":[206418105,206418104,206418103]},"teamCollaboratorIds":{"type":"array","items":{"type":"string"},"description":"List of prefixed IDs of teams that are collaborators on the document","example":["team_111000660","team_111000661","team_111000659"]}},"required":["documentId","title","adminViewUrl","created","owner","lastModified","customTags","product","userCollaboratorIds","teamCollaboratorIds"],"example":{"documentId":"110808fd-4553-4316-bccf-4f25ff59a532","title":"document title","adminViewUrl":"https://lucid.app/lucidchart/110808fd-4553-4316-bccf-4f25ff59a532/adminView","created":"2019-04-22T13:47:23Z","owner":{"ownerType":"user","id":"123456"},"lastModified":"2020-06-26T16:29:37Z","customTags":["in progress"],"product":"lucidchart","status":"Complete","parent":123456788,"trashed":null,"userCollaboratorIds":[206418105,206418104,206418103],"teamCollaboratorIds":["team_111000660","team_111000661","team_111000659"]}},"AuditLogV2":{"type":"object","description":"An audit log event, using the prefixed Team ID for `teamTarget` targets.","properties":{"accountId":{"type":"integer","description":"The unique ID for the account.","example":1},"eventTimestamp":{"type":"string","format":"date-time","description":"The time the audit log event occurred.","example":"2026-06-02T17:41:20.124436108Z"},"actor":{"type":"object","description":"Identifies the acting user that triggered the audit log event.","properties":{"actorType":{"type":"string","description":"The type of actor","example":"user"},"actorAccountId":{"type":"integer","description":"The account ID of the actor.","example":1},"actorEmail":{"type":"string","description":"The email address of the actor.","example":"user@example.com"},"actorUserId":{"type":"number","description":"The user ID of the actor.","example":100},"actorClient":{"type":"string","nullable":true,"example":"Chrome/51.0.2704.103 Safari/537.36"},"actorIsExternal":{"type":"boolean","description":"Whether the actor is external to the account.","example":false},"actorIp":{"type":"string","description":"The IP address of the actor. Field is omitted if the actor is the system user.","example":"203.0.113.42"}}},"event":{"$ref":"#/components/schemas/DocumentOpened"},"target":{"type":"array","description":"A list of objects identifying the target of the audit event.","items":{"type":"object","properties":{"targetType":{"type":"string","description":"The type of the target.","example":"userTarget"},"targetId":{"oneOf":[{"type":"number"},{"type":"string"}],"description":"Unique identifier of the target. The type depends on `targetType`: a `team_`-prefixed string for `teamTarget`; numeric for `userTarget`, `folderTarget`, `groupTarget`, and `repositoryTarget`; a UUID string for `documentTarget` and `assetTarget`; an arbitrary string for `emailInvitationTarget` and `restApiTarget`. Absent for `unknownTarget`.","example":100},"displayName":{"type":"string","description":"The display name of the target.","example":"User Name"},"userEmail":{"type":"string","format":"email","description":"The email of the target user.","example":"user@example.com"},"isExternal":{"type":"boolean","description":"Whether the target is external to the organization.","example":false}}}},"flowId":{"type":"string","nullable":true,"description":"A flow id identifier.","example":"55ce2349da62cba"}}},"FolderV2":{"type":"object","description":"A standard representation of a folder. A folder at the root of a Team reports that Team as its parent.","properties":{"id":{"type":"number","description":"Unique ID of the folder","example":123456789},"type":{"$ref":"#/components/schemas/FolderType"},"name":{"type":"string","description":"Name of the folder","example":"Folder Name"},"parent":{"oneOf":[{"type":"number","nullable":true},{"type":"string"}],"description":"Where the folder lives: the numeric ID of the parent folder, or the `team_`-prefixed ID of the Team whose root contains it. Null for a folder at the root of the user's folder manager (\"My Documents\").","example":123456788},"created":{"type":"string","format":"date-time","description":"Date and time of when the folder was created","example":"2020-06-26T16:29:37Z"},"trashed":{"type":"string","format":"date-time","nullable":true,"description":"Date and time of when the folder was trashed. Null when the folder is not trashed.","example":"2022-01-20T12:14:18Z"},"attributes":{"type":"array","description":"An array of attributes assigned to the folder. Can be null or empty.","items":{"$ref":"#/components/schemas/FolderAttribute"}}},"required":["id","type","name","created"]},"FolderWithRepositoryV2":{"allOf":[{"$ref":"#/components/schemas/FolderV2"},{"type":"object","properties":{"repository":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/Repository"}]}}}]}},"securitySchemes":{"OAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://lucid.app/oauth2/authorize","tokenUrl":"https://api.lucid.co/oauth2/token","refreshUrl":"https://api.lucid.co/oauth2/token","scopes":{"account.audit.logs":"View audit logs on your account.","account.info":"View basic information about your account (e.g., account ID and account name) .","account.user":"Create, view, edit, and delete users on your account.","account.user:readonly":"View users on your account.","account.users:admin.readonly":"View all users and their roles on your account.","account.user.transfercontent":"Transfer ownership of a user's resources to another user on your account.","account.settings:readonly":"View settings on your account.","account.legalhold":"Create, view, and expire legal holds on your account.","account.legalhold:readonly":"View legal holds on your account.","account.legalhold.users":"Manage legal hold users on your account.","account.legalhold.users:readonly":"View legal hold users on your account.","folder":"Create, view, edit, share, and delete your folders. Organize your folders and their contents.","folder:readonly":"View any of your folders and list their contents.","folder:admin":"Perform admin actions on folders belonging to the account.","folder:admin.readonly":"View all folders belonging to the account with admin permissions.","invitation":"Accept document and folder share links.","invitation.accept":"Accept document and folder share links.","cloud.credential":"Manage cloud credentials.","cloud.credential:readonly":"View cloud credentials.","cloud.datasource":"Manage cloud data sources.","cloud.datasource:readonly":"View cloud data sources.","cloud.model":"Manage cloud models.","repository":"Manage repositories.","repository:readonly":"View repositories.","repository:admin":"Perform admin actions on repositories.","lucid.document.content":"Create, view, edit, and delete any Lucid document accessible by the user.","lucid.document.content:readonly":"View and download any Lucid document accessible by the user.","lucid.document.content:admin":"Perform admin actions on Lucid documents belonging to the account.","lucid.document.content:admin.readonly":"View all Lucid documents belonging to the account with admin permissions.","lucid.document.content.share":"Create, view, edit, and delete document collaborators, embeds, and share links for any Lucid document accessible by the user.","lucid.document.content.share:readonly":"View document collaborators, embeds, and share links for any Lucid document accessible by the user.","lucid.document.content.share.collaborator":"Create, view, edit, and delete document collaborators for any Lucid document accessible by the user.","lucid.document.content.share.collaborator:readonly":"View document collaborators for any Lucid document accessible by the user.","lucid.document.content.share.embed":"Create, view, edit, and delete document embeds for any Lucid document accessible by the user.","lucid.document.content.share.embed:readonly":"View document embeds for any Lucid document accessible by the user.","lucid.document.content.share.link":"Create, view, edit, and delete share links for any Lucid document accessible by the user.","lucid.document.content.share.link:readonly":"View share links for any Lucid document accessible by the user.","lucid.document.storage:admin.readonly":"Perform admin actions backing up Lucid documents belonging to the account.","lucid.document.app":"View, edit, create, and manage folders and documents within an app.","lucid.document.app.folder":"Create, view, edit, and manage any Lucid document within its app-specific folder.","lucid.document.app.picker":"View, edit, and manage any Lucid document selected within an app.","lucid.document.app.picker:readonly":"View and download any Lucid document selected within an app.","lucid.document.app.picker.share":"Create, view, edit, and delete document collaborators, embeds, and share links for any Lucid document selected within an app.","lucid.document.app.picker.share:readonly":"View document collaborators, embeds, and share links for any Lucid document selected within an app.","lucid.document.app.picker.share.collaborator":"Create, view, edit, and delete document collaborators for any Lucid document selected within an app.","lucid.document.app.picker.share.collaborator:readonly":"View document collaborators for any Lucid document selected within an app.","lucid.document.app.picker.share.embed":"Create, view, edit, and delete document embeds for any Lucid document selected within an app.","lucid.document.app.picker.share.embed:readonly":"View document embeds for any Lucid document selected within an app.","lucid.document.app.picker.share.link":"Create, view, edit, and delete share links for any Lucid document selected within an app.","lucid.document.app.picker.share.link:readonly":"View share links for any Lucid document selected within an app.","lucid.document.accessRequest":"Request access to Lucid documents.","licenses:admin":"Perform admin actions on licenses and subscriptions belonging to the account.","licenses:admin.readonly":"View licenses and subscriptions belonging to the account with admin permissions.","teams":"Create, view, and edit, archive, and restore any teams on your account. Control which users belong to teams.","teams:readonly":"View any teams on your account and list which users belong to them.","teams:admin":"Manage teams on your account.","lucidchart.document.app":"View, edit, and manage any Lucidchart document selected for this third-party application. Create, view, edit, and manage any Lucidchart document within its app-specific folder.","lucidchart.document.app.folder":"Create, view, edit, and manage any Lucidchart document within its app-specific folder.","lucidchart.document.app.picker":"View, edit, and manage any Lucidchart document selected for this third-party application.","lucidchart.document.app.picker:readonly":"View and download any Lucidchart document selected for this third-party application.","lucidchart.document.app.picker.share":"Create, view, edit, and delete document collaborators, embeds, and share links for any Lucidchart document selected for this third-party application.","lucidchart.document.app.picker.share:readonly":"View document collaborators, embeds, and share links for any Lucidchart document selected for this third-party application.","lucidchart.document.app.picker.share.collaborator":"Create, view, edit, and delete collaborators and invitations of any Lucidchart document on your team or enterprise account selected for the third-party application.","lucidchart.document.app.picker.share.collaborator:readonly":"View collaborators and invitations of any Lucidchart document on your team or enterprise account selected for the third-party application.","lucidchart.document.app.picker.share.embed":"Create, view, edit, and delete embeds of any Lucidchart document on your team or enterprise account selected for the third-party application.","lucidchart.document.app.picker.share.embed:readonly":"View embeds of any Lucidchart document on your team or enterprise account selected for the third-party application.","lucidchart.document.app.picker.share.link":"Create, view, edit, and delete the third party application's share links of any Lucidchart document on your team or enterprise account selected for the third-party application.","lucidchart.document.app.picker.share.link:readonly":"View the third party application's share links of any Lucidchart document on your team or enterprise account selected for the third-party application.","lucidchart.document.content":"Create, view, edit, and delete any Lucidchart document on your account.","lucidchart.document.content:readonly":"View and download any Lucidchart document on your account.","lucidchart.document.content:admin":"Perform admin actions on Lucidchart documents belonging to the account.","lucidchart.document.content:admin.readonly":"View all Lucidchart documents belonging to the account with admin permissions.","lucidchart.document.content.share":"Create, view, edit, and delete document collaborators, embeds, and share links for any of your Lucidchart documents.","lucidchart.document.content.share:readonly":"View document collaborators, embeds, and share links for any of your Lucidchart documents.","lucidchart.document.content.share.collaborator":"Create, view, edit, and delete collaborators and invitations for any of your Lucidchart documents on your team or enterprise account.","lucidchart.document.content.share.collaborator:readonly":"View collaborators and invitations for any of your Lucidchart documents on your team or enterprise account.","lucidchart.document.content.share.embed":"Create, view, edit, and delete embeds for any of your Lucidchart documents on your team or enterprise account.","lucidchart.document.content.share.embed:readonly":"View embeds for any of your Lucidchart documents on your team or enterprise account.","lucidchart.document.content.share.link":"Create, view, edit, and delete the third party application's share links for any of your Lucidchart documents on your team or enterprise account.","lucidchart.document.content.share.link:readonly":"View the third party application's share links for any of your Lucidchart documents on your team or enterprise account.","lucidchart.document.storage:admin.readonly":"Perform admin actions backing up Lucidchart documents belonging to the account.","lucidchart.document.accessRequest":"Request access to Lucidchart documents.","lucidspark.document.app":"View, edit, and manage any Lucidspark board selected for this third-party application. Create, view, edit, and manage any Lucidspark board within its app-specific folder.","lucidspark.document.app.folder":"Create, view, edit, and manage any Lucidspark board within its app-specific folder.","lucidspark.document.app.picker":"View, edit, and manage any Lucidspark board selected for this third-party application.","lucidspark.document.app.picker:readonly":"View and download any Lucidspark board selected for this third-party application.","lucidspark.document.app.picker.share":"Create, view, edit, and delete document collaborators, embeds, and share links for any Lucidspark board selected for this third-party application.","lucidspark.document.app.picker.share:readonly":"View document collaborators, embeds, and share links for any Lucidspark board selected for this third-party application.","lucidspark.document.app.picker.share.collaborator":"Create, view, edit, and delete collaborators and invitations of any Lucidspark board on your team or enterprise account selected for the third-party application.","lucidspark.document.app.picker.share.collaborator:readonly":"View collaborators and invitations of any Lucidspark board on your team or enterprise account selected for the third-party application.","lucidspark.document.app.picker.share.embed":"Create, view, edit, and delete embeds of any Lucidspark board on your team or enterprise account selected for the third-party application.","lucidspark.document.app.picker.share.embed:readonly":"View embeds of any Lucidspark board on your team or enterprise account selected for the third-party application.","lucidspark.document.app.picker.share.link":"Create, view, edit, and delete the third party application's share links of any Lucidspark board on your team or enterprise account selected for the third-party application.","lucidspark.document.app.picker.share.link:readonly":"View the third party application's share links of any Lucidspark board on your team or enterprise account selected for the third-party application.","lucidspark.document.content":"Create, view, edit, and delete any Lucidspark board on your account.","lucidspark.document.content:readonly":"View and download any Lucidspark board on your account.","lucidspark.document.content:admin":"Perform admin actions on Lucidspark boards belonging to the account.","lucidspark.document.content:admin.readonly":"View all Lucidspark boards belonging to the account with admin permissions.","lucidspark.document.content.share":"Create, view, edit, and delete document collaborators, embeds, and share links for any of your Lucidspark boards.","lucidspark.document.content.share:readonly":"View document collaborators, embeds, and share links for any of your Lucidspark boards.","lucidspark.document.content.share.collaborator":"Create, view, edit, and delete collaborators and invitations for any of your Lucidspark boards on your team or enterprise account.","lucidspark.document.content.share.collaborator:readonly":"View collaborators and invitations for any of your Lucidspark boards on your team or enterprise account.","lucidspark.document.content.share.embed":"Create, view, edit, and delete embeds for any of your Lucidspark boards on your team or enterprise account.","lucidspark.document.content.share.embed:readonly":"View embeds for any of your Lucidspark boards on your team or enterprise account.","lucidspark.document.content.share.link":"Create, view, edit, and delete the third party application's share links for any of your Lucidspark boards on your team or enterprise account.","lucidspark.document.content.share.link:readonly":"View the third party application's share links for any of your Lucidspark boards on your team or enterprise account.","lucidspark.document.storage:admin.readonly":"Perform admin actions backing up Lucidspark boards belonging to the account.","lucidspark.document.accessRequest":"Request access to Lucidspark boards.","lucidscale.document.app":"View, edit, and manage any Lucidscale model selected for this third-party application. Create, view, edit, and manage any Lucidscale model within its app-specific folder.","lucidscale.document.app.folder":"Create, view, edit, and manage any Lucidscale model within its app-specific folder.","lucidscale.document.app.picker":"View, edit, and manage any Lucidscale model selected for this third-party application.","lucidscale.document.app.picker:readonly":"View and download any Lucidscale model selected for this third-party application.","lucidscale.document.app.picker.share":"Create, view, edit, and delete document collaborators, embeds, and share links for any Lucidscale model selected for this third-party application.","lucidscale.document.app.picker.share:readonly":"View document collaborators, embeds, and share links for any Lucidscale model selected for this third-party application.","lucidscale.document.app.picker.share.collaborator":"Create, view, edit, and delete collaborators and invitations of any Lucidscale model on your team or enterprise account selected for the third-party application.","lucidscale.document.app.picker.share.collaborator:readonly":"View collaborators and invitations of any Lucidscale model on your team or enterprise account selected for the third-party application.","lucidscale.document.app.picker.share.embed":"Create, view, edit, and delete embeds of any Lucidscale model on your team or enterprise account selected for the third-party application.","lucidscale.document.app.picker.share.embed:readonly":"View embeds of any Lucidscale model on your team or enterprise account selected for the third-party application.","lucidscale.document.app.picker.share.link":"Create, view, edit, and delete the third party application's share links of any Lucidscale model on your team or enterprise account selected for the third-party application.","lucidscale.document.app.picker.share.link:readonly":"View the third party application's share links of any Lucidscale model on your team or enterprise account selected for the third-party application.","lucidscale.document.content":"Create, view, edit, and delete any Lucidscale model on your account.","lucidscale.document.content:readonly":"View and download any Lucidscale model on your account.","lucidscale.document.content:admin":"Perform admin actions on Lucidscale models belonging to the account.","lucidscale.document.content:admin.readonly":"View all Lucidscale models belonging to the account with admin permissions.","lucidscale.document.content.share":"Create, view, edit, and delete document collaborators, embeds, and share links for any of your Lucidscale models.","lucidscale.document.content.share:readonly":"View document collaborators, embeds, and share links for any of your Lucidscale models.","lucidscale.document.content.share.collaborator":"Create, view, edit, and delete collaborators and invitations for any of your Lucidscale models on your team or enterprise account.","lucidscale.document.content.share.collaborator:readonly":"View collaborators and invitations for any of your Lucidscale models on your team or enterprise account.","lucidscale.document.content.share.embed":"Create, view, edit, and delete embeds for any of your Lucidscale models on your team or enterprise account.","lucidscale.document.content.share.embed:readonly":"View embeds for any of your Lucidscale models on your team or enterprise account.","lucidscale.document.content.share.link":"Create, view, edit, and delete the third party application's share links for any of your Lucidscale models on your team or enterprise account.","lucidscale.document.content.share.link:readonly":"View the third party application's share links for any of your Lucidscale models on your team or enterprise account.","lucidscale.document.storage:admin.readonly":"Perform admin actions backing up Lucidscale models belonging to the account.","lucidscale.document.accessRequest":"Request access to Lucidscale models.","offline_access":"Continue to perform authorized actions when you're not logged in (required to refresh tokens).","user.profile":"Allow applications to view basic information about you (e.g., full name, username, and email).","document.app":"View, edit, and manage any Lucidchart document selected for this third-party application. Create, view, edit, and manage any Lucidchart document within its app-specific folder.","document.app.folder":"Create, view, edit, and manage any Lucidchart document within its app-specific folder.","document.app.picker":"View, edit, and manage any Lucidchart document selected for this third-party application.","document.app.picker:readonly":"View and download any Lucidchart document selected for this third-party application.","document.content":"Create, view, edit, and delete any Lucidchart document on your account.","document.content:readonly":"View and download any Lucidchart document on your account."}}}},"ApiKey":{"type":"http","scheme":"bearer"}},"parameters":{"RequestAs-Teams":{"in":"header","name":"Lucid-Request-As","required":false,"description":"If the requesting user is an account owner, team admin, or team manager with the required permissions and they make\nthe request with the value of “admin” as this header and include an admin scope, the request will be made using\ntheir admin permissions.\n","schema":{"type":"string"},"example":"admin"},"RequestAs-Folders":{"in":"header","name":"Lucid-Request-As","required":true,"description":"If the requesting user is an account owner or folder admin with the required permissions and they make the request\nwith the value of “admin” as this header and include an admin scope, the request will be made using their admin\npermissions.\nAccount owners and document admins can access the admin version of folder search.\n","schema":{"type":"string"},"example":"admin"},"RequestAs-AccountDocuments":{"in":"header","name":"Lucid-Request-As","required":true,"description":"If the requesting user is an account owner or document admin with the required permissions and they make the request\nwith the value of “admin” as this header and include an admin scope, the request will be made using their admin\npermissions.\n","schema":{"type":"string"},"example":"admin"},"LegalHoldIdPath":{"in":"path","name":"legalHoldId","required":true,"description":"Unique ID of the legal hold.","schema":{"type":"string","format":"uuid"}},"DocumentShareLinkDocumentId":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID of the document."},"DocumentShareLinkShareLinkId":{"name":"shareLinkId","in":"path","required":true,"schema":{"type":"string"},"description":"Id of the share link to retrieve information for."}},"headers":{"RetryAfter":{"description":"Number of seconds to wait before retrying. Increase the delay after repeated 429 responses.","schema":{"type":"integer","minimum":0}}}}}