Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/insourcia-io:insourcia-io-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Insourcia Webhooks API
description: 'API publique Insourcia pour la recherche et l''analyse de sociétés françaises. ## Authentification
Chaque requête porte un en-tête `Authorization: Bearer `. Deux types de jetons sont acceptés :
- **Clé API** (format `isk_xxx`) : à créer dans l''application, rubrique Paramètres > API / MCP (`https://app.insourcia.io/settings/api`) ;
- **JWT OAuth 2.1** : obtenu par le parcours OAuth du serveur MCP. ## Facturation en crédits
L''API se paie sur le solde de crédits de votre organisation. **1 crédit = 1 fiche société.** Chaque opération indique son coût en tête de description (« Coût : ») et dans l''extension `x-credits`, lisible par un programme : `base` (crédits par appel), `perResult` (par résultat de recherche servi), `sections` (crédits par société servie, pour chaque section non vide), `subscriptionOnly` (opération réservée aux abonnements), `freeRelookup` (relecture gratuite, pendant `freeRelookupDays` jours, soit 30). **Règles de facturation.**
- Seul ce qui est servi est facturé : une section vide ne coûte rien, une société introuvable ne coûte rien. - Une erreur est gratuite : seule une réponse 2xx est débitée. Un 4xx ou un 5xx (paramètre invalide, refus, `server_busy`) ne débite rien. - Relire la même section d''une même société dans les 30 jours qui suivent son premier débit est gratuit, entre la fiche, ses sections et leurs lots (par exemple `GET /companies/{siren}/financials` puis `GET /companies/batch/financials`). Une recherche est facturée à chaque appel. - Avant l''appel, le coût maximal est réservé sur le solde ; après, seul le coût réel est débité et le reste est rendu. Un appel dont le coût maximal dépasse le solde est refusé (402) sans rien débiter. - Les sections réservées aux abonnements (score crédit, estimation financière, email de dirigeant, données Insourcia d''une recherche) sont omises d''une réponse sans abonnement et listées dans `_billing.sections_skipped`, sans coût. Une opération entièrement réservée répond 403 `subscription_required`. **Coût et solde dans chaque réponse facturable.**
- `X-Credits-Charged` : crédits débités par cet appel (0 pour une relecture ou un rejeu). - `X-Credits-Remaining` : solde de l''organisation après l''appel. - `X-Credits-Grant-Remaining` et `X-Credits-Grant-Expires-At` : reste et date d''expiration des crédits offerts du mois. - `X-Billing-Grid-Version` : version de la grille qui a calculé le coût. - Le bloc `_billing` du corps (`charged`, `breakdown`, `free_relookups`, `sections_skipped`, `grid_version`) détaille le calcul. Il est ajouté sur demande, avec `?billing=1` ou l''en-tête `X-Billing-Detail: 1`. - `GET /me` donne le solde à tout moment (bloc `credits`), gratuitement. **Rejeu sans double débit.** Un en-tête `Idempotency-Key` (200 caractères au plus) lie l''appel à ses arguments pendant 24 h : le même appel renvoyé sous la même clé est servi à nouveau sans être débité. La même clé sur un autre appel répond 409 `idempotency_key_reused`, et sur un appel encore en cours 409 `idempotency_key_in_progress`. **Erreurs de facturation.**
- 402 `insufficient_credits` : solde insuffisant pour le coût maximal de l''appel (`credits_remaining`, `credits_required`). - 402 `spend_cap_reached` : plafond de dépense quotidien ou mensuel de l''organisation atteint (`cap` : `daily` ou `monthly`). - 403 `subscription_required` : opération réservée aux abonnements. - 409 `idempotency_key_reused` / `idempotency_key_in_progress` : voir ci-dessus. - 503 `service_unavailable` : facturation momentanément indisponible, rien n''est débité. **Offre.** 100 crédits offerts chaque mois à toute organisation, dès l''inscription. Recharge à 0,01 € le crédit, sans expiration. Abonnements :
| Abonnement | Crédits inclus |
|---|---|
| 49 € par mois | 10 000 crédits par mois |
| 99 € par mois | 20 000 crédits par mois |
| 199 € par mois | 40 000 crédits par mois |
| 499 € par mois | 100 000 crédits par mois |
| 999 € par mois | 200 000 crédits par mois |
Grille `2026-11-12.v9` (en-tête `X-Billing-Grid-Version`).'
version: 1.0.0
x-billing-grid-version: 2026-11-12.v9
contact:
name: Insourcia Support
email: support@insourcia.io
servers:
- url: https://api.insourcia.io/v1
description: Production
security:
- bearerAuth: []
tags:
- name: Webhooks
description: Webhooks sortants signés (HMAC-SHA256) pour les événements de veille
paths: {}
webhooks:
company.alert:
post:
tags:
- Webhooks
summary: Alerte société (webhook sortant)
description: 'Insourcia envoie ce POST à l''URL de votre endpoint dès qu''un événement est
détecté sur une société d''une veille surveillée (procédure collective,
changement de dirigeant, cession, dépôt de comptes, radiation...).
La requête est signée en HMAC-SHA256. En cas d''échec elle est retentée, et
chaque livraison est journalisée. Configuration : Paramètres de notifications
> Webhooks. Les webhooks sont ouverts à tous les comptes, 5 adresses par organisation.
En-têtes :
- `X-Insourcia-Signature` = `sha256=`, calculé sur les octets
`{X-Insourcia-Timestamp}.{corps brut}` avec le secret de l''endpoint ;
- `X-Insourcia-Timestamp` : horodatage unix ;
- `X-Insourcia-Delivery` : identifiant de livraison (`delivery_id`), pour
l''idempotence.
Répondez avec un code 2xx pour accuser réception. Sinon la livraison est
retentée (1, 5, 30, 120 puis 360 min), puis l''endpoint est désactivé après
des échecs consécutifs. Aucune garantie d''ordre : dédupliquez sur `delivery_id`.'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookCompanyAlert'
responses:
2XX:
description: Accusé de réception. Tout code 2xx marque la livraison réussie.
webhook.ping:
post:
tags:
- Webhooks
summary: Événement test (webhook sortant)
description: Envoyé par le bouton "Tester" pour valider votre endpoint et la vérification de signature. Mêmes en-têtes signés que company.alert.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookPing'
responses:
2XX:
description: Accusé de réception.
components:
schemas:
WebhookPing:
type: object
description: Corps JSON POST du bouton Tester.
required:
- event
- schema_version
- delivery_id
- occurred_at
properties:
event:
type: string
const: webhook.ping
schema_version:
type: string
example: '1'
delivery_id:
type: string
example: whp_1f2e3d4c
occurred_at:
type: string
format: date-time
message:
type: string
example: Insourcia webhook test event
WebhookCompanyAlert:
type: object
description: Corps JSON POST envoyé à votre endpoint pour chaque événement de veille.
required:
- event
- schema_version
- delivery_id
- occurred_at
- alert
properties:
event:
type: string
const: company.alert
schema_version:
type: string
example: '1'
delivery_id:
type: string
description: Identifiant stable de la livraison (idempotence, aussi en en-tête X-Insourcia-Delivery). Constant entre les reprises.
example: clz1a2b3c4d5e6f7
occurred_at:
type: string
format: date-time
source:
type: object
description: La veille (recherche sauvegardée ou liste) à l'origine de l'alerte.
properties:
type:
type: string
enum:
- saved_search
- list
id:
type: string
name:
type:
- string
- 'null'
alert:
type: object
required:
- siren
- company_name
properties:
siren:
type: string
example: '552081317'
company_name:
type: string
example: GO SPORT FRANCE
category:
type: string
description: Type d'événement brut (procedure_collective, dirigeant_entered, cession, nouveaux_comptes, radiation...) ou, à défaut, le type d'alerte (new_additions, new_removals).
example: procedure_collective
label:
type:
- string
- 'null'
description: Libellé lisible du signal.
example: Procedure collective
summary:
type: string
example: Ouverture de liquidation judiciaire
occurred_on:
type: string
description: Date de détection (YYYY-MM-DD).
example: '2026-07-12'
date_note:
type:
- string
- 'null'
example: effet 03/11/2025 (enregistre 12/07/2026)
company_url:
type:
- string
- 'null'
example: https://app.insourcia.io/company/552081317
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Clé API (isk_xxx) ou JWT OAuth 2.1