Cloudsmith files API
The files API from Cloudsmith — 5 operation(s) for files.
The files API from Cloudsmith — 5 operation(s) for files.
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/cloudsmith-files-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:
title: Cloudsmith API (v1) audit-log Files API
description: The API to the Cloudsmith Service
termsOfService: https://help.cloudsmith.io
contact:
name: Cloudsmith Support
url: https://help.cloudsmith.io
email: support@cloudsmith.io
license:
name: MIT
url: https://opensource.org/licenses/MIT
version: v1
servers:
- url: https://api.cloudsmith.io/
security:
- apikey: []
- basic: []
tags:
- name: files
paths:
/files/{owner}/{repo}/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: files_create
summary: Request URL(s) to upload new package file upload(s) to.
description: Request URL(s) to upload new package file upload(s) to.
responses:
'202':
description: The upload request was accepted
content:
application/json:
schema:
$ref: '#/components/schemas/PackageFileUpload'
'404':
description: Namespace (owner) or repository not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'400':
description: Request could not be processed (see detail).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
tags:
- files
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PackageFileUploadRequest'
/files/{owner}/{repo}/validate/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: files_validate
summary: Validate parameters used for create.
description: Validate parameters used for create.
responses:
'204':
description: Validation was successful, parameters are OK.
'404':
description: Namespace (owner) or repository not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'400':
description: Request could not be processed (see detail).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
tags:
- files
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PackageFileUploadRequest'
/files/{owner}/{repo}/{identifier}/abort/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
- name: identifier
in: path
required: true
schema:
type: string
post:
operationId: files_abort
summary: Abort a multipart file upload.
description: Abort a multipart file upload.
responses:
'204':
description: The multipart upload was aborted successfully.
'400':
description: The multipart upload could not be aborted.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'404':
description: Namespace (owner), repository or upload file not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
tags:
- files
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PackageFileUploadRequest'
/files/{owner}/{repo}/{identifier}/complete/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
- name: identifier
in: path
required: true
schema:
type: string
post:
operationId: files_complete
summary: Complete a multipart file upload.
description: Complete a multipart file upload.
responses:
'201':
description: The multipart upload was completed successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/PackageFileUpload'
'400':
description: The multipart upload could not be completed.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'404':
description: Namespace (owner), repository or upload file not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
tags:
- files
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PackageFileUploadRequest'
/files/{owner}/{repo}/{identifier}/info/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
- name: identifier
in: path
required: true
schema:
type: string
get:
operationId: files_info
summary: Get upload information to perform a multipart file upload.
description: Get upload information to perform a multipart file upload.
parameters:
- name: filename
in: query
description: The filename of the file being uploaded
required: true
schema:
type: string
- name: part_number
in: query
description: The part number to be uploaded next
required: false
schema:
type: integer
responses:
'200':
description: Information for multipart uploaded retrieved successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/PackageFilePartsUpload'
'400':
description: The provided upload file was not a multipart upload.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'404':
description: Namespace (owner), repository or upload file not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetail'
tags:
- files
components:
schemas:
PackageFilePartsUpload:
type: object
properties:
identifier:
title: Identifier
description: The identifier for the file to use uploading parts.
type: string
format: uri
readOnly: true
minLength: 1
upload_querystring:
title: Upload querystring
description: The querystring to use for the next-step PUT upload.
type:
- string
- 'null'
readOnly: true
minLength: 1
upload_url:
title: Upload url
description: The URL to use for the next-step PUT upload
type: string
format: uri
readOnly: true
minLength: 1
ErrorDetail:
required:
- detail
type: object
properties:
detail:
title: Detail
description: An extended message for the response.
type: string
minLength: 1
fields:
title: Fields
description: 'A Dictionary of related errors where key: Field and value: Array of Errors related to that field'
type: object
additionalProperties:
type: array
items:
type: string
minLength: 1
PackageFileUploadRequest:
required:
- filename
type: object
properties:
filename:
title: Filename
description: Filename for the package file upload.
type: string
minLength: 1
md5_checksum:
title: Md5 checksum
description: MD5 checksum for a POST-based package file upload.
type: string
maxLength: 32
minLength: 32
method:
title: Method
description: The method to use for package file upload.
type: string
enum:
- put_parts
- put
- post
- presigned
- unsigned_put
default: post
sha256_checksum:
title: Sha256 checksum
description: SHA256 checksum for a PUT-based package file upload.
type: string
maxLength: 64
minLength: 64
PackageFileUpload:
type: object
properties:
identifier:
title: Identifier
description: The identifier for the file to use when creating packages
type: string
format: uri
readOnly: true
minLength: 1
upload_fields:
title: Upload fields
description: The dictionary of fields that must be sent with POST uploads
type:
- object
- 'null'
readOnly: true
upload_headers:
title: Upload headers
description: The dictionary of headers that must be sent with uploads
type:
- object
- 'null'
readOnly: true
upload_querystring:
title: Upload querystring
description: The querystring to use for the next-step POST or PUT upload
type:
- string
- 'null'
readOnly: true
minLength: 1
upload_url:
title: Upload url
description: The URL to use for the next-step POST or PUT upload
type: string
format: uri
readOnly: true
minLength: 1
securitySchemes:
apikey:
type: apiKey
name: X-Api-Key
in: header
basic:
type: http
scheme: basic