---
title: Choisir sa surface API
description: REST resource, Tools RPC, ou MCP — quelle surface utiliser selon ton cas d'usage.
---

Insourcia expose les mêmes données via 3 surfaces. Choisis selon ton client :

| Surface | URL | Idéal pour |
|---|---|---|
| **REST resource** | `/v1/companies/{siren}` etc. | Backend custom, intégrations CRM, scripts traditionnels |
| **Tools RPC** | `POST /v1/rpc/tools/{name}` | Custom GPT, n8n/Zapier, OpenAI Assistants, agents non-MCP |
| **MCP** | `https://mcp.insourcia.io` | Claude Code, Claude Desktop, Cursor, Windsurf, Continue, Cline (installation 1-clic via [Smithery](https://smithery.ai/server/@insourcia/insourcia)) |

## Tu veux faire quoi ?

### "Mon backend appelle Insourcia depuis mon code"
→ **REST resource**. Verbes HTTP standards, paths intuitifs, OpenAPI complet sur [`/docs`](/docs).

### "Un agent IA doit utiliser Insourcia"
→ **MCP** si l'agent supporte (Claude, Cursor, Windsurf, Continue) — c'est la voie la plus directe. Pour Claude Desktop / Cursor / Windsurf : installation 1-clic via [Smithery](https://smithery.ai/server/@insourcia/insourcia).
→ **Tools RPC** sinon (ChatGPT, GPT-4 function calling, agents custom).

### "J'utilise n8n / Zapier / Make"
→ **Tools RPC**. Le node HTTP standard suffit, et le pattern `POST /v1/rpc/tools/{name}` mappe directement aux nodes "agent tool" de ces plateformes.

### "Je veux créer un Custom GPT public"
→ **Tools RPC** + [OpenAPI spec](https://api.insourcia.io/v1/rpc/tools/openapi.json). Voir [le guide Custom GPT](/docs/guides/custom-gpt).

### "Script ad-hoc en terminal / CI"
→ **CLI** [`@insourcia/cli`](/docs/guides/cli). C'est un wrapper sur Tools RPC.

## Ce qui change selon la surface

Toutes les surfaces tapent dans la **même base de données** et appliquent **la même authentification** (clé API `isk_...`), le **même rate-limit** et le **même plan-gating**. Tu peux mélanger sans risque.

Différences :
- **Format de réponse** : REST renvoie du JSON brut. Tools RPC enveloppe dans `{success, data}`.
- **Discovery** : Tools RPC fournit un `GET /v1/rpc/tools` qui liste les tools disponibles avec leurs schémas.
- **Versioning** : REST suit `/v1`. Tools RPC suit le même cycle de vie.
