# prescriptio_attributions

Qui a gagne quoi : attributions de marches publics (DECP, ~308 000 contrats). type:"liste" (defaut) = attributions recentes d'un theme et/ou d'une zone, avec titulaire (nom + SIRET), montant reel, acheteur, date. type:"top_titulaires" = classement des entreprises qui gagnent le plus : avec query thematique (ex "voirie") = classement sur ce theme ; sans query mais avec localisation = classement global de la zone. Utile pour : qui gagne quoi, analyse concurrentielle, montants reels (rarement publies sur les AO ouverts).

État : implémenté ; distribution : historique uniquement ; offre payante : false ; effets : lecture.

## Entrée MCP

```json
{
  "properties": {
    "cursor": {
      "description": "Curseur next_cursor de la page precedente, repasse tel quel.",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "type": "integer"
    },
    "localisation": {
      "description": "Zone geographique. National = omettre (jamais dept:\"all\").",
      "properties": {
        "dept": {
          "description": "Code departement : 01-95, 2A/2B ou 971-978.",
          "type": "string"
        },
        "region": {
          "description": "Nom de region — couvre tous ses departements en un appel.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "query": {
      "description": "Theme (ex : \"voirie\") ou nom d'ouvrage. Plein texte sur l'objet des contrats. UNE requete = UN sujet.",
      "type": "string"
    },
    "type": {
      "description": "liste (defaut) = attributions recentes (titulaire, montant, acheteur, date). top_titulaires = classement des entreprises qui gagnent le plus : avec query = sur ce theme ; sans query mais avec localisation = classement global de la zone.",
      "enum": [
        "liste",
        "top_titulaires"
      ],
      "type": "string"
    }
  },
  "type": "object"
}
```

## Sortie MCP

```json
{
  "properties": {
    "_meta": {
      "type": "object"
    },
    "next_cursor": {
      "description": "À repasser tel quel pour la page suivante ; null s'il n'y en a plus.",
      "type": [
        "string",
        "null"
      ]
    },
    "results": {
      "description": "Résultats de la page courante.",
      "items": {
        "properties": {
          "fields": {
            "description": "Champs propres à la source.",
            "type": "object"
          },
          "id": {
            "description": "Identifiant à citer (SIREN/SIRET, marche_id, réf DECP).",
            "type": "string"
          },
          "resume": {
            "type": "string"
          },
          "titre": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "total_estimated": {
      "description": "Total connu ou estimation signalée par la source ; null si le total est inconnu. Ne jamais extrapoler depuis la taille de la page.",
      "type": [
        "integer",
        "null"
      ]
    }
  },
  "required": [
    "results"
  ],
  "type": "object"
}
```

[Contrats externes et limites](/docs/reference/concepts.md).
