> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.taktoria.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.taktoria.com/_mcp/server.

# The Taktoria API

> The REST API for Taktoria's workplace apps, LaunchCal, OKR Hub, Dory, Go Links and Memegen: the base URL, a first request, and the SDKs.

Taktoria is a platform of workplace apps that share one workspace, one member
list and one bill: LaunchCal for product launches, OKR Hub for objectives and key results,
Dory for meeting Q\&A, Go Links for short internal links, and Memegen.

The API covers the platform and all five apps. Every scope a key can be
granted has endpoints behind it: if the key form offers it, something serves
it.

Nearly everything the Taktoria dashboard does, the API does. Its endpoints go
through the same rules as the dashboard, so most of what you can click you can
also automate: adding a launch, generating its review checklist, recording a
reviewer's decision, capturing a post-launch learning, giving a key result its
owners, recording a check-in, or assigning a seat. An AI assistant reaches the
same rules through each app's MCP server, as the person who connected it: see
MCP servers under AI assistants.

A few things stay in the dashboard, because they need a person signed in to a
third party or decide how people sign in: connecting integrations (Slack,
Microsoft Teams and ticketing systems), single sign-on, and the workspace's
sign-in policy (requiring Google sign-in, which the API reads but does not
change) are set in **Settings**. A docs tool is connected by each person from
an artifact's **Export**, and a key result's metric source on its page in OKR
Hub. The API reads what they lead to: a key result says which
metric drives it, and a check-in which metric recorded it.

Slack's commands (`/launchcal`, `/dory`, `/golinks`, `/memegen`) act as
whoever typed them, found by the address Slack has confirmed, and add
somebody from the Slack workspace who is not yet a member. In a workspace
that requires Google sign-in, each person connects their Slack account with
Google once, unless **Allow Slack commands without Google sign-in** is on:
the API reads and sets that switch (`slackCommandsWithoutGoogle` on
`/organization`) and lists and disconnects the connections
(`/slack-connections`).

## Base URL

```
https://api.taktoria.com/api/v1
```

## Quick start

```bash
curl https://api.taktoria.com/api/v1/launches \
  -H "Authorization: Bearer $TAKTORIA_API_KEY"
```

```ts
import { TaktoriaClient } from "@taktoria/sdk"

const taktoria = new TaktoriaClient({ token: process.env.TAKTORIA_API_KEY! })

const launch = await taktoria.launches.create({
  name: "Smart Email",
  plannedLaunchDate: "2026-11-14",
})
```

Creating a launch with a planned date copies the steps of its launch
template onto it (the one named by `launchTemplateId`, or the workspace's
default), back-schedules every review from the planned launch date,
and drops each step into the right reviewer's queue: the same thing the "Add
launch steps" button does in the app. `generateSteps: false` leaves them off. A
launch created with `draft: true` gets its steps too, but announces nothing and
tells no reviewer until it is published: see Drafts under Errors and
pagination.

## SDKs

Typed clients for TypeScript (`npm install @taktoria/sdk`) and Python
(`pip install taktoria-sdk`), and an OpenAPI file for everything else, are
described under [SDKs](/getting-started/sdks).