> ## 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.

# Get a presigned download URL for a blob

> Returns a time-limited presigned URL pointing directly at the underlying S3-compatible object store. The `ttl` query parameter (seconds, default 3600) sets the URL's lifetime. Useful for serving images and other static assets without proxying them through the API server.

Available only when `BLOB_BACKEND=s3`. Filesystem-backed deployments return `400` — use `GET /blobs/{hash}` to stream bytes instead.



## OpenAPI

````yaml /openapi.json get /blobs/{hash}/url
openapi: 3.1.0
info:
  title: Marfa API
  version: 4.2.0
  description: Typed data layer for structured personal data
servers: []
security: []
paths:
  /blobs/{hash}/url:
    get:
      tags:
        - Blobs
      summary: Get a presigned download URL for a blob
      description: >-
        Returns a time-limited presigned URL pointing directly at the underlying
        S3-compatible object store. The `ttl` query parameter (seconds, default
        3600) sets the URL's lifetime. Useful for serving images and other
        static assets without proxying them through the API server.


        Available only when `BLOB_BACKEND=s3`. Filesystem-backed deployments
        return `400` — use `GET /blobs/{hash}` to stream bytes instead.
      parameters:
        - schema:
            type: string
          required: true
          name: hash
          in: path
        - schema:
            type: integer
            minimum: 1
            default: 3600
          required: false
          name: ttl
          in: query
      responses:
        '200':
          description: Presigned URL
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                  expires_in:
                    type: number
                required:
                  - url
                  - expires_in
        '400':
          description: Invalid blob hash or presigned URLs not available
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - validation_error
                      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
        '404':
          description: Blob not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        enum:
                          - blob_not_found
                      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_...)

````