# Pennsieve Documentation > Pennsieve's API provides programmatic means to manage and curate large scientific datasets. ## Guides - [Welcome!](https://docs.pennsieve.io/docs/getting-started.md): Overview of the Pennsieve platform and how you can use it. - [How is Pennsieve used by scientists?](https://docs.pennsieve.io/docs/how-is-pennsieve-used-by-scientists.md): Examples of how Pennsieve is currently used to foster collaborative science. - [Using Pennsieve for collaborative science](https://docs.pennsieve.io/docs/introduction-to-collaborative-science.md): Pennsieve is used by a growing set of investigator groups as a platform for collaborative science - [Internal data management and inter-institutional collaborations](https://docs.pennsieve.io/docs/the-penn-center-for-neuroengineering-and-therapeutics-cnt.md) - [Automated cell classification and report generation](https://docs.pennsieve.io/docs/the-penn-immune-health-project.md): Towards scalable, translational workflows for deep immune profiling. - [FAIR Publishing of large scale datasets](https://docs.pennsieve.io/docs/the-nih-sparc-program.md): Providing scalable and sustainable solutions for scientific data management and publications in large consortia - [Overview of workspace and user management](https://docs.pennsieve.io/docs/overview-workspace.md): Pennsieve workspaces provide investigators with a secure environment for scientific collaboration - [Workspace Feature Set](https://docs.pennsieve.io/docs/workspace-feature-set.md): Workspace related features on the Pennsieve Platform - [Overview of dataset and file management](https://docs.pennsieve.io/docs/overview-dataset-management.md): Introduction to Pennsieve Datasets, Files, and Folders - [Data Management Feature Set](https://docs.pennsieve.io/docs/data-management-feature-set.md): Dataset related features on the Pennsieve Platform - [Markdown Guide](https://docs.pennsieve.io/docs/markdown-guide.md): How to write well-formatted markdown - [Overview of analytic workflows and infrastructure](https://docs.pennsieve.io/docs/overview-analytics.md): Introduction to Pennsieve Analysis - [Workflow Feature Set](https://docs.pennsieve.io/docs/workflow-features.md) - [Pennsieve Repositories](https://docs.pennsieve.io/docs/open-repositories-2.md): Pennsieve supports several open repositories. - [Overview of Pennsieve Repositories](https://docs.pennsieve.io/docs/overview-repositories.md): Pennsieve provides mechanisms to publish datasets and code - [Open Repositories](https://docs.pennsieve.io/docs/open-repositories-3.md): Pennsieve supports several repositories that accept datasets from external users. - [Open Repository Feature Set](https://docs.pennsieve.io/docs/pennsieve-discover-feature-set.md) - [Pennsieve Office Hours](https://docs.pennsieve.io/docs/pennsieve-office-hours.md): Office hours are Mondays (1:00-2:00 ET) - [Pennsieve web application](https://docs.pennsieve.io/docs/pennsieve-web-application.md): app.pennsieve.io is a full-featured web application to manage scientific data - [Uploading files using the Pennsieve Agent](https://docs.pennsieve.io/docs/uploading-files-using-the-pennsieve-agent.md): Programmatically upload files to the Pennsieve platform - [Viewing dataset upload manifests](https://docs.pennsieve.io/docs/viewing-dataset-upload-manifests.md): How do I track the status of uploaded files in a dataset? - [Virus scanning in Pennsieve](https://docs.pennsieve.io/docs/virus-scanning-in-pennsieve.md) - [Metadata](https://docs.pennsieve.io/docs/managing-metadata.md): Manage large-scale metadata and tabular data on Pennsieve - [Metadata Models and Templates](https://docs.pennsieve.io/docs/metadata-models-and-templates.md): Define your metadata models and templates through JSON Schema - [Metadata Records](https://docs.pennsieve.io/docs/metadata-records.md): Creating metadata records at scale with the Pennsieve Platform. - [Replication Strategies](https://docs.pennsieve.io/docs/replication-strategies.md): Ingesting data from third party sources and databases - [Dataset configuration and settings](https://docs.pennsieve.io/docs/introduction-to-the-pennsieve-web-application.md): Pennsieve is a cloud-based data management and collaboration platform - [Timeseries Viewer](https://docs.pennsieve.io/docs/timeseries-viewer.md): Viewing large-scale time-series data in the web-browser. - [Generic Data Viewers](https://docs.pennsieve.io/docs/generic-data-viewers.md) - [Leveraging Webhooks for external integrations](https://docs.pennsieve.io/docs/leveraging-webhooks-for-external-integrations.md) - [Collections](https://docs.pennsieve.io/docs/my-collections.md): Creating, Editing and Navigation Pennsieve Public and Private Collections - [Introduction to Pennsieve data publishing](https://docs.pennsieve.io/docs/overview.md): Pennsieve provides advanced functionality to publish versioned datasets for public use. - [Data Publishing Schema (V4)](https://docs.pennsieve.io/docs/data-publishing-standard.md) - [Common Dataset Licenses](https://docs.pennsieve.io/docs/common-dataset-licenses.md): Add licenses to your datasets to protect your work after making it publicly available - [Pennsieve Discover](https://docs.pennsieve.io/docs/overview-1.md): Pennsieve Discover is a web application which provides access to all data published through Pennsieve - [Publishing under Embargo](https://docs.pennsieve.io/docs/what-is-an-embargoed-dataset.md): What does it mean to publish an embargoed dataset? - [Pennsieve code publishing](https://docs.pennsieve.io/docs/pennsieve-code-publishing.md): Pennsieve integrates with GitHub to enable users to publish code and workflows. - [Pennsieve open repositories](https://docs.pennsieve.io/docs/open-repositories.md): Introduction to Pennsieve open repositories and data submission guidelines - [Submitting a dataset proposal](https://docs.pennsieve.io/docs/submitting-a-dataset-proposal.md) - [SPARC](https://docs.pennsieve.io/docs/sparcscience-open-repository.md) - [NIH HEAL Initiative](https://docs.pennsieve.io/docs/nih-heal-initiative.md): HEAL Initiative Data on Pennsieve - [Epilepsy.Science](https://docs.pennsieve.io/docs/epilepsyscience-1.md) - [Downloading a Public Dataset using AWS](https://docs.pennsieve.io/docs/downloading-a-public-dataset.md) - [Accessing previous versions of public datasets](https://docs.pennsieve.io/docs/accessing-previous-versions-of-public-datasets.md): How can I access previous versions of full datasets from AWS S3? - [Pennsieve Dataset Submission Requirements](https://docs.pennsieve.io/docs/pennsieve-dataset-submission-requirements.md) - [Introduction to Pennsieve Analytics](https://docs.pennsieve.io/docs/introduction-to-pennsieve-analysis.md): Pennsieve Analytics allows scientists to run analysis workflows at scale within the Pennsieve Data Ecosystem - [How Pennsieve Accesses Your AWS Account](https://docs.pennsieve.io/docs/how-pennsieve-accesses-your-aws-account.md): Pennsieve needs access to run analysis infrastructure in your account. What can it do, and how do we secure this? - [Setup and Configuration](https://docs.pennsieve.io/docs/registering-a-compute-resource.md): How to register an external cloud provider (AWS) as a compute resource for analytics - [Compute Nodes](https://docs.pennsieve.io/docs/compute-node-infrastructure.md): Provisioning, deployment modes, logging, cost, and security for compute node operators - [LLM Access](https://docs.pennsieve.io/docs/llm-access-on-pennsieve-compute-nodes.md) - [Environments & Layers](https://docs.pennsieve.io/docs/environments-layers.md) - [Interactive Notebooks](https://docs.pennsieve.io/docs/interactive-notebooks.md): Python, and R interactive notebooks directly within Pennsieve - [Workflow Parameters & Configuration Guide](https://docs.pennsieve.io/docs/workflow-parameters-configuration-guide.md): This guide explains how parameters and compute settings work in Pennsieve workflows - [Cost estimates](https://docs.pennsieve.io/docs/cost-estimates.md) - [Publishing Apps to the Pennsieve App Store from GitHub](https://docs.pennsieve.io/docs/publishing-apps-to-the-pennsieve-app-store-from-github.md): Connecting your GitHub account to Pennsieve and publishing an application to the Pennsieve App Store - [Processors](https://docs.pennsieve.io/docs/pennsieve-processors.md): Everything you need to build a processor container that runs on the Pennsieve compute platform - [Introduction to the Pennsieve API](https://docs.pennsieve.io/docs/introduction-to-the-pennsieve-api.md): Pennsieve provides rich tools to interact with the platform programmatically - [Installing the Pennsieve Agent](https://docs.pennsieve.io/docs/installing-the-pennsieve-agent.md) - [Configuring client credentials](https://docs.pennsieve.io/docs/configuring-client-credentials.md): Setup your client credentials for use with the Agent and Python client - [Uploading with the Pennsieve Agent](https://docs.pennsieve.io/docs/uploading-with-the-pennsieve-agent.md): Details on how to upload file with the Pennsieve Agent - [Downloading a Dataset with the Pennsieve Agent](https://docs.pennsieve.io/docs/downloading-a-dataset-with-the-pennsieve-agent.md) - [Mapping datasets locally [BETA]](https://docs.pennsieve.io/docs/mapping-datasets-locally.md): Smart mapping and downloading files from datasets on Pennsieve - [Installing the Python Client](https://docs.pennsieve.io/docs/installing-the-python-client.md): Instructions for installing the Pennsieve Python Client. - [Uploading data using Python](https://docs.pennsieve.io/docs/uploading-data-using-python.md) - [Accessing Timeseries Data in Python](https://docs.pennsieve.io/docs/accessing-timeseries-data-in-python.md): Streaming access to timeseries packages in Python - [AWS Account Configuration](https://docs.pennsieve.io/docs/aws-account-configuration.md): Creating, and configuring an AWS account for getting data from Pennsieve Discover - [Installing the AWS Command Line Interface](https://docs.pennsieve.io/docs/installing-the-aws-command-line-interface.md) - [Copy a public dataset to your own AWS account](https://docs.pennsieve.io/docs/copy-a-public-dataset-to-your-own-aws-account.md) - [ORCID](https://docs.pennsieve.io/docs/orcid.md): How do I link my ORCID iD to my Pennsieve profile? - [GitHub](https://docs.pennsieve.io/docs/github-integration.md): Associate you GitHub account with your user profile to enable repository publishing and workflow management - [Pennsieve Apps](https://docs.pennsieve.io/docs/pennsieve-apps.md): Pennsieve allows users to register apps which can receive notifications and interact with data on the platform - [Pennsieve Platform Preservation Commitment Statement](https://docs.pennsieve.io/docs/pennsieve-repositories-mission.md) - [Pennsieve Terms of Service](https://docs.pennsieve.io/docs/pennsieve-terms-of-service.md) - [Privacy Policy](https://docs.pennsieve.io/docs/privacy-policy.md) - [Pennsieve Compute Node — Security Review](https://docs.pennsieve.io/docs/pennsieve-compute-node-security-review.md) - [Pennsieve Technology Stack](https://docs.pennsieve.io/docs/pennsieve-technology-stack.md): What does Pennsieve look like under the hood? - [Troubleshooting Data Uploads](https://docs.pennsieve.io/docs/troubleshooting-data-uploads.md): Initial checklist for addressing upload issues with the Pennsieve Client Tools. - [Pennsieve Funding Sources](https://docs.pennsieve.io/docs/pennsieve-funding-sources.md): How do we do what we do? - [Pennsieve Platform Security Overview](https://docs.pennsieve.io/docs/pennsieve-security.md) ## API Reference - [deletes items](https://docs.pennsieve.io/reference/deleteitems.md) - [moves files or packages into a destination package](https://docs.pennsieve.io/reference/moveitems.md) - [updates the properties on a node](https://docs.pennsieve.io/reference/updateproperties.md) - [creates a comment and/or a discussion[deprecated]](https://docs.pennsieve.io/reference/createcomment.md) - [get a discussion[deprecated]](https://docs.pennsieve.io/reference/getdiscussionoperation.md) - [delete a discussion[deprecated]](https://docs.pennsieve.io/reference/deletediscussion.md) - [delete a comment[deprecated]](https://docs.pennsieve.io/reference/deletecomment.md) - [updates a comment[deprecated]](https://docs.pennsieve.io/reference/updatecomment.md) - [get an annotation](https://docs.pennsieve.io/reference/getannotationoperation.md) - [creates an annotation](https://docs.pennsieve.io/reference/createannotation.md) - [creates an annotation layer](https://docs.pennsieve.io/reference/createlayer.md) - [delete an annotation layer](https://docs.pennsieve.io/reference/deletelayer.md) - [update an annotation layer](https://docs.pennsieve.io/reference/updatelayer.md) - [delete an annotation](https://docs.pennsieve.io/reference/deleteannotation.md) - [updates an annotation](https://docs.pennsieve.io/reference/updateannotation.md) - [performs a health check](https://docs.pennsieve.io/reference/gethealth.md) - [creates a new data set that belongs to the current organization a user is logged into](https://docs.pennsieve.io/reference/createdataset.md) - [gets all data sets that a user has permission to and that belong to the given organization](https://docs.pennsieve.io/reference/getdatasets.md) - [get the collections that belong to an organization](https://docs.pennsieve.io/reference/getcollections.md) - [get the contributors that belong to an organization](https://docs.pennsieve.io/reference/getcontributors.md) - [get a paginated list of datasets](https://docs.pennsieve.io/reference/getpaginateddatasets.md) - [Request preview access to a dataset for the current user.](https://docs.pennsieve.io/reference/requestpreview.md): this endpoint is under active development and subject to change - [retrieve the publishing status of all datasets in the organization](https://docs.pennsieve.io/reference/getpublishstatuses.md) - [get a paginated list of published datasets mapped from discover](https://docs.pennsieve.io/reference/getorganizationpublisheddatasets.md) - [remove this dataset from the Collection](https://docs.pennsieve.io/reference/removecollection.md) - [switch the position of the two contributors](https://docs.pennsieve.io/reference/switchcontributorsorder.md) - [Get the data use agreements for the organization](https://docs.pennsieve.io/reference/getdatauseagreement.md) - [remove contributor from this dataset](https://docs.pennsieve.io/reference/removecontributor.md) - [Delete a data set](https://docs.pennsieve.io/reference/deletedataset.md) - [gets a data set and paginates its children](https://docs.pennsieve.io/reference/getdataset.md) - [updates a data set](https://docs.pennsieve.io/reference/updatedataset.md) - [get a presigned URL for the banner image of a dataset](https://docs.pennsieve.io/reference/getbanner.md) - [upload the banner image for a dataset](https://docs.pennsieve.io/reference/uploadbanner.md) - [get the changelog description for a dataset](https://docs.pennsieve.io/reference/getchangelog.md) - [update the dataset Changelog description](https://docs.pennsieve.io/reference/putchangelog.md) - [get events from changelog](https://docs.pennsieve.io/reference/getchangelogevents.md) - [get dataset changelog](https://docs.pennsieve.io/reference/getchangelogtimeline.md) - [unshare this data set with other users](https://docs.pennsieve.io/reference/unsharedataset.md) - [get the collaborators of the data set](https://docs.pennsieve.io/reference/getcollaborators.md) - [share this data set with another user](https://docs.pennsieve.io/reference/sharedataset.md) - [unshare this dataset with the organization](https://docs.pennsieve.io/reference/removeorganizationcollaborator.md) - [get the organizations allowed role on the dataset](https://docs.pennsieve.io/reference/getorganizationcollaboratorrole.md) - [share this dataset with the rest of the organization](https://docs.pennsieve.io/reference/setorganizationcollaboratorrole.md) - [switch the owner of a dataset. Previous owner is downgraded to manager](https://docs.pennsieve.io/reference/switchowner.md) - [unshare this dataset with a team](https://docs.pennsieve.io/reference/deleteteamcollaborator.md) - [get all teams collaborating on the data set](https://docs.pennsieve.io/reference/getteamcollaborators.md) - [share this dataset with a team](https://docs.pennsieve.io/reference/addteamcollaborator.md) - [remove a user who is a collaborator on the dataset](https://docs.pennsieve.io/reference/deleteusercollaborator.md) - [get the individual users collaborating on the data set](https://docs.pennsieve.io/reference/getusercollaborators.md) - [add a user as a collaborator on this dataset](https://docs.pennsieve.io/reference/addusercollaborator.md) - [get the collections to the data set](https://docs.pennsieve.io/reference/getdatasetcollections.md) - [add this dataset to a collection](https://docs.pennsieve.io/reference/addcollection.md) - [get the contributors to the data set](https://docs.pennsieve.io/reference/getdatasetcontributors.md) - [add a contributor to this dataset](https://docs.pennsieve.io/reference/addcontributor.md) - [reserves a new DOI for the data set](https://docs.pennsieve.io/reference/reservedoi.md) - [retrieves DOI information for the data set](https://docs.pennsieve.io/reference/getdoi.md) - [Message that should be send to subscribed integrations](https://docs.pennsieve.io/reference/triggerevent.md) - [get a list of files to ignore when publishing for a dataset](https://docs.pennsieve.io/reference/getignorefiles.md) - [set the files to ignore when publishing for a dataset](https://docs.pennsieve.io/reference/setignorefiles.md) - [gets a data package type counts](https://docs.pennsieve.io/reference/getpackagetypecounts.md) - [get the packages in a dataset](https://docs.pennsieve.io/reference/getpackages.md) - [get multiple packages](https://docs.pennsieve.io/reference/getbatchpackages.md) - [get the user's effective permission to the dataset](https://docs.pennsieve.io/reference/getdatasetpermission.md) - [notifies the Discover service to extract and publish a dataset and knowledge graph, or revise the metadata of that graph](https://docs.pennsieve.io/reference/acceptedpublicationrevision.md) - [cancel a request for publication or revision](https://docs.pennsieve.io/reference/cancelledpublicationrevision.md) - [notify API that Discover has completed a publish job](https://docs.pennsieve.io/reference/publishcomplete.md) - [get the data use agreement for this dataset](https://docs.pennsieve.io/reference/getpublicationdatauseagreement.md) - [Remove preview access to a user.](https://docs.pennsieve.io/reference/deletepreview.md): this endpoint is under active development and subject to change - [Grant preview access to a user. This endpoint can either approve an access request, or grant access to a net-new user.](https://docs.pennsieve.io/reference/postpreview.md): this endpoint is under active development and subject to change - [retrieve the list of user that have preview rights on the dataset](https://docs.pennsieve.io/reference/getpreview.md): this endpoint is under active development and subject to change - [reject a request to publish or revise a dataset](https://docs.pennsieve.io/reference/rejectedpublicationrevision.md) - [internal use only: release an embargoed dataset to Discover](https://docs.pennsieve.io/reference/releaseacceptedpublicationrevision.md) - [submit the dataset to publishers for publication or revision](https://docs.pennsieve.io/reference/requestedpublicationrevision.md) - [retrieve the publishing status of a dataset](https://docs.pennsieve.io/reference/getpublishstatus.md) - [get the README description for a dataset](https://docs.pennsieve.io/reference/getreadme.md) - [update the README description for a dataset](https://docs.pennsieve.io/reference/putreadme.md) - [get the user's effective role on the dataset](https://docs.pennsieve.io/reference/getdatasetrole.md) - [get the log of the status changes for the data set](https://docs.pennsieve.io/reference/getstatuslog.md) - [Return the enabled integrations for a given dataset. Returns a list of DatasetIntegration.](https://docs.pennsieve.io/reference/getdatasetintegrations.md) - [Disable integration for a given dataset. Returns the number of disabled integrations.](https://docs.pennsieve.io/reference/disableintegration.md) - [Enable integration for a given dataset. Returns a DatasetIntegration.](https://docs.pennsieve.io/reference/enableintegration.md) - [add an external user as a collaborator on this dataset](https://docs.pennsieve.io/reference/addexternalcollaborator.md) - [creates a new package](https://docs.pennsieve.io/reference/createpackage.md) - [returns the tree structure, including signed s3 urls and the corresponding paths that will make up an archive to download](https://docs.pennsieve.io/reference/download-package-manifest.md) - [returns the tree structure, including signed s3 urls and the corresponding paths that will make up an archive to download](https://docs.pennsieve.io/reference/download-manifest.md) - [gets a package and optionally objects that are associated with it](https://docs.pennsieve.io/reference/getpackage.md) - [updates a package](https://docs.pennsieve.io/reference/updatepackage.md) - [get annotations for package](https://docs.pennsieve.io/reference/getannotations.md) - [exports a package](https://docs.pennsieve.io/reference/exportpackage.md) - [Gets all files of a package of the given id, if no files exist, returns sources](https://docs.pennsieve.io/reference/getpackagefiles.md) - [Kick off a process package operation if the package is in an uploaded state.](https://docs.pennsieve.io/reference/processpackage.md) - [gets all sources of a package of the given id](https://docs.pennsieve.io/reference/getpackagesources.md) - [gets all sources of a package of the given id in a paged response](https://docs.pennsieve.io/reference/getpackagesourcespaged.md) - [set storage for package. NOTE: this endpoint is deprecated and will go away in a future release (2.7.3)](https://docs.pennsieve.io/reference/putstorage.md) - [Update package state, set package storage, optionally send for processing](https://docs.pennsieve.io/reference/uploadcomplete.md) - [Gets view objects for a package of the given id, if no view objects exist, returns files, if no files exist, return sources](https://docs.pennsieve.io/reference/getpackageview.md) - [returns a presigned s3 url for downloading a file](https://docs.pennsieve.io/reference/getfile.md) - [creates a new dimension on a package](https://docs.pennsieve.io/reference/createdimension.md) - [get dimensions for package](https://docs.pennsieve.io/reference/getdimensions.md) - [delete multiple dimensions from a package](https://docs.pennsieve.io/reference/deletedimensions.md) - [creates multiple new dimensions on a package](https://docs.pennsieve.io/reference/createdimensions.md) - [updates multiple dimensions on a package](https://docs.pennsieve.io/reference/updatedimensions.md) - [return the number of dimensions a package has](https://docs.pennsieve.io/reference/getdimensionscount.md) - [deletes a dimension from a package](https://docs.pennsieve.io/reference/deletedimension.md) - [get dimension for package](https://docs.pennsieve.io/reference/getdimension.md) - [updates a dimension on a package](https://docs.pennsieve.io/reference/updatedimension.md) - [creates an API Token for the requesting User](https://docs.pennsieve.io/reference/createapitoken.md) - [gets all the API Tokens the requesting User has access to](https://docs.pennsieve.io/reference/getapitokens.md) - [deletes API Token if the requesting User has access to it](https://docs.pennsieve.io/reference/deleteapitoken.md) - [updates the API Token if the requesting User has access to it](https://docs.pennsieve.io/reference/updateapitoken.md) - [gets temporary credentials for a users folder in the s3 bucket[deprecated]](https://docs.pennsieve.io/reference/gettemporaryuploadcredentials.md) - [get aggregations of annotations based on a sliding window](https://docs.pennsieve.io/reference/getallannotationswindow.md) - [saves channels to the time series package](https://docs.pennsieve.io/reference/createchannel.md) - [gets the channels for a time series package](https://docs.pennsieve.io/reference/getchannels.md) - [update existing channel objects in the graph](https://docs.pennsieve.io/reference/updatechannels.md) - [delete an existing channel object in the graph](https://docs.pennsieve.io/reference/deletechannel.md) - [get a single channel that belongs to the time series package](https://docs.pennsieve.io/reference/getchannel.md) - [update an existing channel object in the graph](https://docs.pennsieve.io/reference/updatechannel.md) - [update an existing channel object's properties in the graph](https://docs.pennsieve.io/reference/updatechannelproperties.md) - [returns true if any annotations exist for the time series package](https://docs.pennsieve.io/reference/hasannotations.md) - [create time series layer for use with the given layer](https://docs.pennsieve.io/reference/createtimeserieslayer.md) - [Get all layers for a timeseries](https://docs.pennsieve.io/reference/getlayers.md) - [delete layer for the given time series id](https://docs.pennsieve.io/reference/deletetimeserieslayer.md) - [get a layer for the given time series id](https://docs.pennsieve.io/reference/gettimeserieslayer.md) - [update layer for the given time series id](https://docs.pennsieve.io/reference/updatetimeserieslayer.md) - [delete the annotations with the given ids that belong to this time series package and layer](https://docs.pennsieve.io/reference/deletetimeseriesannotations.md) - [Create an annotation for the given time series id](https://docs.pennsieve.io/reference/createtimeseriesannotation.md) - [Get annotations based on query params](https://docs.pennsieve.io/reference/gettimeseriesannotations.md) - [get annotations based on a sliding window](https://docs.pennsieve.io/reference/getannotationswindow.md) - [delete the annotation with the given id](https://docs.pennsieve.io/reference/deletetimeseriesannotation.md) - [Get an annotation](https://docs.pennsieve.io/reference/getannotation.md) - [Update an annotation](https://docs.pennsieve.io/reference/updatetimeseriesannotation.md) - [touch the updatedAt timestamp for a data set (Internal Use Only) [deprecated]](https://docs.pennsieve.io/reference/touchdataset.md) - [creates a new collection that belongs to the current organization](https://docs.pennsieve.io/reference/createcollection.md) - [changes the name of a collection that belongs to the current organization](https://docs.pennsieve.io/reference/editcollection.md) - [creates a new webhook integration for an organization](https://docs.pennsieve.io/reference/createwebhook.md) - [gets all integrations that a user has permission to and that belong to the given organization](https://docs.pennsieve.io/reference/getintegrations-1.md) - [delete a webhook for an organization](https://docs.pennsieve.io/reference/deletewebhook.md) - [get a webhook for an organization](https://docs.pennsieve.io/reference/getwebhook.md) - [update a webhook for an organization](https://docs.pennsieve.io/reference/updatewebhook.md) - [get a logged in user's organizations](https://docs.pennsieve.io/reference/getorganizations.md) - [get an organization](https://docs.pennsieve.io/reference/getorganization.md) - [updates an organization](https://docs.pennsieve.io/reference/updateorganization.md) - [adds members to an organization, notifies them over email](https://docs.pennsieve.io/reference/addtoorganization.md) - [get the members that belong to an organization](https://docs.pennsieve.io/reference/getmembers.md) - [Given a version, gets the custom terms of service for an organization](https://docs.pennsieve.io/reference/getcustomtermsofservice.md) - [Create a new data use agreement for the organization](https://docs.pennsieve.io/reference/createdatauseagreement.md) - [Delete a new data use agreement for the organization](https://docs.pennsieve.io/reference/deletedatauseagreement.md) - [Update a new data use agreement for the organization](https://docs.pennsieve.io/reference/updatedatauseagreement.md) - [Create a dataset status for an organization](https://docs.pennsieve.io/reference/createdatasetstatus.md) - [Get the dataset status options for an organization](https://docs.pennsieve.io/reference/getdatasetstatus.md) - [Delete a dataset status for an organization](https://docs.pennsieve.io/reference/deletedatasetstatus.md) - [Update a dataset status for an organization](https://docs.pennsieve.io/reference/updatedatasetstatus.md) - [get all invites that belong to this organization](https://docs.pennsieve.io/reference/getorganizationinvites.md) - [delete an invite to a particular organization](https://docs.pennsieve.io/reference/deleteorganizationinvite.md) - [refresh an invite to a particular organization](https://docs.pennsieve.io/reference/refreshorganizationinvite.md) - [removes a member from an organization](https://docs.pennsieve.io/reference/removefromorganization.md) - [update a member for an organization](https://docs.pennsieve.io/reference/updatemember.md) - [creates a new team in an organization](https://docs.pennsieve.io/reference/createteam.md) - [get the teams that belong to an organization](https://docs.pennsieve.io/reference/getteams.md) - [deletes a team](https://docs.pennsieve.io/reference/deleteteam.md) - [gets the team for the organization](https://docs.pennsieve.io/reference/getteam.md) - [updates a team](https://docs.pennsieve.io/reference/updateteam.md) - [adds a member to a team, notifies them over email](https://docs.pennsieve.io/reference/addtoteam.md) - [get the members that belong to a team](https://docs.pennsieve.io/reference/getteammembers.md) - [removes a member from a team](https://docs.pennsieve.io/reference/removefromteam.md) - [creates a new contributor that belongs to the current organization](https://docs.pennsieve.io/reference/createcontributor.md) - [gets a contributor](https://docs.pennsieve.io/reference/getcontributor.md) - [updates a contributor that belongs to the current organization](https://docs.pennsieve.io/reference/updatecontributor.md) - [Returns the current user](https://docs.pennsieve.io/reference/getcurrentuser.md) - [update an existing user](https://docs.pennsieve.io/reference/updateuser.md) - [marks the user as having accepted a custom terms of service](https://docs.pennsieve.io/reference/acceptcustomtermsofservice.md) - [update an existing user's email address](https://docs.pennsieve.io/reference/updateuseremail.md) - [gets a user by email address](https://docs.pennsieve.io/reference/getuserbyemail.md) - [merge user accounts](https://docs.pennsieve.io/reference/merge-user-accounts.md) - [delete orcid for the current user](https://docs.pennsieve.io/reference/deleteorcid.md) - [associate an ORCID with a user using the orcid authorization code](https://docs.pennsieve.io/reference/createorcid.md) - [update an existing user's pennsieve terms of service version](https://docs.pennsieve.io/reference/updatepennsievetermsofservice.md) - [gets a user (Internal Use Only)](https://docs.pennsieve.io/reference/getuser.md) - [create a new user from a user invite](https://docs.pennsieve.io/reference/createuserfrominvite.md) - [update user from a user invite](https://docs.pennsieve.io/reference/updateuserfrominvite.md) - [Self-service sign up a new user account](https://docs.pennsieve.io/reference/signupuser.md) - [creates a data-canvas](https://docs.pennsieve.io/reference/createdatacanvas.md) - [gets the data-canvases owner by the user](https://docs.pennsieve.io/reference/getowneddatacanvases.md) - [gets all public data-canvas for an organization](https://docs.pennsieve.io/reference/getpublicdatacanvasesforanorganization.md) - [gets a public data-canvas regardless of organization](https://docs.pennsieve.io/reference/getpublicdatacanvas.md) - [create a data-canvas folder](https://docs.pennsieve.io/reference/createdatacanvasfolder.md) - [get a data-canvas folder paths](https://docs.pennsieve.io/reference/getdatacanvasfolderpaths.md) - [delete a data-canvas folder and its sub-folders](https://docs.pennsieve.io/reference/deletedatacanvasfolder.md) - [get a data-canvas folder](https://docs.pennsieve.io/reference/getdatacanvasfolder.md) - [move a data-canvas folder](https://docs.pennsieve.io/reference/movedatacanvasfolder.md) - [add a package to a data-canvas](https://docs.pennsieve.io/reference/addpackagetodatacanvas.md) - [remove a package from a data-canvas](https://docs.pennsieve.io/reference/removepackagefromdatacanvas.md) - [rename a data-canvas folder](https://docs.pennsieve.io/reference/renamedatacanvasfolder.md) - [delete a data-canvas](https://docs.pennsieve.io/reference/deletedatacanvas.md) - [gets a data-canvas](https://docs.pennsieve.io/reference/getdatacanvas.md) - [update a data-canvas](https://docs.pennsieve.io/reference/updatedatacanvas.md) - [get the latest published version of each dataset](https://docs.pennsieve.io/reference/getdatasets-1.md) - [get the latest version of a dataset](https://docs.pennsieve.io/reference/getdataset-1.md) - [get a dataset by DOI](https://docs.pennsieve.io/reference/getdatasetbydoi-1.md): Find a Pennsieve dataset by DOI Pennsieve's DOI prefix is `10.26275`. To find the dataset for DOI `10.26275/abcd-1234`, make a request for `/discover/datasets/doi/10.26275/abcd-1234` - [get datasets by DOIs](https://docs.pennsieve.io/reference/getdatasetsbydoi.md): Find Pennsieve datasets by DOI - [request preview access to a dataset](https://docs.pennsieve.io/reference/requestpreview-1.md) - [get all published versions of a dataset](https://docs.pennsieve.io/reference/getdatasetversions-1.md) - [get a dataset by version](https://docs.pennsieve.io/reference/getdatasetversion-1.md) - [get a file from a dataset](https://docs.pennsieve.io/reference/getfile-1.md) - [download the dataset as a ZIP archive](https://docs.pennsieve.io/reference/downloaddatasetversion-1.md) - [download the metadata of the dataset](https://docs.pennsieve.io/reference/getdatasetmetadata-1.md) - [view files for a dataset](https://docs.pennsieve.io/reference/browsefiles-1.md): Show all files and directories in a folder of the dataset. If `directory` is not defined this will show files at the root of the dataset. - [get all release assets for a dataset](https://docs.pennsieve.io/reference/browseallassets.md): Return all files and folders in the release asset. This endpoint is not paginated. - [view release assets for a dataset](https://docs.pennsieve.io/reference/browseassets.md): Show all files and directories in a folder of the release asset. If `directory` is not defined this will show files at the root of the dataset. - [get a manifest of files to be downloaded for a dataset](https://docs.pennsieve.io/reference/downloadmanifest-1.md): Get a manifest file containing information to be used to download files of a dataset, including URLs to their location, their size, and paths representing where they should be in the resulting archive. - [get a page of DOIs contained in a dataset](https://docs.pennsieve.io/reference/getdoipage.md): Return a page of info on the DOIs in this collection. Will be empty unless datasetType is collection. - [get the data use agreement for this dataset, if under embargo](https://docs.pennsieve.io/reference/getdatauseagreement-1.md) - [download the data use agreement for this dataset, if under embargo](https://docs.pennsieve.io/reference/downloaddatauseagreement-1.md) - [get all dataset tags](https://docs.pennsieve.io/reference/gettags-1.md) - [get datasets matching criteria](https://docs.pennsieve.io/reference/searchdatasets-3.md) - [get files matching criteria](https://docs.pennsieve.io/reference/searchfiles-3.md) - [get records matching criteria](https://docs.pennsieve.io/reference/searchrecords-3.md) - [get the files from the sourcePackageId of a package](https://docs.pennsieve.io/reference/getfilefromsourcepackageid-1.md) - [Get Organization Dataset Metrics](https://docs.pennsieve.io/reference/getorganizationdatasetmetrics-1.md) - [metrics](https://docs.pennsieve.io/reference/getdatasetdownloadssummary-1.md): get the dataset downloads summary for the requested date range - [Returns a stream of file(s) from the pennsieve platform](https://docs.pennsieve.io/reference/post_.md) - [Returns a stream of file(s) from pennsieve discover](https://docs.pennsieve.io/reference/post_discover.md) - [generates temporary access to MicroCT imaging assets](https://docs.pennsieve.io/reference/microcttemporarysession.md): Generates a role with temporary, read-only S3 access to a MicroCT package's viewer assets - [Execute rehydration](https://docs.pennsieve.io/reference/rehydrate.md): Calls endpoint to trigger rehydration process - [Returns GitHub profile](https://docs.pennsieve.io/reference/getgithubuser.md): Returns an existing GitHub profile when user has installed the Pennsieve GitHub App. - [Deletes Pennsieve GitHub App](https://docs.pennsieve.io/reference/deletegithubuser.md): Deletes the Pennsieve GitHub App from the user's GitHub Account and removes profile from Pennsieve. - [Register a Github account for a user](https://docs.pennsieve.io/reference/postgithubregister.md): Installs and Authorizes the Pennsieve Github App in the user's Github Account. - [Get all Repositories that the authenticated user has access to](https://docs.pennsieve.io/reference/getrepositories.md): Returns a list of Repositories from all sources (origins) that a user has access to, and indicates whether | a repository is being tracked for publishing, app-store, or other purpose. This endpoint is paginated. - [Creates an external repository](https://docs.pennsieve.io/reference/postexternalrepositories.md): Creates an external repository - [Get a single Repository with its releases and publishing status](https://docs.pennsieve.io/reference/getrepository.md): Returns a single Repository, identified by its full name (owner/repo), along | with all of its stored releases. Each release is annotated with its Pennsieve | publishing status: Discover status comes from this service's records; App Store | status is managed externally and is reported as unavailable. Reads only from the | service's database and does not call GitHub. - [Publish a specific release of a repository on demand](https://docs.pennsieve.io/reference/publishrepositoryrelease.md): Publishes a specific release (by tag/label) of a repository to Pennsieve | Discover and/or the App Store. The repository is identified by its full name | via the owner/repo path segments; the release label and an optional | destinations override are supplied in the request body. - [Force a publication's status (super-admin recovery)](https://docs.pennsieve.io/reference/forcepublicationstatus.md): Super-admin-only operator recovery: force a publication's status to unwedge a | publication left stuck (e.g. by a timed-out or panicked publishing Lambda). | Only `failed` (makes it retryable) and `created` (requests a full re-publish) are | accepted targets; `completed` is rejected so an operator cannot fake a successful | publish. Intentionally gated on super-admin only, with no per-repository check. - [Get the Pennsieve GitHub App installations the user has access to](https://docs.pennsieve.io/reference/getgithubappinstallations.md): This operation will inquire with GitHub using the user's access token to obtain the list of Pennsieve GitHub App installations the user has access to. - [GitHub Webhook entrypoint](https://docs.pennsieve.io/reference/webhookendpointforgithub.md): Receives GitHub events - [Return list of channels for a timeseries package](https://docs.pennsieve.io/reference/getchannels-1.md): Returns a list of channel objects associated with a timeseries package. - [Return list of presigned urls for range files](https://docs.pennsieve.io/reference/getrangefiles.md): Returns a list of pre-signed URLS associated with the requested time-range in a timeseries package. | If no channel ID is provided, all channels are returned. - [Return list of timeseries montages for workspace](https://docs.pennsieve.io/reference/getworkspacemontages.md): Returns a list of timeseries montages that are defined in the workspace. | Montages can be defined for workspaces and are available to all users of a workspace. | A montage describes the specific arrangement or configuration of electrode connections used to display and interpret brain wave recordings. It determines which electrodes are compared against each other to create the voltage differences shown as waveforms on the EEG trace. The choice of montage can significantly affect how abnormalities appear on the recording, making it a crucial technical consideration for proper EEG interpretation and diagnosis of neurological conditions. - [Batch-register time series chunks for a package](https://docs.pennsieve.io/reference/createranges.md): Registers a batch of continuous-range chunks in the time series database. The client first creates a viewer asset via packages-service and uploads chunks to the returned S3 prefix; this endpoint then indexes those chunks. Requires EditFiles permission on the dataset. - [Add a new montage to the workspace](https://docs.pennsieve.io/reference/addworkspacemontage.md): This method adds a new montage to a workspace. Only workspace managers can add new montages to a workspace. - [Remove a montage from a workspace](https://docs.pennsieve.io/reference/removeworkspacemontage.md): This method removes a montage from a workspace. The user needs to provide the workspace id and the name of the montage. Only Workspace managers can remove montages from a workspace - [Return list of collections](https://docs.pennsieve.io/reference/getcollections-1.md): Returns a list of collections to which the user has access - [creates a new collection](https://docs.pennsieve.io/reference/createcollection-1.md): Creates a new collection - [Returns a collection](https://docs.pennsieve.io/reference/getcollection.md): Returns the collection with the given nodeId - [Deletes a collection](https://docs.pennsieve.io/reference/deletecollection.md): deletes the collection with the given nodeId - [Update a collection](https://docs.pennsieve.io/reference/patchcollection.md): Update a collection's name, description, or associated DOIs. - [publishes a new public version of the given collection](https://docs.pennsieve.io/reference/publishcollection.md): Publishes a new version of the collection - [Returns the most recent DOI of the published version of this collection](https://docs.pennsieve.io/reference/getdoi-1.md): Returns the most recent DOI of the published version of this collection. Returns 404 if the collection does not have a DOI. - [unpublishes the given collection](https://docs.pennsieve.io/reference/unpublishcollection.md): Unpublishes all versions of the collection - [Get Publishing Repositories](https://docs.pennsieve.io/reference/getpublishingrepositories-1.md): This method returns a list of Publishing Repositories. - [Get Proposal Questions](https://docs.pennsieve.io/reference/getproposalquestions-1.md): This method returns a list of intake questions that may be included in Dataset Proposals - [Get a User's Dataset Proposals](https://docs.pennsieve.io/reference/getdatasetproposals-1.md): This method returns a list of Dataset Proposals owned by the User - [Create a Dataset Proposal](https://docs.pennsieve.io/reference/createdatasetproposal-1.md): This method will create a Dataset Proposal for the User - [Update a Dataset Proposal](https://docs.pennsieve.io/reference/updatedatasetproposal-1.md): This method will update a Dataset Proposal for the User - [Delete a Dataset Proposal](https://docs.pennsieve.io/reference/deletedatasetproposal-1.md): This method will delete a Dataset Proposal for the User - [Submit a Dataset Proposal to a Repository for review](https://docs.pennsieve.io/reference/submitdatasetproposal-1.md): This method will submit a Dataset Proposal to a Repository for review. - [Withdraw the request to review a Dataset Proposal from a Repository](https://docs.pennsieve.io/reference/withdrawdatasetproposal-1.md): This method will withdraw the request to review a Dataset Proposal from a Repository. - [Get Dataset Proposals submitted to the Repository](https://docs.pennsieve.io/reference/getsubmitteddatasetproposals-1.md): This method returns a list of Dataset Proposals that have been submitted to the Repository - [Accept the submitted Dataset Proposal](https://docs.pennsieve.io/reference/acceptdatasetproposal-1.md): This method will accept the Dataset Proposal that was submitted to a Repository. - [Reject the submitted Dataset Proposal](https://docs.pennsieve.io/reference/rejectdatasetproposal-1.md): This method will reject the Dataset Proposal that was submitted to a Repository. - [Get Publishing Service Information](https://docs.pennsieve.io/reference/getpublishingserviceinformation-1.md): This method returns a list of Publishing Service Information and URLs to fetch the associated files. - [Create model template](https://docs.pennsieve.io/reference/createmodeltemplate.md) - [Get template latest/as_of](https://docs.pennsieve.io/reference/getmodeltemplatelatest.md) - [List templates latest versions](https://docs.pennsieve.io/reference/listworkspacemodeltemplateslatest.md) - [Update template metadata](https://docs.pennsieve.io/reference/updatemodeltemplate.md) - [Delete all templates in the workspace](https://docs.pennsieve.io/reference/deleteallworkspacemodeltemplates.md): Soft-deletes all model templates and their versions for the workspace. - [List template versions](https://docs.pennsieve.io/reference/listmodeltemplateversions.md) - [Create template version](https://docs.pennsieve.io/reference/createmodeltemplateversion.md) - [Delete a model template and all its versions](https://docs.pennsieve.io/reference/deletemodeltemplate.md): Soft-deletes a model template and all its versions. - [Create a new dataset model from a specific version of a model template](https://docs.pennsieve.io/reference/createmodelfromtemplate.md) - [Create a new version of an existing model from a model template version](https://docs.pennsieve.io/reference/createmodelversionfromtemplate.md) - [Delete all models for a dataset](https://docs.pennsieve.io/reference/deletealldatasetmodels.md): Deletes all models, their versions, and optionally archives all records for a dataset. By default, fails if there are active records. Use force=true to archive records first. - [Create model](https://docs.pennsieve.io/reference/createmodel.md) - [list all models for a dataset with their latest versions or version as_of](https://docs.pennsieve.io/reference/listdatasetmodelslatest.md) - [Get model with latest version or version as_of](https://docs.pennsieve.io/reference/getmodellatest.md) - [Update model metadata](https://docs.pennsieve.io/reference/updatemodel.md) - [List model versions](https://docs.pennsieve.io/reference/listmodelversions.md) - [Create model version](https://docs.pennsieve.io/reference/createmodelversion.md) - [Delete a model and all its versions](https://docs.pennsieve.io/reference/deletemodel.md): Deletes a model and all its versions. By default, fails if there are active records associated with the model. Use the force=true query parameter to archive records first. - [Delete a specific version of a model](https://docs.pennsieve.io/reference/deletemodelversion.md): Deletes a specific version of a model. By default, fails if there are active records associated with this model version. Use the force=true query parameter to archive records first. - [Batch fetch records by ID with relationship and package counts](https://docs.pennsieve.io/reference/batchgetrecords.md): Fetches multiple records by their IDs in a single request, regardless of which model they belong to. Returns found records with their relationship and package counts, plus a list of IDs that were not found. Supports time-travel via `as_of`. Maximum 100 IDs per request. - [Resolve record IDs for a batch of records by their key properties](https://docs.pennsieve.io/reference/batchresolverecordids.md): Given a batch of entries each containing record values and a client-supplied external_ref, returns the record IDs of those entries whose records currently exist in the specified model. IDs are derived deterministically from the model schema's key properties. Entries whose records do not exist are omitted from the response. Only keyed models are supported. Maximum 100 entries per request. - [Insert records](https://docs.pennsieve.io/reference/insertrecords.md) - [Get paginated records](https://docs.pennsieve.io/reference/getrecordspaginated.md) - [Archive all records (optionally by version)](https://docs.pennsieve.io/reference/archiverecords.md) - [Archive record](https://docs.pennsieve.io/reference/archiverecord.md) - [Update record (new version)](https://docs.pennsieve.io/reference/updaterecord.md) - [Fetch a record with its related records and packages](https://docs.pennsieve.io/reference/getrecordwithrelationshipsandpackages.md) - [Execute a select statement over model records](https://docs.pennsieve.io/reference/selectrecords.md): Executes a select statement based on the pre-defined SelectStatement AST against records of the specified model (optionally at a specific model version or time `as_of`). The request body must contain a `select` statement; see the SelectStatement/Predicate schemas for structure and allowed operators. - [Get paginated history for a record](https://docs.pennsieve.io/reference/getrecordhistory.md): Fetches all historical versions of a record in descending chronological order. Returns the current version and all previous versions of the record. - [Create relationship](https://docs.pennsieve.io/reference/createrelationship.md) - [List relationships (paginated)](https://docs.pennsieve.io/reference/getrelationshipsforrecord.md) - [Delete a relationship between two records](https://docs.pennsieve.io/reference/deleterelationship.md) - [Delete all inbound and outbound relationships for a record](https://docs.pennsieve.io/reference/deleterelationships.md) - [Create relationships using record keys](https://docs.pennsieve.io/reference/createrelationshipsbetweenrecords.md) - [Attach a Pennsieve package to a record](https://docs.pennsieve.io/reference/createrecordpackage.md) - [List all packages attached to a record (paginated)](https://docs.pennsieve.io/reference/listrecordpackages.md) - [Detach all packages from a record](https://docs.pennsieve.io/reference/deleteallrecordpackages.md) - [Detach a single package from a record](https://docs.pennsieve.io/reference/deleterecordpackage.md) - [Fetch all records attached to a package (paginated)](https://docs.pennsieve.io/reference/getpackagerecords.md) - [Restore deleted items](https://docs.pennsieve.io/reference/restoreitems.md): Starts restore process for the given deleted items - [Get download manifest with presigned S3 URLs](https://docs.pennsieve.io/reference/downloadmanifest.md): Returns file metadata and presigned S3 URLs for the requested packages. Resolves package hierarchies (including collections) into individual files with their S3 download URLs. - [List supported file formats](https://docs.pennsieve.io/reference/listformats.md): Returns the Pennsieve file-format registry: a static catalog of supported formats with their media types, file-type tags, and extensions. - [List viewer assets for a published package or dataset](https://docs.pennsieve.io/reference/discoverlistviewerassets.md): Unauthenticated endpoint that returns viewer assets for a published package or a published dataset, along with a CloudFront signed policy for accessing the asset files. Each asset includes an `asset_url`. To access files, append the relative path and signing params: `{asset_url}{path}?Policy={policy}&Signature={signature}&Key-Pair-Id={key_pair_id}` Caller must supply **exactly one** of `package_id` or `dataset_id`. Note the asymmetry between the two: the package side accepts a *node ID* because `discover.public_file_versions` stores `source_package_id` as a node ID, while the dataset side accepts the *published-dataset integer PK* because `discover.public_datasets` does not record the source dataset node ID. - [Create a viewer asset and get upload credentials](https://docs.pennsieve.io/reference/createviewerasset.md): Creates a viewer asset record and returns temporary AWS credentials scoped to the asset's S3 prefix for direct upload to the storage bucket. - [List viewer assets for a dataset or package](https://docs.pennsieve.io/reference/listviewerassets.md): Returns viewer assets for a dataset, along with a CloudFront signed policy for accessing the asset files. Each asset includes an `asset_url`. To access files, append the relative path and signing params: `{asset_url}{path}?Policy={policy}&Signature={signature}&Key-Pair-Id={key_pair_id}` Operates in one of two modes depending on `package_id`: - **package_id supplied** — returns assets linked to that package (package-scoped assets). - **package_id omitted** — returns assets in the dataset that have no package links and no chat session (dataset-scoped assets). Chat-scoped figures are excluded; resolve them individually via `GET /assets/{asset_id}`. - [Update a viewer asset](https://docs.pennsieve.io/reference/updateviewerasset.md): Updates status, properties, or package links for an existing viewer asset. - [Get a single viewer asset by ID](https://docs.pennsieve.io/reference/getviewerasset.md): Resolves one viewer asset by its UUID and returns it with a CloudFront signed policy for accessing the asset's files (same `asset_url` + `cloudfront` signing model as the list endpoint). Used to render assets that are hidden from the dataset listing — notably chat-scoped figures. Authorization is dataset RBAC: the asset must belong to the dataset in the `dataset_id` claim. - [Delete a viewer asset and its S3 objects](https://docs.pennsieve.io/reference/deleteviewerasset.md): Deletes the viewer asset record and all associated S3 objects under the asset's prefix. - [List trashcan contents for a dataset by folder](https://docs.pennsieve.io/reference/gettrashcan.md): Returns a list of deleted items from a dataset folder - [List shared datasets across workspaces](https://docs.pennsieve.io/reference/getshareddatasets.md): Returns a paginated list of all datasets shared with the user from workspaces where the user is not a contributor within the workspace. - [Presigned url to manifest of dataset](https://docs.pennsieve.io/reference/getmanifest.md): Returns a presigned URL to a file containing the current manifest of an unpublished dataset. - [List upload manifests for dataset](https://docs.pennsieve.io/reference/getmanifestlist-1.md): Returns a list of upload manifests that are defined for a dataset. - [Synchronize manifest](https://docs.pennsieve.io/reference/syncmanifest-1.md): Method to create a new manifest on the server, or to synchronize local updates to the server for existing manifests. - [Get files for manifest](https://docs.pennsieve.io/reference/getmanifestfiles-1.md): Returns a paginated list of files that are associated with an upload manifest. \ - [Verify status for manifest files](https://docs.pennsieve.io/reference/verifyfilestatus-1.md): Returns a list of files that have the requested status on the server for the given manifest.\ \ You can use this endpoint to check import progress of files during or after uploading a manifest. - [Get temporary S3 upload credentials](https://docs.pennsieve.io/reference/getuploadcredentials.md): Returns temporary AWS credentials scoped to upload files to a specific manifest prefix in the uploads S3 bucket. Used by data targets to upload files without requiring Cognito refresh tokens. - [Get temporary S3 credentials for direct-to-storage upload](https://docs.pennsieve.io/reference/getstoragecredentials.md): Returns temporary AWS credentials scoped to upload files directly to the manifest's destination storage bucket under the O{orgId}/D{datasetId}/{manifestId}/* prefix. Agents use these credentials to skip the legacy upload-bucket staging hop. - [Finalize a batch of files uploaded direct-to-storage](https://docs.pennsieve.io/reference/finalizemanifestfiles.md): Completes the two-phase upload for files the agent has already PUT directly to the storage bucket. The server verifies each object, creates Postgres package/file rows, and marks the manifest file Finalized. Idempotent per uploadId. Max 250 files per call. - [Archive manifest to disk](https://docs.pennsieve.io/reference/archivemanifest-1.md): Archives a manifest by storing the manifest as a CSV file on disk.\ \ Manifests can be manually archived, and are archived automatically a month after creation. - [Get Presigned URL to Manifest archive](https://docs.pennsieve.io/reference/getmanifestarchiveurl-1.md): Returns a pre-signed URL to fetch the Manifest Archive CVS file. - [Delete an upload manifest](https://docs.pennsieve.io/reference/deletemanifestarchive-1.md): This method will permanently delete an upload manifest. \ \ The manifest needs to be in 'archived' state before delete is allowed. - [Create a new compute node](https://docs.pennsieve.io/reference/postcomputenodes-1.md): Creates a new compute node for running analytical workflows. This will provision the necessary infrastructure in the specified account including ECS tasks, API Gateway, EFS storage, and SQS queues. If organization_id is provided, the node will be created within that workspace context. If organization_id is omitted, an organization-independent (private) node will be created. **Permissions:** Account owner can always create nodes. On public accounts (isPublic=true), workspace administrators (permission_bit >= 16) can also create nodes. - [List available GPU instance tiers](https://docs.pennsieve.io/reference/getgputiers.md): Returns the available GPU instance tiers with specs and pricing. Use this to populate tier selection UI when creating or updating compute nodes. - [List compute nodes](https://docs.pennsieve.io/reference/getcomputenodes-1.md): Lists compute nodes accessible to the authenticated user based on access control rules: **When account_owner=true:** - Returns ALL compute nodes on accounts owned by the authenticated user - Bypasses individual node permissions and workspace filtering - Only works if the user owns at least one compute resource account - Useful for billing, management, and auditing purposes **When no organization_id is provided (normal mode):** - Returns only compute nodes owned by the user (organization-independent nodes) - These are private nodes created without a workspace context **When organization_id is provided (normal mode):** - Returns nodes accessible to the user within that specific workspace - Includes nodes shared with the user directly, through teams, or workspace-wide access - Only returns nodes that belong to the specified organization All responses (except account owner mode) respect the user's actual permissions and access control settings. - [Get compute node details](https://docs.pennsieve.io/reference/getcomputenode-1.md): Retrieves detailed information about a specific compute node. **Permissions:** Accessible by node owner, users with shared access (direct, team, or workspace scope), and workspace administrators on public accounts (isPublic=true). - [Update compute node configuration](https://docs.pennsieve.io/reference/putcomputenode.md): Updates the configuration of an existing compute node, such as workflow manager settings or authorization type. **Permissions:** Node owner, account owner, or workspace administrator on public accounts (isPublic=true). - [Delete a compute node](https://docs.pennsieve.io/reference/deletecomputenode-1.md): Deletes a compute node and all its associated infrastructure. This will terminate running tasks, delete the API Gateway, EFS storage, and SQS queues. **Permissions:** Node owner, account owner, or workspace administrator on public accounts (isPublic=true). - [Update compute node details](https://docs.pennsieve.io/reference/patchcomputenode.md): Partially update the status, name, and/or description of a specific compute node. Setting the status to PAUSED will disable the compute node for analytic workflows. **Permissions:** Node owner or workspace administrator on public accounts (isPublic=true). - [Get compute node permissions](https://docs.pennsieve.io/reference/getcomputenodepermissions.md): Retrieves the current permission settings for a compute node. **Permissions:** Accessible by node owner, users with shared access (direct, team, or workspace scope), and workspace administrators on public accounts (isPublic=true). - [Set compute node access scope](https://docs.pennsieve.io/reference/setcomputenodeaccessscope.md): Sets the access scope for a compute node. **Permissions:** Node owner or workspace administrator on public accounts (isPublic=true). Access scope levels: - **private**: Only the owner can access the node - **workspace**: All members of the workspace can access the node - **shared**: Maintains existing user/team sharing but removes workspace access if any (use POST endpoints to add new shares) Note: When setting to "shared", existing individual user and team permissions are preserved. Use the granular POST/DELETE endpoints on /permissions/users and /permissions/teams to manage specific access grants. - [Grant access to a user](https://docs.pennsieve.io/reference/grantuseraccess.md): Grants access to a specific user for a compute node. **Permissions:** Node owner or workspace administrator on public accounts (isPublic=true). **Important**: This operation is only available for compute nodes that belong to a workspace (organization). Independent compute nodes cannot be shared with users or teams. This will automatically set the node's access scope to "shared" if it's currently "private" or "workspace". - [Revoke access from a user](https://docs.pennsieve.io/reference/revokeuseraccess.md): Revokes access from a specific user for a compute node. **Permissions:** Node owner or workspace administrator on public accounts (isPublic=true). Cannot revoke access from the node owner. **Note**: This operation only applies to compute nodes that belong to a workspace (organization). Independent compute nodes do not support sharing. - [Grant access to a team](https://docs.pennsieve.io/reference/grantteamaccess.md): Grants access to a specific team for a compute node. **Permissions:** Node owner or workspace administrator on public accounts (isPublic=true). **Important**: This operation is only available for compute nodes that belong to a workspace (organization). Independent compute nodes cannot be shared with users or teams. This will automatically set the node's access scope to "shared" if it's currently "private" or "workspace". - [Revoke access from a team](https://docs.pennsieve.io/reference/revoketeamaccess.md): Revokes access from a specific team for a compute node. **Permissions:** Node owner or workspace administrator on public accounts (isPublic=true). **Note**: This operation only applies to compute nodes that belong to a workspace (organization). Independent compute nodes do not support sharing. - [Attach node to organization](https://docs.pennsieve.io/reference/attachnodetoorganization.md): Attaches an organization-independent compute node to an organization. The user must have Collaborator or higher access to the target organization. Once attached, the node can be shared with other organization members. - [Detach node from organization](https://docs.pennsieve.io/reference/detachnodefromorganization.md): Detaches a compute node from its organization, making it organization-independent and private again. Only the account owner can detach nodes. All shared access (users, teams, workspace) will be removed, and the node becomes private to the owner. - [Set allowed processors for a compute node](https://docs.pennsieve.io/reference/putallowedprocessors.md): Replaces the processor whitelist for the specified compute node. When the list is non-empty, only processors whose source URLs match may be executed on this node. An empty list allows all processors (open mode). **Permissions:** Node owner or workspace administrator on public accounts (isPublic=true). - [Get compute node runtime configuration](https://docs.pennsieve.io/reference/getcomputenodeconfig.md): Returns the runtime configuration for the specified compute node, such as health check thresholds. The account-service proxies this request to the compute node's gateway. - [Get allowed processors for a compute node](https://docs.pennsieve.io/reference/getallowedprocessors.md): Returns the processor whitelist for the specified compute node. An empty list means all processors are allowed (open mode). Requires node access (owner, shared, or workspace). - [Update compute node runtime configuration](https://docs.pennsieve.io/reference/patchcomputenodeconfig.md): Partially updates the runtime configuration for the specified compute node. Only fields present in the request body are updated; omitted fields retain their current values. The account-service proxies this request to the compute node's gateway. - [List per-user chat & workflow LLM quotas for a compute node](https://docs.pennsieve.io/reference/listchatuserquotas.md): Returns every quota row defined on this node, including the special `__default__` row (if set) that applies to any user without an explicit override. **Permissions:** Node owner or workspace administrator on public accounts. - [Set node-wide LLM cost budget](https://docs.pennsieve.io/reference/putllmconfig.md): Updates the node-wide LLM cost budget the governor enforces on every invocation. Applies to chat and to workflow applications that invoke the LLM — this is the only enforcement layer that catches non-chat callers (per-user chat quotas don't apply to workflow apps). **Permissions:** Node owner only. Note: the governor caches SSM values for ~60 seconds, so changes take up to a minute to take effect on in-flight invocations. - [Create or replace the chat & workflow LLM quota for a user on this compute node](https://docs.pennsieve.io/reference/putchatuserquota.md): Writes the quota row for (computeNodeId, userId). Pass the literal string `__default__` as `userId` to set the node-wide default applied when no per-user override exists. Each cost-axis field is independent — omit (or set to null) any axis to leave that axis uncapped. The per-workflow cap is forwarded to the LLM governor as the per-execution budget when this user kicks off a workflow. **Permissions:** Node owner or workspace administrator on public accounts. - [Get node-wide LLM cost budget](https://docs.pennsieve.io/reference/getllmconfig.md): Returns the current node-wide LLM cost budget. Owner-only — the cap is policy data and isn't surfaced to non-owners. - [Get the chat & workflow LLM quota for a user on this compute node](https://docs.pennsieve.io/reference/getchatuserquota.md): Returns the raw quota row for (computeNodeId, userId), or 404 if none is set for that pair. A 404 does NOT mean "no limit applies" — the user still falls back to the node `__default__` row, then to a platform safety cap. Use `/effective` to see what's actually enforced. Pass `__default__` as `userId` to retrieve the node-wide default (owner-only). Pass `me` as `userId` to retrieve the caller's own row without having to know your own user node id. **Permissions:** Node owner / workspace admin can read any row; the caller can also read their own row (`userId` matches their JWT or `me`) provided they have any access to the node. - [Remove the chat & workflow LLM quota for a user on this compute node](https://docs.pennsieve.io/reference/deletechatuserquota.md): Deletes the quota row for (computeNodeId, userId). After deletion the user falls back to the node's `__default__` row (if any), then to "no limit" on each uncapped axis. **Permissions:** Node owner or workspace administrator on public accounts. - [Get the *resolved* chat & workflow LLM quota plus current spend](https://docs.pennsieve.io/reference/getchatusereffectivequota.md): Returns the limits actually enforced for (computeNodeId, userId), with per-axis source attribution and current per-period spend. Mirrors the resolution chat-service runs at dispatch time: per-user row → node `__default__` row → platform safety cap axis-by-axis (any unset axis falls through to the next tier). Use this rather than the raw `/user-quotas/{userId}` GET when you want to know what's actually applied — the raw GET returns 404 when no per-user override exists, which is misleading because the user is still bound by `__default__` and the safety cap. Pass `me` as `userId` to retrieve your own effective quota. **Permissions:** Node owner / workspace admin can read any user; the caller can also read their own effective quota. - [Get aggregate chat & workflow LLM usage for a user on this compute node](https://docs.pennsieve.io/reference/getchatuserusage.md): Returns the daily and/or monthly aggregate usage rows for (computeNodeId, userId). Useful for reporting and for explaining why a quota check might have failed. Pass `me` as `userId` to retrieve your own usage. **Permissions:** Node owner / workspace admin can read any user; the caller can also read their own usage. - [Public JWKS for interactive-session signing keys](https://docs.pennsieve.io/reference/getinteractivejwks.md): Returns the broker's public keys (RFC 7517) used to verify interactive (Jupyter) session tokens by kid. Intentionally UNAUTHENTICATED — it exposes only public key material; the per-node auth-proxy sidecars fetch it to verify broker-signed tokens. - [Registers an external compute resource account](https://docs.pennsieve.io/reference/postaccounts-1.md): Registers an external compute resource (such as AWS). This method assumes that this account has a role that the Pennsieve platform can assume to deploy infrastructure for the compute nodes. The Pennsieve Agent handles the creation of this role. - [Enable a workspace for an account](https://docs.pennsieve.io/reference/postaccountworkspaceenablement.md): Enables a workspace for a specific compute resource account. The isPublic flag determines who can create compute nodes on this account: if true, workspace managers can create nodes; if false, only the account owner can create nodes - [Get account details for the authenticated user](https://docs.pennsieve.io/reference/getaccounts-1.md): Get account details for compute resources belonging to the authenticated user. Optionally filter by workspace or include workspace enablement details. When filtering by workspace, workspace administrators (permission_bit >= 16) will also see accounts with isPublic=true that they don't own, enabling them to create and manage compute nodes on those accounts. - [Disable a workspace for an account](https://docs.pennsieve.io/reference/deleteaccountworkspaceenablement.md): Disables a workspace for a specific compute resource account - [Get account details for a specific compute resource](https://docs.pennsieve.io/reference/getaccount-1.md): Get account details for a specific compute resource - [Update account details](https://docs.pennsieve.io/reference/patchaccount.md): Partially update the status, name, and/or description of a specific compute resource account. Setting the status to PAUSED will disable the use of the account for analytic workflows and all compute nodes on this account. This does not affect storage functions. - [Get IAM role policy](https://docs.pennsieve.io/reference/getrolepolicy.md): Returns the scoped IAM permission policy document that agents use when creating cross-account roles. This is the single source of truth for the set of AWS actions the provisioner requires. - [Delete a compute resource account](https://docs.pennsieve.io/reference/deleteaccount.md): Delete a compute resource account and its workspace enablements. Must be the account owner. If the account has active compute nodes, the request will fail with a 409 Conflict unless the force query parameter is set to true. - [Update compute node infrastructure configuration](https://docs.pennsieve.io/reference/postupdateconfig.md): Updates infrastructure-affecting configuration (GPU settings, LLM access) and triggers re-provisioning. Only fields included in the request body are changed. The node's status must be "Enabled" or "Paused" (not "Pending" or "Destroying"). **Permissions:** Node owner, account owner, or workspace administrator on public accounts (isPublic=true). - [Add or update user secrets for a compute node](https://docs.pennsieve.io/reference/patchsecrets.md): Merges user-scoped secrets for the specified compute node. New keys are added and existing keys are updated; keys not included in the request are left unchanged. These secrets are private to the authenticated user and will be injected into workflow executions on this node. Requires node access (owner, shared, or workspace). Use DELETE to remove secrets. - [Get user secrets for a compute node](https://docs.pennsieve.io/reference/getsecrets.md): Retrieves the user-scoped secrets for the specified compute node. Returns only secrets belonging to the authenticated user. Requires node access (owner, shared, or workspace). - [Delete user secrets for a compute node](https://docs.pennsieve.io/reference/deletesecrets.md): Deletes a specific user-scoped secret by key, or all user secrets when deleteAll=true. Only removes secrets belonging to the authenticated user. Requires node access (owner, shared, or workspace). - [Add or update shared secrets for a compute node](https://docs.pennsieve.io/reference/patchsharedsecrets.md): Merges shared secrets for the specified compute node. New keys are added and existing keys are updated; keys not included in the request are left unchanged. These secrets are visible to all users with access to the node. Use DELETE to remove secrets. **Permissions:** Node owner or workspace administrator on public accounts (isPublic=true). - [Get shared secrets for a compute node](https://docs.pennsieve.io/reference/getsharedsecrets.md): Retrieves the shared secrets for the specified compute node. Any user with access to the node can read shared secrets. - [Delete shared secrets for a compute node](https://docs.pennsieve.io/reference/deletesharedsecrets.md): Deletes a specific shared secret by key, or all shared secrets when deleteAll=true. **Permissions:** Node owner or workspace administrator on public accounts (isPublic=true). - [Create a storage node](https://docs.pennsieve.io/reference/createstoragenode.md): Creates a new storage node associated with an account. - [List storage nodes](https://docs.pennsieve.io/reference/liststoragenodes.md): Lists storage nodes filtered by organization_id or account_owner=true. - [Get a storage node](https://docs.pennsieve.io/reference/getstoragenode.md): Retrieves a single storage node by ID. - [Update a storage node](https://docs.pennsieve.io/reference/updatestoragenode.md): Updates storage node fields (name, description, storageLocation, region, status). - [Delete a storage node](https://docs.pennsieve.io/reference/deletestoragenode.md): Deletes a storage node. Account owner only. - [Update storage node infrastructure config](https://docs.pennsieve.io/reference/updatestoragenodeconfig.md): Re-applies the provisioner terraform on an existing storage node to update bucket configuration (CORS, lifecycle, encryption settings, etc.) without touching bucket contents. The bucket has prevent_destroy=true in terraform. - [Attach storage node to workspace](https://docs.pennsieve.io/reference/attachstoragenodetoworkspace.md): Attaches a storage node to a workspace. Account owner only. - [Detach storage node from workspace](https://docs.pennsieve.io/reference/detachstoragenodefromworkspace.md): Detaches a storage node from a workspace. Account owner only. - [Get detach impact](https://docs.pennsieve.io/reference/getstoragenodedetachimpact.md): Returns the impact of detaching a storage node (affected datasets, files, size). - [List supported data-target types](https://docs.pennsieve.io/reference/gettargettypes.md): Returns the global catalog of supported data-target types. Use these values for the targetType field when creating workflow definitions with data-target nodes. - [Create and trigger a workflow run](https://docs.pennsieve.io/reference/postrun.md): Primary endpoint: create + trigger a run. Provide either workflowInstanceId (existing config) or workflowInstanceConfiguration (find-or-create config). - [List execution runs](https://docs.pennsieve.io/reference/getruns.md): Get a list of execution runs. When organization_id is provided, returns runs scoped to that organization (caller must be a member). When omitted, returns user-scoped runs created by the caller. - [List execution runs for an instance config](https://docs.pennsieve.io/reference/getexecutionruns.md): Gets all execution runs for a workflow instance config. For org-scoped compute nodes, the caller must be a member of the associated organization. For user-scoped compute nodes, only the owner can access. - [Get a specific execution run](https://docs.pennsieve.io/reference/getexecutionrun.md): Gets a specific execution run by its UUID. The response includes snapshot data (workflowUuid, processorConfigs, nodes) captured at run creation time. For org-scoped compute nodes, the caller must be a member of the associated organization. For user-scoped compute nodes, only the owner can access. - [Get execution run status](https://docs.pennsieve.io/reference/getexecutionrunstatus.md): Retrieves the status of the execution run and each of its DAG nodes. For org-scoped compute nodes, the caller must be a member of the associated organization. For user-scoped compute nodes, only the owner can access. - [Connect to a run's interactive (Jupyter) session](https://docs.pennsieve.io/reference/getsessionconnect.md): Authorizes the caller for the run, discovers the running interactive kernel task, registers per-session ALB routing, and returns the kernel URL + a short-lived signed token to connect through the per-node auth-proxy sidecar. Returns 202 while the kernel is still starting. - [Cancel a running execution](https://docs.pennsieve.io/reference/cancelexecutionrun.md): Cancels a running workflow execution. Sets the run status to CANCELING, calls the compute gateway to stop all Step Functions executions and running ECS tasks, then sets the final status to CANCELED. The creator of the run, compute node owners, and account owners can cancel it. Returns 409 if the run is already in a terminal state (CANCELED, SUCCEEDED, FAILED). Lambda processors cannot be stopped mid-execution and will run to completion or timeout. - [Get execution run logs](https://docs.pennsieve.io/reference/getexecutionrunlogs.md): Gets logs for an execution run. When nodeId is provided, returns processor logs for that specific DAG node. When nodeId is omitted, returns orchestration logs for the run. For org-scoped compute nodes, the caller must be a member of the associated organization. For user-scoped compute nodes, only the owner can access. - [Get execution run environment](https://docs.pennsieve.io/reference/getexecutionrunenvironment.md): Returns the environment provenance for an execution run — the layers it used, split into the software-environment dimension (python-env / r-env layers) and the inputs / reference-data dimension (data layers). Each layer's identity (layerType, snapshotId, treeChecksum, pythonVersion) is frozen onto the run at creation, so it is reported exactly as used even if the layer is later deleted or rebuilt. For org-scoped compute nodes, the caller must be a member of the associated organization. For user-scoped compute nodes, only the owner can access. - [Get workflow instance configs](https://docs.pennsieve.io/reference/getworkflowinstances-1.md): Get a list of workflow instance configs. Provide either computeNodeId (instances for a compute node) or workflowId (instances for a workflow definition). At least one parameter is required. - [Get workflow instance by uuid](https://docs.pennsieve.io/reference/getworkflowinstance-1.md): Gets workflow instance by uuid. The caller must have access to the associated compute node. - [Publish workflow (make public)](https://docs.pennsieve.io/reference/publishworkflow.md): Marks a workflow as public, making it discoverable and runnable by any authenticated user across organizations. Only the workflow creator may publish. Publishing requires that every processor node references an App Store (public) application; otherwise the request is rejected. - [Unpublish workflow (make private)](https://docs.pennsieve.io/reference/unpublishworkflow.md): Reverts a workflow to private visibility. The caller must be the workflow creator or a super-admin (moderation). If the workflow was official, that badge is also cleared. - [Mark workflow official (super-admin only)](https://docs.pennsieve.io/reference/verifyworkflow.md): Adds the Pennsieve-verified (official) badge to a public workflow. Restricted to super-admins. The workflow must already be public. - [Remove official badge (super-admin only)](https://docs.pennsieve.io/reference/unverifyworkflow.md): Removes the Pennsieve-verified (official) badge from a workflow. Restricted to super-admins. The workflow remains public. - [Create workflow](https://docs.pennsieve.io/reference/createworkflow-1.md): Creates a workflow definition. When an optional organizationId is provided in the request body, the workflow is scoped to that organization (caller must have Editor access). When omitted, the workflow is scoped to the authenticated user. - [Get workflows](https://docs.pennsieve.io/reference/getworkflows-1.md): Get a list of workflows. When organization_id is provided, returns workflows scoped to that organization (caller must have Editor access). When omitted, returns user-scoped workflows. - [Get workflow by uuid](https://docs.pennsieve.io/reference/getworkflow-1.md): Gets workflow by uuid. For user-scoped workflows, only the creator can access it. For organization-scoped workflows, the caller must be a member of the associated organization. - [Update workflow properties](https://docs.pennsieve.io/reference/updateworkflow-1.md): Partial update of a workflow definition. Only provided fields are changed. Only the creator of the workflow is allowed to update it. - [Create a new layer](https://docs.pennsieve.io/reference/postlayer.md): Creates a new persistent layer metadata record with status EMPTY. The layer data is populated later via a workflow with a persistent-layer data-target. - [List layers with cost estimates](https://docs.pennsieve.io/reference/getlayers-1.md): Returns all layers for a compute node with estimated storage costs. - [Delete a layer](https://docs.pennsieve.io/reference/deletelayer-1.md): Deletes a persistent layer and its data from the compute resource. If the data cleanup fails, the metadata record is preserved. - [Reconcile layer metrics](https://docs.pennsieve.io/reference/reconcilelayers.md): Compares actual layer data on the compute resource against stored metadata. Auto-corrects size and file count mismatches, and flags structural issues (e.g. metadata without data, or data without metadata). Returns the updated cost summary along with any corrections and issues found. - [Get pre-signed URL for metrics parquet export](https://docs.pennsieve.io/reference/getmetricsexport.md): Returns a pre-signed S3 URL to download the Parquet file containing execution run metrics. The file is designed for client-side analytics via DuckDB WASM. If organization_id is provided, returns org-scoped metrics (caller must be a member of the organization). Otherwise returns user-scoped metrics for the caller's own runs. - [Get aggregate metrics counters](https://docs.pennsieve.io/reference/getmetricscounters.md): Returns aggregate counters for workflow execution metrics. Supports different scopes: organization (default), workflow definition, application, or workflow instance. Returns both all-time totals and monthly breakdowns. - [Create application](https://docs.pennsieve.io/reference/postapplications.md): Create a new application - [List applications](https://docs.pennsieve.io/reference/getapplications.md): Get a list of applications - [Get application](https://docs.pennsieve.io/reference/getapplication.md): Get a specific application by ID - [Update application](https://docs.pennsieve.io/reference/putapplication.md): Update an existing application - [Delete application](https://docs.pennsieve.io/reference/deleteapplication.md): Delete an application by ID - [List deployments](https://docs.pennsieve.io/reference/getdeployments.md): Get the deployment history for an application - [Get deployment](https://docs.pennsieve.io/reference/getdeployment.md): Get the details for a specific application deployment - [Deploy application](https://docs.pennsieve.io/reference/postapplicationdeploy.md): Trigger a deployment for an application - [Create a new app store application](https://docs.pennsieve.io/reference/postappstore.md): Create a new app store application and trigger an initial deployment for the supplied source/release. - [Get app permissions](https://docs.pennsieve.io/reference/getapppermissions.md): Get permissions for an app store application - [List app store applications](https://docs.pennsieve.io/reference/getappstoreapplications.md): Get a list of app store applications - [Update app permissions](https://docs.pennsieve.io/reference/putapppermissions.md): Update visibility and granted accesses for an app store application - [Get app store application](https://docs.pennsieve.io/reference/getappstoreapplication.md): Get a single app store application by ID, including its versions, deployment history, and repository assets (e.g. app.yml, README.md) when available. - [App store registry lookup](https://docs.pennsieve.io/reference/getappstoreregistry.md): Resolves the image URL for an appstore application version for an authorized caller. - [Update app store application](https://docs.pennsieve.io/reference/patchappstoreapplication.md): Partially update an app store application. Currently supports changing the lifecycle status (e.g. to "archived"). Only the application owner may perform this operation. - [Get app store application asset](https://docs.pennsieve.io/reference/getappstoreasset.md): Retrieves a file from the synced content of an app store application. The asset is read from S3 using the app's source URL and the specified tag as a namespace. - [Sync application details](https://docs.pennsieve.io/reference/postappstoresync.md): Syncs details (e.g. GitHub visibility) of an application. - [Create import manifest](https://docs.pennsieve.io/reference/createimportmanifest-1.md): Creates an import manifest for tracking file uploads and processing. - [Generate upload pre-signed URL](https://docs.pennsieve.io/reference/importpresignupload-1.md): Generates an S3 pre-signed URL for uploading an import file to S3. - [Append files to import manifest](https://docs.pennsieve.io/reference/appendfilestomanifest-1.md): Appends files to an existing import manifest and increments the total files count. The manifest must be in the initialized state. - [Get temporary S3 upload credentials](https://docs.pennsieve.io/reference/getimportuploadcredentials.md): Returns temporary AWS credentials scoped to the import's S3 prefix. Use these credentials to upload files directly to S3 instead of using per-file presigned URLs. ## Changelog - [Jan 13, 2026 - Login](https://docs.pennsieve.io/changelog/jan-13-2026-login.md) - [April 1st, 2025 - Timeseries Streaming Acces](https://docs.pennsieve.io/changelog/april-1st-2025-timeseries-streaming-acces.md) - [September 19, 2024 - Revised Metadata Schema Management](https://docs.pennsieve.io/changelog/september-19-2024-revised-metadata-schema-management.md) - [March 25, 2024 - Upgraded to Vue 3 and more](https://docs.pennsieve.io/changelog/march-25-2024-pennsieve-platform-version-3300-upgraded-to-vue-3-and-more.md) - [May 12, 2023 Web Application and External Workflow](https://docs.pennsieve.io/changelog/may-12-2023-web-application-and-external-workflow.md)