Posit Bundles API
The Bundles API from Posit — 5 operation(s) for bundles.
The Bundles API from Posit — 5 operation(s) for bundles.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/posit-bundles-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact:
email: support@posit.co
name: Posit Connect Support
url: https://support.posit.co/hc/en-us
description: '## Overview
The Posit Connect Server API can be used to perform certain
user actions remotely.'
license:
name: Commercial. Copyright 2015-2026 Posit Software, PBC. All Rights Reserved.
url: https://posit.co/about/eula/
termsOfService: https://posit.co/about/eula/
title: Posit Connect API Reference Bundles API
version: 1.0.1
servers:
- url: /__api__
security:
- apiKey: []
tags:
- name: Bundles
paths:
/v1/content/{guid}/bundles:
get:
description: 'List bundles associated with a specific content item.
Bundle enumeration is permitted by all users with viewership rights to
the content item and administrators. Information about the target
environment is populated for users with "publisher" and "administrator" role.
Results are sorted by ID in descending order (newest first).
This endpoint supports `page_number` and `page_size` query
parameters to limit the number of results returned.'
operationId: getBundles
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
- description: The page number to return.
in: query
name: page_number
schema:
default: 1
format: int32
type: integer
- description: The number of items per page.
in: query
name: page_size
schema:
default: 20
format: int32
type: integer
- description: Whether results are in ascending order.
in: query
name: asc_order
schema:
default: true
type: boolean
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/Bundle'
type: array
description: Successful response.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: You do not have permission to perform this operation.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: List bundles
tags:
- Bundles
post:
description: Create a new deployment bundle by uploading an archive.
operationId: uploadContentBundle
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
- description: URL of a gzip compressed tar archive.
in: query
name: url
schema:
type: string
- description: The Base64-encoded MD5 sum of the archive file.
in: header
name: X-Content-Checksum
schema:
type: string
requestBody:
content:
application/gzip:
schema:
format: binary
type: string
application/x-gzip:
schema:
format: binary
type: string
multipart/form-data:
schema:
additionalProperties: false
properties:
archive:
description: A gzip compressed tar archive file.
format: binary
type: string
metadata:
description: Optional JSON object containing metadata about this bundle.
type: string
url:
description: URL of a gzip compressed tar archive. Either archive or url must be provided.
type: string
type: object
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Bundle'
description: Successful response.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: Create a bundle by uploading an archive
tags:
- Bundles
/v1/content/{guid}/bundles/{id}:
delete:
description: 'Delete a specific bundle.
Bundle deletion is permitted by authorized clients with collaborator
rights and administrators.
On-disk data and database records are removed as a consequence of this
call. Deletion is not allowed while the bundle is still active.'
operationId: deleteBundle
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
- in: path
name: id
required: true
schema:
type: string
responses:
'204':
description: Successful response.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: You do not have permission to perform this operation.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: Delete bundle
tags:
- Bundles
get:
description: 'Get detailed information about a specific bundle.
Bundle reads are permitted by all users with viewership rights to the
content item and administrators. Information about the target environment
is populated for users with "publisher" and "administrator" role.'
operationId: getBundle
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Bundle'
description: Successful response.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: You do not have permission to perform this operation.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: Get bundle details
tags:
- Bundles
/v1/content/{guid}/bundles/{id}/download:
get:
description: 'Download a deployment bundle.
Bundle download is permitted by authorized clients with collaborator
rights.
Download a `gzip` compressed `tar` archive (`.tar.gz`) containing the
code/data from one deployment of the associated content.
See the POST /v1/content/{guid}/bundles endpoint for details about
the construction of bundle archives.'
operationId: downloadBundle
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
description: Successful response.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation is invalid.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: You do not have permission to perform this operation.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: Download the bundle archive
tags:
- Bundles
/v1/content/{guid}/bundles/{id}/files:
get:
description: 'Returns a JSON object containing every file inside the
bundle''s gzipped tar archive. Symlinks, directories, and
other special tar entries are not listed. Listing bundle
files is permitted by authorized clients with
collaborator rights and administrators.'
operationId: listBundleFiles
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
description: Successful response.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: You do not have permission to perform this operation.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: List files in a bundle
tags:
- Bundles
/v1/content/{guid}/bundles/{id}/files/*path:
get:
description: 'Returns the UTF-8 contents of one file inside a deployed
bundle''s gzipped tar archive. Binary files and files
larger than the inline-preview cap are reported with
flags and a null content body. Reading bundle file
content is permitted by authorized clients with
collaborator rights and administrators.'
operationId: getBundleFileContent
parameters:
- in: path
name: guid
required: true
schema:
format: uuid
type: string
- in: path
name: id
required: true
schema:
type: string
responses:
'200':
description: Successful response.
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested operation requires authentication.
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: You do not have permission to perform this operation.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: The requested object does not exist.
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: A server error occurred.
summary: Get the contents of a file in a bundle
tags:
- Bundles
components:
schemas:
APIError:
additionalProperties: false
description: The error object returned by the API on failure.
properties:
code:
description: The specific code for the type of error returned. See the [API error codes reference](#api-error-codes) for the full set of values.
type: integer
error:
description: A description of the problem that was encountered.
type: string
payload:
description: Additional error details, if any. The structure varies by error type.
type:
- object
- 'null'
required:
- code
- error
type: object
BundleMetadata:
additionalProperties: false
description: Metadata about a bundle including source control information and custom fields.
properties:
source:
description: 'Source for this bundle.
`git` for bundles fetched from a git repository.'
type:
- string
- 'null'
source_repo:
description: Repository URL for this bundle.
type:
- string
- 'null'
source_branch:
description: Repository branch or ref name for this bundle.
type:
- string
- 'null'
source_commit:
description: Commit ID (hash) for this bundle.
type:
- string
- 'null'
archive_md5:
description: 'MD5 hash of the archive file for this bundle. `null` for bundles
uploaded before this field was added.'
example: 37324238a80595c453c706b22adb83d3
type:
- string
- 'null'
archive_sha1:
description: 'SHA1 hash of the archive file for this bundle. `null` for bundles
uploaded before this field was added.'
example: a2f7d13d87657df599aeeabdb70194d508cfa92f
type:
- string
- 'null'
type: object
Bundle:
additionalProperties: false
description: A deployment bundle associated with a content item.
properties:
id:
description: The identifier for this bundle.
example: '101'
type: string
content_guid:
description: The identifier of the owning content.
example: 25438b83-ea6d-4839-ae8e-53c52ac5f9ce
format: uuid
type: string
created_by:
description: The GUID of the user who created the bundle.
format: uuid
type:
- string
- 'null'
created_time:
description: The timestamp (RFC3339) of when this bundle was created.
example: '2006-01-02T15:04:05-07:00'
format: date-time
type: string
environment_guid:
description: 'The guid of the execution environment used to run this content. Content
running locally
on the same server as Connect will have a `null` value.
A `null` value is returned when the client does not have sufficient rights
to see this
information.'
example: 36538b83-ea6d-4839-ae8e-53c52ac5f0bf
format: uuid
type:
- string
- 'null'
cluster_name:
description: 'The location where this content runs. Content running on the same
server as Connect will have either a `null` value or the string
"Local". Gives the name of the cluster when run external to the
Connect host.
A `null` value is returned when the client does not have sufficient
rights to see this information.'
example: Local
type:
- string
- 'null'
image_name:
description: 'The name of the container image used to run this content in containerized
environments such as Kubernetes. Content running locally
on the same server as Connect will have either a `null` value or the string
"Local".
A `null` value is returned when the client does not have sufficient
rights to see this information.'
example: rstudio/content-base:r4.1.3-py3.10.11-jammy
type:
- string
- 'null'
r_version:
description: 'The version of R used when last restoring this bundle. A `null`
value represents that R is not used by this bundle or that the
bundle has not been prepared for execution.
R version is not disclosed to users with a "viewer" role; they
receive a `null` value.'
example: 3.5.1
type:
- string
- 'null'
r_environment_management:
description: 'Indicates whether or not Connect is managing an R environment and
has installed the required packages for this content. The `null`
value represents that R is not used by this bundle or that it has
not yet been determined if an R environment is required.
R environment management is not disclosed to users with a "viewer"
role; they receive a `null` value.'
example: true
type:
- boolean
- 'null'
py_version:
description: 'The version of Python used when last restoring this bundle. A `null`
value represents that Python is not used by this bundle or that the
bundle has not been prepared for execution.
Python version is not disclosed to users with a "viewer" role; they
receive a `null` value.'
example: 3.8.2
type:
- string
- 'null'
py_environment_management:
description: 'Indicates whether or not Connect is managing a Python environment
and has installed the required packages for this content. The `null`
value represents that Python is not used by this bundle or that it
has not yet been determined if a Python environment is required.
Python environment management is not disclosed to users with a
"viewer" role; they receive a `null` value.'
example: true
type:
- boolean
- 'null'
quarto_version:
description: 'The version of Quarto used when last restoring this bundle. A `null`
value represents that Quarto is not used by this bundle or that the
bundle has not been successfully prepared for execution.
Quarto version is not disclosed to users with a "viewer" role; they
receive a `null` value.'
example: 0.2.22
type:
- string
- 'null'
active:
description: Indicates if this bundle is active for the owning content.
example: false
type: boolean
size:
description: 'On-disk size in bytes of the tar.gz file associated with this bundle.
Zero when there is no on-disk file.'
example: 1000000
format: int64
type: integer
metadata:
allOf:
- $ref: '#/components/schemas/BundleMetadata'
description: 'Metadata object associated with this bundle.
May be generated by Connect, if using git-backed publishing,
or supplied by the publisher at upload time.'
type: object
securitySchemes:
apiKey:
description: 'Prefix your API key with `Key `, e.g. `Key ABC123`.
'
in: header
name: Authorization
type: apiKey