---
title: "Speakeroo Integrations: REST API and MCP Server"
description: "Connect Speakeroo to your own tools: create an API key for the REST API, or add the free MCP server to Claude, Cursor, VS Code and other AI clients."
url: "https://speakeroo.app/integrations"
---

# Integrations

Connect Speakeroo to your own tools. Analyse transcripts and recordings with the REST API, or add the MCP server to the AI assistants you already use.

[API key REST API Call Speakeroo from your server, scripts and automations. Create a personal key and post a transcript or a recording.](https://speakeroo.app/integrations/api) [No key MCP server Analyse a speech inside Claude, Cursor, VS Code and any other MCP client. The server is free and anonymous.](https://speakeroo.app/integrations/mcp)

## Authentication

Create a key on your [profile](https://speakeroo.app/profile) and send it with every request. The key is shown once and only a hash is stored.

```
Authorization: Bearer spk_user_…
```

Keys start with `spk_user_`. Revoke one from the same card and it stops working immediately.

[Create an API key](https://speakeroo.app/profile)

## First request

```
curl -X POST https://api.speakeroo.app/v1/transcripts/analyze \
  -H "Authorization: Bearer $SPEAKEROO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "transcript": "Good morning everyone. Today I want to talk about why every student should learn to cook. Um, cooking teaches you to plan ahead, to manage your money and, basically, to look after yourself. It is also a great way to bring friends together, so I really believe it belongs in every school.",
  "context": "general",
  "topic": "Should schools teach cooking?"
}'
```

Transcript analyses have their own daily allowance and are not saved as sessions. A recording becomes a session on your plan, the same as practising in the app.

## Endpoints at a glance

| POST | [/v1/recordings](https://speakeroo.app/integrations/api#analyzeRecording)Analyze a recording |
| --- | --- |
| POST | [/v1/transcripts/analyze](https://speakeroo.app/integrations/api#analyzeTranscript)Analyze a transcript |
| POST | [/v1/transcripts/refine](https://speakeroo.app/integrations/api#refineTranscript)Restructure a transcript |
| GET | [/v1/filler-words](https://speakeroo.app/integrations/api#listFillerWords)List filler words |
| GET | [/v1/me](https://speakeroo.app/integrations/api#getMe)Get your account |
| GET | [/v1/pronunciations/{word}](https://speakeroo.app/integrations/api#getPronunciation)Get how to pronounce a word |
| GET | [/v1/rubric](https://speakeroo.app/integrations/api#getRubric)Get the speaking rubric |
| GET | [/v1/sessions](https://speakeroo.app/integrations/api#listSessions)List sessions |
| GET | [/v1/sessions/{id}](https://speakeroo.app/integrations/api#getSession)Get a session |
| GET | [/v1/topics](https://speakeroo.app/integrations/api#listTopics)List speech topics |

The whole surface is also published as an [OpenAPI file](https://speakeroo.app/openapi.json) for `https://api.speakeroo.app`.

## MCP server

Point any MCP client that speaks Streamable HTTP at the endpoint. No account, no key.

```
https://mcp.speakeroo.app/mcp
```

[Authentication, every endpoint and the errors the API returns.REST API reference](https://speakeroo.app/integrations/api)
