Mon Espace France Travail icon

Mon Espace data API: ARE, actualisation, trop-perçus

France Travail · Jobs & Careers

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

  • Mon Espace France Travail screenshot 1
  • Mon Espace France Travail screenshot 2
  • Mon Espace France Travail screenshot 3
  • Mon Espace France Travail screenshot 4
  • Mon Espace France Travail screenshot 5
  • Mon Espace France Travail screenshot 6
  • Mon Espace France Travail screenshot 7
  • Mon Espace France Travail screenshot 8

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/authorize osint

    Starts 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/html
    HTTP/1.1 302 Found
    Location: com.poleemploi.poleemploietmoi://?code=<authorization-code>&state=<state>
  • Exchange code for access token

    POST /v1/auth/exchange osint

    Exchanges 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-status osint

    Returns 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/situation openfinance

    Returns 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/digital opendata

    Issues 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/status opendata

    Returns 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/submit opendata

    Submits 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/latest openfinance

    Returns 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/overpayments openfinance

    Lists 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-plans openfinance

    Returns 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/upcoming opendata

    Lists 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/unread opendata

    Returns 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/nearby opendata

    Returns 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/count opendata

    Returns 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-details osint

    Returns 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-contexts opendata

    Lists 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/eligibility openfinance

    Returns 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

Get a quote