What your information system will be able to control, and what it cannot yet.
This page is written for the integrator who needs to estimate an integration workload without going through a sales contact. It lists resources domain by domain, each with a sample request and response. The status shown next to each entry indicates where things stand — and as of today, none is open.
Conventions before resources.
These conventions determine the integration workload more than the number of endpoints does.
- REST, JSON
- OpenAPI conventions, standard HTTP verbs, standard return codes. Nothing specific to CORRAICT to learn.
- API keys and scopes
- One key per integration, scoped to read or write, revocable independently. A compromised key can be removed without interrupting other connections.
- Opaque identifiers
- Objects are addressed by a short, prefixed identifier — eval_, cpy_, crs_ — not by our internal keys. The prefix indicates the nature of the object in a log.
- Version in the URL
- The version number is part of the path. A breaking change is released under a new version; the previous one continues to respond for the announced period.
Domain by domain, with an example.
Expand an entry to view the request and response. The badge on the right shows its status.
Results & markings
Retrieve the grades, feedback and detailed markings produced by CORRAICT to push them into your LMS, SIS or internal dashboard.
GET
/v1/evaluationsPlannedList institution assessments
Returns the tenant's assessments, with filters by course, class, status and date window. Cursor-based pagination.
Requestcurl https://api.corraict.com/v1/evaluations?status=published&limit=20 \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2"Response{ "data": [ { "id": "ev_7Hh2…", "title": "Business plan — M1 Entrepreneuriat", "course": "Entrepreneuriat", "class": "M1-A", "status": "published", "max_score": 20, "submissions_count": 28, "opens_at": "2026-06-01T08:00:00Z", "closes_at": "2026-06-08T23:59:00Z" } ], "next_cursor": null }GET
/v1/evaluations/{id}/resultsPriorityPlannedExport grades for an assessment
Exports all approved grades for an assessment (student, grade, hand-in date, feedback). JSON or CSV format via the Accept header. This is the API for pushing grades to a third-party system.
Requestcurl https://api.corraict.com/v1/evaluations/ev_7Hh2…/results \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2" \ -H "Accept: application/json"Response{ "evaluation_id": "ev_7Hh2…", "max_score": 20, "results": [ { "student": { "first_name": "Léa", "last_name": "Martin", "email": "lea.martin@…" }, "submitted_at": "2026-06-07T18:42:00Z", "score": 16.5, "validated_at": "2026-06-09T09:12:00Z" } ] }GET
/v1/submissions/{id}/correctionPlannedMarking detail
Returns the marking for a submission: overall grade, written feedback and per-criterion breakdown (label, points, comment) as approved by the teacher.
Requestcurl https://api.corraict.com/v1/submissions/sub_4Kp1…/correction \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2"Response{ "submission_id": "sub_4Kp1…", "score": 16.5, "feedback": "Étude de marché solide, hypothèses financières à étayer…", "per_criterion": [ { "label": "Étude de marché", "score": 5, "max": 5, "comment": "Complète et sourcée." }, { "label": "Modèle financier", "score": 3.5, "max": 6, "comment": "Marges optimistes." } ], "validated_at": "2026-06-09T09:12:00Z" }
Users & access
Provision your teachers and students from your HR directory or SIS, and synchronise access grants and revocations with your security policy.
POST
/v1/teachers/invitationsPriorityPlannedInvite teachers in bulk
Creates and sends invitations to a batch of teachers. Each profile receives an activation email. Idempotent by email address (an already active invitation is not duplicated).
Requestcurl -X POST https://api.corraict.com/v1/teachers/invitations \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2" \ -H "Content-Type: application/json" \ -d '{ "teachers": [ { "first_name": "Carine", "last_name": "Rugieri", "email": "c.rugieri@…" }, { "first_name": "Marc", "last_name": "Bonnet", "email": "m.bonnet@…" } ] }'Response{ "invited": 2, "skipped": 0, "invitations": [ { "email": "c.rugieri@…", "status": "sent", "user_id": "usr_9Xa2…" }, { "email": "m.bonnet@…", "status": "sent", "user_id": "usr_2Bd7…" } ] }POST
/v1/students/importPlannedBulk-import students
Creates or updates students and assigns them to a class. Accepts a JSON array or a CSV upload. Returns a line-by-line report (created / updated / failed).
Requestcurl -X POST https://api.corraict.com/v1/students/import \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2" \ -H "Content-Type: application/json" \ -d '{ "class_id": "cls_5Mn8…", "students": [ { "first_name": "Léa", "last_name": "Martin", "email": "lea.martin@…" } ] }'Response{ "created": 1, "updated": 0, "errors": [] }PATCH
/v1/users/{id}/statusPriorityPlannedGrant or revoke access
Activates or deactivates an account (student, teacher, administrator). Revocation suspends access immediately without deleting data; it is reversible.
Requestcurl -X PATCH https://api.corraict.com/v1/users/usr_9Xa2…/status \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2" \ -H "Content-Type: application/json" \ -d '{ "status": "inactive" }'Response{ "id": "usr_9Xa2…", "status": "inactive", "updated_at": "2026-06-05T14:20:00Z" }DELETE
/v1/users/{id}PlannedPermanently delete a user
Deletes an account and all its application data (GDPR — right to erasure). Irreversible operation, logged. The usage record is retained in anonymised form.
Requestcurl -X DELETE https://api.corraict.com/v1/users/usr_9Xa2… \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2"Response{ "id": "usr_9Xa2…", "deleted": true }
Pedagogical framework
Synchronise your institution's structure (schools, campuses, programmes, years, classes, courses) from your student information system.
GET
/v1/classesPlannedList classes
Returns the tenant's classes with their assignment (school → campus → programme → year) and enrolment figures.
Requestcurl https://api.corraict.com/v1/classes \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2"Response{ "data": [ { "id": "cls_5Mn8…", "name": "M1-A", "program": "Entrepreneuriat", "students_count": 28 } ] }POST
/v1/coursesPlannedCreate a course
Creates a course (subject × class teaching instance) and optionally assigns it to a responsible teacher.
Requestcurl -X POST https://api.corraict.com/v1/courses \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2" \ -H "Content-Type: application/json" \ -d '{ "name": "Entrepreneuriat", "class_id": "cls_5Mn8…", "teacher_id": "usr_9Xa2…" }'Response{ "id": "crs_1Qe6…", "name": "Entrepreneuriat", "class_id": "cls_5Mn8…", "teacher_id": "usr_9Xa2…" }
Webhooks & events
Receive CORRAICT events in real time (marking published, assessment closed) to trigger your own workflows without polling.
POST
/v1/webhooksPlannedRegister a receiving endpoint
Registers an HTTPS URL to receive subscribed events. Deliveries are signed (HMAC) and retried on failure.
Requestcurl -X POST https://api.corraict.com/v1/webhooks \ -H "Authorization: Bearer ck_live_3aF9…ZpQ2" \ -H "Content-Type: application/json" \ -d '{ "url": "https://votre-si.example.com/hooks/corraict", "events": ["correction.published", "evaluation.closed"] }'Response{ "id": "wh_8Tz3…", "url": "https://votre-si.example.com/hooks/corraict", "events": ["correction.published", "evaluation.closed"], "signing_secret": "whsec_…" }EVENT
correction.publishedPlannedA marking is approved and published to the student
Emitted as soon as a teacher publishes a marking. Ideal for automatically pushing the grade to an LMS in real time.
LivraisonPOST https://votre-si.example.com/hooks/corraict X-Corraict-Signature: t=…,v1=… Content-Type: application/jsonPayload{ "type": "correction.published", "created_at": "2026-06-09T09:12:00Z", "data": { "submission_id": "sub_4Kp1…", "evaluation_id": "ev_7Hh2…", "student_email": "lea.martin@…", "score": 16.5 } }
Webhooks do not exist yet.
They will save your information system from polling CORRAICT in a loop: events will be pushed to your endpoint, signed. We are not announcing them as current, nor with a date — three events are planned at launch.
- correction.published
- evaluation.closed
- submission.received
Write to us to be notified when they become available, or to influence the list of events: now is the right time to do so.
An integration constraint to validate?
Describe your student information system and what you want to flow through it. We will tell you what is possible today, and what is not.