{"note":"OpenAPI conversion -- returning structured metadata","name":"figshare-com","description":"Figshare API","version":"2.0","base_url":"https://api.figshare.com/v2","endpoints":157,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Figshare API\n@base https://api.figshare.com/v2\n@version 2.0\n@auth OAuth2\n@endpoints 157\n@hint download_for_search\n@toc altmetric(1), articles(12), account(121), collections(6), institutions(1), institution(1), token(2), item_types(1), categories(1), licenses(1), file(1), projects(4), symplectic(5)\n\n@group altmetric\n@endpoint GET /altmetric/institutions\n@desc List Altmetric Institutions\n@optional {offset: int=0 # Where to start the listing. The offset of the first item.}\n@returns(200) OK. An array of Altmetric institutions\n@errors {400: Bad Request, 500: Internal Server Error}\n\n@endgroup\n\n@group articles\n@endpoint GET /articles\n@desc Public Articles\n@optional {X-Cursor: str # Unique hash used for bypassing the item retrieval limit of 9,000 entities. When using this parameter, please note that the offset parameter will not be available, but the limit parameter will still work as expected., page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, order: str(published_date/created_date/modified_date/views/shares/downloads/cites)=published_date # The field by which to order. Default varies by endpoint/resource., order_direction: str(asc/desc)=desc, institution: int # only return articles from this institution, published_since: str # Filter by article publishing date. Will only return articles published after the date. date(ISO 8601) YYYY-MM-DD or date-time(ISO 8601) YYYY-MM-DDTHH:mm:ssZ, modified_since: str # Filter by article modified date. Will only return articles modified after the date. date(ISO 8601) YYYY-MM-DD or date-time(ISO 8601) YYYY-MM-DDTHH:mm:ssZ, group: int # only return articles from this group, resource_doi: str # Deprecated by related materials. Only return articles with this resource_doi, item_type: int # Only return articles with the respective type. Mapping for item_type is: 1 - Figure, 2 - Media, 3 - Dataset, 5 - Poster, 6 - Journal contribution, 7 - Presentation, 8 - Thesis, 9 - Software, 11 - Online resource, 12 - Preprint, 13 - Book, 14 - Conference contribution, 15 - Chapter, 16 - Peer review, 17 - Educational resource, 18 - Report, 19 - Standard, 20 - Composition, 21 - Funding, 22 - Physical object, 23 - Data management plan, 24 - Workflow, 25 - Monograph, 26 - Performance, 27 - Event, 28 - Service, 29 - Model, doi: str # only return articles with this doi, handle: str # only return articles with this handle}\n@returns(200) OK. An array of articles\n@errors {400: Bad Request, 422: Unprocessable Entity. Syntax is correct but one of the parameters isn't correctly processed, 500: Internal Server Error}\n\n@endpoint POST /articles/search\n@desc Public Articles Search\n@optional {X-Cursor: str # Unique hash used for bypassing the item retrieval limit of 9,000 entities. When using this parameter, please note that the offset parameter will not be available, but the limit parameter will still work as expected., resource_doi: str # Only return articles with this resource_doi, item_type: int # Only return articles with the respective type. Mapping for item_type is: 1 - Figure, 2 - Media, 3 - Dataset, 5 - Poster, 6 - Journal contribution, 7 - Presentation, 8 - Thesis, 9 - Software, 11 - Online resource, 12 - Preprint, 13 - Book, 14 - Conference contribution, 15 - Chapter, 16 - Peer review, 17 - Educational resource, 18 - Report, 19 - Standard, 20 - Composition, 21 - Funding, 22 - Physical object, 23 - Data management plan, 24 - Workflow, 25 - Monograph, 26 - Performance, 27 - Event, 28 - Service, 29 - Model, doi: str # Only return articles with this doi, handle: str # Only return articles with this handle, project_id: int # Only return articles in this project, order: str(created_date/published_date/modified_date/views/shares/downloads/cites)=created_date # The field by which to order}\n@returns(200) OK. An array of articles\n@errors {400: Bad Request, 422: Unprocessable Entity. Syntax is correct but one of the parameters isn't correctly processed, 500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}\n@desc View article details\n@required {article_id: int # Article Unique identifier}\n@returns(200) {figshare_url: str(url), download_disabled: bool, files: [map], folder_structure: map, authors: [map], custom_fields: [map], embargo_options: [map]} # OK. Article representation\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}/versions\n@desc List article versions\n@required {article_id: int # Article Unique identifier}\n@returns(200) OK. Article version representations\n@errors {400: Bad Request. Article ID must be an integer and bigger than 0., 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}/versions/{version_id}\n@desc Article details for version\n@required {article_id: int # Article Unique identifier, version_id: int # Article Version Number}\n@returns(200) {figshare_url: str(url), download_disabled: bool, files: [map], folder_structure: map, authors: [map], custom_fields: [map], embargo_options: [map]} # OK. Article representation\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}/versions/{version_id}/files\n@desc Public Article version files\n@required {article_id: int # Article Unique identifier, version_id: int # Article Version Unique identifier}\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) OK. List of article files\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}/download\n@desc Public Article Download\n@required {article_id: int # Article unique identifier}\n@optional {folder_path: str # Folder path to download. If not provided, all files from the article will be downloaded}\n@returns(200) OK\n@errors {500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}/versions/{version_id}/download\n@desc Public Article Version Download\n@required {article_id: int # Article unique identifier, version_id: int # Version Number}\n@optional {folder_path: str # Folder path to download. If not provided, all files from the article will be downloaded}\n@returns(200) OK\n@errors {500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}/versions/{version_id}/embargo\n@desc Public Article Embargo for article version\n@required {article_id: int # Article Unique identifier, version_id: int # Version Number}\n@returns(200) {is_embargoed: bool, embargo_title: str, embargo_reason: str, embargo_options: [map]} # OK. Embargo representation\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}/versions/{version_id}/confidentiality\n@desc Public Article Confidentiality for article version\n@required {article_id: int # Article Unique identifier, version_id: int # Version Number}\n@returns(200) {is_confidential: bool, reason: str} # OK. Confidentiality representation\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}/files\n@desc List article files\n@required {article_id: int # Article Unique identifier}\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) OK. List of article files\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /articles/{article_id}/files/{file_id}\n@desc Article file details\n@required {article_id: int # Article Unique identifier, file_id: int # File Unique identifier}\n@returns(200) {id: int, name: str, size: int, is_link_only: bool, download_url: str(url), supplied_md5: str, computed_md5: str, mimetype: str} # OK. File representation\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endgroup\n\n@group account\n@endpoint POST /account/articles/search\n@desc Private Articles search\n@optional {resource_id: str # only return collections with this resource_id}\n@returns(200) OK. An array of articles\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/articles\n@desc Private Articles\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) OK. An array of articles belonging to the account\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint POST /account/articles\n@desc Create new Article\n@required {title: str # Title of article}\n@optional {description: str= # The article description. In a publisher case, usually this is the remote article description, is_metadata_record: bool # True if article has no files, metadata_reason: str # Article metadata reason, tags: [str] # List of tags to be associated with the article. Keywords can be used instead, keywords: [str] # List of tags to be associated with the article. Tags can be used instead, references: [str(link)] # List of links to be associated with the article (e.g [\"http://link1\", \"http://link2\", \"http://link3\"]), related_materials: [map{id: int, identifier: str, title: str, relation: str, identifier_type: str, is_linkout: bool, link: str}] # List of related materials; supersedes references and resource DOI/title., categories: [int] # List of category ids to be associated with the article(e.g [1, 23, 33, 66]), categories_by_source_id: [str] # List of category source ids to be associated with the article, supersedes the categories property, authors: [map{}] # List of authors to be associated with the article. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint., custom_fields: map{} # List of key, values pairs to be associated with the article, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter, defined_type: str # One of: figure online resource preprint book conference contribution media dataset poster journal contribution presentation thesis software, funding: str= # Grant number or funding authority, funding_list: [map{id: int, title: str}] # Funding creation / update items, license: int=0 # License id for this article., doi: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting DOIs. This setting is applied by figshare via opening a ticket through our support/helpdesk system., handle: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting Handles. This setting is applied by figshare via opening a ticket through our support/helpdesk system., resource_doi: str= # Deprecated by related materials. Not applicable to regular users. In a publisher case, this is the publisher article DOI., resource_title: str= # Deprecated by related materials. Not applicable to regular users. In a publisher case, this is the publisher article title., timeline: map{firstOnline: str, publisherPublication: str, publisherAcceptance: str}, group_id: int # Not applicable to regular users. This field is reserved to institutions/publishers with access to assign to specific groups}\n@returns(201) {entity_id: int, location: str(url), warnings: [str]} # Created\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/articles/{article_id}\n@desc Article details\n@required {article_id: int # Article unique identifier}\n@returns(200) {account_id: int, curation_status: str} # OK. Article representation\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/articles/{article_id}\n@desc Update article\n@required {article_id: int # Article unique identifier}\n@optional {title: str # Title of article, description: str= # The article description. In a publisher case, usually this is the remote article description, is_metadata_record: bool # True if article has no files, metadata_reason: str # Article metadata reason, tags: [str] # List of tags to be associated with the article. Keywords can be used instead, keywords: [str] # List of tags to be associated with the article. Tags can be used instead, references: [str(link)] # List of links to be associated with the article (e.g [\"http://link1\", \"http://link2\", \"http://link3\"]), related_materials: [map{id: int, identifier: str, title: str, relation: str, identifier_type: str, is_linkout: bool, link: str}] # List of related materials; supersedes references and resource DOI/title., categories: [int] # List of category ids to be associated with the article(e.g [1, 23, 33, 66]), categories_by_source_id: [str] # List of category source ids to be associated with the article, supersedes the categories property, authors: [map{}] # List of authors to be associated with the article. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint., custom_fields: map{} # List of key, values pairs to be associated with the article, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter, defined_type: str # One of: figure online resource preprint book conference contribution media dataset poster journal contribution presentation thesis software, funding: str= # Grant number or funding authority, funding_list: [map{id: int, title: str}] # Funding creation / update items, license: int=0 # License id for this article., doi: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting DOIs. This setting is applied by figshare via opening a ticket through our support/helpdesk system., handle: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting Handles. This setting is applied by figshare via opening a ticket through our support/helpdesk system., resource_doi: str= # Deprecated by related materials. Not applicable to regular users. In a publisher case, this is the publisher article DOI., resource_title: str= # Deprecated by related materials. Not applicable to regular users. In a publisher case, this is the publisher article title., timeline: map{firstOnline: str, publisherPublication: str, publisherAcceptance: str}, download_disabled: bool # If true, downloading of files for this article is disabled, group_id: int # Not applicable to regular users. This field is reserved to institutions/publishers with access to assign to specific groups}\n@returns(205) {location: str(url), warnings: [str]} # Reset Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/articles/{article_id}\n@desc Delete article\n@required {article_id: int # Article unique identifier}\n@returns(204) No Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PATCH /account/articles/{article_id}\n@desc Partially update article\n@required {article_id: int # Article unique identifier}\n@optional {title: str # Title of article, description: str= # The article description. In a publisher case, usually this is the remote article description, is_metadata_record: bool # True if article has no files, metadata_reason: str # Article metadata reason, tags: [str] # List of tags to be associated with the article. Keywords can be used instead, keywords: [str] # List of tags to be associated with the article. Tags can be used instead, references: [str(link)] # List of links to be associated with the article (e.g [\"http://link1\", \"http://link2\", \"http://link3\"]), related_materials: [map{id: int, identifier: str, title: str, relation: str, identifier_type: str, is_linkout: bool, link: str}] # List of related materials; supersedes references and resource DOI/title., categories: [int] # List of category ids to be associated with the article(e.g [1, 23, 33, 66]), categories_by_source_id: [str] # List of category source ids to be associated with the article, supersedes the categories property, authors: [map{}] # List of authors to be associated with the article. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint., custom_fields: map{} # List of key, values pairs to be associated with the article, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter, defined_type: str # One of: figure online resource preprint book conference contribution media dataset poster journal contribution presentation thesis software, funding: str= # Grant number or funding authority, funding_list: [map{id: int, title: str}] # Funding creation / update items, license: int=0 # License id for this article., doi: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting DOIs. This setting is applied by figshare via opening a ticket through our support/helpdesk system., handle: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting Handles. This setting is applied by figshare via opening a ticket through our support/helpdesk system., resource_doi: str= # Deprecated by related materials. Not applicable to regular users. In a publisher case, this is the publisher article DOI., resource_title: str= # Deprecated by related materials. Not applicable to regular users. In a publisher case, this is the publisher article title., timeline: map{firstOnline: str, publisherPublication: str, publisherAcceptance: str}, download_disabled: bool # If true, downloading of files for this article is disabled, group_id: int # Not applicable to regular users. This field is reserved to institutions/publishers with access to assign to specific groups}\n@returns(205) {location: str(url), warnings: [str]} # Reset Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/articles/{article_id}/embargo\n@desc Article Embargo Details\n@required {article_id: int # Article unique identifier}\n@returns(200) {is_embargoed: bool, embargo_title: str, embargo_reason: str, embargo_options: [map]} # OK. Embargo for article\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/articles/{article_id}/embargo\n@desc Update Article Embargo\n@required {article_id: int # Article unique identifier, is_embargoed: bool # Embargo status, embargo_date: str # Date when the embargo expires and the article gets published, '0' value will set up permanent embargo, embargo_type: str(article/file) # Embargo can be enabled at the article or the file level. Possible values: article, file}\n@optional {embargo_title: str # Title for embargo, embargo_reason: str # Reason for setting embargo, embargo_options: [map{}] # List of embargo permissions to be associated with the article. The list must contain `id` and can also contain `group_ids`(a field that only applies to 'logged_in' permissions). The new list replaces old options in the database, and an empty list removes all permissions for this article. Administration permission has to be set up alone but logged in and IP range permissions can be set up together.}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/articles/{article_id}/embargo\n@desc Delete Article Embargo\n@required {article_id: int # Article unique identifier}\n@returns(204) No Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/articles/{article_id}/resource\n@desc Private Article Resource\n@required {article_id: int # Article unique identifier}\n@optional {id: str= # ID of resource item, title: str= # Title of resource item, doi: str= # DOI of resource item, link: str= # Link of resource item, status: str= # Status of resource item, version: int=0 # Version of resource item}\n@returns(205) {location: str(url)} # Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 422: Unprocessable Entity}\n\n@endpoint POST /account/articles/{article_id}/publish\n@desc Private Article Publish\n@required {article_id: int # Article unique identifier}\n@returns(201) {location: str(url)} # Created\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/articles/{article_id}/unpublish\n@desc Public Article Unpublish\n@required {article_id: int # Article unique identifier, reason: str # Reason of article unpublishing}\n@returns(204) No Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/articles/{article_id}/reserve_doi\n@desc Private Article Reserve DOI\n@required {article_id: int # Article unique identifier}\n@returns(200) {doi: str} # OK\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/articles/{article_id}/reserve_handle\n@desc Private Article Reserve Handle\n@required {article_id: int # Article unique identifier}\n@returns(200) {handle: str} # OK\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/articles/{article_id}/download\n@desc Private Article Download\n@required {article_id: int # Article unique identifier}\n@optional {folder_path: str # Folder path to download. If not provided, all files from the article will be downloaded}\n@returns(200) OK\n@errors {403: Insufficient permissions, 500: Internal Server Error}\n\n@endpoint PUT /account/articles/{article_id}/versions/{version_id}\n@desc Update article version\n@required {article_id: int # Article unique identifier, version_id: int # Article version identifier}\n@optional {supplementary_fields: [map{}] # List of supplementary fields to be associated with the article version, internal_metadata: map{} # List of supplementary fields to be associated with the article version}\n@returns(205) {location: str(url), warnings: [str]} # Reset Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PATCH /account/articles/{article_id}/versions/{version_id}\n@desc Partially update article version\n@required {article_id: int # Article unique identifier, version_id: int # Article version identifier}\n@optional {supplementary_fields: [map{}] # List of supplementary fields to be associated with the article version, internal_metadata: map{} # List of supplementary fields to be associated with the article version}\n@returns(205) {location: str(url), warnings: [str]} # Reset Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/articles/{article_id}/versions/{version_id}/update_thumb\n@desc Update article version thumbnail\n@required {article_id: int # Article unique identifier, version_id: int # Article version identifier}\n@optional {file_id: int # File ID}\n@returns(205) Reset Content\n@errors {403: Forbidden, 404: Not Found, 422: Unprocessable Entity}\n\n@endpoint GET /account/articles/{article_id}/authors\n@desc List article authors\n@required {article_id: int # Article unique identifier}\n@returns(200) OK. Authors list for article\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/articles/{article_id}/authors\n@desc Replace article authors\n@required {article_id: int # Article unique identifier, authors: [map{}] # List of authors to be associated with the article. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint.}\n@returns(205) Reset Content\n@errors {400: Bad Request. Article ID must be an integer and bigger than 0. Author with ID Not Found., 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/articles/{article_id}/authors\n@desc Add article authors\n@required {article_id: int # Article unique identifier, authors: [map{}] # List of authors to be associated with the article. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint.}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/articles/{article_id}/authors/{author_id}\n@desc Delete article author\n@required {article_id: int # Article unique identifier, author_id: int # Article Author unique identifier}\n@returns(204) No Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/articles/{article_id}/categories\n@desc List article categories\n@required {article_id: int # Article unique identifier}\n@returns(200) OK. Article categories\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/articles/{article_id}/categories\n@desc Replace article categories\n@required {article_id: int # Article unique identifier, categories: [int] # List of category ids}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/articles/{article_id}/categories\n@desc Add article categories\n@required {article_id: int # Article unique identifier, categories: [int] # List of category ids}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/articles/{article_id}/categories/{category_id}\n@desc Delete article category\n@required {article_id: int # Article unique identifier, category_id: int # Category unique identifier}\n@returns(204) No Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/articles/{article_id}/confidentiality\n@desc Article confidentiality details\n@required {article_id: int # Article unique identifier}\n@returns(200) {is_confidential: bool, reason: str} # OK. Article categories\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/articles/{article_id}/confidentiality\n@desc Update article confidentiality\n@required {article_id: int # Article unique identifier, reason: str # Reason for confidentiality}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/articles/{article_id}/confidentiality\n@desc Delete article confidentiality\n@required {article_id: int # Article unique identifier}\n@returns(204) No Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/articles/{article_id}/private_links\n@desc List private links\n@required {article_id: int # Article unique identifier}\n@returns(200) OK. Article private links\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/articles/{article_id}/private_links\n@desc Create private link\n@required {article_id: int # Article unique identifier}\n@optional {expires_date: str # Date when this private link should expire - optional. By default private links expire in 365 days.}\n@returns(201) {location: str(url), html_location: str(url), token: str} # Created\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endpoint PUT /account/articles/{article_id}/private_links/{link_id}\n@desc Update private link\n@required {article_id: int # Article unique identifier, link_id: str # Private link token}\n@optional {expires_date: str # Date when this private link should expire - optional. By default private links expire in 365 days.}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endpoint DELETE /account/articles/{article_id}/private_links/{link_id}\n@desc Disable private link\n@required {article_id: int # Article unique identifier, link_id: str # Private link token}\n@returns(204) No Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/articles/{article_id}/files\n@desc List article files\n@required {article_id: int # Article unique identifier}\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) OK. Article files list\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/articles/{article_id}/files\n@desc Initiate Upload\n@required {article_id: int # Article unique identifier}\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, link: str # Url for an existing file that will not be uploaded to Figshare, md5: str # MD5 sum pre-computed on client side., name: str # File name including the extension; can be omitted only for linked files., size: int # File size in bytes; can be omitted only for linked files., folder_path: str # Unix-style directory path of the file; only available if the file was uploaded within a folder structure}\n@returns(201) {location: str(url)} # Created\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 422: Unprocessable Entity. Parameters missing or incorrect, 500: Internal Server Error}\n\n@endpoint GET /account/articles/{article_id}/files/{file_id}\n@desc Single File\n@required {article_id: int # Article unique identifier, file_id: int # File unique identifier}\n@returns(200) {viewer_type: str, preview_state: str, upload_url: str(url), upload_token: str, is_attached_to_public_version: bool} # OK. Article private file\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/articles/{article_id}/files/{file_id}\n@desc Complete Upload\n@required {article_id: int # Article unique identifier, file_id: int # File unique identifier}\n@returns(202) Accepted\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/articles/{article_id}/files/{file_id}\n@desc File Delete\n@required {article_id: int # Article unique identifier, file_id: int # File unique identifier}\n@returns(204) No Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/articles/export\n@desc Account Article Report\n@optional {group_id: int # A group ID to filter by}\n@returns(200) OK. An array of account report entries\n@errors {400: Bad Request, 500: Internal Server Error}\n\n@endpoint POST /account/articles/export\n@desc Initiate a new Report\n@returns(200) {id: int, account_id: int, created_date: str, status: str, download_url: str(url), group_id: int} # OK. AccountReport created.\n@errors {429: Too Many Requests, 500: Internal Server Error}\n\n@endpoint POST /account/authors/search\n@desc Search Authors\n@optional {search_for: str # Search term, page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, institution_id: int # Return only authors associated to this institution, orcid: str # Orcid of author, group_id: int # Return only authors in this group or subgroups of the group, is_active: bool # Return only active authors if True, is_public: bool # Return only authors that have published items if True}\n@returns(200) OK. An array of authors\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/authors/{author_id}\n@desc Author details\n@required {author_id: int # Author unique identifier}\n@returns(200) {institution_id: int, group_id: int, first_name: str, last_name: str, is_public: int, job_title: str} # OK. Article representation\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endgroup\n\n@group collections\n@endpoint GET /collections\n@desc Public Collections\n@optional {X-Cursor: str # Unique hash used for bypassing the item retrieval limit of 9,000 entities. When using this parameter, please note that the offset parameter will not be available, but the limit parameter will still work as expected., page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, order: str(published_date/created_date/modified_date/views/shares/cites)=published_date # The field by which to order. Default varies by endpoint/resource., order_direction: str(asc/desc)=desc, institution: int # only return collections from this institution, published_since: str # Filter by collection publishing date. Will only return collections published after the date. date(ISO 8601) YYYY-MM-DD, modified_since: str # Filter by collection modified date. Will only return collections modified after the date. date(ISO 8601) YYYY-MM-DD, group: int # only return collections from this group, resource_doi: str # only return collections with this resource_doi, doi: str # only return collections with this doi, handle: str # only return collections with this handle}\n@returns(200) OK. An array of collections\n@errors {400: Bad Request, 422: Bad Request, 500: Internal Server Error}\n\n@endpoint POST /collections/search\n@desc Public Collections Search\n@optional {X-Cursor: str # Unique hash used for bypassing the item retrieval limit of 9,000 entities. When using this parameter, please note that the offset parameter will not be available, but the limit parameter will still work as expected., resource_doi: str # Only return collections with this resource_doi, doi: str # Only return collections with this doi, handle: str # Only return collections with this handle, order: str(created_date/published_date/modified_date/views/shares/cites)=created_date # The field by which to order.}\n@returns(200) OK. An array of collections\n@errors {400: Bad Request, 422: Bad Request, 500: Internal Server Error}\n\n@endpoint GET /collections/{collection_id}\n@desc Collection details\n@required {collection_id: int # Collection Unique identifier}\n@returns(200) {funding: [map], resource_id: str, resource_doi: str, resource_title: str, resource_link: str, resource_version: int, version: int, description: str, categories: [map], references: [str(url)], related_materials: [map], tags: [str], keywords: [str], authors: [map], institution_id: int, group_id: int, articles_count: int, public: bool, citation: str, custom_fields: [map], modified_date: str, created_date: str, timeline: any} # OK. Collection representation\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /collections/{collection_id}/versions\n@desc Collection Versions list\n@required {collection_id: int # Collection Unique identifier}\n@returns(200) OK. An array of versions\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /collections/{collection_id}/versions/{version_id}\n@desc Collection Version details\n@required {collection_id: int # Collection Unique identifier, version_id: int # Version Number}\n@returns(200) {funding: [map], resource_id: str, resource_doi: str, resource_title: str, resource_link: str, resource_version: int, version: int, description: str, categories: [map], references: [str(url)], related_materials: [map], tags: [str], keywords: [str], authors: [map], institution_id: int, group_id: int, articles_count: int, public: bool, citation: str, custom_fields: [map], modified_date: str, created_date: str, timeline: any} # OK. Collection for that version\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /collections/{collection_id}/articles\n@desc Public Collection Articles\n@required {collection_id: int # Collection Unique identifier}\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) OK. An array of articles belonging to the collection\n@errors {400: Bad Request, 404: Not Found, 422: Bad Request, 500: Internal Server Error}\n\n@endgroup\n\n@group account\n@endpoint GET /account/collections\n@desc Private Collections List\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, order: str(published_date/modified_date/views/shares/cites)=published_date # The field by which to order. Default varies by endpoint/resource., order_direction: str(asc/desc)=desc}\n@returns(200) OK. An array of collections\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint POST /account/collections\n@desc Create collection\n@required {title: str # Title of collection}\n@optional {funding: str= # Grant number or funding authority, funding_list: [map{id: int, title: str}] # Funding creation / update items, description: str= # The collection description. In a publisher case, usually this is the remote collection description, articles: [int] # List of articles to be associated with the collection, authors: [map{}] # List of authors to be associated with the collection. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint., categories: [int] # List of category ids to be associated with the collection(e.g [1, 23, 33, 66]), categories_by_source_id: [str] # List of category source ids to be associated with the collection, supersedes the categories property, tags: [str] # List of tags to be associated with the collection. Keywords can be used instead, keywords: [str] # List of tags to be associated with the collection. Tags can be used instead, references: [str(link)] # List of links to be associated with the collection (e.g [\"http://link1\", \"http://link2\", \"http://link3\"]), related_materials: [map{id: int, identifier: str, title: str, relation: str, identifier_type: str, is_linkout: bool, link: str}] # List of related materials; supersedes references and resource DOI/title., custom_fields: map{} # List of key, values pairs to be associated with the collection, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter, doi: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting DOIs. This setting is applied by figshare via opening a ticket through our support/helpdesk system., handle: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting Handles. This setting is applied by figshare via opening a ticket through our support/helpdesk system., resource_id: str # Not applicable to regular users. In a publisher case, this is the publisher article id, resource_doi: str= # Not applicable to regular users. In a publisher case, this is the publisher article DOI., resource_link: str # Not applicable to regular users. In a publisher case, this is the publisher article link, resource_title: str= # Not applicable to regular users. In a publisher case, this is the publisher article title., resource_version: int # Not applicable to regular users. In a publisher case, this is the publisher article version, group_id: int # Not applicable to regular users. This field is reserved to institutions/publishers with access to assign to specific groups, timeline: map{firstOnline: str, publisherPublication: str, publisherAcceptance: str}}\n@returns(201) {entity_id: int, location: str(url), warnings: [str]} # Created\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/collections/{collection_id}\n@desc Collection details\n@required {collection_id: int # Collection Unique identifier}\n@returns(200) {account_id: int, funding: [map], resource_id: str, resource_doi: str, resource_title: str, resource_link: str, resource_version: int, version: int, description: str, categories: [map], references: [str(url)], related_materials: [map], tags: [str], keywords: [str], authors: [map], institution_id: int, group_id: int, articles_count: int, public: bool, citation: str, custom_fields: [map], modified_date: str, created_date: str, timeline: any} # OK. Collection representation\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/collections/{collection_id}\n@desc Update collection\n@required {collection_id: int # Collection Unique identifier}\n@optional {funding: str= # Grant number or funding authority, funding_list: [map{id: int, title: str}] # Funding creation / update items, title: str # Title of collection, description: str= # The collection description. In a publisher case, usually this is the remote collection description, articles: [int] # List of articles to be associated with the collection, authors: [map{}] # List of authors to be associated with the collection. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint., categories: [int] # List of category ids to be associated with the collection (e.g [1, 23, 33, 66]), categories_by_source_id: [str] # List of category source ids to be associated with the article, supersedes the categories property, tags: [str] # List of tags to be associated with the collection. Keywords can be used instead, keywords: [str] # List of tags to be associated with the collection. Tags can be used instead, references: [str(link)] # List of links to be associated with the collection (e.g [\"http://link1\", \"http://link2\", \"http://link3\"]), related_materials: [map{id: int, identifier: str, title: str, relation: str, identifier_type: str, is_linkout: bool, link: str}] # List of related materials; supersedes references and resource DOI/title., custom_fields: map{} # List of key, values pairs to be associated with the collection, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter, doi: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting DOIs. This setting is applied by figshare via opening a ticket through our support/helpdesk system., handle: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting Handles. This setting is applied by figshare via opening a ticket through our support/helpdesk system., resource_id: str # Not applicable to regular users. In a publisher case, this is the publisher article id, resource_doi: str= # Not applicable to regular users. In a publisher case, this is the publisher article DOI., resource_link: str # Not applicable to regular users. In a publisher case, this is the publisher article link, resource_title: str= # Not applicable to regular users. In a publisher case, this is the publisher article title., resource_version: int # Not applicable to regular users. In a publisher case, this is the publisher article version, group_id: int # Not applicable to regular users. This field is reserved to institutions/publishers with access to assign to specific groups, timeline: map{firstOnline: str, publisherPublication: str, publisherAcceptance: str}}\n@returns(205) {location: str(url), warnings: [str]} # Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/collections/{collection_id}\n@desc Delete collection\n@required {collection_id: int # Collection Unique identifier}\n@returns(204) No Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PATCH /account/collections/{collection_id}\n@desc Partially update collection\n@required {collection_id: int # Collection Unique identifier}\n@optional {funding: str= # Grant number or funding authority, funding_list: [map{id: int, title: str}] # Funding creation / update items, title: str # Title of collection, description: str= # The collection description. In a publisher case, usually this is the remote collection description, articles: [int] # List of articles to be associated with the collection, authors: [map{}] # List of authors to be associated with the collection. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint., categories: [int] # List of category ids to be associated with the collection (e.g [1, 23, 33, 66]), categories_by_source_id: [str] # List of category source ids to be associated with the article, supersedes the categories property, tags: [str] # List of tags to be associated with the collection. Keywords can be used instead, keywords: [str] # List of tags to be associated with the collection. Tags can be used instead, references: [str(link)] # List of links to be associated with the collection (e.g [\"http://link1\", \"http://link2\", \"http://link3\"]), related_materials: [map{id: int, identifier: str, title: str, relation: str, identifier_type: str, is_linkout: bool, link: str}] # List of related materials; supersedes references and resource DOI/title., custom_fields: map{} # List of key, values pairs to be associated with the collection, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter, doi: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting DOIs. This setting is applied by figshare via opening a ticket through our support/helpdesk system., handle: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting Handles. This setting is applied by figshare via opening a ticket through our support/helpdesk system., resource_id: str # Not applicable to regular users. In a publisher case, this is the publisher article id, resource_doi: str= # Not applicable to regular users. In a publisher case, this is the publisher article DOI., resource_link: str # Not applicable to regular users. In a publisher case, this is the publisher article link, resource_title: str= # Not applicable to regular users. In a publisher case, this is the publisher article title., resource_version: int # Not applicable to regular users. In a publisher case, this is the publisher article version, group_id: int # Not applicable to regular users. This field is reserved to institutions/publishers with access to assign to specific groups, timeline: map{firstOnline: str, publisherPublication: str, publisherAcceptance: str}}\n@returns(205) {location: str(url), warnings: [str]} # Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/collections/search\n@desc Private Collections Search\n@optional {resource_id: str # only return collections with this resource_id}\n@returns(200) OK. An array of collections\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint POST /account/collections/{collection_id}/reserve_doi\n@desc Private Collection Reserve DOI\n@required {collection_id: int # Collection Unique identifier}\n@returns(200) {doi: str} # OK\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint POST /account/collections/{collection_id}/reserve_handle\n@desc Private Collection Reserve Handle\n@required {collection_id: int # Collection Unique identifier}\n@returns(200) {handle: str} # OK\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint POST /account/collections/{collection_id}/resource\n@desc Private Collection Resource\n@required {collection_id: int # Collection unique identifier}\n@optional {id: str= # ID of resource item, title: str= # Title of resource item, doi: str= # DOI of resource item, link: str= # Link of resource item, status: str= # Status of resource item, version: int=0 # Version of resource item}\n@returns(205) {location: str(url)} # Reset Content\n@errors {403: Forbidden, 404: Not Found, 422: Unprocessable Entity}\n\n@endpoint POST /account/collections/{collection_id}/publish\n@desc Private Collection Publish\n@required {collection_id: int # Collection Unique identifier}\n@returns(201) {location: str(url)} # Created\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/collections/{collection_id}/authors\n@desc List collection authors\n@required {collection_id: int # Collection unique identifier}\n@returns(200) OK. Embargo for article\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/collections/{collection_id}/authors\n@desc Replace collection authors\n@required {collection_id: int # Collection unique identifier, authors: [map{}] # List of authors to be associated with the article. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint.}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/collections/{collection_id}/authors\n@desc Add collection authors\n@required {collection_id: int # Collection unique identifier, authors: [map{}] # List of authors to be associated with the article. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint.}\n@returns(201) {location: str(url)} # Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/collections/{collection_id}/authors/{author_id}\n@desc Delete collection author\n@required {collection_id: int # Collection unique identifier, author_id: int # Collection Author unique identifier}\n@returns(204) No Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/collections/{collection_id}/categories\n@desc List collection categories\n@required {collection_id: int # Collection unique identifier}\n@returns(200) OK. Categories list\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/collections/{collection_id}/categories\n@desc Replace collection categories\n@required {collection_id: int # Collection unique identifier, categories: [int] # List of category ids}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/collections/{collection_id}/categories\n@desc Add collection categories\n@required {collection_id: int # Collection unique identifier, categories: [int] # List of category ids}\n@returns(201) {location: str(url)} # Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/collections/{collection_id}/categories/{category_id}\n@desc Delete collection category\n@required {collection_id: int # Collection unique identifier, category_id: int # Collection category unique identifier}\n@returns(204) No Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/collections/{collection_id}/articles\n@desc List collection articles\n@required {collection_id: int # Collection unique identifier}\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) OK. Articles List\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/collections/{collection_id}/articles\n@desc Replace collection articles\n@required {collection_id: int # Collection unique identifier, articles: [int] # List of article ids}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/collections/{collection_id}/articles\n@desc Add collection articles\n@required {collection_id: int # Collection unique identifier, articles: [int] # List of article ids}\n@returns(201) {location: str(url)} # Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/collections/{collection_id}/articles/{article_id}\n@desc Delete collection article\n@required {collection_id: int # Collection unique identifier, article_id: int # Collection article unique identifier}\n@returns(204) No Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/collections/{collection_id}/private_links\n@desc List collection private links\n@required {collection_id: int # Collection unique identifier}\n@returns(200) OK. Collection private links\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/collections/{collection_id}/private_links\n@desc Create collection private link\n@required {collection_id: int # Collection unique identifier}\n@optional {expires_date: str # Date when this private link should expire - optional. By default private links expire in 365 days.}\n@returns(201) {location: str(url), html_location: str(url), token: str} # Created\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/collections/{collection_id}/private_links/{link_id}\n@desc View collection private link\n@required {collection_id: int # Collection unique identifier, link_id: str # Private link token}\n@returns(200) {id: str, is_active: bool, expires_date: str, html_location: str(url)} # OK. Collection private link\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/collections/{collection_id}/private_links/{link_id}\n@desc Update collection private link\n@required {collection_id: int # Collection unique identifier, link_id: str # Private link token}\n@optional {expires_date: str # Date when this private link should expire - optional. By default private links expire in 365 days.}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 422: Unprocessable Entity, 500: Internal Server Error}\n\n@endpoint DELETE /account/collections/{collection_id}/private_links/{link_id}\n@desc Disable private link\n@required {collection_id: int # Collection unique identifier, link_id: str # Private link token}\n@returns(204) No Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endgroup\n\n@group institutions\n@endpoint GET /institutions/{institution_string_id}/articles/filter-by\n@desc Public Institution Articles\n@required {institution_string_id: str, resource_id: str, filename: str}\n@returns(200) OK. An array of articles\n@errors {500: Internal Server Error}\n\n@endgroup\n\n@group account\n@endpoint GET /account/institution\n@desc Private Account Institutions\n@returns(200) {id: int, name: str} # OK. An array of institutions\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/institution/embargo_options\n@desc Private Account Institution embargo options\n@returns(200) OK. An array of embargo options\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/institution/articles\n@desc Private Institution Articles\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, order: str(published_date/modified_date)=published_date # The field by which to order. Default varies by endpoint/resource., order_direction: str(asc/desc)=desc, published_since: str # Filter by article publishing date. Will only return articles published after the date. date(ISO 8601) YYYY-MM-DD or date-time(ISO 8601) YYYY-MM-DDTHH:mm:ssZ, modified_since: str # Filter by article modified date. Will only return articles modified after the date. date(ISO 8601) YYYY-MM-DD or date-time(ISO 8601) YYYY-MM-DDTHH:mm:ssZ, status: int # only return collections with this status, resource_doi: str # only return collections with this resource_doi, item_type: int # Only return articles with the respective type. Mapping for item_type is: 1 - Figure, 2 - Media, 3 - Dataset, 5 - Poster, 6 - Journal contribution, 7 - Presentation, 8 - Thesis, 9 - Software, 11 - Online resource, 12 - Preprint, 13 - Book, 14 - Conference contribution, 15 - Chapter, 16 - Peer review, 17 - Educational resource, 18 - Report, 19 - Standard, 20 - Composition, 21 - Funding, 22 - Physical object, 23 - Data management plan, 24 - Workflow, 25 - Monograph, 26 - Performance, 27 - Event, 28 - Service, 29 - Model, group: int # only return articles from this group}\n@returns(200) OK. An array of articles belonging to the institution\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/institution/custom_fields\n@desc Private account institution group custom fields\n@optional {group_id: int # Group_id}\n@returns(200) OK. An array of custom fields\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint POST /account/institution/custom_fields/{custom_field_id}/items/upload\n@desc Custom fields values files upload\n@required {custom_field_id: int # Custom field identifier}\n@returns(200) OK\n@errors {400: Bad Request, 403: Forbidden, 409: Conflict, 500: Internal Server Error}\n\n@endpoint GET /account/categories\n@desc Private Account Categories\n@returns(200) OK. An array of categories\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/institution/groups\n@desc Private Account Institution Groups\n@returns(200) OK. An array of Groups\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/institution/groups/{group_id}/embargo_options\n@desc Private Account Institution Group Embargo Options\n@required {group_id: int # Group identifier}\n@returns(200) OK. An array of embargo options\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/institution/roles\n@desc Private Account Institution Roles\n@returns(200) OK. An array of Roles\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/institution/accounts\n@desc Private Account Institution Accounts\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, is_active: int # Filter by active status, institution_user_id: str # Filter by institution_user_id, email: str # Filter by email, id_lte: int # Retrieve accounts with an ID lower or equal to the specified value, id_gte: int # Retrieve accounts with an ID greater or equal to the specified value}\n@returns(200) OK. An array of Accounts\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint POST /account/institution/accounts\n@desc Create new Institution Account\n@required {email: str # Email of account, last_name: str= # Last Name}\n@optional {first_name: str= # First Name, group_id: int # Not applicable to regular users. This field is reserved to institutions/publishers with access to assign to specific groups, institution_user_id: str= # Institution user id, symplectic_user_id: str= # Symplectic user id, quota: int # Account quota, is_active: bool # Is account active}\n@returns(201) {account_id: int} # Created\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/institution/accounts/{account_id}\n@desc Private Institution Account information\n@required {account_id: int # Account identifier the user is associated to}\n@returns(200) {id: int, first_name: str, last_name: str, used_quota_private: int, modified_date: str, used_quota: int, created_date: str, quota: int, group_id: int, institution_user_id: str, institution_id: int, email: str, used_quota_public: int, pending_quota_request: bool, active: int, maximum_file_size: int, user_id: int, orcid_id: str, symplectic_user_id: str} # OK. Account\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/institution/accounts/{account_id}\n@desc Update Institution Account\n@required {account_id: int # Account identifier the user is associated to, group_id: int # Not applicable to regular users. This field is reserved to institutions/publishers with access to assign to specific groups, is_active: bool # Is account active}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/institution/roles/{account_id}\n@desc List Institution Account Group Roles\n@required {account_id: int # Account identifier the user is associated to}\n@returns(200) OK. Account Group Roles\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/institution/roles/{account_id}\n@desc Add Institution Account Group Roles\n@required {account_id: int # Account identifier the user is associated to}\n@returns(201) Created\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint DELETE /account/institution/roles/{account_id}/{group_id}/{role_id}\n@desc Delete Institution Account Group Role\n@required {account_id: int # Account identifier for which to remove the role, group_id: int # Group identifier for which to remove the role, role_id: int # Role identifier}\n@returns(204) No Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/institution/accounts/search\n@desc Private Account Institution Accounts Search\n@optional {search_for: str # Search term, is_active: int # Filter by active status, page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, institution_user_id: str # filter by institution_user_id, email: str # filter by email}\n@returns(200) OK. An array of Accounts\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/institution/users/{account_id}\n@desc Private Account Institution User\n@required {account_id: int # Account identifier the user is associated to}\n@returns(200) {id: int, first_name: str, last_name: str, name: str, is_active: bool, url_name: str, is_public: bool, job_title: str, orcid_id: str} # OK. User representation\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/institution/reviews\n@desc Institution Curation Reviews\n@optional {group_id: int # Filter by the group ID, article_id: int # Retrieve the reviews for this article, status: str(pending/approved/rejected/closed) # Filter by the status of the review, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) {id: int, group_id: int, account_id: int, assigned_to: int, article_id: int, version: int, comments_count: int, status: str, created_date: str, modified_date: str, request_number: int, resolution_comment: str} # OK. A list of curation reviews.\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/institution/review/{curation_id}\n@desc Institution Curation Review\n@required {curation_id: int # ID of the curation}\n@returns(200) {item: any} # OK. A curation review.\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/institution/review/{curation_id}/comments\n@desc Institution Curation Review Comments\n@required {curation_id: int # ID of the curation}\n@optional {limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) {id: int, account_id: int, type: str, text: str, created_date: str, modified_date: str} # OK. A curation review's comments.\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/institution/review/{curation_id}/comments\n@desc POST Institution Curation Review Comment\n@required {curation_id: int # ID of the curation, text: str # The contents/value of the comment}\n@returns(200) OK.\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endgroup\n\n@group institution\n@endpoint POST /institution/hrfeed/upload\n@desc Private Institution HRfeed Upload\n@returns(200) {message: str} # OK\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endgroup\n\n@group token\n@endpoint GET /token\n@desc Get OAuth token information\n@optional {access_token: str # OAuth access token}\n@returns(200) {access_token: str, token: str, token_type: str, expires_in: int, refresh_token: str, scope: str} # OK. Token information\n@errors {400: Bad Request, 403: Forbidden}\n\n@endpoint POST /token\n@desc Create OAuth token\n@required {client_id: str, client_secret: str, grant_type: str(authorization_code/refresh_token/password/client_credentials)}\n@optional {code: str # Required if grant_type is 'authorization_code', refresh_token: str # Required if grant_type is 'refresh_token', username: str # Required if grant_type is 'password', password: str # Required if grant_type is 'password'}\n@returns(200) {access_token: str, token: str, token_type: str, expires_in: int, refresh_token: str, scope: str} # OK. Token created successfully RFC 6749 Section 5.1.\n@errors {400: Bad Request RFC 6749 Section 5.2.}\n\n@endgroup\n\n@group item_types\n@endpoint GET /item_types\n@desc Item Types\n@optional {group_id: int=0 # Identifier of the group for which the item types are requested}\n@returns(200) OK. An array of item types\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endgroup\n\n@group account\n@endpoint POST /account/funding/search\n@desc Search Funding\n@optional {search_for: str # Search term}\n@returns(200) OK. An array of funding information\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account\n@desc Private Account information\n@returns(200) {id: int, first_name: str, last_name: str, used_quota_private: int, modified_date: str, used_quota: int, created_date: str, quota: int, group_id: int, institution_user_id: str, institution_id: int, email: str, used_quota_public: int, pending_quota_request: bool, active: int, maximum_file_size: int, user_id: int, orcid_id: str, symplectic_user_id: str} # OK. Account representation\n@errors {403: Forbidden, 500: Internal Server Error}\n\n@endgroup\n\n@group categories\n@endpoint GET /categories\n@desc Public Categories\n@returns(200) OK. An array of categories\n@errors {500: Internal Server Error}\n\n@endgroup\n\n@group licenses\n@endpoint GET /licenses\n@desc Public Licenses\n@returns(200) OK. An array of licenses\n@errors {500: Internal Server Error}\n\n@endgroup\n\n@group account\n@endpoint GET /account/licenses\n@desc Private Account Licenses\n@returns(200) OK. An array of personal licenses\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endgroup\n\n@group file\n@endpoint GET /file/download/{file_id}\n@desc Public File Download\n@required {file_id: int}\n@returns(200) OK\n@errors {500: Internal Server Error}\n\n@endgroup\n\n@group account\n@endpoint PUT /account/profile\n@desc Update public profile\n@optional {user_id: int # User ID, institution_user_id: str # Institutional user ID, first_name: str # First name, last_name: str # Last Name, orcid: str # User ORCID, job_title: str # User job title, fields_of_interest: [int] # User fields of interest (category ids), fields_of_interest_by_source_id: [str] # User fields of interest (category source IDs), supersedes the fields_of_interest property, location: str # User location, facebook: str(url) # User facebook URL, x: str(url) # User X (twitter) URL, linkedin: str(url) # User linkedin URL, bio: str # User biographical information, personal_profiles: [map{label: str, url: str(url)}] # Add up to 10 additional personal profile links}\n@returns(200) OK\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/profile/{user_id}/picture\n@desc Update public profile picture\n@required {user_id: int # User ID}\n@returns(200) OK\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endgroup\n\n@group projects\n@endpoint GET /projects\n@desc Public Projects\n@optional {X-Cursor: str # Unique hash used for bypassing the item retrieval limit of 9,000 entities. When using this parameter, please note that the offset parameter will not be available, but the limit parameter will still work as expected., page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, order: str(published_date/modified_date/views)=published_date # The field by which to order. Default varies by endpoint/resource., order_direction: str(asc/desc)=desc, institution: int # only return collections from this institution, published_since: str # Filter by article publishing date. Will only return articles published after the date. date(ISO 8601) YYYY-MM-DD, group: int # only return collections from this group}\n@returns(200) OK. An array of projects\n@errors {400: Bad Request, 422: Bad Request, 500: Internal Server Error}\n\n@endpoint POST /projects/search\n@desc Public Projects Search\n@optional {X-Cursor: str # Unique hash used for bypassing the item retrieval limit of 9,000 entities. When using this parameter, please note that the offset parameter will not be available, but the limit parameter will still work as expected., order: str(published_date/modified_date/views)=published_date # The field by which to order.}\n@returns(200) OK. An array of projects\n@errors {400: Bad Request, 422: Bad Request, 500: Internal Server Error}\n\n@endpoint GET /projects/{project_id}\n@desc Public Project\n@required {project_id: int # Project Unique identifier}\n@returns(200) {funding: str, funding_list: [map], description: str, collaborators: [map], custom_fields: [map], modified_date: str, created_date: str} # OK. Project representation\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /projects/{project_id}/articles\n@desc Public Project Articles\n@required {project_id: int # Project Unique identifier}\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) OK. Project articles list\n@errors {400: Bad Request, 404: Not Found, 500: Internal Server Error}\n\n@endgroup\n\n@group account\n@endpoint POST /account/projects/search\n@desc Private Projects search\n@optional {order: str(published_date/modified_date/views)=published_date # The field by which to order.}\n@returns(200) OK. An array of projects\n@errors {400: Bad Request, 422: Bad Request, 500: Internal Server Error}\n\n@endpoint GET /account/projects\n@desc Private Projects\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit, order: str(published_date/modified_date/views)=published_date # The field by which to order., order_direction: str(asc/desc)=desc, storage: str(group/individual) # only return collections from this institution, roles: str # Any combination of owner, collaborator, viewer separated by comma. Examples: \"owner\" or \"owner,collaborator\".}\n@returns(200) OK. An array of projects\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint POST /account/projects\n@desc Create project\n@required {title: str # The title for this project - mandatory. 3 - 1000 characters.}\n@optional {description: str # Project description, funding: str # Grant number or organization(s) that funded this project. Up to 2000 characters permitted., funding_list: [map{id: int, title: str}] # Funding creation / update items, group_id: int # Only if project type is group., custom_fields: map{} # List of key, values pairs to be associated with the project, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter}\n@returns(201) {entity_id: int, location: str(url)} # Created\n@errors {400: Bad Request, 403: Forbidden, 500: Internal Server Error}\n\n@endpoint GET /account/projects/{project_id}\n@desc View project details\n@required {project_id: int # Project unique identifier}\n@returns(200) {funding: str, funding_list: [map], description: str, collaborators: [map], quota: int, used_quota: int, created_date: str, modified_date: str, used_quota_private: int, used_quota_public: int, group_id: int, account_id: int, custom_fields: [map]} # OK. Project representation\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/projects/{project_id}\n@desc Update project\n@required {project_id: int # Project unique identifier}\n@optional {title: str # The title for this project - mandatory. 3 - 1000 characters., description: str # Project description, funding: str # Grant number or organization(s) that funded this project. Up to 2000 characters permitted., funding_list: [map{id: int, title: str}] # Funding creation / update items, custom_fields: map{} # List of key, values pairs to be associated with the project, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter}\n@returns(205) Reset Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/projects/{project_id}\n@desc Delete project\n@required {project_id: int # Project unique identifier}\n@returns(204) No Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PATCH /account/projects/{project_id}\n@desc Partially update project\n@required {project_id: int # Project unique identifier}\n@optional {title: str # The title for this project - mandatory. 3 - 1000 characters., description: str # Project description, funding: str # Grant number or organization(s) that funded this project. Up to 2000 characters permitted., funding_list: [map{id: int, title: str}] # Funding creation / update items, custom_fields: map{} # List of key, values pairs to be associated with the project, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter}\n@returns(205) Reset Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/projects/{project_id}/publish\n@desc Private Project Publish\n@required {project_id: int # Project unique identifier}\n@returns(200) {message: str} # OK\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/projects/{project_id}/notes\n@desc List project notes\n@required {project_id: int # Project unique identifier}\n@optional {page: int # Page number. Used for pagination with page_size, page_size: int=10 # The number of results included on a page. Used for pagination with page, limit: int # Number of results included on a page. Used for pagination with query, offset: int # Where to start the listing (the offset of the first result). Used for pagination with limit}\n@returns(200) OK. List of project notes\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/projects/{project_id}/notes\n@desc Create project note\n@required {project_id: int # Project unique identifier, text: str # Text of the note}\n@returns(201) {location: str(url)} # Created\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/projects/{project_id}/notes/{note_id}\n@desc Project note details\n@required {project_id: int # Project unique identifier, note_id: int # Note unique identifier}\n@returns(200) {text: str} # OK. Note representation\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint PUT /account/projects/{project_id}/notes/{note_id}\n@desc Update project note\n@required {project_id: int # Project unique identifier, note_id: int # Note unique identifier, text: str # Text of the note}\n@returns(205) Reset Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/projects/{project_id}/notes/{note_id}\n@desc Delete project note\n@required {project_id: int # Project unique identifier, note_id: int # Note unique identifier}\n@returns(204) No Content\n@errors {403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/projects/{project_id}/leave\n@desc Private Project Leave\n@required {project_id: int # Project unique identifier}\n@returns(204) No Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/projects/{project_id}/collaborators\n@desc List project collaborators\n@required {project_id: int # Project unique identifier}\n@returns(200) OK. List of Collaborators\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/projects/{project_id}/collaborators\n@desc Invite project collaborators\n@required {project_id: int # Project unique identifier, role_name: str(viewer/collaborator) # Role of the the collaborator inside the project}\n@optional {user_id: int # User id of the collaborator, email: str # Collaborator email, comment: str # Text sent when inviting the user to the project}\n@returns(201) {message: str} # Created\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/projects/{project_id}/collaborators/{user_id}\n@desc Remove project collaborator\n@required {project_id: int # Project unique identifier, user_id: int # User unique identifier}\n@returns(204) OK\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/projects/{project_id}/articles\n@desc List project articles\n@required {project_id: int # Project unique identifier}\n@returns(200) OK. List of articles\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint POST /account/projects/{project_id}/articles\n@desc Create project article\n@required {project_id: int # Project unique identifier, title: str # Title of article}\n@optional {description: str= # The article description. In a publisher case, usually this is the remote article description, tags: [str] # List of tags to be associated with the article. Keywords can be used instead, keywords: [str] # List of tags to be associated with the article. Tags can be used instead, references: [str(link)] # List of links to be associated with the article (e.g [\"http://link1\", \"http://link2\", \"http://link3\"]), related_materials: [map{id: int, identifier: str, title: str, relation: str, identifier_type: str, is_linkout: bool, link: str}] # List of related materials; supersedes references and resource DOI/title., categories: [int] # List of category ids to be associated with the article(e.g [1, 23, 33, 66]), categories_by_source_id: [str] # List of category source ids to be associated with the article, supersedes the categories property, authors: [map{}] # List of authors to be associated with the article. The list can contain the following fields: id, name, first_name, last_name, email, orcid_id. If an id is supplied, it will take priority and everything else will be ignored. For adding more authors use the specific authors endpoint., custom_fields: map{} # List of key, values pairs to be associated with the article, custom_fields_list: [map{name!: str, value!: any}] # List of custom fields values, supersedes custom_fields parameter, defined_type: str # One of: figure online resource preprint book conference contribution media dataset poster journal contribution presentation thesis software, funding: str= # Grant number or funding authority, funding_list: [map{id: int, title: str}] # Funding creation / update items, license: int=0 # License id for this article., doi: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting DOIs. This setting is applied by figshare via opening a ticket through our support/helpdesk system., handle: str= # Not applicable for regular users. In an institutional case, make sure your group supports setting Handles. This setting is applied by figshare via opening a ticket through our support/helpdesk system., resource_doi: str= # Deprecated by related materials. Not applicable to regular users. In a publisher case, this is the publisher article DOI., resource_title: str= # Deprecated by related materials. Not applicable to regular users. In a publisher case, this is the publisher article title., timeline: map{firstOnline: str, publisherPublication: str, publisherAcceptance: str}}\n@returns(201) {location: str(url)} # Created\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/projects/{project_id}/articles/{article_id}\n@desc Project article details\n@required {project_id: int # Project unique identifier, article_id: int # Project Article unique identifier}\n@returns(200) {account_id: int, curation_status: str} # OK. Article representation\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint DELETE /account/projects/{project_id}/articles/{article_id}\n@desc Delete project article\n@required {project_id: int # Project unique identifier, article_id: int # Project Article unique identifier}\n@returns(204) No Content\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/projects/{project_id}/articles/{article_id}/files\n@desc Project article list files\n@required {project_id: int # Project unique identifier, article_id: int # Project Article unique identifier}\n@returns(200) OK. List of files\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endpoint GET /account/projects/{project_id}/articles/{article_id}/files/{file_id}\n@desc Project article file details\n@required {project_id: int # Project unique identifier, article_id: int # Project Article unique identifier, file_id: int # File unique identifier}\n@returns(200) {viewer_type: str, preview_state: str, upload_url: str(url), upload_token: str, is_attached_to_public_version: bool} # OK. File representation\n@errors {400: Bad Request, 403: Forbidden, 404: Not Found, 500: Internal Server Error}\n\n@endgroup\n\n@group symplectic\n@endpoint GET /symplectic/articles\n@desc Get changed articles for Symplectic Elements\n@required {since: str # ISO 8601 datetime string indicating the start of the search window (format: YYYY-MM-DD HH:MM:SS)}\n@optional {offset: int=0 # Number of results to skip for pagination, limit: int=10 # Maximum number of results to return, status: str(public/private/draft) # Filter by article status, is_embargoed: str(true/false) # Filter by embargo status. When true, only returns articles with EMBARGO_ARTICLE type}\n@returns(200) OK. Returns a list of symplectic articles\n@errors {400: Bad Request - Missing or invalid parameters, 401: Unauthorized - Missing or invalid OAuth token, 403: Forbidden - Insufficient permissions}\n\n@endpoint GET /symplectic/users/{user_id}\n@desc Get institutional user ID for a user\n@required {user_id: int # User ID}\n@returns(200) {institutionUserId: str} # OK. Returns the institutional user ID\n@errors {401: Unauthorized - Missing or invalid OAuth token, 403: Forbidden - Insufficient permissions, 404: Not Found - User not found or user has no account in this institution}\n\n@endpoint GET /symplectic/articles/{article_id}\n@desc Get article details for Symplectic Elements\n@required {article_id: int # Article ID}\n@returns(200) OK. Returns the article details with full metadata\n@errors {401: Unauthorized - Missing or invalid OAuth token, 403: Forbidden - Insufficient permissions, 404: Not Found - Article not found}\n\n@endpoint GET /symplectic/accounts/{external_user_id}/articles\n@desc Get articles for a specific account\n@required {external_user_id: str # External user ID (symplectic_user_id or institution_user_id)}\n@optional {offset: int=0 # Number of results to skip for pagination, limit: int=10 # Maximum number of results to return, status: str(public/private/draft) # Filter by article status, is_embargoed: str(true/false) # Filter by embargo status}\n@returns(200) OK. Returns a list of articles for the specified account\n@errors {401: Unauthorized - Missing or invalid OAuth token, 403: Forbidden - Insufficient permissions, 404: Not Found - Account not found}\n\n@endpoint GET /symplectic/accounts\n@desc Get changed accounts for Symplectic Elements\n@required {since: str # ISO 8601 datetime string indicating the start of the search window (format: YYYY-MM-DD HH:MM:SS)}\n@returns(200) OK. Returns a list of modified accounts\n@errors {400: Bad Request - Missing or invalid parameters, 401: Unauthorized - Missing or invalid OAuth token, 403: Forbidden - Insufficient permissions}\n\n@endgroup\n\n@end\n"}