Command Line Interface¶
The galaxy command has one sub-app per resource. Run galaxy --help
or galaxy <resource> --help for the full, current option list for any
command – this page is an index, not a replacement for --help. The
command reference below is rendered directly from the live application with
sphinxcontrib-typer, so it
can never drift out of sync with the actual CLI.
Global options¶
These apply to every sub-command and must be given before the sub-app name
(e.g. galaxy --json needs list):
--api-key TEXTThe site API key, used to log in. Falls back to
GALAXY_API_KEY. It does not authenticate requests on its own – see Configuration.--token TEXTThe session token from
galaxy auth login, sent asAuthorization: Bearer <token>. Falls back toGALAXY_API_TOKEN.--url TEXTServer URL or alias (
us1,us2,ca). Falls back toGALAXY_API_URL.--read-onlyBlock all writes for this invocation. See Configuration.
--format [table|json]How results are rendered:
table(the default) for a formatted rich table,jsonfor raw JSON – for scripting. Falls back toGALAXY_FORMAT, so a session that always wants JSON can export it once instead of repeating the flag. The value is case-insensitive on both the flag and the environment variable.--jsonShorthand for
--format json. The two are interchangeable; giving both is only an error when they disagree (--json --format tableis refused rather than silently resolved).--yes/-ySkip the “are you sure?” prompt shown before every write.
--debugShow full tracebacks instead of a one-line error message.
--versionPrint the installed version and exit.
Command tree¶
config – inspect the resolved configuration¶
galaxy config¶
galaxy config show¶
There is nothing to set or unset: settings come from the global flags, then
GALAXY_API_KEY / GALAXY_API_TOKEN / GALAXY_API_URL /
GALAXY_READ_ONLY / GALAXY_FORMAT, then the defaults. See
Configuration.
auth – credential exchange¶
galaxy auth¶
galaxy auth login¶
galaxy auth authenticate¶
login is where every session starts, since the site key cannot
authenticate requests by itself.
--export puts one shell-eval’able line on stdout and nothing else, so
the token can be adopted by the current shell without ever being written to
a file:
eval "$(galaxy auth login --email you@example.org --export)"
Every other message, the password prompt included, goes to stderr – which
is also why the password is always collected via a hidden prompt unless
--password is given explicitly.
Without --export the token is printed in a table, wrapped in full
rather than truncated, and --json emits the whole login record for
scripting.
Both commands are blocked by --read-only – see Configuration.
users – manage users¶
galaxy users¶
galaxy users list¶
galaxy users get¶
galaxy users create¶
galaxy users update¶
galaxy users delete¶
galaxy users agencies¶
galaxy users add-agency¶
galaxy users remove-agency¶
galaxy users benchmarks¶
galaxy users remove-benchmark¶
galaxy users causes¶
galaxy users add-cause¶
galaxy users remove-cause¶
galaxy users extras¶
galaxy users set-extras¶
galaxy users hours¶
galaxy users interests¶
galaxy users add-interest¶
galaxy users remove-interest¶
galaxy users welcome-email¶
galaxy users oneclick¶
galaxy users optouts¶
galaxy users add-optout¶
galaxy users remove-optout¶
galaxy users qualifications¶
galaxy users registration-answers¶
galaxy users set-registration-answers¶
galaxy users responses¶
galaxy users tracks¶
galaxy users remove-tag¶
agencies – manage agencies¶
galaxy agencies¶
galaxy agencies list¶
galaxy agencies get¶
galaxy agencies create¶
galaxy agencies update¶
galaxy agencies delete¶
galaxy agencies causes¶
galaxy agencies add-cause¶
galaxy agencies remove-cause¶
galaxy agencies clusters¶
galaxy agencies add-cluster¶
galaxy agencies remove-cluster¶
galaxy agencies managers¶
galaxy agencies add-manager¶
galaxy agencies remove-manager¶
galaxy agencies remove-tag¶
needs – manage needs¶
galaxy needs¶
galaxy needs list¶
galaxy needs get¶
galaxy needs create¶
galaxy needs update¶
galaxy needs delete¶
galaxy needs responses¶
galaxy needs questions¶
galaxy needs add-shift¶
galaxy needs remove-shift¶
galaxy needs add-interest¶
galaxy needs remove-interest¶
galaxy needs add-qualification¶
galaxy needs remove-qualification¶
events – manage events¶
galaxy events¶
galaxy events list¶
galaxy events get¶
galaxy events create¶
galaxy events update¶
galaxy events delete¶
hours – manage hour records¶
galaxy hours¶
galaxy hours list¶
galaxy hours get¶
galaxy hours create¶
galaxy hours update¶
galaxy hours delete¶
responses – manage responses (need sign-ups)¶
galaxy responses¶
galaxy responses list¶
galaxy responses get¶
galaxy responses create¶
galaxy responses update¶
galaxy responses delete¶
teams – manage teams¶
galaxy teams¶
galaxy teams list¶
galaxy teams get¶
galaxy teams create¶
galaxy teams delete¶
galaxy teams add-member¶
galaxy teams remove-member¶
groups – manage groups¶
galaxy groups¶
galaxy groups list¶
galaxy groups get¶
galaxy groups create¶
galaxy groups update¶
galaxy groups delete¶
galaxy groups add-need¶
galaxy groups remove-need¶
galaxy groups add-user¶
galaxy groups remove-user¶
qualifications – manage qualifications¶
galaxy qualifications¶
galaxy qualifications list¶
galaxy qualifications get¶
galaxy qualifications create¶
galaxy qualifications update¶
galaxy qualifications delete¶
galaxy qualifications users¶
benchmarks – manage benchmarks¶
galaxy benchmarks¶
galaxy benchmarks list¶
galaxy benchmarks get¶
galaxy benchmarks create¶
galaxy benchmarks update¶
galaxy benchmarks delete¶
galaxy benchmarks users¶
clusters, causes, interests, impacts, registration-questions¶
Small, mostly read-only lookup endpoints:
galaxy clusters¶
galaxy clusters list¶
galaxy clusters create¶
galaxy clusters delete¶
galaxy causes¶
galaxy causes list¶
galaxy interests¶
galaxy interests list¶
galaxy impacts¶
galaxy impacts list¶
galaxy registration-questions¶
galaxy registration-questions list¶
reports – aggregate answers the API will not compute¶
galaxy reports¶
galaxy reports attendance¶
Every command here only reads, so none of them prompts and all of them work
under --read-only.
attendance takes attendance from hour records: a volunteer counts as
having attended on every distinct date they logged time against the matched
needs, so two entries on one day are one program attended. The table adds a
1-based rank, sorted by programs attended, then total hours, then name.
--program matches needs whose title contains the given text,
case-insensitively: the /needs endpoint’s own need_title filter is
tried first, and the full need list (inactive included) is scanned as a
fallback when that returns nothing. --need-id counts a need id exactly,
skipping title resolution, and may be combined with --program; at least
one of the two is required.
--full-scan trades completeness for speed: /hours has no need, user
or attendance-date filter, so the report pages through every hour record and
narrows client-side. By default a --start bound also sends
since_created, which skips the pages of hours logged before the period
and makes that scan far shorter – but hours logged before the date they
were served would then be missed, so pass --full-scan when the report
must be exhaustive.
With --json the output is a single object with a needs key (what the
program name matched) and a rows key (the ranking), because which needs
were counted is half the answer.
galaxy reports attendance --program "hollywood" --year 2026
Soft deletes¶
Where the reference above says “a soft delete”, the API marks the record
inactive rather than removing it, so it may reappear when listing with
--show-inactive (where the endpoint supports that filter). That is what
the spec documents for the delete on users, agencies, needs,
events, hours, responses, teams, groups,
qualifications and benchmarks. It says nothing of the sort about
clusters delete or about the remove-*/detach sub-commands, so do
not assume those are recoverable. Deleting an event is also only mostly
soft: the spec warns it permanently deletes that event’s RSVPs.
Free-form fields with --data¶
Most create and update commands expose the common fields
(--title, --name, and so on) as named options, plus a catch-all
--data option that takes a JSON object of any further *_* fields the
endpoint accepts. Keys in --data win over the named options when both
set the same field.
clusters create is the exception: the endpoint takes a name and nothing
else, so it offers --name alone.