> For the complete documentation index, see [llms.txt](https://docs.kiloiot.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kiloiot.io/api.md).

# Kilo IoT Platform API / MCP

Kilo IoT Server API overview — REST and gRPC access, scoped keys, and cloud or on-premise integration endpoints.

Kilo's **API** lets your existing applications work with the deployment: read device information, use sensor history in reports, and call the operations exposed by the platform. You can connect business software and custom tools without reproducing the browser workflow.

An **API**, or application programming interface, is the contract your software uses to make those requests. Start with the [Public REST API](/api/public-rest-api.md), which uses HTTP requests and structured responses. The [API reference](https://api.kiloiot.io/) lists the operations and the permission **scopes** each requires. Create an [API key](/settings/api-keys.md), an integration credential, and send it with the matching organization header, choosing only the scopes the integration needs. For conversational setup from an external AI client, use [MCP](/api/mcp-server.md).

## Which API Options Does Kilo Offer?

Two protocols are offered on the same secured endpoint:

* **REST** — the primary path for most integrations. Standard HTTPS and JSON, usable from any HTTP client. Start here unless you have a specific reason not to. See [Public REST API](/api/public-rest-api.md).
* **gRPC** — the advanced / on-premise path. Choose REST unless you specifically need gRPC for an on-premise or typed service-to-service integration. See [gRPC API](/api/grpc-api.md).

Alongside them, a separate endpoint serves AI clients rather than code you write:

* **MCP** — connect an MCP-capable AI client, such as Claude (Kilo is in the [Claude connectors directory](https://claude.ai/directory/kilo-iot-platform)), Claude Code or Claude Desktop, to your organization. You authorize it in the browser with your usual Kilo account instead of issuing a key, and it works within your own permissions. See [MCP Server](/api/mcp-server.md).

## How Do I Authenticate to the Kilo API?

Requests are authenticated with a scoped API key in the `X-API-Key` header (format `kilo_<key>`), plus your organization context in `X-Organization-Id`. Keys are created and managed in **Settings → API Keys**; the concepts are summarized in [Authentication & API keys](/api/authentication-and-api-keys.md), and the full key-management workflow is in [API Keys](/settings/api-keys.md).

## Is the Kilo API Available on Premise?

Cloud deployments use the managed endpoint at `api.kiloiot.io`. On-premise installations expose the same API within your own network boundary, where gRPC is a natural fit for internal service-to-service automation — but REST remains available and is still the simplest place to start.

## Where Can I Learn More About the Kilo API?

* [Public REST API](/api/public-rest-api.md) — the standard integration path.
* [gRPC API](/api/grpc-api.md) — the advanced / on-premise path (typed, service-to-service).
* [MCP Server](/api/mcp-server.md) — connect your own AI client to your organization.
* [Authentication & API keys](/api/authentication-and-api-keys.md) — how requests are authorized.
* [Examples](/api/examples.md) — a minimal authenticated request to get started.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.kiloiot.io/api.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
