AICORRAICT
Create exercisesStart from your programme, not a generic template.
Mark submissionsYour marking scheme, applied to every submission.
Teaching notesThe annotated solution the student receives with their grade.
See the full cycleWhat each capability passes on to the next.
Groups & universitiesScope, roles, deployment, governance and cost.
TeachersYour marking scheme, your marking, your final word.
Academic leadershipConsistency in grading, without monitoring anyone.
StudentsWhat the student space contains, and the role of AI in the grade.
CORRAICT in your information systemYour reference frameworks, your information system, your quality approach.
API LibraryWhat your information system will be able to control.
Our approach to AIAI suggests, the Teacher decides. The six safeguards.
Assessment integrityFour safeguards, and exactly what they are worth.
Security, GDPR & AI ActWhere your data lives, for how long, and under which regulatory framework.
PricingTry it out
Sign inRequest a demo
Home/Integration & quality/API Library
API Library

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.

Foundation

  • 1REST, JSON
  • 2API keys and scopes
  • 3Opaque identifiers
  • 4Version in the URL
Foundation

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.
Resources

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/evaluationsPlanned
    Planned

    List institution assessments

    Returns the tenant's assessments, with filters by course, class, status and date window. Cursor-based pagination.

    Request
    curl 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}/resultsPriorityPlanned
    Planned

    Export 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.

    Request
    curl 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}/correctionPlanned
    Planned

    Marking detail

    Returns the marking for a submission: overall grade, written feedback and per-criterion breakdown (label, points, comment) as approved by the teacher.

    Request
    curl 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/invitationsPriorityPlanned
    Planned

    Invite 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).

    Request
    curl -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/importPlanned
    Planned

    Bulk-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).

    Request
    curl -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}/statusPriorityPlanned
    Planned

    Grant or revoke access

    Activates or deactivates an account (student, teacher, administrator). Revocation suspends access immediately without deleting data; it is reversible.

    Request
    curl -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}Planned
    Planned

    Permanently 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.

    Request
    curl -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/classesPlanned
    Planned

    List classes

    Returns the tenant's classes with their assignment (school → campus → programme → year) and enrolment figures.

    Request
    curl 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/coursesPlanned
    Planned

    Create a course

    Creates a course (subject × class teaching instance) and optionally assigns it to a responsible teacher.

    Request
    curl -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/webhooksPlanned
    Planned

    Register a receiving endpoint

    Registers an HTTPS URL to receive subscribed events. Deliveries are signed (HMAC) and retried on failure.

    Request
    curl -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_…"
    }
  • EVENTcorrection.publishedPlanned
    Planned

    A 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.

    Livraison
    POST https://votre-si.example.com/hooks/corraict
    X-Corraict-Signature: t=…,v1=…
    Content-Type: application/json
    Payload
    {
      "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
      }
    }
Coming soon

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.

Get notified
Go further

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.

Book a demo
AICORRAICT

The pedagogical assistant for educational groups.

Groups & universitiesTeachersOur approach to AISecurity, GDPR & AI ActSales deckFAQWhat's newLegal noticeRGPDContactLinkedIn

© 2026 CORRAICT. All rights reserved.