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

# Create a pipeline

> Create a scheduled source-transform-sink pipeline.

```http theme={null}
POST /api/v1/scheduled_pipelines
```

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST http://localhost:5080/api/v1/scheduled_pipelines \
    -H "authorization: Bearer $MS_JWT" \
    -H 'content-type: application/json' \
    -d '{
      "name": "normalize-app",
      "source_stream": "app_raw",
      "target_stream": "app",
      "function_steps": {
        "language": "vrl",
        "signal_type": "logs",
        "steps": [
          {
            "transform_name": "normalize-level",
            "script": ".level = downcase!(string!(.level))"
          }
        ]
      },
      "cron": "every:5m",
      "lookback_secs": 300,
      "enabled": true
    }'
  ```
</RequestExample>

The source and target must differ. `signal_type` accepts `logs`, `metrics`, or `traces`. Creating a
pipeline requires `pipelines.create`; later edits, pause/resume, backfill, and deletion use the
corresponding `pipelines.*` permissions.
