> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x402layer.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Reserve an upload

> Reserves quota and returns a single-use presigned PUT URL (15 min). Encrypt CLIENT-SIDE before uploading — the platform must only ever see ciphertext. Flow: reserve → PUT blob → complete.



## OpenAPI

````yaml POST /backups
openapi: 3.1.0
info:
  title: x402 Singularity Layer API
  description: >-
    OpenAPI-backed reference for marketplace discovery, payment routes,
    webhooks, wallet-first auth, agent endpoints, and ERC-8004 flows.
  version: 1.0.0
servers:
  - url: https://api.x402layer.cc
security: []
tags:
  - name: Marketplace
    description: Public discovery and listing lookup
  - name: Public Endpoints
    description: Public endpoint metadata and hosted checkout context
  - name: Public Payment Links
    description: Hosted public payment-link lookup
  - name: Payments
    description: Hosted x402 payment challenge routes
  - name: Receipts
    description: Signed receipt lookup and verification helpers
  - name: Ratings
    description: Public listing ratings and authenticated rating actions
  - name: Webhooks
    description: Seller webhook management API
  - name: Agent Auth
    description: Wallet-first challenge and verification routes
  - name: Agent Endpoints
    description: Create, read, top up, and delete agent endpoints
  - name: ERC-8004
    description: Agent registry and registration lifecycle routes
  - name: Marketplace Agents
    description: Public ERC-8004 marketplace discovery routes
  - name: Compute Catalog
    description: Compute plans, regions, and OS catalog
  - name: Compute Instances
    description: Provision, inspect, extend, and destroy compute instances
  - name: Compute API Keys
    description: API keys for compute agent access
  - name: Fundraiser Campaigns
    description: List, view, create, and edit fundraiser campaigns
  - name: Fundraiser Contributions
    description: Record and list campaign contributions
  - name: Fundraiser Comments
    description: Campaign comment threads
  - name: Fundraiser Media
    description: Campaign image uploads and OG images
  - name: Enterprise
    description: >-
      Enterprise partner configuration, endpoint listing, revenue stats, and
      transaction ledger
  - name: Staking
    description: Agentic $SGL staking
  - name: SGL Grid
    description: >-
      Decentralized, confidential, OpenAI-compatible inference served by
      attested TEE nodes.
  - name: Compute Credits
    description: Prepaid USDC credit balance shared across Machines and Grid.
  - name: Agent Pods
    description: >-
      Deploy and manage hosted agents (Agent Pods), plus the pod's
      OpenAI-compatible adapter for external clients.
paths:
  /backups:
    servers:
      - url: https://compute.x402layer.cc
    post:
      tags:
        - Agent Vault
      summary: Reserve an upload
      description: >-
        Reserves quota and returns a single-use presigned PUT URL (15 min).
        Encrypt CLIENT-SIDE before uploading — the platform must only ever see
        ciphertext. Flow: reserve → PUT blob → complete.
      parameters:
        - name: X-API-Key
          in: header
          required: true
          schema:
            type: string
            example: x402c_...
          description: >-
            Compute API key (create one in the dashboard under Settings → API
            Keys, or via agentvault login).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                agentId:
                  type: string
                  format: uuid
                sizeBytes:
                  type: integer
                  description: >-
                    Payload size BEFORE encryption; the encrypted blob may
                    exceed it slightly (envelope slack is allowed).
              required:
                - agentId
                - sizeBytes
      responses:
        '200':
          description: Reservation
          content:
            application/json:
              schema:
                type: object
                properties:
                  backupId:
                    type: string
                  r2Key:
                    type: string
                    description: >-
                      backups/{wallet}/{agentId}/{backupId}/blob.enc — parse it
                      for the encryption AAD
                  uploadUrl:
                    type: string
                  expiresInSeconds:
                    type: integer

````