Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/cloudsmith-packages-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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 Packages 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: packages
paths:
/packages/{owner}/{repo}/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
get:
operationId: packages_list
summary: Get a list of all packages associated with repository.
description: Get a list of all packages associated with repository.
parameters:
- name: page
in: query
description: A page number within the paginated result set.
required: false
schema:
type: integer
- name: page_size
in: query
description: Number of results to return per page.
required: false
schema:
type: integer
- name: query
in: query
description: A search term for querying names, filenames, versions, distributions, architectures, formats or statuses of packages.
required: false
schema:
type: string
default: ''
- name: sort
in: query
description: A field for sorting objects in ascending or descending order.
required: false
schema:
type: string
default: -date
responses:
'200':
description: Retrieved the list of packages
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Package'
'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:
- packages
x-simplified: fields[packages]=stage_str,stage_updated_at,status_reason,status_str,status_updated_at,is_sync_completed,is_sync_failed,is_sync_in_progress,is_copyable,is_deleteable,is_downloadable,is_moveable,is_quarantined,sync_finished_at,sync_progress,distro,distro_version,downloads,cdn_url,filename,format,freeable_storage,license,name,num_files,package_type,policy_violated,repository,security_scan_status,security_scan_completed_at,size,slug,slug_perm,uploaded_at,uploader,version,vulnerability_scan_results_url&fields[distributions]=slug,name
/packages/{owner}/{repo}/groups/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
get:
operationId: packages_groups_list
summary: Return a list of Package Groups in a repository.
description: Return a list of Package Groups in a repository.
parameters:
- name: page
in: query
description: A page number within the paginated result set.
required: false
schema:
type: integer
- name: page_size
in: query
description: Number of results to return per page.
required: false
schema:
type: integer
- name: group_by
in: query
description: 'A field to group packages by. Available options: name, backend_kind.'
required: false
schema:
type: string
default: name
- name: hide_subcomponents
in: query
description: Whether to hide packages which are subcomponents of another package in the results
required: false
schema:
type: boolean
default: false
- name: query
in: query
description: A search term for querying names, filenames, versions, distributions, architectures, formats, or statuses of packages.
required: false
schema:
type: string
default: ''
- name: sort
in: query
description: 'A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name, count, num_downloads, size, last_push, backend_kind.'
required: false
schema:
type: string
default: name
responses:
'200':
description: Retrieved the list of package groups.
content:
application/json:
schema:
required:
- results
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/PackageGroup'
'404':
description: Owner namespace 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:
- packages
/packages/{owner}/{repo}/upload/alpine/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_alpine
summary: Create a new Alpine package
description: Create a new Alpine package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/AlpinePackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AlpinePackageUploadRequest'
/packages/{owner}/{repo}/upload/cargo/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_cargo
summary: Create a new Cargo package
description: Create a new Cargo package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/CargoPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CargoPackageUploadRequest'
/packages/{owner}/{repo}/upload/cocoapods/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_cocoapods
summary: Create a new CocoaPods package
description: Create a new CocoaPods package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/CocoapodsPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CocoapodsPackageUploadRequest'
/packages/{owner}/{repo}/upload/composer/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_composer
summary: Create a new Composer package
description: Create a new Composer package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/ComposerPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ComposerPackageUploadRequest'
/packages/{owner}/{repo}/upload/conan/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_conan
summary: Create a new Conan package
description: Create a new Conan package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/ConanPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ConanPackageUploadRequest'
/packages/{owner}/{repo}/upload/conda/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_conda
summary: Create a new Conda package
description: Create a new Conda package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/CondaPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CondaPackageUploadRequest'
/packages/{owner}/{repo}/upload/cran/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_cran
summary: Create a new CRAN package
description: Create a new CRAN package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/CranPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CranPackageUploadRequest'
/packages/{owner}/{repo}/upload/dart/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_dart
summary: Create a new Dart package
description: Create a new Dart package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/DartPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DartPackageUploadRequest'
/packages/{owner}/{repo}/upload/deb/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_deb
summary: Create a new Debian package
description: Create a new Debian package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/DebPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DebPackageUploadRequest'
/packages/{owner}/{repo}/upload/docker/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_docker
summary: Create a new Docker package
description: Create a new Docker package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/DockerPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DockerPackageUploadRequest'
/packages/{owner}/{repo}/upload/generic/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_generic
summary: Create a new Generic package
description: Create a new Generic package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/GenericPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GenericPackageUploadRequest'
/packages/{owner}/{repo}/upload/go/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_go
summary: Create a new Go package
description: Create a new Go package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/GoPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/GoPackageUploadRequest'
/packages/{owner}/{repo}/upload/helm/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_helm
summary: Create a new Helm package
description: Create a new Helm package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/HelmPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/HelmPackageUploadRequest'
/packages/{owner}/{repo}/upload/hex/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_hex
summary: Create a new Hex package
description: Create a new Hex package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/HexPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/HexPackageUploadRequest'
/packages/{owner}/{repo}/upload/huggingface/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_huggingface
summary: Create a new HuggingFace package
description: Create a new HuggingFace package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/HuggingfacePackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/HuggingfacePackageUploadRequest'
/packages/{owner}/{repo}/upload/luarocks/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_luarocks
summary: Create a new LuaRocks package
description: Create a new LuaRocks package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/LuarocksPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LuarocksPackageUploadRequest'
/packages/{owner}/{repo}/upload/maven/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_maven
summary: Create a new Maven package
description: Create a new Maven package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/MavenPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MavenPackageUploadRequest'
/packages/{owner}/{repo}/upload/mcp/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_mcp
summary: Create a new MCP package
description: Create a new MCP package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/McpPackageUpload'
'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:
- packages
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/McpPackageUploadRequest'
/packages/{owner}/{repo}/upload/npm/:
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: repo
in: path
required: true
schema:
type: string
post:
operationId: packages_upload_npm
summary: Create a new npm package
description: Create a new npm package
responses:
'201':
description: Upload acknowledged and queued for synchronization.
content:
application/json:
schema:
$ref: '#/components/schemas/NpmPackageUpload'
'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/jso
# --- truncated at 32 KB (568 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cloudsmith/refs/heads/main/openapi/cloudsmith-packages-api-openapi.yml