# Choose an integration

> How to pick between the REST API, the MCP server, LangChain tools, the n8n node, Make and Zapier, and function calling, and what they all have in common.

Source: https://www.fluentc.ai/docs/integrations/overview/

All of FluentC's integrations call the same engine. They differ in who decides when to translate: your code, an AI agent, or a workflow.

## Which one to use

| You are... | Use | Why |
| --- | --- | --- |
| Writing application code in any language | [REST API](https://www.fluentc.ai/docs/api/translate.md) | Full control; works anywhere that can send HTTP |
| Giving an AI agent or MCP client a translation tool | [MCP server](https://www.fluentc.ai/docs/integrations/mcp.md) | The agent discovers and calls the tool itself; no glue code |
| Building agents or chains with LangChain in Python | [LangChain tools](https://www.fluentc.ai/docs/integrations/langchain.md) | Ready-made `BaseTool` classes, including batch polling |
| Building workflows in n8n | [n8n node](https://www.fluentc.ai/docs/integrations/n8n.md) | Visual nodes, language dropdowns, automatic batch polling |
| Using Make or Zapier | [Make and Zapier](https://www.fluentc.ai/docs/integrations/make-zapier.md) | HTTP steps; no code |
| Using a model with tool calling (OpenAI or others) | [Function calling](https://www.fluentc.ai/docs/integrations/function-calling.md) | One tool definition and a small handler |

If your tool isn't listed, use the [REST API](https://www.fluentc.ai/docs/api/translate.md). Anything that can send an HTTP request can call FluentC.

## What they share

- **One API key.** Create it in the [dashboard](https://dashboard.fluentc.io/users/sign_up) and use it everywhere. See [Authentication](https://www.fluentc.ai/docs/authentication.md).
- **One plan.** A Batch plan key can use batch mode in any integration. Real-time mode needs the Real-time plan. See [Concepts](https://www.fluentc.ai/docs/concepts.md#plans-and-modes).
- **One translation memory.** A string translated through n8n is answered from memory when an agent asks for it later. See [Concepts](https://www.fluentc.ai/docs/concepts.md#translation-memory).
- **The same rules.** Language codes, input formats and limits are identical, so everything in the [REST reference](https://www.fluentc.ai/docs/api/translate.md) applies.

## Real-time or batch in an integration

| If the translation is... | Use |
| --- | --- |
| Part of a conversation or a tool call someone is waiting on | `real-time` |
| A large document, catalog, or a list of strings | `batch` |
| Triggered in bulk by a schedule | `batch` |

Integrations that poll batch jobs for you (the n8n node, the LangChain batch tool) cap the number of attempts, so a job that never finishes ends with a clear error instead of hanging.
