Cloudsmith files API

The files API from Cloudsmith — 5 operation(s) for files.

Operations 5

POST /files/{owner}/{repo}/ Request URL(s) to upload new package file upload(s) to. #
POST /files/{owner}/{repo}/validate/ Validate parameters used for create. #
POST /files/{owner}/{repo}/{identifier}/abort/ Abort a multipart file upload. #
POST /files/{owner}/{repo}/{identifier}/complete/ Complete a multipart file upload. #
GET /files/{owner}/{repo}/{identifier}/info/ Get upload information to perform a multipart file upload. #

Work with this as data

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-files-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 Specification

cloudsmith-files-api-openapi.yml Raw ↑
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