---
title: "SDKs"
description: "Typed clients for the Mentio API, generated from its OpenAPI document. TypeScript and Python are published; any other language is a generator run away."
canonical: https://docs.mentio.dev/sdks
markdown: https://docs.mentio.dev/sdks.mdx
---

# SDKs

Typed clients for the Mentio API, generated from its OpenAPI document. TypeScript and Python are published; any other language is a generator run away.

Call the Mentio API from TypeScript or Python with an official client, or generate your own from the OpenAPI document. Every client is generated from the same document that produces the [API Reference](/api), so it cannot drift from the deployed API: one call per endpoint, under the same name, with the request and response types included.

Install the client for your language and set an [API key](/authentication).

## Clients

Each guide has the install command, a first call in that language, and the client's own rules (errors, paging, async). Each repository is a read-only mirror of the package as it lives in the monorepo, published with every release.

| Language | Package | Install | Guide | Repository |
| --- | --- | --- | --- | --- |
| TypeScript | `@mentio-dev/sdk` (npm) | `npm install @mentio-dev/sdk` | https://docs.mentio.dev/sdks/typescript | https://github.com/mentio-dev/sdk |
| Python | `mentio` (PyPI) | `pip install mentio` | https://docs.mentio.dev/sdks/python | https://github.com/mentio-dev/sdk-python |

## Any language today

Languages with no published client: Go, Java, Ruby, PHP, .NET, Rust.

No published client yet for these. Three ways to work in them now, in order of effort:

1. **The [CLI](/cli).** Every endpoint is a `mentio` command with JSON out, so any language that can run a process has a client: `mentio mentions:search --relevant true | your-script`.
2. **Plain HTTP.** The surface is small and regular: a Bearer key, JSON in and out, one error envelope, camelCase everywhere. [Conventions](/conventions) is the whole contract in one page.
3. **Generate your own.** The document at `https://api.mentio.dev/v1/openapi.json` is complete and described field by field, so [OpenAPI Generator](https://openapi-generator.tech), [Kiota](https://learn.microsoft.com/openapi/kiota/) or [Fern](https://buildwithfern.com) produce a working client in a minute. Operation ids become method names, tags become groups.

## How they stay current

The generators run in CI on every merge that touches the API. If an endpoint, a field or an error appears, the clients are regenerated, versioned in lockstep and published the same day, and the [changelog](/changelog) says what moved. Nothing here is written by hand, so nothing here can describe an API that no longer exists.

<Cards>
  <Card title="CLI" description="Every endpoint as a mentio command, plus a live feed." href="/cli" />

  <Card title="MCP server" description="The same operations as tools for AI agents." href="/mcp" />

  <Card title="Authentication" description="API keys, scopes, and what a read key cannot do." href="/authentication" />

  <Card title="Errors" description="One envelope, stable codes, what to retry." href="/errors" />
</Cards>
