Skip to navigation

Quickstart

This guide installs the CLI, stores a token, and makes a first call against the demo environment. The same steps apply whether you run the commands yourself or hand them to a coding agent.

Prerequisites

  • A Deel account with access to the Developer Center
  • For the demo environment, a sandbox account; tokens are specific to the environment they were created in

Get started

Complete these steps to install the CLI, authenticate, and make your first call in the demo environment.

1

Install the CLI

Follow Installation for the method that fits your platform, then confirm it worked:

deel --version
2

Create a personal access token

Create a personal access token on the Developer Center Access tokens page with the scopes the commands you plan to run require. For this guide, create it in your sandbox organization so that it works with the demo environment. Token types and scopes are described in Generating an API token.

Copy the token once; it is not displayed again.

3

Store the token

deel auth login --env demo

The command prompts for the token with hidden input, validates it against the API, and stores it in the OS keychain for the demo environment. Nothing is stored if validation fails.

Output
{
"data": {
"stored": true,
"env": "demo",
"token": "****a1b2",
"identity": {
"id": 482915,
"email": "jane.doe@example.com",
"full_name": "Jane Doe",
"profile_type": "client",
"organization_id": 91043,
"organization_name": "Acme Corporation"
}
}
}

On platforms without a keychain, or in CI, export the token instead: export DEEL_TOKEN="$DEEL_PAT". Also run export DEEL_ENV=demo (or pass --env demo on every command) while testing against the sandbox; exporting the token alone does not select an environment. See Authentication for the full precedence order.

4

Verify the token

deel auth status --env demo --fields valid,source
Output
{
"data": {
"valid": true,
"source": "keychain"
}
}

Help is available at every level of the command tree, at any point, not just before the next step. The action-level help shows the request body fields, which generic --help output cannot express because bodies arrive through --input rather than as flags.

deel --help # command groups and global options
deel adjustments --help # actions in the group
deel adjustments create --help # variants of the action
deel adjustments create --invoice --help # flags, request body, and response fields
deel adjustments create --invoice --generate-input # JSON skeleton of the request body
6

Make your first call

Create an invoice adjustment against a contract in your sandbox. Replace YOUR_CONTRACT_ID with a contract id from the sandbox account.

create writes real data in whichever environment it runs against, and there is no dry-run flag. The command below targets demo; re-read it before removing --env demo or switching to prod. See Security and permissions.

deel adjustments create --invoice --env demo \
--input type=BONUS,amount=500,contract_id=YOUR_CONTRACT_ID,description="Q3 bonus",date_submitted=2026-09-01
Output
{
"data": {
"adjustment_id": "adj_01H8X4M2",
"status": "pending",
"is_created": true,
"created_at": "2026-09-01T10:15:00.000Z"
},
"meta": {
"request_id": "8b1c1a2e-3f96-4d05-a172-9e6b8c4d0f13"
}
}

The same body can be passed as inline JSON, a file (--input file://body.json), or stdin (--input -). See Request input.

7

Filter the output

Project fields with --fields, transform with the embedded --jq, or print only identifiers with --quiet.

deel jobs list --env demo --fields job_id,status
deel jobs list --env demo --jq '.[] | select(.status == "SUCCEEDED") | .job_id' --raw
deel jobs list --env demo --quiet

Every command above behaves identically when a coding agent runs it. See Set up a coding agent for the instruction block that gets an agent using the CLI in the demo environment.

Next steps