---
title: Tools RPC (/v1/rpc/tools)
description: Surface RPC unifiée — un seul endpoint POST pour tous les tools, avec discovery et OpenAPI 3.1.
---

L'API Tools RPC est une surface alternative à [REST `/v1`](/docs/guides/api-rest), pensée pour les agents IA et les outils d'automation.

Au lieu d'un endpoint par ressource, **tout passe par `POST /v1/rpc/tools/{name}`** avec le payload dans le body. Même catalogue de tools que le [serveur MCP](/docs/guides/mcp), exposé en REST standard.

## Pourquoi cette surface

- **Custom GPTs (ChatGPT)** consomment de l'OpenAPI — pas du MCP
- **n8n / Zapier / Make** ont un node "HTTP request" générique mais pas de support MCP
- **OpenAI Assistants / function calling** mappent une opération OpenAPI à une function

C'est un pattern [REST-RPC hybride](https://github.com/nile-squad/rest-rpc) éprouvé.

## Quick start

### 1. Lister les tools disponibles

```bash
curl https://api.insourcia.io/v1/rpc/tools \
  -H "Authorization: Bearer isk_xxx"
```

Réponse :

```json
{
  "tools": [
    {
      "name": "search_companies",
      "description": "Recherche d'entreprises françaises par nom, SIREN, activité...",
      "inputSchema": { "type": "object", "properties": { "query": {...} }, ... }
    },
    ...
  ]
}
```

### 2. Invoquer un tool

```bash
curl -X POST https://api.insourcia.io/v1/rpc/tools/search_companies \
  -H "Authorization: Bearer isk_xxx" \
  -H "Content-Type: application/json" \
  -d '{"query":"vinci","limit":3}'
```

Réponse (envelope JSend) :

```json
{
  "success": true,
  "data": {
    "data": [
      { "siren": "552120222", "denomination": "VINCI", ... }
    ],
    "pagination": { "total": 1, "limit": 3, "has_more": false }
  }
}
```

Erreur :

```json
{
  "success": false,
  "error": "Invalid input",
  "details": [{ "path": ["query"], "message": "Required" }]
}
```

## Tools disponibles

| Tool | Action |
|---|---|
| `search_companies` | Recherche multi-critères |
| `get_company` | Fiche d'une entreprise par SIREN |
| `get_financials` | Données financières (P&L, bilan, ratios) |
| `get_directors` | Dirigeants actifs et historiques |
| `search_announcements` | Annonces BODACC (ventes, procédures, dépôts) |

Référence interactive complète sur [**`/docs/tools`**](/docs/tools) (Scalar avec try-it-now).

## OpenAPI 3.1

Spec téléchargeable et standards-compliant :

```
https://api.insourcia.io/v1/rpc/tools/openapi.json
```

Importable dans Postman, n8n, Custom GPT Actions, Insomnia, etc.

## Authentification

Bearer token, identique à REST :

```
Authorization: Bearer isk_xxx
```

## Rate limits & gating

Mêmes règles que `/v1` : rate limit par clé API + plan-gating sur les champs premium. Le passage par Tools RPC ne contourne rien.
