canonical: https://jentic.com/apis/reka.ai/reka

# Reka AI API

The Reka AI API generates chat completions from Reka's multimodal models, accepting messages that mix text with image_url, video_url, audio_url, and pdf_url content. Requests can pass tools with a tool_choice of auto, tool, or none, along with sampling controls such as temperature, top_p, top_k, seed, stop strings, and streaming. A separate speech operation transcribes audio, translates it into one of eight target languages, or returns translated speech audio. A model list shows which model ids your key can use.

## For AI agents

Send multimodal chat completions to Reka models with text, images, video, audio, or PDFs and optional tool calls, list available models, and transcribe or translate audio.

## Scope

Does not handle model fine-tuning, embeddings, or image generation. Use for multimodal chat completions and audio transcription or translation only.

## Capabilities

- Generate a chat completion from messages and a model id via POST `/chat/completions`, with optional streaming
- Ask a Reka model about an image, video, audio clip, or PDF by adding image_url, video_url, audio_url, or pdf_url content to a message
- Let the model call your functions by passing tools and setting tool_choice to auto, tool, or none
- Make generations repeatable with seed and temperature 0.0, and stop them early with stop strings
- Transcribe speech to text, optionally with word-level timestamps, from an audio_url or base64 data URI
- Translate speech into french, spanish, japanese, chinese, korean, italian, portuguese, or german, optionally returning translated audio
- List the model ids your API key can access with GET /models

## Use cases

### Multimodal analysis for an agent through Jentic

An agent that needs to look at a screenshot, watch a short video, or read a PDF can delegate that step to a Reka model without a developer wiring the X-Api-Key header and message content types by hand. Through Jentic the agent searches for 'ask a model about a video', loads POST `/chat/completions`, and sends a user message whose content includes a video_url item alongside a text prompt. The completion returns as structured JSON the agent can parse.

Example prompt: POST `/chat/completions` with model set to an id from GET /models and a user message containing a video_url item plus the text 'List the products shown in this clip'

### Meeting and podcast transcription

Teams that record calls or publish audio need text they can search. POST `/v1/transcription_or_translation` takes an audio_url, which can be a link or a base64 data URI, and its sampling_rate, default 16000 Hz, and returns a transcript with optional word-level timestamps for building captions or chapter markers.

Example prompt: POST `/v1/transcription_or_translation` with audio_url 'https://example.com/call.wav' and sampling_rate 16000, then return the transcript

### Speech translation for support content

Support and content teams localising voice recordings can translate speech directly. Setting is_translate to true with a target_language such as german or korean returns translated text, and return_translation_audio adds base64-encoded speech in the target language for speech-to-speech output.

Example prompt: POST `/v1/transcription_or_translation` with audio_url, sampling_rate 16000, is_translate true, target_language 'japanese', and return_translation_audio true

### Tool-using assistants

Developers building assistants can let a Reka model decide when to call their functions. The chat request takes a tools array and a tool_choice of auto, tool, or none, and the response carries tool calls the application executes before sending tool output back in the next message.

Example prompt: POST `/chat/completions` with a tools array defining get_weather, tool_choice 'auto', and the message 'What is the weather in Lisbon?'

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/chat/completions` | Create a chat completion |
| GET | `/models` | List available models |
| POST | `/v1/transcription_or_translation` | Transcribe or translate audio |

## Key resources

- **Chat completions** — Multimodal chat with text, image, video, audio, and PDF content, tools, sampling controls, and streaming
- **Models** — List of model ids available to the API key
- **Speech** — Audio transcription, speech translation, and translated audio output

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 58 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 80 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 39 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 58 / 100
- **View full report:** https://jentic.com/apis/reka.ai/reka/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Reka by hand means sending the X-Api-Key header, building typed message content for images, video, audio, and PDFs, and handling streamed chunks. Through Jentic you install once, import Reka from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Reka carries the model and content inside the request body, so rules bound which operations your agent may call, not which model it picks. Limit it to the operations it needs, such as chat completions; speech transcription and translation are not included unless you add them.
- **Credential handling:** Your Reka API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'ask a model about a video' or 'transcribe an audio file', and Jentic returns the matching Reka operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **OpenAI API** — Chat completions, embeddings, image, and audio models from OpenAI
- **Mistral AI API** — Chat completions and embeddings from Mistral models
- **Deepgram API** — Dedicated speech-to-text and text-to-speech
- **AssemblyAI API** — Speech-to-text with audio intelligence such as summaries and speaker labels

## FAQ

### What authentication does the Reka AI API use?

Per its OpenAPI spec, the Reka AI API authenticates with an API key sent in the X-Api-Key request header. Through Jentic, the key is stored encrypted by your own Jentic One instance and injected at call time, so it never enters the agent's prompt, logs, or context.

### What kinds of input can Reka chat completions take?

Message content can mix text with media items whose type is image_url, video_url, audio_url, or pdf_url, so one request can ask about an image, a clip, a recording, or a document. Set stream to true to receive the response incrementally.

### What are the rate limits for the Reka AI API?

The OpenAPI spec does not specify rate limits. Check the Reka documentation at https://docs.reka.ai for current limits on your plan.

### Is there a Reka AI MCP server?

You don't need an MCP server to give your agent Reka. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls chat, model listing, or transcription as needed, discovered on demand rather than loaded into its context up front.

### How do I transcribe audio with Reka through Jentic?

Search Jentic for 'transcribe an audio file', load POST `/v1/transcription_or_translation`, and send audio_url with the file link or a base64 data URI plus sampling_rate, which defaults to 16000. Add is_translate and target_language to translate instead. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the Reka AI API?

Yes. Write a rule that allows only POST `/chat/completions` and GET /models, and the agent can generate completions and check model ids but cannot send audio for transcription or translation. Every call it makes is logged, so you can see what it sent.
