# SDKs

> Official TypeScript and Python clients for the two calls. Zero dependencies, typed errors, retries with Retry-After, and an Idempotency-Key on every Rowe request so retries never double-bill. npm install fourechelon; pip install fourechelon.

Source: https://fourechelon.com/docs/sdks · Machine-readable: https://fourechelon.com/openapi.json · Index: https://fourechelon.com/llms.txt

## Install

```bash
npm install fourechelon
pip install fourechelon
```

## TypeScript

```ts
import { FourEchelon } from "fourechelon";

const fe = new FourEchelon({ apiKey: process.env.FOUR_ECHELON_API_KEY! });
const scene = await fe.cad.extract({ file: "cabinet.drawio", targetContract: "both" });
const answer = await fe.responses.create({ input: { task_type: "understand", cad_scene: scene } });
```

## Python

```python
from fourechelon import FourEchelon

fe = FourEchelon()  # reads FOUR_ECHELON_API_KEY
scene = fe.cad.extract("cabinet.drawio", target_contract="both")
answer = fe.responses.create(input={"task_type": "understand", "cad_scene": scene})
```
