# DOBI > Agent-native IoT platform. Connect a physical device with a one-file SDK; it heartbeats telemetry, and AI agents can chat with it, run autonomous control loops (DAMs), and monetize every call via x402 pay-per-use on Base. Live at https://dobi.guru. DOBI turns IoT devices into agent-callable, monetizable services. Agents discover devices, read telemetry, send natural-language or RPC commands, and pay per call. Verified-human agents (via Notlogin) get an elevated tier. ## Quick start (for agents) 1. Health + capabilities: `GET https://dobi.guru/health` → { status, features } 2. Chat with a device (LLM-backed, anonymous OK, daily-quota limited): `POST https://dobi.guru/api/devices/{id}/chat` body `{"message":"how warm are you?"}` → `{ success, data:{ reply, source:"llm:openai", action_queued, quota } }` 3. Device status + recent metrics: `GET https://dobi.guru/api/devices/{id}/status` ## Auth (two ways) - **Agent login (Notlogin, recommended for agents)** — present a Notlogin verifiable credential (human-verified email+wallet) and get a persistent API key: `POST https://dobi.guru/api/agent/login` body `{"vcJson": }` → `{ apiKey, tier:"verified-human", limits:{ llm_daily, x402_included_cents } }` Use it as `Authorization: Bearer ` on any call. Notlogin vendor slug: `dobi`. - **Wallet (humans)** — sign a nonce, get a session JWT via `/api/auth`. - **Anonymous** — read endpoints + device chat work without auth (lower daily quota). ## Tiers (LLM daily call cap) - anonymous (by IP): 20/day - wallet-authenticated: 200/day - verified-human (Notlogin credential): 500/day + x402 calls drawn from the credential's pre-funded USDC budget instead of an on-chain payment. ## Core API (base: https://dobi.guru/api) Devices (device-facing endpoints need no auth; provision_key gates registration): - `POST /devices/register` — self-register `{ device_id, provision_key, device_type }` - `POST /devices/{id}/heartbeat` — telemetry `{ metrics:[{name,value,unit}] }` - `GET /devices/{id}/status` — status + recent metrics - `POST /devices/{id}/chat` — natural-language Q&A with the device (LLM) - `GET /devices/{id}/actions` — device polls pending RPC commands DAMs (Decentralized Autonomous Machines — AI agents managing device clusters): - `GET /dams` · `GET /dams/stats` · `GET /dams/{id}` — list / global stats / detail - `GET /dams/{id}/metrics` · `/dams/{id}/alarms` · `/dams/{id}/traces` — KPIs, alarms, AI decision traces - `POST /dams/{id}/nl` — natural-language command to a cluster (owner auth) - `POST /dams/{id}/command` — structured RPC command (owner auth) Payments / x402 (pay-per-use): - `POST /x402/{asset_id}/pay?token=...` — 402 Payment Required with payment details, or executes if paid - `GET /chains` — enabled payment chains (Base 8453, Solana, BOT Chain) - Token: $DOBI `0x931eF8053E997b1Bab68d1E900a061305c0Ff4FB` on Base. Global: - `GET /alarms` · `GET /assets` · `GET /logs` — active alarms, assets, activity logs - `GET /health` — health + feature list ## Conventions - Responses are JSON, wrapped as `{ success, data }` (or `{ success:false, error }`). - LLM-backed endpoints return a `quota` object (`limit`, `remaining`, `resets_at`, `caller`). - Errors are structured with an `error` code + human-readable `message`. ## Links - App (dashboard): https://dobi.guru/app - SDKs: `npm i dobi-sdk` · `pip install dobi-sdk` · Arduino/ESP32 example in repo - Repo: https://github.com/opcastil11/dobi-front-api - On Prowl: https://prowl.world/service/dobi-api - Agent credentials via Notlogin: https://notlogin.com (vendor slug `dobi`)