# IoE² IoT API - to create end-user applications API

> IoE² IoT API - to create end-user applications API on Apizie: 67 endpoints (Change the password, List Places of the Account, Create a Place, List active Tokens of the Account, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/iot:ijenko/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `iot:ijenko`
- Category: IoT
- Status: byok
- Source: http://developers.ijenko.com/
- Page: https://apizie.tech/api/iot/ijenko
- OpenAPI: https://apizie.tech/api/iot/ijenko/openapi.json



## Endpoints

### Change the password
`POST https://apizie.tech/v1/iot:ijenko/account-change-password` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### List Places of the Account
`GET https://apizie.tech/v1/iot:ijenko/account-places` (byok)

### Create a Place
`POST https://apizie.tech/v1/iot:ijenko/account-new-place` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### List active Tokens of the Account
`GET https://apizie.tech/v1/iot:ijenko/account-tokens` (byok)

### Revoke a Token
`POST https://apizie.tech/v1/iot:ijenko/account-revoke-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| tokenId | string | yes | Identifier of the token |

### List Users of the Account
`GET https://apizie.tech/v1/iot:ijenko/account-users` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| embed-metadata | array | no | Request to include the given keys of metadata in the response. If a key doesn't exist on the resource it is ignored. **Note:** This only… |

### New User
`POST https://apizie.tech/v1/iot:ijenko/account-new-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Information about a User
`GET https://apizie.tech/v1/iot:ijenko/account-get-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | Unique identifier of a *User*. |

### Modify a User
`POST https://apizie.tech/v1/iot:ijenko/account-patch-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | Unique identifier of a *User*. |
| body | object | yes | JSON request body |

### Delete a User
`POST https://apizie.tech/v1/iot:ijenko/account-delete-user` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | Unique identifier of a *User*. |

### List metadata
`GET https://apizie.tech/v1/iot:ijenko/user-get-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | Unique identifier of a *User*. |

### Modify metadata
`POST https://apizie.tech/v1/iot:ijenko/user-patch-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | string | yes | Unique identifier of a *User*. |
| body | object | yes | JSON request body |

### Get a token using login+password
`POST https://apizie.tech/v1/iot:ijenko/auth-account-login` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Refresh a token
`POST https://apizie.tech/v1/iot:ijenko/auth-refresh-token` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Ask for a new password
`POST https://apizie.tech/v1/iot:ijenko/auth-reset-password` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Revoke a token
`POST https://apizie.tech/v1/iot:ijenko/auth-revoke-token` (byok)

### Information about a Device
`GET https://apizie.tech/v1/iot:ijenko/devices-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | string | yes | Unique identifier of a *Device*. |

### Update a Device
`POST https://apizie.tech/v1/iot:ijenko/devices-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | string | yes | Unique identifier of a *Device*. |
| body | object | yes | JSON request body |

### Add dynamically a functionality
`POST https://apizie.tech/v1/iot:ijenko/device-add-functionality` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | string | yes | Unique identifier of a *Device*. |
| body | object | yes | JSON request body |

### List metadata
`GET https://apizie.tech/v1/iot:ijenko/device-get-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | string | yes | Unique identifier of a *Device*. |

### Modify metadata
`POST https://apizie.tech/v1/iot:ijenko/device-patch-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | string | yes | Unique identifier of a *Device*. |
| body | object | yes | JSON request body |

### Run actions
`POST https://apizie.tech/v1/iot:ijenko/device-run` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | string | yes | Unique identifier of a *Device*. |
| action | string | yes | Identifier of an *Action* inside a *Functionality*. |
| functionalities | string | yes | Functionality selector: Functionality tags or functionality class (optionally, '@' followed by a endpoint in decimal) or '*' for all.… |
| body | object | yes | JSON request body |

### List tags
`GET https://apizie.tech/v1/iot:ijenko/device-get-tags` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | string | yes | Unique identifier of a *Device*. |

### Modify tags
`POST https://apizie.tech/v1/iot:ijenko/device-patch-tags` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceId | string | yes | Unique identifier of a *Device*. |
| body | object | yes | JSON request body |

### Information about a Functionality
`GET https://apizie.tech/v1/iot:ijenko/functionalities-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |

### Modify a Functionality
`POST https://apizie.tech/v1/iot:ijenko/functionality-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |
| body | object | yes | JSON request body |

### Get history of multiple attributes
`GET https://apizie.tech/v1/iot:ijenko/functionality-values` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |
| names | array | no | One or multiple *Attribute* names separated by commas |
| from | string | no | Beginning of the time interval. |
| to | string | no | End of the interval. Default: now. |
| surround | boolean | no | If true, return also one value before from and one value after to |

### Get an Attribute value
`GET https://apizie.tech/v1/iot:ijenko/functionality-value` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |
| attributeName | string | yes | Identifier of an *Attribute* inside a *Functionality*. |

### Modify an Attribute value
`POST https://apizie.tech/v1/iot:ijenko/functionality-set` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |
| attributeName | string | yes | Identifier of an *Attribute* inside a *Functionality*. |
| body | object | yes | JSON request body |

### List metadata
`GET https://apizie.tech/v1/iot:ijenko/functionality-get-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |

### Modify metadata
`POST https://apizie.tech/v1/iot:ijenko/functionality-patch-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |
| body | object | yes | JSON request body |

### Run an action
`POST https://apizie.tech/v1/iot:ijenko/functionality-run` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |
| action | string | yes | Identifier of an *Action* inside a *Functionality*. |
| body | object | yes | JSON request body |

### List tags
`GET https://apizie.tech/v1/iot:ijenko/functionality-get-tags` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |

### Modify tags
`POST https://apizie.tech/v1/iot:ijenko/functionality-patch-tags` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| functionalityId | string | yes | Unique identifier of a *Functionality*. |
| body | object | yes | JSON request body |

### Information about the User
`GET https://apizie.tech/v1/iot:ijenko/me-get` (byok)

### Update User information
`POST https://apizie.tech/v1/iot:ijenko/me-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | yes | JSON request body |

### Information about a Notification
`GET https://apizie.tech/v1/iot:ijenko/notifications-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| notificationId | string | yes | Unique identifier of a *Notification*. |

### Modify a Notification
`POST https://apizie.tech/v1/iot:ijenko/notification-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| notificationId | string | yes | Unique identifier of a *Notification*. |
| body | object | yes | JSON request body |

### Delete a Notification
`POST https://apizie.tech/v1/iot:ijenko/notification-delete` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| notificationId | string | yes | Unique identifier of a *Notification*. |

### List metadata
`GET https://apizie.tech/v1/iot:ijenko/notification-get-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| notificationId | string | yes | Unique identifier of a *Notification*. |

### Modify metadata of a Notification
`POST https://apizie.tech/v1/iot:ijenko/notification-patch-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| notificationId | string | yes | Unique identifier of a *Notification*. |
| body | object | yes | JSON request body |

### List accessible Places
`GET https://apizie.tech/v1/iot:ijenko/me-places` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| embed-metadata | array | no | Request to include the given keys of metadata in the response. If a key doesn't exist on the resource it is ignored. **Note:** This only… |

### Information about a Place
`GET https://apizie.tech/v1/iot:ijenko/places-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |

### Update a Place
`POST https://apizie.tech/v1/iot:ijenko/place-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| body | object | yes | JSON request body |

### List Buses
`GET https://apizie.tech/v1/iot:ijenko/place-buses` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| withPairing | boolean | no | Filter out buses that have no pairing window |

### State of the pairing window
`GET https://apizie.tech/v1/iot:ijenko/place-pairing` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| busId | string | yes | Unique identifier of a *Bus*. |

### Open/Close the pairing window
`POST https://apizie.tech/v1/iot:ijenko/place-open-pairing` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| busId | string | yes | Unique identifier of a *Bus*. |
| body | object | yes | JSON request body |

### List of Devices
`GET https://apizie.tech/v1/iot:ijenko/place-devices` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| devices | string | no | Devices selector. Device tags or device classes or device ids or '*' for any. Multiple values are separated by '/' and interpreted as « OR… |
| embed-metadata | array | no | Request to include the given keys of metadata in the response. If a key doesn't exist on the resource it is ignored. **Note:** This only… |

### Get autonomy rate of the place
`GET https://apizie.tech/v1/iot:ijenko/place-electricity-autonomy` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| when | string | yes | A time part of the time span. |
| span | string | yes | Timespan: H (hour), D (day), Wmo (week starting on Monday), Wsu (week starting on Sunday), M (month), Y (year) |

### Get electricity virtual flows
`GET https://apizie.tech/v1/iot:ijenko/place-electricity-get-flows` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| flows | array | yes | Names of the flows requested |

### Get electricity flows setup
`GET https://apizie.tech/v1/iot:ijenko/place-electricity-get-flows-setup` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |

### Get self-consumption rate of the place
`GET https://apizie.tech/v1/iot:ijenko/place-electricity-self-consumption` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| when | string | yes | A time part of the time span. |
| span | string | yes | Timespan: H (hour), D (day), Wmo (week starting on Monday), Wsu (week starting on Sunday), M (month), Y (year) |

### List Functionalities
`GET https://apizie.tech/v1/iot:ijenko/place-functionalities` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| devices | string | no | Devices selector. Device tags or device classes or device ids or '*' for any. Multiple values are separated by '/' and interpreted as « OR… |
| functionalities | string | no | Functionality selector: Functionality tags or functionality class (optionally, '@' followed by a endpoint in decimal) or '*' for all.… |
| embed-metadata | array | no | Request to include the given keys of metadata in the response. If a key doesn't exist on the resource it is ignored. **Note:** This only… |

### List metadata
`GET https://apizie.tech/v1/iot:ijenko/place-get-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |

### Modify metadata
`POST https://apizie.tech/v1/iot:ijenko/place-patch-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| body | object | yes | JSON request body |

### List Notifications
`GET https://apizie.tech/v1/iot:ijenko/place-notifications` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| embed-metadata | array | no | Request to include the given keys of metadata in the response. If a key doesn't exist on the resource it is ignored. **Note:** This only… |

### Create a Notification
`POST https://apizie.tech/v1/iot:ijenko/place-new-notification` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| body | object | yes | JSON request body |

### List Programs
`GET https://apizie.tech/v1/iot:ijenko/place-programs` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| embed-metadata | array | no | Request to include the given keys of metadata in the response. If a key doesn't exist on the resource it is ignored. **Note:** This only… |

### Create a Program
`POST https://apizie.tech/v1/iot:ijenko/place-new-program` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| body | object | yes | JSON request body |

### Run actions
`POST https://apizie.tech/v1/iot:ijenko/place-run` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| placeId | string | yes | Unique identifier of a *Place*. |
| action | string | yes | Identifier of an *Action* inside a *Functionality*. |
| devices | string | yes | Devices selector. Device tags or device classes or device ids or '*' for any. Multiple values are separated by '/' and interpreted as « OR… |
| functionalities | string | yes | Functionality selector: Functionality tags or functionality class (optionally, '@' followed by a endpoint in decimal) or '*' for all.… |
| body | object | yes | JSON request body |

### Information about a Program
`GET https://apizie.tech/v1/iot:ijenko/programs-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| programId | string | yes | Unique identifier of a *Program*. |

### Modify a Program
`POST https://apizie.tech/v1/iot:ijenko/program-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| programId | string | yes | Unique identifier of a *Program*. |
| body | object | yes | JSON request body |

### Delete a Program
`POST https://apizie.tech/v1/iot:ijenko/program-delete` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| programId | string | yes | Unique identifier of a *Program*. |

### History of executions of a Program
`GET https://apizie.tech/v1/iot:ijenko/program-log` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| programId | string | yes | Unique identifier of a *Program*. |
| from | string | yes | Beginning of the time interval. |
| to | string | no | End of the interval. Default: now. |

### List metadata
`GET https://apizie.tech/v1/iot:ijenko/program-get-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| programId | string | yes | Unique identifier of a *Program*. |

### Modify metadata of a Program
`POST https://apizie.tech/v1/iot:ijenko/program-patch-metadata` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| programId | string | yes | Unique identifier of a *Program*. |
| body | object | yes | JSON request body |

### Run the Program
`POST https://apizie.tech/v1/iot:ijenko/program-run` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| programId | string | yes | Unique identifier of a *Program*. |

## Example
```
curl "https://apizie.tech/v1/iot:ijenko/account-change-password" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the IoE² IoT API - to create end-user applications API?
Create a free Apizie key, then send POST https://apizie.tech/v1/iot:ijenko/account-change-password with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the IoE² IoT API - to create end-user applications API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. IoE² IoT API - to create end-user applications itself also needs your own key from ijenko.net.

### Can AI agents use the IoE² IoT API - to create end-user applications API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key iot:ijenko.

### What is the status of the IoE² IoT API - to create end-user applications API?
Needs your own provider key (bring your own key)
