---
title: "Upload Schools Csv"
method: POST
path: "/schools/admin/upload"
tags: ["schools"]
---

# Upload Schools Csv

`POST /schools/admin/upload`

Admin-only route to upload a CSV file containing French schools data.
Rows are upserted by UAI (existing entries keep their id and B2B link).

Expected CSV columns:
- UAI: School unique identifier
- Etablissement: School name
- Region: Region name
- Code commune: Postal code
- Commune: City name

## Response `200`

Successful Response

- SchoolUploadResponse — Response model for CSV upload
  - `success` boolean, required
  - `message` string, required
  - `schools_count` integer, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) · [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/excellence-ai/excellence-learning/revisions/c407f3b5a05b/schema)
