Request input
Operations receive input in three places: path and query parameters as flags, the request body through --input, and file uploads through --file. The action-level --help lists which of these an operation uses.
Parameters as flags
Each path or query parameter becomes a flag named after the parameter. Path parameters are always required.
Array-typed query parameters are repeatable. Pass the flag once per value; the CLI sends them as repeated query keys.
Request bodies with --input
--input accepts one value in four interchangeable forms. The CLI detects the form from the value.
Shorthand
Inline JSON
File
stdin
The data wrapper
Many Deel operations wrap the request body in a top-level data object. The CLI adds the wrapper automatically, so --input takes the inner fields directly. If the value you pass already has a single data key, it is sent unchanged.
Shorthand grammar
Shorthand is a compact form for building JSON objects on the command line. It uses the same key=value grammar as other cloud CLIs.
Type coercion and validation
Shorthand values are strings on the command line. Before sending the request, the CLI coerces each top-level field to the type the command declares and validates enumerations:
- Fields typed
numberorintegerare converted; a non-numeric value exits withinput.type. - Fields typed
booleanaccepttrue,false, and1. - Fields with an enumeration must match one of the allowed values; anything else exits with
input.enumand lists the allowed values.
The same coercion applies to inline JSON, so "amount": "500" is accepted and sent as a number. Nested values inside shorthand objects and lists are coerced heuristically (true, false, and numeric strings become booleans and numbers).
Array bodies
Bulk operations take a JSON array. Pass it as inline JSON, a file, or stdin; shorthand cannot express a top-level array.
Commands with a batch size limit check it before sending and exit with usage.max_items when the array is too long. The bulk adjustment commands accept at most 50 items per request.
File uploads with --file
Operations that accept multipart/form-data take files through --file field=@path. Text fields still go through --input.
--file is repeatable, both across fields and within one field. Passing --file cv=@a.pdf --file cv=@b.pdf attaches both files under cv. The content type is inferred from the file extension.
Some commands accept both JSON and multipart. They default to JSON; add --form to send multipart instead. The action-level --help marks these commands with an “also accepts multipart” section.