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

# Upload a blob

> Uploads binary content and returns its `sha256:<hex>` content-addressed hash. Accepts `multipart/form-data` (typical for browser file inputs) or `application/octet-stream` (raw bytes for SDK / CLI uploads).

Uploads are idempotent: re-uploading identical bytes returns the existing hash without re-storing — the storage backend deduplicates by hash. `MAX_BLOB_SIZE` (default 50 MB) caps individual uploads; over-size returns `413 blob_too_large`. Tenant blob count and storage-byte quotas (`blobs`, `storage_bytes`) gate uploads.

Reference the returned `hash` from item properties (`blob_ref` on `core.file.*` types) or attachment entries. See [Blobs](/concepts/blobs).



## OpenAPI

````yaml /openapi.json post /blobs
openapi: 3.1.0
info:
  title: Marfa API
  version: 4.2.0
  description: Typed data layer for structured personal data
servers: []
security: []
paths:
  /blobs:
    post:
      tags:
        - Blobs
      summary: Upload a blob
      description: >-
        Uploads binary content and returns its `sha256:<hex>` content-addressed
        hash. Accepts `multipart/form-data` (typical for browser file inputs) or
        `application/octet-stream` (raw bytes for SDK / CLI uploads).


        Uploads are idempotent: re-uploading identical bytes returns the
        existing hash without re-storing — the storage backend deduplicates by
        hash. `MAX_BLOB_SIZE` (default 50 MB) caps individual uploads; over-size
        returns `413 blob_too_large`. Tenant blob count and storage-byte quotas
        (`blobs`, `storage_bytes`) gate uploads.


        Reference the returned `hash` from item properties (`blob_ref` on
        `core.file.*` types) or attachment entries. See
        [Blobs](/concepts/blobs).
      requestBody:
        content:
          multipart/form-data:
            schema:
              nullable: true
          application/octet-stream:
            schema:
              nullable: true
      responses:
        '201':
          description: Blob uploaded
          content:
            application/json:
              schema:
                type: object
                properties:
                  hash:
                    type: string
                  mime_type:
                    type: string
                  size:
                    type: number
                required:
                  - hash
                  - mime_type
                  - size
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - validation_error
                          - missing_required_field
                      message:
                        type: string
                      details:
                        type: object
                        additionalProperties:
                          nullable: true
                    required:
                      - code
                      - message
                required:
                  - error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - unauthorized
                      message:
                        type: string
                      details:
                        type: object
                        additionalProperties:
                          nullable: true
                    required:
                      - code
                      - message
                required:
                  - error
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key or OAuth Token
      description: Pass an API key (marfa_k1_...) or OAuth access token (marfa_at_...)

````