npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@leverageimmo/leverage

v0.2.0

Published

CLI for the Leverage Hebel public API (api.leverageimmo.com)

Readme

leverage

CLI for the Leverage Hebel public HTTP API (https://api.leverageimmo.com).

Install / run

Global (preferred):

npm install -g @leverageimmo/leverage
leverage --help

One-off (no install):

npx @leverageimmo/leverage@latest --help

The npm package is @leverageimmo/leverage (scoped). After a global install, the leverage binary is on your PATH (see "bin" in package.json). Every command below is written as leverage <subcommand> …; prefix with npx @leverageimmo/leverage if you did not install globally.

Auth (agents)

  • HEBEL_API_KEY or --api-key: x-api-key (user key or server root key).
  • HEBEL_URL or --base-url: API base URL (default https://api.leverageimmo.com).
  • HEBEL_TENANT_ID or --tenant-id: required with server key; optional with user key.
  • --json: print JSON for machine parsing.

Commands

Run leverage --help and leverage <topic> --help after install (or the same with npx @leverageimmo/leverage if not global).

leverage document get

Poll document job (GET /api/v1/documents?job_id=).

USAGE
  $ leverage document get --job-id <value> [-k <value>] [-u <value>] [-t <value>] [-j]

FLAGS
  --job-id=<value>  (required) job_id from upload response

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Poll document job (GET /api/v1/documents?job_id=).

  Requires --tenant-id (x-tenant-id).

  Examples:
  leverage document get --job-id <uuid> --tenant-id <uuid> --json

See code: src/commands/document/get.ts

leverage document patch ID

Patch document metadata (PATCH /api/v1/documents/{id}).

USAGE
  $ leverage document patch ID [-k <value>] [-u <value>] [-t <value>] [-j] [--name <value>] [--type <value>] [--path
    <value>]

ARGUMENTS
  ID  Document UUID

FLAGS
  --name=<value>  Display name
  --path=<value>  Data-room path including filename
  --type=<value>  document_type enum value

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Patch document metadata (PATCH /api/v1/documents/{id}).

  Examples:
  leverage document patch <uuid> --path 06-Mieter/foo.pdf --json

See code: src/commands/document/patch.ts

leverage document upload FILE

Upload document for OCR/processing (POST /api/v1/documents).

USAGE
  $ leverage document upload FILE --path <value> [-k <value>] [-u <value>] [-t <value>] [-j] [--document-type <value>]

ARGUMENTS
  FILE  Path to PDF/XLS/XLSX file

FLAGS
  --document-type=<value>  [default: expose] document_type query param (default expose)
  --path=<value>           (required) Data-room path including filename (e.g. 06-Mieter/Mueller-2A/Mietvertrag.pdf)

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Upload document for OCR/processing (POST /api/v1/documents).

  Requires --tenant-id (x-tenant-id) because the shared client sends it for this route.
  Requires --path (data-room path including filename).

  Examples:
  leverage document upload ./scan.pdf --path 06-Mieter/foo.pdf --tenant-id <uuid> --json

See code: src/commands/document/upload.ts

leverage document wait

Poll document job until completed or failed (GET /api/v1/documents?job_id=).

USAGE
  $ leverage document wait --job-id <value> [-k <value>] [-u <value>] [-t <value>] [-j] [--poll-interval-ms
    <value>] [--timeout-ms <value>]

FLAGS
  --job-id=<value>            (required) job_id from upload response
  --poll-interval-ms=<value>  [default: 2000] Delay between polls in ms
  --timeout-ms=<value>        [default: 120000] Max wait in ms

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Poll document job until completed or failed (GET /api/v1/documents?job_id=).

  Requires --tenant-id (x-tenant-id).

  Examples:
  leverage document wait --job-id <uuid> --tenant-id <uuid> --json

See code: src/commands/document/wait.ts

leverage due-diligence create

Start due diligence report job (POST /api/v1/due-diligence).

USAGE
  $ leverage due-diligence create --property-id <value> --document-id <value>... [-k <value>] [-u <value>] [-t <value>]
    [-j]

FLAGS
  --document-id=<value>...  (required) Document UUID (repeat flag for multiple)
  --property-id=<value>     (required) Property UUID

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Start due diligence report job (POST /api/v1/due-diligence).

  Examples:
  leverage due-diligence create --property-id <uuid> --document-id <uuid> --document-id <uuid2> --json

See code: src/commands/due-diligence/create.ts

leverage expose document FILE

Upload document for expose extraction (POST /api/v1/expose/document).

USAGE
  $ leverage expose document FILE [-k <value>] [-u <value>] [-t <value>] [-j] [--persist-listing]
    [--extract-document-figures]

ARGUMENTS
  FILE  Path to PDF/XLS/XLSX

FLAGS
  --[no-]extract-document-figures  extract_document_figures form field
  --[no-]persist-listing           persist_listing form field

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Upload document for expose extraction (POST /api/v1/expose/document).

  Poll: leverage job get <job_id> --json (or leverage expose get --job-id …).

  Examples:
  leverage expose document ./expose.pdf --json

See code: src/commands/expose/document.ts

leverage expose get

Poll expose extraction job (GET /api/v1/expose?job_id=).

USAGE
  $ leverage expose get --job-id <value> [-k <value>] [-u <value>] [-t <value>] [-j]

FLAGS
  --job-id=<value>  (required) Job UUID from expose text/document

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Poll expose extraction job (GET /api/v1/expose?job_id=).

  Examples:
  leverage expose get --job-id <uuid> --json

See code: src/commands/expose/get.ts

leverage expose text

Submit text/HTML for expose extraction (POST /api/v1/expose/text).

USAGE
  $ leverage expose text --content <value> [-k <value>] [-u <value>] [-t <value>] [-j] [--text-type text|html]
    [--document-id <value>] [--persist-listing]

FLAGS
  --content=<value>       (required) Raw text or HTML
  --document-id=<value>   Optional existing document UUID
  --[no-]persist-listing  Whether to persist listing when done
  --text-type=<option>    [default: text]
                          <options: text|html>

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Submit text/HTML for expose extraction (POST /api/v1/expose/text).

  Poll job with: leverage job get <job_id> --json

  Examples:
  leverage expose text --content "..." --json
  leverage expose text --content "..." --text-type html --persist-listing=false

See code: src/commands/expose/text.ts

leverage health

GET /api/health — no API key required.

USAGE
  $ leverage health [-u <value>] [-j]

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -u, --base-url=<value>  [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing slash.
                          Env HEBEL_URL.

DESCRIPTION
  GET /api/health — no API key required.

  Examples:
  leverage health
  leverage health --base-url http://localhost:8080 --json

See code: src/commands/health.ts

leverage help [COMMAND]

Display help for leverage.

USAGE
  $ leverage help [COMMAND...] [-n]

ARGUMENTS
  [COMMAND...]  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for leverage.

See code: @oclif/plugin-help

leverage job get ID

Get async job status (GET /api/v1/jobs/{id}).

USAGE
  $ leverage job get ID [-k <value>] [-u <value>] [-t <value>] [-j]

ARGUMENTS
  ID  Job UUID

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Get async job status (GET /api/v1/jobs/{id}).

  Examples:
  leverage job get <job-uuid> --json

See code: src/commands/job/get.ts

leverage portfolio export

Export portfolio PDF (POST /api/v1/portfolio/export).

USAGE
  $ leverage portfolio export [-k <value>] [-u <value>] [-t <value>] [-j] [-o <value>]

FLAGS
  -o, --out=<value>  [default: overview.pdf] Output PDF path

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Export portfolio PDF (POST /api/v1/portfolio/export).

  Writes binary PDF. With --json prints JSON metadata only (path, bytes).

  Examples:
  leverage portfolio export --out overview.pdf
  leverage portfolio export --json

See code: src/commands/portfolio/export.ts

leverage portfolio get

Portfolio JSON metrics (GET /api/v1/portfolio).

USAGE
  $ leverage portfolio get [-k <value>] [-u <value>] [-t <value>] [-j]

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Portfolio JSON metrics (GET /api/v1/portfolio).

  Examples:
  leverage portfolio get --json

See code: src/commands/portfolio/get.ts

leverage properties

List properties (GET /api/v1/properties).

USAGE
  $ leverage properties [-k <value>] [-u <value>] [-t <value>] [-j] [--acquisition-state <value>] [--limit
    <value>] [--offset <value>]

FLAGS
  --acquisition-state=<value>  Comma-separated: new, in_purchase, purchased, archive
  --limit=<value>              [default: 50]
  --offset=<value>

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  List properties (GET /api/v1/properties).

  Examples:
  leverage properties --json
  leverage properties --acquisition-state new,purchased --limit 100

See code: src/commands/properties.ts

leverage property completeness check

Check document completeness for a property (POST /api/v1/properties/{id}/completeness/check).

USAGE
  $ leverage property completeness check --property-id <value> [-k <value>] [-u <value>] [-t <value>] [-j]

FLAGS
  --property-id=<value>  (required) Property UUID

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Check document completeness for a property (POST /api/v1/properties/{id}/completeness/check).

  Examples:
  leverage property completeness check --property-id <uuid> --json

See code: src/commands/property/completeness/check.ts

leverage property create

Create a property (POST /api/v1/properties).

USAGE
  $ leverage property create --calculation-strategy buy_and_hold|fix_and_flip|own_use|special_rental --property-type
    multi_family_house|house|apartment [-k <value>] [-u <value>] [-t <value>] [-j] [--listing-id <value>]
    [--purchase-price <value>] [--living-area <value>] [--interest-rate <value>] [--repayment-rate <value>]
    [--loan-amount-percentage <value>] [--address-json <value>] [--addr-latitude <value>] [--addr-longitude <value>]
    [--addr-country-code <value>] [--addr-city <value>] [--addr-post-code <value>] [--addr-street <value>]
    [--addr-house-number <value>] [--body-file <value>]

FLAGS
  --addr-city=<value>
  --addr-country-code=<value>
  --addr-house-number=<value>
  --addr-latitude=<value>
  --addr-longitude=<value>
  --addr-post-code=<value>
  --addr-street=<value>
  --address-json=<value>            JSON object for address (coordinates, country_code, city, post_code, street,
                                    house_number)
  --body-file=<value>               JSON merged first; explicit flags override file fields
  --calculation-strategy=<option>   (required)
                                    <options: buy_and_hold|fix_and_flip|own_use|special_rental>
  --interest-rate=<value>           Decimal fraction e.g. 0.04
  --listing-id=<value>              Optional listing UUID to prefill
  --living-area=<value>             Living area m²
  --loan-amount-percentage=<value>  Decimal fraction e.g. 0.8
  --property-type=<option>          (required)
                                    <options: multi_family_house|house|apartment>
  --purchase-price=<value>          Required without listing when listing has no price
  --repayment-rate=<value>          Decimal fraction e.g. 0.02

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Create a property (POST /api/v1/properties).

  Required: --calculation-strategy, --property-type.
  Without --listing-id also need address + --purchase-price + --living-area (or supply full body via --body-file).

  Address: either --address-json '<object>' or flat flags --addr-latitude, --addr-longitude, --addr-country-code,
  --addr-city, --addr-post-code, --addr-street, --addr-house-number.

  Examples:
  leverage property create --calculation-strategy buy_and_hold --property-type apartment --listing-id <uuid> --json
  leverage property create --calculation-strategy buy_and_hold --property-type house --purchase-price 400000
  --living-area 120 --addr-city Berlin --addr-post-code 10115 --addr-country-code DE --addr-latitude 52.52
  --addr-longitude 13.405 --json

See code: src/commands/property/create.ts

leverage property dd-report get PROPERTY-ID REPORT-ID

Get due diligence report (GET /api/v1/properties/{id}/dd-reports/{reportId}).

USAGE
  $ leverage property dd-report get PROPERTY-ID REPORT-ID [-k <value>] [-u <value>] [-t <value>] [-j]

ARGUMENTS
  PROPERTY-ID  Property UUID
  REPORT-ID    Numeric report id from due-diligence create

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Get due diligence report (GET /api/v1/properties/{id}/dd-reports/{reportId}).

  Examples:
  leverage property dd-report get <property-uuid> <report-id> --json

See code: src/commands/property/dd-report/get.ts

leverage property documents link

Link documents to a property (POST /api/v1/properties/{id}/documents).

USAGE
  $ leverage property documents link --property-id <value> --document-id <value>... [-k <value>] [-u <value>] [-t <value>]
    [-j] [--is-pinned] [--body-file <value>]

FLAGS
  --body-file=<value>       JSON with optional paths map { "document-uuid": "06-Mieter/foo.pdf", ... } merged into body
  --document-id=<value>...  (required) Document UUID (repeat for multiple)
  --[no-]is-pinned          Pin linked rows
  --property-id=<value>     (required) Property UUID

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Link documents to a property (POST /api/v1/properties/{id}/documents).

  Examples:
  leverage property documents link --property-id <uuid> --document-id <a> --document-id <b> --json
  leverage property documents link --property-id <uuid> --body-file paths.json --json

See code: src/commands/property/documents/link.ts

leverage property documents list

List documents linked to a property (GET /api/v1/properties/{id}/documents).

USAGE
  $ leverage property documents list --property-id <value> [-k <value>] [-u <value>] [-t <value>] [-j]

FLAGS
  --property-id=<value>  (required) Property UUID

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  List documents linked to a property (GET /api/v1/properties/{id}/documents).

  Examples:
  leverage property documents list --property-id <uuid> --json

See code: src/commands/property/documents/list.ts

leverage property get ID

Get a property (GET /api/v1/properties/{id}).

USAGE
  $ leverage property get ID [-k <value>] [-u <value>] [-t <value>] [-j]

ARGUMENTS
  ID  Property UUID

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Get a property (GET /api/v1/properties/{id}).

  Examples:
  leverage property get <uuid> --json

See code: src/commands/property/get.ts

leverage property keyfigures ID

Key figures (GET /api/v1/properties/{id}/keyfigures).

USAGE
  $ leverage property keyfigures ID --range full|year1|year10 [-k <value>] [-u <value>] [-t <value>] [-j] [--date-unit
    month|year]

ARGUMENTS
  ID  Property UUID

FLAGS
  --date-unit=<option>  [default: year] Buy-and-hold series density (alias date_unit on API)
                        <options: month|year>
  --range=<option>      (required) Projection horizon (required)
                        <options: full|year1|year10>

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Key figures (GET /api/v1/properties/{id}/keyfigures).

  Examples:
  leverage property keyfigures <uuid> --range full --json
  leverage property keyfigures <uuid> --range year10 --date-unit month

See code: src/commands/property/keyfigures.ts

leverage property patch ID

Patch a property (PATCH /api/v1/properties/{id}).

USAGE
  $ leverage property patch ID [-k <value>] [-u <value>] [-t <value>] [-j] [--patch-json <value>] [--patch-file
    <value>]

ARGUMENTS
  ID  Property UUID

FLAGS
  --patch-file=<value>  Path to JSON file for request body
  --patch-json=<value>  JSON object string for request body

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Patch a property (PATCH /api/v1/properties/{id}).

  Provide --patch-json '<object>' and/or --patch-file. For complex edits prefer JSON.

  Examples:
  leverage property patch <uuid> --patch-json '{"name":"My deal"}' --json

See code: src/commands/property/patch.ts

leverage property tenancies import

Import tenants from JSON (POST /api/v1/properties/{id}/tenancies/import).

USAGE
  $ leverage property tenancies import --property-id <value> --body-file <value> [-k <value>] [-u <value>] [-t <value>]
  [-j]

FLAGS
  --body-file=<value>    (required) Path to JSON body
  --property-id=<value>  (required) Property UUID

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Import tenants from JSON (POST /api/v1/properties/{id}/tenancies/import).

  Body file shape: { "tenants": [ { "display_name": "Max Müller", "rent_net": 500, "unit_id": null } ] }

  Examples:
  leverage property tenancies import --property-id <uuid> --body-file tenants.json --json

See code: src/commands/property/tenancies/import.ts

leverage task create

Create a task (POST /api/v1/tasks). Requires --title.

USAGE
  $ leverage task create -T <value> [-k <value>] [-u <value>] [-t <value>] [-j] [--description <value>]
    [--category general|bank|taxes|cashflow|rental] [--due-date <value>] [--property-id <value>] [--linked-unit-id
    <value>] [--linked-tenancy-id <value>] [--linked-dd-issue-id <value>] [--is-checked] [--body-file <value>]

FLAGS
  -T, --title=<value>               (required) Task title (required)
      --body-file=<value>           Path to JSON file merged into request (e.g. extra fields)
      --category=<option>           Category (default general)
                                    <options: general|bank|taxes|cashflow|rental>
      --description=<value>         Optional description
      --due-date=<value>            ISO date-time for due date
      --[no-]is-checked             Initial checked state
      --linked-dd-issue-id=<value>  property_dd_issues.id
      --linked-tenancy-id=<value>   property_tenancies.id
      --linked-unit-id=<value>      property_units.id UUID
      --property-id=<value>         Linked property UUID

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Create a task (POST /api/v1/tasks). Requires --title.

  Merge: optional --body-file JSON is merged under explicit flags (flags win).

  Examples:
  leverage task create --title "Follow up" --json
  leverage task create --title "DD" --property-id <uuid> --linked-dd-issue-id 42 --json

See code: src/commands/task/create.ts

leverage task delete ID

Soft-delete a task (DELETE /api/v1/tasks/{id}) → 204.

USAGE
  $ leverage task delete ID [-k <value>] [-u <value>] [-t <value>] [-j]

ARGUMENTS
  ID  Numeric task id

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Soft-delete a task (DELETE /api/v1/tasks/{id}) → 204.

  Examples:
  leverage task delete 42

See code: src/commands/task/delete.ts

leverage task get ID

Get one task with full linked context (GET /api/v1/tasks/{id}).

USAGE
  $ leverage task get ID [-k <value>] [-u <value>] [-t <value>] [-j] [--include-deleted]

ARGUMENTS
  ID  Numeric task id

FLAGS
  --include-deleted  Pass include_deleted=true to the API query

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Get one task with full linked context (GET /api/v1/tasks/{id}).

  Examples:
  leverage task get 123 --json
  leverage task get 123 --include-deleted

See code: src/commands/task/get.ts

leverage task patch ID

Patch a task (PATCH /api/v1/tasks/{id}). Send at least one field.

USAGE
  $ leverage task patch ID [-k <value>] [-u <value>] [-t <value>] [-j] [--title <value>] [--description <value>]
    [--category general|bank|taxes|cashflow|rental] [--due-date <value>] [--property-id <value>] [--linked-unit-id
    <value>] [--linked-tenancy-id <value>] [--linked-dd-issue-id <value>] [--is-checked] [--body-file <value>]

ARGUMENTS
  ID  Numeric task id

FLAGS
  --body-file=<value>           JSON object merged last (overrides flags)
  --category=<option>           <options: general|bank|taxes|cashflow|rental>
  --description=<value>         New description (empty to clear — omit if not changing)
  --due-date=<value>            ISO due date or null sent as empty string
  --[no-]is-checked
  --linked-dd-issue-id=<value>
  --linked-tenancy-id=<value>
  --linked-unit-id=<value>
  --property-id=<value>         property UUID or omit
  --title=<value>               New title

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  Patch a task (PATCH /api/v1/tasks/{id}). Send at least one field.

  Examples:
  leverage task patch 42 --title "Updated" --json
  leverage task patch 42 --is-checked --json

See code: src/commands/task/patch.ts

leverage tasks

List tasks (GET /api/v1/tasks).

USAGE
  $ leverage tasks [-k <value>] [-u <value>] [-t <value>] [-j] [--property-id <value>] [--is-checked
    true|false] [--category general|bank|taxes|cashflow|rental] [--include-deleted] [--limit <value>] [--offset <value>]

FLAGS
  --category=<option>    Filter by category
                         <options: general|bank|taxes|cashflow|rental>
  --include-deleted      Include soft-deleted tasks
  --is-checked=<option>  Filter by checked state
                         <options: true|false>
  --limit=<value>        [default: 100]
  --offset=<value>
  --property-id=<value>  Filter by property UUID

OUTPUT FLAGS
  -j, --json  Print machine-readable JSON to stdout (for agents/scripts).

AUTH FLAGS
  -k, --api-key=<value>    [env: HEBEL_API_KEY] x-api-key value (user API key from profile, or server HEBEL_API_KEY).
                           Prefer env HEBEL_API_KEY.
  -t, --tenant-id=<value>  [env: HEBEL_TENANT_ID] x-tenant-id when using the server/root API key (acting user in that
                           tenant). Env HEBEL_TENANT_ID.
  -u, --base-url=<value>   [default: https://api.leverageimmo.com, env: HEBEL_URL] Hebel base URL without trailing
                           slash. Env HEBEL_URL.

DESCRIPTION
  List tasks (GET /api/v1/tasks).

  Examples:
  leverage tasks --json
  leverage tasks --property-id <uuid> --limit 50
  leverage tasks --category general --is-checked false

  Auth: HEBEL_API_KEY or --api-key; with server key also HEBEL_TENANT_ID or --tenant-id.

See code: src/commands/tasks.ts

Repo development

pnpm install
cd apps/leverage-cli && pnpm run dev:help
pnpm run dev tasks --help
pnpm run build

oclif readme refreshes the command table above during prepack.

Publish (maintainers)

Releases are driven by release-please on pushes to main (see .github/workflows/release-please.yaml):

  1. Merge PRs whose commits touch apps/leverage-cli/ and use Conventional Commits (feat:, fix:, …).
  2. When there is enough releasable work, release-please opens a Release PR (bumps package.json version and updates CHANGELOG.md).
  3. Merge the Release PR — that creates the tag leverage-cli-vX.Y.Z and the GitHub Release.
  4. .github/workflows/leverage-cli-release.yaml runs on the tag and publishes @leverageimmo/leverage to npm.

Requires repo secrets:

  • RELEASE_PLEASE_TOKEN — fine-grained or classic PAT with contents: write and pull-requests: write (release-please uses this instead of GITHUB_TOKEN so the leverage-cli-v* tag triggers the npm workflow; see GitHub docs).
  • NPM_TOKEN — automation token with publish to @leverageimmo/* on the org.