Mon Espace data API: ARE, actualisation, trop-perçus
Mon Espace France Travail is France Travail's official claimant self-care app for people registered as demandeurs d'emploi with the public employment service (the agency formerly Pôle emploi). After PEAM sign-in — with an optional PIN or biometric lock on later opens — a usager files the monthly actualisation (hours worked, job-search démarches, special situations such as sick leave or training), reads ARE, ASS and ACEJ allocation amounts, downloads digital attestations or asks for a courrier copy, follows trop-perçus repayment and instalment plans, books a conseiller rendez-vous at a local agency, messages the counsellor inbox, and uploads supporting documents from the phone camera. France Travail sits at Le Cinetic, 1 avenue du Docteur Gley, 75020 Paris. The Android listing is the nationwide official benefits-and-actualisation client rather than a vacancy board — that sister role sits with Parcours Emploi — and it sits next to social-insurance self-care apps such as GOSI and VssID as a state benefits wallet for France.
ARE compensation rows key the signed-in usager on identifiant and carry allocationMensuelle, montantJournalierNet, topEnCoursDIndemnisationAre and a dateLimiteIndemnisation, with allocationJournaliereTauxReduit once degressivity has kicked in and soldePrevisionnelReliquat for the remaining entitlement. Monthly actualisation periods are stamped by moisActualisation and actualisationPeriodStart; declared work lands as nbHeuresTravailles and salaireBrut; job-search steps keep identifiantDemarche; special situations and a confidenceLevelCode close the declaration. Overpayments surface as identifiantTropPercu debts with montantRestantDu and optional nombreMensualites debit agreements; upcoming agency slots return idRdvUsager, dateHeureRdv and a codeSafirAgence; the conseiller inbox badge is nombreNonLu.
Payroll and union desks reconcile declared hours against the ARE rate and the last datePaiement; case-management tools place the next agency slot beside a period still marked A_FAIRE; debt-recovery consoles only propose a debit plan when montantRestantDu is live; attestation printers pull the digital PDF keyed by typeAttestation instead of waiting for courrier. openData Studio turns that claimant ledger into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
PEAM OpenID authorize
GET
/v1/auth/authorizeosintStarts the PEAM OpenID login that yields the authorization code later exchanged for access_token.
Auth: Unauthenticated browser start. Query is client_id, redirect_uri com.poleemploi.poleemploietmoi://, response_type=code, scope (openid payments declarations profile overpayments) and a state. PEAM returns an authorization code to the app redirect.
- client_id
- redirect_uri
- response_type
- scope
- state
- code
GET /v1/auth/authorize?client_id=<client-id>&redirect_uri=com.poleemploi.poleemploietmoi%3A%2F%2F&response_type=code&scope=openid%20payments%20declarations%20profile%20overpayments&state=<state> HTTP/1.1 Accept: text/htmlHTTP/1.1 302 Found Location: com.poleemploi.poleemploietmoi://?code=<authorization-code>&state=<state>Exchange code for access token
POST
/v1/auth/exchangeosintExchanges the PEAM authorization code for the access_token that gates later allocation, actualisation, payment and rendez-vous calls.
Auth: Unauthenticated. Body is the authorization code from GET /v1/auth/authorize. The returned access_token is sent as Authorization: Bearer on later calls. Sibling paths /v1/auth/revoke and /v1/auth/logout close the session.
- grant_type
- code
- redirect_uri
- client_id
- access_token
- token_type
- expires_in
- scope
POST /v1/auth/exchange HTTP/1.1 Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=<authorization-code>&redirect_uri=com.poleemploi.poleemploietmoi%3A%2F%2F&client_id=<client-id>{ "access_token": "<access_token>", "token_type": "Bearer", "expires_in": 3600, "scope": "openid payments declarations profile overpayments" }Civil-state individual
GET
/v1/account/civil-statusosintReturns the signed-in usager civil-state record used by the account header: identifiant, names, dateDeNaissance and seeker typology.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange.
- identifiant
- codeCivilite
- libelleCivilite
- prenom
- nomPatronymique
- nomMarital
- dateDeNaissance
- categorieIndividu
- userTypologyCode
- codeTypologie
GET /v1/account/civil-status HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "identifiant": "id-100442", "codeCivilite": "1", "libelleCivilite": "Madame", "prenom": "Camille", "nomPatronymique": "Martin", "nomMarital": "Dupont", "dateDeNaissance": "1990-04-12", "categorieIndividu": "1", "userTypologyCode": "DE", "codeTypologie": "DE" }Allocataire compensation situations
GET
/v1/allocations/situationopenfinanceReturns the live ARE/ASS/ACEJ compensation situation: monthly and daily rates, remaining entitlement and degressivity flags.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange.
- typeAllocation
- topEnCoursDIndemnisationAre
- statutIndemnisable
- codeTypeIndemnisation
- allocationMensuelle
- allocationBruteJournaliere
- allocationJournaliereTauxReduit
- montantJournalierNet
- dureeTheoriqueDroit
- datePremierJourIndemnisable
- dateLimiteIndemnisation
- dateDecheanceDroitAre
- estDroitSoumisDegressivite
- dateBasculeTauxReduit
- soldePrevisionnelReliquat
GET /v1/allocations/situation HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "typeAllocation": "ARE", "topEnCoursDIndemnisationAre": true, "statutIndemnisable": "INDEMNISABLE", "codeTypeIndemnisation": "ARE", "allocationMensuelle": 1260.40, "allocationBruteJournaliere": 42.01, "allocationJournaliereTauxReduit": 36.12, "montantJournalierNet": 38.50, "dureeTheoriqueDroit": 730, "datePremierJourIndemnisable": "2025-11-03", "dateLimiteIndemnisation": "2027-11-02", "dateDecheanceDroitAre": "2027-11-02", "estDroitSoumisDegressivite": true, "dateBasculeTauxReduit": "2026-05-03", "soldePrevisionnelReliquat": 18420.00 }Digital compensation attestation
GET
/v1/allocations/attestations/digitalopendataIssues the digital attestation PDF the usager downloads from the attestations tile, keyed by typeAttestation.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Query typeAttestation selects the PDF (situation, payment). Sibling POST /v1/allocations/attestations/postal-copy asks for a paper copy by mail.
- typeAttestation
- documentSummaries
- idDocument
- nomFichier
- codeTypeDocument
GET /v1/allocations/attestations/digital?typeAttestation=SITUATION HTTP/1.1 Authorization: Bearer <access_token> Accept: application/pdf{ "typeAttestation": "SITUATION", "documentSummaries": [ { "idDocument": "att-8821", "nomFichier": "attestation-situation.pdf", "codeTypeDocument": "ATT_SIT" } ] }Monthly actualisation status
GET
/v1/declarations/monthly/statusopendataReturns whether the current monthly actualisation period is still open (A_FAIRE) or already VALIDEE.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. A standby backend serves the same status when the primary declaration service is under maintenance.
- moisActualisation
- actualisationPeriodStart
- periodEnd
- actuStatut
- dateValidationDeclaration
GET /v1/declarations/monthly/status HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "moisActualisation": "2026-09", "actualisationPeriodStart": "2026-09-01", "periodEnd": "2026-09-30", "actuStatut": "A_FAIRE", "dateValidationDeclaration": null }Validate monthly actualisation
POST
/v1/declarations/monthly/submitopendataSubmits the monthly actualisation: declared hours and salary, job-search démarches and special situations, then stamps dateValidationDeclaration.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Body is the drafted declaration (activities, démarches, special situations). Draft lines save live at /v1/declarations/monthly/activities, /v1/declarations/monthly/job-search-steps and /v1/declarations/monthly/special-situations.
- moisActualisation
- activites
- nbHeuresTravailles
- nbHeuresTotales
- salaireBrut
- identifiantDemarche
- situationsParticulieres
- confidenceLevelCode
- actuStatut
- dateValidationDeclaration
POST /v1/declarations/monthly/submit HTTP/1.1 Authorization: Bearer <access_token> Content-Type: application/json { "moisActualisation": "2026-09", "activites": [{"nbHeuresTravailles": 24, "nbHeuresTotales": 24, "salaireBrut": 720.00}], "identifiantDemarche": "d-9012", "situationsParticulieres": [], "confidenceLevelCode": "STANDARD" }{ "moisActualisation": "2026-09", "actuStatut": "VALIDEE", "dateValidationDeclaration": "2026-10-05T08:12:00Z" }Compensation payment data
GET
/v1/payments/latestopenfinanceReturns the latest compensation payout split into allocations, aides and other payments, with datePaiement.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange.
- montantPaiement
- montantAllocations
- montantAides
- montantAutresPaiements
- datePaiement
GET /v1/payments/latest HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "montantPaiement": 1260.40, "montantAllocations": 1260.40, "montantAides": 0, "montantAutresPaiements": 0, "datePaiement": "2026-09-28" }Overpayment debts
GET
/v1/payments/overpaymentsopenfinanceLists trop-perçu overpayment debts for the usager, with remaining balance and whether telepaiement is allowed.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange.
- tropPercus
- identifiantTropPercu
- codeTropPercu
- montantInitial
- montantRestantDu
- dateNotif
- motif
- eligibleAuTelepaiement
GET /v1/payments/overpayments HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "tropPercus": [ { "identifiantTropPercu": "tp-4412", "codeTropPercu": "INDUS_ARE", "montantInitial": 840.00, "montantRestantDu": 560.00, "dateNotif": "2026-07-14", "motif": "Activite non declaree", "eligibleAuTelepaiement": true } ] }Overpayment debit agreements
GET
/v1/payments/repayment-plansopenfinanceReturns signed or proposed repayment schedules for a trop-perçu, with instalment count and first direct-debit date.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Sibling POST /v1/payments/repayment-plans/proposal drafts an instalment plan; agreement and mandate PDFs sit under /v1/payments/repayment-plans/documents.
- accordsRemboursement
- identifiantTropPercu
- nombreMensualites
- datePremierPrelevement
- urlSignature
GET /v1/payments/repayment-plans HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "accordsRemboursement": [ { "identifiantTropPercu": "tp-4412", "nombreMensualites": 4, "datePremierPrelevement": "2026-11-05", "urlSignature": "<web-signing-url>" } ] }Upcoming usager appointments
GET
/v1/appointments/upcomingopendataLists upcoming conseiller appointments for the usager, with slot time, contact modality and agency SAFIR code.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Sibling /v1/appointments/available-slots lists bookable slots; /v1/appointments/contact-methods lists contact methods.
- idRdvUsager
- idRdv
- dateHeureRdv
- typeRdv
- modaliteContact
- dureeRdv
- codeSafirAgence
- nomSite
- adresse
- codePostalAndVille
- sujetId
- methodeContactId
GET /v1/appointments/upcoming HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "rendezVous": [ { "idRdvUsager": "rdv-331", "idRdv": "rdv-331", "dateHeureRdv": "2026-10-14T09:30:00+02:00", "typeRdv": "SUIVI", "modaliteContact": "AGENCE", "dureeRdv": 30, "codeSafirAgence": "75022", "nomSite": "Paris 20e - Gley", "adresse": "1 avenue du Docteur Gley", "codePostalAndVille": "75020 Paris", "sujetId": "SUIVI", "methodeContactId": "AGENCE" } ] }Unread counsellor messages
GET
/v1/messages/unreadopendataReturns the conseiller inbox badge (nombreNonLu) plus the latest conversation preview.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Sibling GET /v1/messages/threads pages conversations; POST /v1/messages/mark-read clears the badge.
- nombreNonLu
- idConversation
- dateEnvoiMessage
- nomFichier
- taillePj
GET /v1/messages/unread HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "nombreNonLu": 2, "conversations": [ { "idConversation": "c-9081", "dateEnvoiMessage": "2026-10-03T14:22:00Z", "nomFichier": "convocation.pdf", "taillePj": 184320 } ] }Nearby France Travail agencies
GET
/v1/agencies/nearbyopendataReturns nearby agencies for the map/list picker, keyed by SAFIR code with address, geo and open appointment count.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Optional geo query; sibling /v1/places/resolve turns a typed place string into coordinates.
- agences
- codeSafir
- nomSite
- adresse
- codePostalAndVille
- telephone
- latitude
- longitude
- distance
- nbRdv
GET /v1/agencies/nearby?latitude=48.8648&longitude=2.3984 HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "agences": [ { "codeSafir": "75022", "nomSite": "Paris 20e - Gley", "adresse": "1 avenue du Docteur Gley", "codePostalAndVille": "75020 Paris", "telephone": "3949", "latitude": 48.8648, "longitude": 2.3984, "distance": 1.2, "nbRdv": 3 } ] }Mailbox courrier count
GET
/v1/mailbox/countopendataReturns the courrier mailbox badge (nombre) plus a preview of unread agency letters.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Siblings GET /v1/mailbox/templates and GET /v1/mailbox/{id} page the mailbox.
- nombre
- mailSummaries
- mailId
- nomDocument
- dateEmission
- mailIsRead
- codeModele
GET /v1/mailbox/count HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "nombre": 4, "mailSummaries": [ { "mailId": "c-4412", "nomDocument": "Convocation agence.pdf", "dateEmission": "2026-10-02T09:14:00Z", "mailIsRead": false, "codeModele": "CONVOC" } ] }Usager contact coordinates
GET
/v1/account/contact-detailsosintReturns the signed-in usager contact coordinates used by the account screen: emailContact, telephoneContact and email-validation state.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Sibling POST /v1/account/contact-details/email-verification starts email confirmation.
- emailContact
- telephoneContact
- adresseMail
- isEmailValid
- statutValidationEmail
- isUserContactInfoComplete
GET /v1/account/contact-details HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "emailContact": "[email protected]", "telephoneContact": "0612345678", "adresseMail": "[email protected]", "isEmailValid": true, "statutValidationEmail": "VALIDE", "isUserContactInfoComplete": true }Document-deposit contexts
GET
/v1/documents/deposit-contextsopendataLists GED deposit contexts the usager may upload into from the camera scanner, keyed by codeContexteGed and codeSituationGed.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Later POSTs to /v1/documents/deposits/{id}/conversion and /v1/documents/deposits/{id}/confirm complete the camera upload.
- codeContexteGed
- codeSituationGed
- nomDocument
- codeTypeDocument
- nombreDocMax
GET /v1/documents/deposit-contexts HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "contextes": [ { "codeContexteGed": "ACTU", "codeSituationGed": "ATT_SAL", "nomDocument": "Bulletin de salaire", "codeTypeDocument": "SALAIRE", "nombreDocMax": 4 } ] }Allocation-request DAL eligibility
GET
/v1/allocations/requests/eligibilityopenfinanceReturns whether the usager may file or renew a demande d'allocation (DAL): eligibility code, anniversary date and consent stamp.
Auth: Authorization: Bearer <access_token> from POST /v1/auth/exchange. Sibling GET /v1/allocations/requests/tracking follows the filed request.
- codeEligibiliteDal
- typeEligibilite
- dateAnniversaireDal
- statutConsentement
- dateSaisieConsentement
- questionEligibilite
GET /v1/allocations/requests/eligibility HTTP/1.1 Authorization: Bearer <access_token> Accept: application/json{ "codeEligibiliteDal": "ELIGIBLE", "typeEligibilite": "ARE", "dateAnniversaireDal": "2026-11-03", "statutConsentement": "ACCEPTE", "dateSaisieConsentement": "2026-10-01T08:22:00Z", "questionEligibilite": true }
Data categories
- identity
- allocations
- actualisation
- attestations
- payments
- overpayments
- appointments
- messaging
- agencies
- auth-sessions
- documents
- contact
Where teams use this data
ARE payroll reconciliation
Payroll or union tooling reads the live compensation situation (allocationMensuelle, montantJournalierNet, topEnCoursDIndemnisationAre, dateLimiteIndemnisation) together with the latest payout (montantPaiement, datePaiement) so declared wages can be matched against the live ARE rate and the last payment.
Monthly actualisation audit
A case-management desk reads the current declaration period (moisActualisation, actuStatut) and the submitted declaration (nbHeuresTravailles, salaireBrut, identifiantDemarche) so a coach can tell a usager why a period is still A_FAIRE or already VALIDEE.
Trop-perçu debit-agreement desk
Debt-recovery consoles list overpayment debts (identifiantTropPercu, montantRestantDu, eligibleAuTelepaiement) and repayment plans (nombreMensualites, datePremierPrelevement) so an agent only proposes an instalment plan when a live remainder exists.
Conseiller slot next to the inbox
Join upcoming appointments (idRdvUsager, dateHeureRdv, codeSafirAgence) with the unread-message badge (nombreNonLu) and the nearby-agency directory (codeSafir, nomSite) so a local office can place the next slot beside unread counsellor mail.
Frequently asked questions
How does Mon Espace France Travail authenticate API calls?
GET /v1/auth/authorize starts the PEAM OpenID sign-in (client_id, redirect_uri com.poleemploi.poleemploietmoi://, scope openid payments declarations profile overpayments) and returns an authorization code to the app redirect. POST /v1/auth/exchange swaps that code for the access_token later calls send as Authorization: Bearer. /v1/auth/revoke and /v1/auth/logout close the session.
Which endpoints expose ARE allocations and monthly actualisation?
GET /v1/allocations/situation returns allocationMensuelle, montantJournalierNet, topEnCoursDIndemnisationAre and dateLimiteIndemnisation. GET /v1/declarations/monthly/status returns moisActualisation and actuStatut. POST /v1/declarations/monthly/submit sends nbHeuresTravailles, salaireBrut and identifiantDemarche.
How are trop-perçus and payouts represented?
GET /v1/payments/latest returns montantPaiement, montantAllocations and datePaiement. GET /v1/payments/overpayments lists identifiantTropPercu, montantRestantDu and eligibleAuTelepaiement. GET /v1/payments/repayment-plans carries nombreMensualites and datePremierPrelevement.
Can the API see conseiller appointments, messages and agencies?
Yes. GET /v1/appointments/upcoming returns idRdvUsager, dateHeureRdv and codeSafirAgence. GET /v1/messages/unread is the inbox badge (nombreNonLu). GET /v1/agencies/nearby lists nearby agencies by codeSafir and nomSite. GET /v1/allocations/attestations/digital issues the digital attestation PDF keyed by typeAttestation.
Apps similar to Mon Espace France Travail
- Parcours Emploi — Parcours Emploi is France Travail's official vacancy-board sister app: offre search, CV apply and candidature tracking, while Mon Espace holds actualisation, ARE and trop-perçus.
- GOSI — GOSI is Saudi social-insurance self-care: wage certificates, SANED unemployment insurance and benefit IBAN updates, in the same claimant-wallet class as Mon Espace.
- VssID — VssID is Vietnam Social Security's citizen app for the BHXH book, BHYT card and benefit regimes — a social-insurance analogue of France Travail's allocation screens.
- InfoJobs - Job Search — InfoJobs is Adevinta's Spanish job board: offer search by province and telework, curriculum apply and application tracking.
- Indeed Job Search — Indeed is a global job-search app: keyword search, apply, application status and recruiter messages.
- Job&Talent: Get work today — Job&Talent operates in France among other markets as a private staffing app, overlapping the public-employment geography Mon Espace serves.
- Pôle emploi — The former Pôle emploi brand still appears on sister apps and the PEAM login the current France Travail claimant client uses.
Topics
- mon espace france travail api
- are allocationMensuelle
- actualisation moisActualisation
- trop-percus identifiantTropPercu
- peam oauth france travail
- rendez-vous idRdvUsager
- attestation typeAttestation
- demandeur emploi api
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use