Checkout Page Files API

The Files API from Checkout Page — 3 operation(s) for files.

GitHub OpenAPI

Operations 3

DELETE /v1/files/:fileId Delete file #
GET /v1/files/:fileId/download Download file #
POST /v1/files/upload Upload file #

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/checkoutpage-com:checkoutpage-com-files-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

checkoutpage-com-files-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Checkoutpage Com Files API
  version: 1.0.0
  description: 'Operations tagged Files across 2 of this provider''s published API definitions: checkoutpage-com-openapi.json, checkoutpage-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: Production
  url: https://api.checkoutpage.com
- description: Staging
  url: https://checkoutpageapi-staging.onrender.com
- description: Localhost
  url: https://api.checkoutpage.dev
tags:
- name: Files
paths:
  /v1/files/:fileId:
    delete:
      description: Deletes a file.
      operationId: files/delete
      parameters:
      - description: Unique identifier. Must be in BSON ObjectId format.
        in: path
        name: fileId
        required: true
        schema:
          allOf:
          - $ref: '#/components/schemas/UniqueIdentifier'
          - description: Unique identifier. Must be in BSON ObjectId format.
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      message:
                        type: string
                      success:
                        type: boolean
                    required:
                    - success
                    - message
                    type: object
                required:
                - data
                type: object
          description: File deleted successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Bad request - Invalid request parameters
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Unauthorized - Missing or invalid API key
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Forbidden - Insufficient permissions or validation error
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: File not found or not owned by your account
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: File is still attached to a product, page, store logo or theme. Detach it there first.
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Rate Limit Exceeded - Please try again later.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Internal server error
      security:
      - api_key_auth: []
      summary: Delete file
      tags:
      - Files
    servers:
    - description: Production
      url: https://api.checkoutpage.com
    - description: Staging
      url: https://checkoutpageapi-staging.onrender.com
    - description: Localhost
      url: https://api.checkoutpage.dev
  /v1/files/:fileId/download:
    get:
      description: Generates a temporary presigned URL for downloading a private file. Only works for files in the "files" bucket. Images are publicly accessible via their location URL.
      operationId: files/download
      parameters:
      - description: Unique identifier. Must be in BSON ObjectId format.
        in: path
        name: fileId
        required: true
        schema:
          allOf:
          - $ref: '#/components/schemas/UniqueIdentifier'
          - description: Unique identifier. Must be in BSON ObjectId format.
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/DownloadFileResponse'
                required:
                - data
                type: object
          description: Download URL generated successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Bad request - Invalid request parameters
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Unauthorized - Missing or invalid API key
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Forbidden - Insufficient permissions or validation error
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: File not found or not owned by your account
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Rate Limit Exceeded - Please try again later.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Internal server error
      security:
      - api_key_auth: []
      summary: Download file
      tags:
      - Files
    servers:
    - description: Production
      url: https://api.checkoutpage.com
    - description: Staging
      url: https://checkoutpageapi-staging.onrender.com
    - description: Localhost
      url: https://api.checkoutpage.dev
  /v1/files/upload:
    post:
      description: Upload a file directly to Checkout Page. Accepts multipart/form-data. Files can be used throughout the API by attaching them in `fileId` or `imageId` properties.
      operationId: files/upload
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  description: The file to upload (binary) - max 10MB
                  format: binary
                  type: string
                purpose:
                  description: The purpose of the uploaded file. Use `image` for public images (product photos, logos, etc) supported image mimetypes include image/jpeg, image/jpg, image/png, image/gif, image/webp. Use `file` for private files (PDFs, documents, etc) which will be accessible after checkout or in the customer portal.
                  enum:
                  - image
                  - file
                  example: image
                  type: string
              required:
              - purpose
              type: object
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/UploadFileResponse'
                required:
                - data
                type: object
          description: File uploaded successfully
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Bad request - invalid input or missing file
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Unauthorized - Missing or invalid API key
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Forbidden - Insufficient permissions or validation error
        '413':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: File too large (max 10MB)
        '415':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Unsupported file type
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Rate Limit Exceeded - Please try again later.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SellerApiErrorResponse'
          description: Internal server error
      security:
      - api_key_auth: []
      summary: Upload file
      tags:
      - Files
    servers:
    - description: Production
      url: https://api.checkoutpage.com
    - description: Staging
      url: https://checkoutpageapi-staging.onrender.com
    - description: Localhost
      url: https://api.checkoutpage.dev
components:
  schemas:
    UploadFileResponse:
      properties:
        createdAt:
          description: Creation timestamp
          example: '2026-02-24T12:00:00.000Z'
          type: string
        height:
          description: Image height in pixels (only for images)
          example: 1080
          type: number
        id:
          description: Unique File ID
          example: 507f1f77bcf86cd799439011
          type: string
        location:
          description: S3 URL of the file
          example: https://checkoutpage-images.s3.amazonaws.com/a3f2b1c4d5e6f7g8h9i0j1k2l3m4n5o6_product-image.jpg
          format: uri
          type: string
        name:
          description: File name
          example: product-image.jpg
          type: string
        purpose:
          description: File purpose - `image` for public files, `file` for private files
          enum:
          - image
          - file
          example: image
          type: string
        size:
          description: File size in bytes
          example: 245678
          type: number
        type:
          description: MIME type - supports image/jpeg, image/jpg, image/png, image/gif, image/webp
          example: image/jpeg
          type: string
        width:
          description: Image width in pixels (only for images)
          example: 1920
          type: number
      required:
      - id
      - location
      - name
      - purpose
      - type
      - size
      - createdAt
      type: object
    SellerApiErrorResponse:
      additionalProperties: {}
      properties:
        errors:
          description: Optional validation details for invalid requests.
          items:
            properties:
              message:
                type: string
              param:
                type: string
              value: {}
            required:
            - param
            - message
            type: object
          type: array
        message:
          description: Human-readable error message.
          example: Not Found
          type: string
        status:
          description: Indicates the request failed.
          enum:
          - error
          example: error
          type: string
        type:
          description: Machine-readable error category.
          example: error
          type: string
      required:
      - status
      - type
      - message
      type: object
    UniqueIdentifier:
      description: Unique identifier for the ticket.
      example: 65f4a1c2e4a9f3d2b1c0a9e8
      pattern: ^[0-9a-fA-F]{24}$
      type: string
    DownloadFileResponse:
      properties:
        expiresIn:
          description: URL expiration time in seconds. Expires in 5 minutes.
          example: 300
          type: number
        url:
          description: Presigned S3 download URL.
          example: https://s3.amazonaws.com/bucket-name/filekey?signature=...
          format: uri
          type: string
      required:
      - url
      - expiresIn
      type: object
  securitySchemes:
    api_key_auth:
      bearerFormat: API Key
      description: API key authentication. Use "Bearer YOUR_API_KEY" format.
      scheme: bearer
      type: http
x-refined-from:
- checkoutpage-com-openapi.json
- checkoutpage-com-openapi.yml