API v1
Complete IndexFacile REST API reference — authentication, endpoints, examples. Available on PRO and Cabinet plans.
The v1 API lets you integrate IndexFacile into your tools (Excel, ERP, scripts) for direct access to indices and calculations.
Required plans: PRO or Cabinet. The Solo plan does not include API access.
Authentication
All API requests (except POST /api/v1/revision) require an API key:
Authorization: Bearer if_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Get an API key
From My account → API Key → Generate an API key.
The key is in the format if_ followed by 48 hexadecimal characters. It is tied to your account and plan.
Revoke a key
From My account → API Key → Revoke. All integrations using this key stop working immediately.
Rate limiting
| Endpoint | Limit |
|---|---|
| All API v1 endpoints (with key) | 100 req/min per key |
POST /api/v1/revision (no key) | 30 req/min per IP |
When exceeded: 429 Too Many Requests response.
Endpoints
GET /api/v1/series
Lists all active index series.
Authentication: required
curl https://indexfacile.fr/api/v1/series \
-H "Authorization: Bearer if_..."
Response 200:
{
"series": [
{ "code": "BT01", "name": "Building all trades", "category": "BT" },
{ "code": "SYNTEC", "name": "Syntec index", "category": "SYNTEC" }
],
"count": 42
}
GET /api/v1/series/{code}/latest
Latest published value for an index.
Authentication: required
curl https://indexfacile.fr/api/v1/series/BT01/latest \
-H "Authorization: Bearer if_..."
Response 200:
{
"code": "BT01",
"value": 1247.3,
"period": "2025-10",
"status": "FINAL"
}
Possible statuses: FINAL, PROVISIONAL, ESTIMATED
GET /api/v1/series/{code}/values
Value history for an index with period filtering.
Authentication: required
Query parameters:
from(optional) — start period, formatYYYY-MMto(optional) — end period, formatYYYY-MM
curl "https://indexfacile.fr/api/v1/series/BT01/values?from=2024-01&to=2024-12" \
-H "Authorization: Bearer if_..."
Response 200:
{
"code": "BT01",
"values": [
{ "period": "2024-12", "value": 1238.1, "status": "FINAL" },
{ "period": "2024-11", "value": 1235.4, "status": "FINAL" }
]
}
POST /api/v1/revision
Calculates a one-off revision. No API key required (rate-limited to 30 req/min/IP).
curl -X POST https://indexfacile.fr/api/v1/revision \
-H "Content-Type: application/json" \
-d '{
"formula_type": "CcagTravaux",
"p0": 100000,
"i0": 1198.5,
"i_current": 1247.3
}'
Request body:
| Parameter | Type | Required | Description |
|---|---|---|---|
formula_type | string | ✅ | CcagTravaux, Syntec, Ilc, Ilat, Irl, Free |
p0 | number | ✅ | Initial price |
i0 | number | ✅ | Reference index value |
i_current | number | ✅ | Current index value |
alpha | number | — | α coefficient (default 0.15 for CCAG) |
beta | number | — | β coefficient (default 0.85 for CCAG) |
Response 200:
{
"new_price": 103460.0,
"revision_coefficient": 1.0346,
"revision_percent": 3.46,
"formula_applied": "P = P₀ × (0.15 + 0.85 × I/I₀)",
"warnings": []
}
Error codes
| Code | HTTP | Description |
|---|---|---|
MISSING_API_KEY | 401 | Authorization header missing |
INVALID_API_KEY | 401 | Invalid or revoked key |
SUBSCRIPTION_INACTIVE | 403 | Expired subscription |
PLAN_DOES_NOT_INCLUDE_API_ACCESS | 403 | Solo plan — API not included |
RATE_LIMIT_EXCEEDED | 429 | Too many requests |
NOT_FOUND | 404 | Series or resource not found |
INVALID_PARAMS | 400 | Invalid or missing parameters |
CALCULATION_ERROR | 422 | Calculation error (I₀=0, etc.) |
Excel example (Power Query)
let
ApiKey = "if_...",
Url = "https://indexfacile.fr/api/v1/series/BT01/latest",
Headers = [Authorization = "Bearer " & ApiKey],
Response = Json.Document(Web.Contents(Url, [Headers = Headers])),
Value = Response[value]
in
Value
See also the Excel Add-in page for native integration without Power Query.