---
title: "List Storage Triggers"
method: GET
path: "/storage_triggers"
tags: ["Pipeline Observability"]
---

# List Storage Triggers

`GET /storage_triggers`

## Request

- Base URL: `https://api.mosaic.so`
- URL: `https://api.mosaic.so/storage_triggers`
- Auth: HTTP bearer

List storage-trigger configuration, originating agents, and Drive/Dropbox/S3 roots.

## Query parameters

- `limit` integer
- `cursor` string
- `from` string, date-time
- `to` string, date-time
- `updated_from` string, date-time
- `workspace_id` string, uuid
- `agent_id` string, uuid
- `provider` string

## Headers

- `X-Workspace-Id` string, uuid

## Response `200`

Current organization-scoped evidence.

- object
  - `triggers` CanvasStorageTrigger[]
    - `id` string, uuid, required: Storage trigger subscription ID.
    - `workspace_id` string, uuid, required: Owning workspace.
    - `agent_id` string, uuid, required: Originating agent.
    - `agent_node_id` string, uuid, required: Trigger tile ID.
    - `provider` string, required: Provider value: google_drive, dropbox, or aws_s3.
    - `is_enabled` boolean, required: Whether the trigger can initiate processing.
    - `batch_enabled` boolean, required: Whether events are collected into batches.
    - `debounce_minutes` integer, required: Quiet period before a batch is eligible to flush.
    - `batch_by_subfolder` boolean, required: Whether events are grouped by subfolder.
    - `subfolder_depth` integer, required: Configured batching folder depth.
    - `needs_reconcile` boolean, required: Whether watcher discovery requires reconciliation.
    - `reconcile_started_at` string, date-time, nullable, required: Reconciliation start, when present.
    - `selected_folder_display_path` string, nullable, required: Configured source display path; not an immutable folder identifier.
    - `created_at` string, date-time, required: Subscription creation time.
    - `updated_at` string, date-time, required: Subscription row update time.
    - `drive_trigger_sources` object[], required
      - `external_connection_id` string, uuid, required: Drive or Dropbox connection ID.
      - `root_folder_id` string, required: Provider root folder identifier.
      - `root_folder_name` string, nullable, required: Current name from the folder cache; null if unavailable.
    - `s3_trigger_sources` object[], required
      - `s3_connection_id` string, uuid, required: S3 connection ID.
      - `bucket` string, required: S3 bucket name.
      - `prefix` string, required: Literal object-key prefix. Empty means the entire bucket.
  - `next_cursor` string, nullable: Opaque cursor for the next page; null at the end.

## Other responses

- `400`: Invalid UUID, cursor, limit, timestamp, filter, or unsupported updated_from on batch items.
- `401`: Missing, invalid, or revoked API key.
- `403`: Insufficient API key scope, unavailable paid-plan access, or workspace header/query mismatch. Scope errors include code, required_scope, granted_scopes, retryable, and resolution. Other authorization errors retain detail.
- `404`: Requested run, trigger, or batch is absent or outside the authorized organization/workspace.
- `500`: Database or query failure. Never interpret this as an empty successful result; use bounded backoff.

---

[API](https://skmtc.dev/mosaic/apis/mosaic-ai-api.md) - [All operations](https://skmtc.dev/mosaic/apis/mosaic-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mosaic/apis/mosaic-ai-api/revisions/c20e9fc606a4?raw)
