Quickstart
Sign in, create an organization, generate scoped credentials, and create identities. First call in under 10 minutes.
Authentication
Machine access uses client credentials → scoped Bearer tokens. The organization comes from the credential, never from the request body. Secrets are shown once and stored hashed.
Sandbox / Production
Sandbox organizations keep experiments away from production — same API, same tooling. Every production action is clearly labelled and audited.
Identity
A GrowLeafy identity is persistent: physical identifiers can be replaced, the identity never changes. Resolution accepts QR tokens, NFC/serial/external references and converges to one identity.
Assets & Identifiers
Many identifiers → one asset. Attach QR/NFC/serial/ERP identifiers to an existing asset; duplicate tokens return EXISTING_ASSET_FOUND — never a silent second record.
QR / NFC
The QR is the door, not the identity. One asset can hold many active identifiers with different purposes — public_identity, service, emergency, warehouse, warranty, document_access.
Organizations
One person → one identity → many organizations → many roles → many credentials. Enterprise membership never creates a second user.
Access Control & Grants
Organizations see only consented data domains through expiring access grants. No grant, no window. Each grant carries purpose, fields, consent state and expiry — and is audited.
Asset Graph
Systems, components, installations and organizations are edges over the same identity. Query the live graph to traverse: site → system → panel → owner → service.
Service & Warranty
Users request asset-contextual service; authorized providers update cases with an append-only timeline. Warranties and recalls attach to the same identity — recall matching uses batch/manufacturer/model.
Webhooks & Events
Signed, replay-protected deliveries: sha256=HMAC(timestamp + "." + raw_body, secret). Topic + asset-filtered subscriptions, retry with backoff, transactional outbox, delivery ledger.
Scopes
Errors & Limits
Every error: { error: { code, message, request_id } }. Key codes: VALIDATION_ERROR · UNAUTHENTICATED · FORBIDDEN · RATE_LIMITED · EXISTING_ASSET_FOUND · ASSET_NOT_CLAIMED. Bulk = 2,000/call; writes are idempotent by Idempotency-Key.
Security
Tenant isolation at the middleware, service and query layers. Credentials are machine identities, never human logins. No secrets in logs, never shown after creation, environment-separated, scoped, revocable.
Changelog
- 2026-09 — Universal Asset Model (identifiers per asset, bulk 2,000/call), asset graph APIs, org windows + grants, passport + DPP + warranty/recall, outbox + asset-filtered webhooks, metering + versioned pricing, SCIM, enterprise↔user connectivity, territory engine + rule engine, auth intelligence (request_id → correlation_id → session_id → event_id).
- Current — all endpoints listed above are live; nothing in this page is a mock.
SDKs & Integrations
The API is plain HTTPS + JSON — generate your own client from the OpenAPI specification with any generator you prefer. As of today there are no separately packaged GrowLeafy SDKs; we will not list libraries that do not exist.
Live integrations already inside the platform: Razorpay payments · MSG91 email/SMS · Shiprocket fulfilment · Google sign-in · SCIM 2.0 directory provisioning (organizations) · signed webhooks for ERP/CRM/service systems. External systems connect over the same scoped API — never a shared database.