Search Documentation

Find API endpoints, guides, and documentation pages

Getting Started with i2t Network

Welcome to the i2t Network IoT Platform. This guide will walk you through connecting your first device and sending telemetry data in under 10 minutes.

Prerequisites

  • A running i2t Network instance (local Docker or cloud)
  • curl or any HTTP client for testing
  • (Optional) An MQTT client like mosquitto_pub

Core Concepts

Before diving in, here are the key building blocks:

ConceptWhat it is
DomainA tenant workspace — all resources belong to a domain
UserA person who logs in and manages resources
Client (Device)A physical or virtual IoT device that sends data
ChannelA communication topic — devices publish messages to channels
GroupA logical grouping of devices or channels for bulk operations

How data flows

Device → (MQTT/HTTP/CoAP/WS) → Channel → Message Writers → Database
                                    ↓
                              Rule Engine → Alarms / Notifications

Step 1: Create a User Account

If you're using a fresh deployment, the platform creates a default admin user. Sign in at your instance URL (e.g., http://localhost:3000).

To create a user via API:

curl -X POST http://localhost/users \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Alice",
    "credentials": {
      "identity": "alice@example.com",
      "secret": "strongpassword"
    }
  }'

Step 2: Obtain an Access Token

curl -X POST http://localhost/users/tokens/issue \
  -H "Content-Type: application/json" \
  -d '{
    "identity": "alice@example.com",
    "secret": "strongpassword"
  }'

Save the returned access_token — you'll use it in all subsequent requests.

export TOKEN="your-access-token-here"

Step 3: Create a Device (Client)

curl -X POST http://localhost/clients \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "temperature-sensor-01",
    "tags": ["outdoor", "weather"],
    "metadata": {
      "location": "Building A, Floor 3"
    }
  }'

The response includes the device id and a secret (API key). Save both:

export DEVICE_ID="returned-device-id"
export DEVICE_SECRET="returned-device-secret"

Step 4: Create a Channel

Channels are the communication topics. Devices publish messages to channels.

curl -X POST http://localhost/channels \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "weather-data"
  }'
export CHANNEL_ID="returned-channel-id"

Step 5: Connect Device to Channel

curl -X POST http://localhost/channels/$CHANNEL_ID/connect \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "client_ids": ["'"$DEVICE_ID"'"],
    "type": "publish"
  }'

Step 6: Send Your First Message

Via HTTP

curl -X POST http://localhost/http/channels/$CHANNEL_ID/messages \
  -H "Authorization: Client $DEVICE_SECRET" \
  -H "Content-Type: application/senml+json" \
  -d '[
    {"bn":"temperature-sensor-01/", "n":"temperature", "u":"Cel", "v":23.5},
    {"n":"humidity", "u":"%RH", "v":67.2}
  ]'

Via MQTT

mosquitto_pub -h localhost -p 1883 \
  -u "$DEVICE_ID" -P "$DEVICE_SECRET" \
  -t "channels/$CHANNEL_ID/messages" \
  -m '[{"bn":"temperature-sensor-01/","n":"temperature","u":"Cel","v":23.5}]'

Step 7: Read Messages Back

curl -X GET "http://localhost/readers/channels/$CHANNEL_ID/messages?limit=10" \
  -H "Authorization: Bearer $TOKEN"

What's Next?

  • Dashboards — Create real-time visualizations of your device data
  • Rule Chains — Set up automated workflows triggered by device events
  • Alarms — Configure threshold-based alerts
  • Groups — Organize devices into logical groups for bulk operations
  • Bootstrap — Set up automatic device provisioning

Explore the API Reference section for full endpoint documentation, or browse Service Guides for in-depth explanations of each platform component.