---
title: blossom help:data
url: "/docs/reference/cli/help/data/"
canonical_url: https://docs.blossom88.com/docs/reference/cli/help/data/
markdown_url: https://docs.blossom88.com/docs/reference/cli/help/data.md
summary: Explain structured data input
categories:
- cli
- reference
---

# blossom help:data

Explain structured data input

## Usage

    blossom help:data

Blossom data input

Resource commands use one structured input model:

    blossom app:create --data app.yml
    blossom app:create -d '{"app":{"name":"demo"}}'

`--data` accepts inline YAML/JSON, a local file path, or an HTTP(S) URL.

Local files and inline input support variable substitution:

    $VAR
    ${VAR}

For example:

    api_token: $HETZNER_API_TOKEN
    api_token: ${HETZNER_API_TOKEN}

Use `${VAR}` when the variable touches other letters, numbers, or underscores:

    name: app${SUFFIX}

Bare `$VAR` is only expanded at a natural boundary, so values like `app$SUFFIX`
or BCrypt hashes remain literal.

Escape a dollar sign as `$$` when the value must keep a variable for the
deployed runtime instead of reading the local CLI environment:

    command: bundle exec rackup --port $$PORT

Blossom sends that command as `bundle exec rackup --port $PORT`.

Values load in this order:

    1. .env in the current working directory
    2. BLOSSOM_VARS_FILE, if set
    3. the process environment

Later sources win. Exported environment variables override BLOSSOM_VARS_FILE
and .env values.

HTTP(S) URL input is left literal so shared remote examples stay deterministic.

There is no --vars-file flag. Use BLOSSOM_VARS_FILE when a specific variables
file is needed:

    export BLOSSOM_VARS_FILE=/path/to/vars.env

Variable files use simple KEY=value lines. Blank lines and # comments are
ignored. Blossom does not evaluate shell expressions, command substitution,
defaults, conditionals, loops, includes, or templates.
