# Mode API

**Canonical:** https://apis.io/apis/tinkermode-com/tinkermode-com-api/  
**Provider:** Mode — https://apis.io/providers/tinkermode-com/  
**Base URL:** https://api.tinkermode.com  
**Documentation:** https://dev.tinkermode.com/mode-api/reference/homes

Mode API is one of 2 APIs that [Mode](https://apis.io/providers/tinkermode-com/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. The published artifact set on APIs.io includes an OpenAPI specification.

Mode API as documented publicly: 239 operations. Contract generated from the documentation by API Evangelist (2026-10-29); not the provider's own document.

## Operations (60 of 239)

| Method | Path | Summary |
|---|---|---|
| GET | `/auth` | Get authentication state |
| POST | `/auth/sudo` | Authentication by sudo |
| POST | `/auth/sudo/start` | Initiate sudo authentication |
| POST | `/auth/user` | Authenticate a user |
| POST | `/auth/user/activation` | Activate user account |
| POST | `/auth/user/auth2F` | Complete two-factor authentication |
| POST | `/auth/user/emailVerification` | Verify user email address |
| POST | `/auth/user/emailVerification/start` | Initiate user email verification |
| POST | `/auth/user/newEmailVerification` | Verify new user email |
| POST | `/auth/user/oidc` | Complete authentication by OpenID Connect |
| POST | `/auth/user/oidc/start` | Initiate authentication by OpenID Connect |
| POST | `/auth/user/passwordReset` | Reset user password |
| POST | `/auth/user/passwordReset/start` | Initiate password reset for user |
| POST | `/auth/user/sms` | Initiate user auth with SMS |
| GET | `/homes` | Get all homes |
| POST | `/homes` | Create a home |
| DELETE | `/homes/{homeid}` | Delete a home |
| GET | `/homes/{homeid}` | Get a home |
| PATCH | `/homes/{homeid}` | Update a home |
| DELETE | `/homes/{homeid}/appProxy/{srcpath}` | Proxy DELETE request to app server |
| GET | `/homes/{homeid}/appProxy/{srcpath}` | Proxy GET request to app server |
| PATCH | `/homes/{homeid}/appProxy/{srcpath}` | Proxy PATCH request to app server |
| POST | `/homes/{homeid}/appProxy/{srcpath}` | Proxy POST request to app server |
| PUT | `/homes/{homeid}/appProxy/{srcpath}` | Proxy PUT request to app server |
| POST | `/homes/{homeid}/data` | Post data |
| GET | `/homes/{homeid}/dataRoutes` | Get list of data routes |
| POST | `/homes/{homeid}/dataRoutes` | Create data route |
| DELETE | `/homes/{homeid}/dataRoutes/{routeid}` | Delete data route |
| GET | `/homes/{homeid}/dataRoutes/{routeid}` | Get data route |
| PATCH | `/homes/{homeid}/dataRoutes/{routeid}` | Update data route |
| GET | `/homes/{homeid}/dataSources` | Get all data sources |
| POST | `/homes/{homeid}/dataSources` | Add a data source |
| DELETE | `/homes/{homeid}/dataSources/{datasourcekey}` | Delete a data source |
| GET | `/homes/{homeid}/dataSources/{datasourcekey}` | Get a data source |
| PATCH | `/homes/{homeid}/dataSources/{datasourcekey}` | Update a data source |
| POST | `/homes/{homeid}/dataSources/{datasourcekey}/manageMedia` | Manage data source media |
| GET | `/homes/{homeid}/dataUploads` | Get list of data upload jobs |
| POST | `/homes/{homeid}/dataUploads` | Create data upload job |
| GET | `/homes/{homeid}/dataUploads/{datauploadid}` | Get data upload job |
| PUT | `/homes/{homeid}/dataUploads/{datauploadid}/cancel` | Cancel data upload job |
| PUT | `/homes/{homeid}/dataUploads/{datauploadid}/commit` | Begin processing data upload job |
| POST | `/homes/{homeid}/deviceProvisioning` | Initiate on-demand device provisioning |
| PUT | `/homes/{homeid}/event` | Send event to a home |
| GET | `/homes/{homeid}/httpLogEntries` | Get HTTP Access Log Entries |
| GET | `/homes/{homeid}/intmods` | GET /homes/{homeid}/intmods |
| POST | `/homes/{homeid}/intmods` | POST /homes/{homeid}/intmods |
| DELETE | `/homes/{homeid}/intmods/{configid}` | DELETE /homes/{homeid}/intmods/{configid} |
| GET | `/homes/{homeid}/intmods/{configid}` | GET /homes/{homeid}/intmods/{configid} |
| PATCH | `/homes/{homeid}/intmods/{configid}` | PATCH /homes/{homeid}/intmods/{configid} |
| GET | `/homes/{homeid}/intmods/{configid}/jobs` | GET /homes/{homeid}/intmods/{configid}/jobs |
| POST | `/homes/{homeid}/intmods/{configid}/oauth` | POST /homes/{homeid}/intmods/{configid}/oauth |
| POST | `/homes/{homeid}/intmods/{configid}/oauth/start` | POST /homes/{homeid}/intmods/{configid}/oauth/start |
| POST | `/homes/{homeid}/intmods/{configid}/refresh` | POST /homes/{homeid}/intmods/{configid}/refresh |
| GET | `/homes/{homeid}/kv` | Get key-value pairs |
| DELETE | `/homes/{homeid}/kv/{key}` | Delete a key-value pair |
| GET | `/homes/{homeid}/kv/{key}` | Find a key-value pair |
| PUT | `/homes/{homeid}/kv/{key}` | Create or update a key-value |
| GET | `/homes/{homeid}/logEntries` | Get Log Entries |
| GET | `/homes/{homeid}/members` | Get all home members |
| POST | `/homes/{homeid}/members` | Add a home member |

…and 179 more operations. They are listed in full on the page.

## Machine-readable artifacts (1)

- **OpenAPI** — https://artifacts.apis.io/tinkermode-com/openapi/_ae-authored/tinkermode-com-openapi-generated.yml

## Other Mode APIs (1)

- [MODE API](https://apis.io/apis/tinkermode-com/mode-api/)

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/tinkermode-com/tinkermode-com-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/tinkermode-com/.
