npm package: @opsrev/eagleview-cli
Description: CLI for the EagleView Measurement Orders API
Latest version: 1.0.1

# @opsrev/eagleview-cli

CLI for the [EagleView](https://www.eagleview.com/) Measurement Orders API. Designed for agents, LLMs, and automation pipelines.

## Install

```bash
npm install -g @opsrev/eagleview-cli
```

## Configuration

### Credentials

Provide credentials via environment variables:

```bash
export EAGLEVIEW_CLIENT_ID="your-client-id"
export EAGLEVIEW_CLIENT_SECRET="your-client-secret"
```

Or pass them as flags (useful in automation/agent contexts):

```bash
eagleview --client-id "your-client-id" --client-secret "your-client-secret" get-products
```

Flags take precedence over environment variables.

### Environment

Defaults to `sandbox`. Set via env var or flag:

```bash
export EAGLEVIEW_ENV="production"   # or pass --env production
```

## Global Options

| Option | Description |
|--------|-------------|
| `--env <environment>` | API environment: `sandbox` or `production` |
| `--client-id <id>` | EagleView client ID (or set `EAGLEVIEW_CLIENT_ID`) |
| `--client-secret <secret>` | EagleView client secret (or set `EAGLEVIEW_CLIENT_SECRET`) |

## Commands

| Command | Description |
|---------|-------------|
| `eagleview auth` | Get a bearer token |
| `eagleview get-products` | List available measurement products |
| `eagleview get-report <id>` | Get report details |
| `eagleview get-measurements <id>` | Get structure waste measurements |
| `eagleview get-report-json <id>` | Get JSON measurement data |
| `eagleview get-report-pdf <id>` | Get PDF download URL |
| `eagleview get-file-links <id>` | Get all file download links |
| `eagleview get-reports` | List reports (supports `--count`, `--page`) |
| `eagleview price-order [options]` | Price a measurement order |
| `eagleview place-order [options]` | Place a measurement order |

All commands output JSON to stdout. Errors output JSON to stderr.

### Ordering Commands

`price-order` and `place-order` accept either named parameters or a raw JSON body.

#### Named Parameters

```bash
eagleview price-order \
  --address "595 Bluestem Trl" \
  --city "North Sioux City" \
  --state "SD" \
  --zip "57049" \
  --product-id 84 \
  --delivery-id 45 \
  --instruction-type 2 \
  --changes-in-last-4-years
```

| Option | Required | Description |
|--------|----------|-------------|
| `--address <address>` | Yes | Street address |
| `--city <city>` | Yes | City |
| `--state <state>` | Yes | State |
| `--zip <zip>` | Yes | ZIP code |
| `--product-id <id>` | Yes | Primary product ID |
| `--delivery-id <id>` | Yes | Delivery product ID |
| `--instruction-type <type>` | Yes | Measurement instruction type |
| `--changes-in-last-4-years` | No | Whether changes occurred in last 4 years (flag, defaults to false) |
| `--country <country>` | No | Country |
| `--building-id <id>` | No | Building ID |
| `--claim-number <num>` | No | Claim number |
| `--reference-id <id>` | No | Reference ID |
| `--po-number <num>` | No | PO number |
| `--comments <text>` | No | Comments |

#### JSON Override

Use `--json` to pass a full JSON body directly (overrides all other options):

```bash
eagleview place-order --json '{"OrderReports":{"ReportAddresses":{"Address":"123 Main","City":"Dallas","State":"TX","Zip":"75001"},"PrimaryProductId":84,"DeliveryProductId":45,"MeasurementInstructionType":2,"ChangesInLast4Years":true}}'
```

## Sandbox Test Reports

These report IDs are available in the EagleView sandbox for testing:

| Report ID | Address | Product | Pitch | Complexity |
|-----------|---------|---------|-------|------------|
| `50319630` | 595 Bluestem Trl, North Sioux City, SD | Bid Perfect | 6/12 | Normal |
| `51882232` | 4705 NE 60th Ter, Kansas City, MO | Bid Perfect | 10/12 (steep) | Complex |
| `47743011` | 2605 Tall Meadows Dr, Midlothian, TX | Claims Ready - Residential | 8/12 (steep) | Complex |

## Usage with AI Agents

All output is machine-readable JSON, making it ideal for use with Claude, OpenClaw, and other agent frameworks:

```bash
# Get report details
eagleview get-report 50319630

# Get waste measurements
eagleview get-measurements 50319630 | jq '.StructureWasteTables[0]'

# Price an order with named params
eagleview --client-id $ID --client-secret $SECRET price-order \
  --address "595 Bluestem Trl" --city "North Sioux City" --state "SD" --zip "57049" \
  --product-id 84 --delivery-id 45 --instruction-type 2
```

## License

MIT