Long-Run Series on Public Sector WagesSéries longues des salaires dans la fonction publique
Séries longues des salaires dans la fonction publiqueLong-Run Series on Public Sector Wages
This API, published by INSEE (French national statistics institute), provides long-run time series on net wages in the French public sector since 1995. Data are broken down by several variables such as sex, age, and sector of employment. Geographic coverage is national, covering France excluding Mayotte. The dataset is useful for analyzing trends in public-sector pay over time and for comparing wage levels across demographic and occupational categories within the French public administration.The API is freely accessible without authentication.Salaires nets dans le secteur public depuis 1995, ventilés selon plusieurs variables (sexe, âge, secteur...), pour la France hors Mayotte.
Trust score
How is this computed?Weighted across five axes. Tap a ring for what it measures.
Data schema (12 fields)
Click a field to see example values.
| Field | Type | Description |
|---|---|---|
| GEOTerritory | string | Geographic area code covered by the observation, France excluding Mayotte.Geographic area code covered by the observation, France excluding Mayotte. |
| QUANTILE | string | Salary distribution percentile category, e.g. centile 60 or 70.Salary distribution percentile category, e.g. centile 60 or 70. |
| SEX | string | Sex category of the employees, or total for both sexes.Sex category of the employees, or total for both sexes. |
| CIVILSERVANT_STATUSCivilservant status | string | Civil servant employment status category, or total for all statuses.Civil servant employment status category, or total for all statuses. |
| FREQFrequency | string | Frequency of the observation, such as annual.Frequency of the observation, such as annual. |
| PUBLIC_LEGAL_FORMPublic legal form | string | Legal form of the public sector employer, or total for all forms.Legal form of the public sector employer, or total for all forms. |
| TIME_PERIODPeriod | string | Year to which the observation refers.Year to which the observation refers. |
| UNIT_MEASUREUnit | string | Unit of measurement code for the observed value.Unit of measurement code for the observed value. |
| WKTIME | string | Working time category, such as full-time or part-time, or total.Working time category, such as full-time or part-time, or total. |
| DERA_MEASUREDera measure | string | Salary measure type, such as average monthly net full-time equivalent salary in constant euros.Salary measure type, such as average monthly net full-time equivalent salary in constant euros. |
| AGE | string | Age group category of the employees, or total for all ages.Age group category of the employees, or total for all ages. |
| OBS_VALUE_NIVEAUValue | number | Observed salary value for the given breakdown, in euros.Observed salary value for the given breakdown, in euros. |
Schema captured from melodi 7 days ago.
Query the data
Pick columns and a sort, then fetch a live preview straight from the source. Choose an API-filterable column (marked ▾) under “Where” to pick from its list of values.
Sample data (5 records)
Record 1AGE: _T · GEO: 2025-FRANCE-F
{
"AGE": "_T",
"GEO": "2025-FRANCE-F",
"SEX": "_T",
"FREQ": "A",
"WKTIME": "_T",
"QUANTILE": "CENTILE_60",
"TIME_PERIOD": "2015",
"DERA_MEASURE": "SALAIRE_NET_EQTP_MENSUEL_MOYEN_EUROS_CONSTANTS",
"UNIT_MEASURE": "XDC",
"OBS_VALUE_NIVEAU": 2548,
"PUBLIC_LEGAL_FORM": "_T",
"CIVILSERVANT_STATUS": "_T"
}Record 2AGE: _T · GEO: 2025-FRANCE-F
{
"AGE": "_T",
"GEO": "2025-FRANCE-F",
"SEX": "_T",
"FREQ": "A",
"WKTIME": "_T",
"QUANTILE": "CENTILE_70",
"TIME_PERIOD": "2022",
"DERA_MEASURE": "SALAIRE_NET_EQTP_MENSUEL_MOYEN_EUROS_CONSTANTS",
"UNIT_MEASURE": "XDC",
"OBS_VALUE_NIVEAU": 2862,
"PUBLIC_LEGAL_FORM": "_T",
"CIVILSERVANT_STATUS": "_T"
}Record 3AGE: _T · GEO: 2025-FRANCE-F
{
"AGE": "_T",
"GEO": "2025-FRANCE-F",
"SEX": "_T",
"FREQ": "A",
"WKTIME": "_T",
"QUANTILE": "CENTILE_40",
"TIME_PERIOD": "2022",
"DERA_MEASURE": "SALAIRE_NET_EQTP_MENSUEL_MOYEN_EVOLUTION_CONSTANT",
"UNIT_MEASURE": "PT",
"OBS_VALUE_NIVEAU": -1.34,
"PUBLIC_LEGAL_FORM": "_T",
"CIVILSERVANT_STATUS": "_T"
}Record 4AGE: _T · GEO: 2025-FRANCE-F
{
"AGE": "_T",
"GEO": "2025-FRANCE-F",
"SEX": "_T",
"FREQ": "A",
"WKTIME": "_T",
"QUANTILE": "_T",
"TIME_PERIOD": "2021",
"DERA_MEASURE": "SALAIRE_NET_EQTP_MENSUEL_MOYEN_EUROS_CONSTANTS",
"UNIT_MEASURE": "XDC",
"OBS_VALUE_NIVEAU": 2881,
"PUBLIC_LEGAL_FORM": "3",
"CIVILSERVANT_STATUS": "F_B"
}Record 5AGE: _T · GEO: 2025-FRANCE-F
{
"AGE": "_T",
"GEO": "2025-FRANCE-F",
"SEX": "_T",
"FREQ": "A",
"WKTIME": "_T",
"QUANTILE": "CENTILE_60",
"TIME_PERIOD": "2015",
"DERA_MEASURE": "SALAIRE_NET_EQTP_MENSUEL_MOYEN_EUROS_CONSTANTS",
"UNIT_MEASURE": "XDC",
"OBS_VALUE_NIVEAU": 2180,
"PUBLIC_LEGAL_FORM": "2",
"CIVILSERVANT_STATUS": "_T"
}Live sample captured at profiling time — values may have changed upstream.
Verification Status
Using the API
Configuration
- Base URL
- https://api.insee.fr/melodi/data/DS_DERA_PUBLIC_SERIES_LONGUES
Query examples
curl -s 'https://api.insee.fr/melodi/data/DS_DERA_PUBLIC_SERIES_LONGUES?maxResult=20' -H 'Accept: application/json'First 20 observations (dimensions + measures) as JSON.
Machine-readable & source
Embed this badge in a README or wiki — it always shows the latest verification state and quality tier.